توضیحات
در مدلسازی سری زمانی ، مدل برونی خودپنداره غیر خطی یا مدل nonlinear autoregressive exogenous یا NARX به عنوان یکی از مدلهای پر کاربرد می باشد. در این مدل مقدار فعلی به مقادیر قبلی ورودی و خروجی وابسته است.
رابطه یک شبکه NARX به صورت زیر است :
y(t)=f(y(t−1), y(t−2), …, y(t−ny), u(t−1), u(t−2), …, u(t−nu))+Ɛ
(y(t خروجی نهایی ، (u(t ورودی مدل می باشد. (y(t-1 خروجی یکی قبلتر و (y(t-2 خروجی دو واحد قبلتر می باشد. (u(t-1 ورودی یکی قبلتر و (u(t-2 ورودی دو واحد قبلتر می باشد.
یک ترم خطا هم وجود دارد که نشان دهنده این واقعیت است که مقدار خروجی نهایی یک سری زمانی دقیقا مقدار جاری آن نمی باشد. به عبارت دیگر هر قدر هم که ما یک مدل دقیق طراحی کنیم باز هم طبیعت یک سری زمانی مقداری تصادفی بودن را در دل خود دارد.
برنامه نویسی متلب شبکه های NARX کمی مشکل و پیچیده می باشد چون با برنامه نویسی شبکه های عصبی دیگر متفاوت می باشد. رعایت نکردن تعدادی نکته ممکن است باعث تولید خطا در برنامه شود و پیدا کردن این خطا گاهی مشکل می باشد.
ما در این فیلم آموزشی مراحل برنامه نویسی متلب یک شبکه NARX را به صورت گام به گام با چندین مثال به شما یاد می دهیم.
پیش نمایش :
دانشجو –
سلام پسورد فایل ها چیست؟
ایران متلب –
سلام
در ایمیل ارسالی خط آخر پسورد نوشته شده است.
دانشجو –
در جایی که شما فقط یک وکتور داده برای 365 روزه دارید تابع هدف را چگونه می توان تشکیل داد ؟ ممنون
ایران متلب –
تعریف تابع هدف بستگی به هدف شما دارد.
شما باید ببینید دنبال چه چیزی هستید؟
برای درک خوب از تابع هدف می تونید فیلم آموزش بهینه سازی را ببینید.
Ati –
سلام عذر می خوام. آموزش narx با تولباکس هست یا کامل کد ها نوشته می شه؟
ایران متلب –
سلام
در این آموزش از تولباکس استفاده شده است اما برای کار با شبکه عصبی NARX باید کدنویسی انجام دهید که در این آموزش مثالهای کدنویسی وجود دارد.
A.r –
سلام وقت به خبر آیا در آموزش کد از تولباکس استفاده شده؟
ممنون
ایران متلب –
سلام
بله در این آموزش از تولباکس متلب NARX استفاده شده است.
a –
سلام این کد تولباکس NARX هست یا کد زدن کامل رو آموزش دادند؟ مرسی
ایران متلب –
سلام
همانطور که در عنوان این آموزش می بینید تخصصی در مورد NARX می باشد.
علی –
سلام.
این آموزش شامل چه سر فصل هایی می باشد؟
آیا آموزش پیش بینی سری زمانی هم در آن وجود دارد؟
ایران متلب –
سلام
تئوری و برنامه نویسی
شجاعیان –
تشکر
سید –
سلام
در این آموزش آیا در نهایت ما میتونیم دادههای سرعت باد را برای 24 ساعت بعد پیش بینی کنیم؟
ایران متلب –
سلام
بله کاربرد اصلی NARX در پیش بینی می باشد.
pourya zahirpor –
با عرض سلام
در رابطه با محصول خریداری شده،وقتی که میخواهیم شبکه را طراحی کنیم برای وزن دهی اولیه که از اعداد رندوم استفاده میشه،هر بار که ران میگیریم مقادیر mse تغییر پیدا میکنه،چگونه این مشکل را برطرف کنم؟یعنی با هر بار اجرا کردن کد مقادیر متفاوت نمایش داده نشه،ممنون میشم که راهنمایی کنید.
ایران متلب –
با سلام
شما خودتون جواب سوال خودتون را دادید. دلیل این همان تغییر کردن تصادفی، وزن های اولیه مدل می باشد که با هر بار اجرای برنامه یک سری عدد جدید برای مقادیر اولیه تولید می شود لذا الگوریتم آموزش با یک مقدار جدید روند آموزش شروع می کند و به همین دلیل RMSE متفاوتی می دهد.
اگر بخواهیم مفصل صحبت کنیم در متلب تولید اعداد تصادفی توسط
rng random number generator
تولید می شود و همانطور که حتما می دانید در کامپیوتر اعداد تصادفی به روشهای مختلفی تولید می شود ولی همه اینها واقعا تصادفی نیستند بلکه بر اساس یک
seed
عمل می کنند.
بخوام خیلی ساده توصیح بدهم، فرض کن یک چرخ رولت داریم، این همان تولید کننده عدد تصادفی در متلب هست. این داره برای خودش همینجور داره میچرخه و هر موقع عدد تصادفی بخواهی متلب برات از این چرخ یک عدد تصادفی برمیداره.
حالا میشه به روشهایی این چرخ را خودمون متوقف کنیم و بگیم بی زحمت از اینجا شروع کن به چرخیدن که میشه همان
seed
شما می توانی تابع rng را مقداردهی کنی در ابتدای برنامه، در این صورت هر بار که برنامه را اجرا کنی، یک مقدار ثابت همه جا بهتون می دهد.
فکر کنم در بسته یادگیری ماشین مقدماتش این را کامل توضیح دادم.