به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام
چطور میتوان میزان خطای RMSE رو در محاسبه LSTM کاهش داد؟
راهنمایی که ازش استفاده کردم به من RMSE= 40 رو میده
https://machinelearningmastery.com/time-series-forecasting-long-short-term-memory-network-python/

توسط (109 امتیاز)
ویرایش شده توسط
سلام
منظورتون موقع آموزشه یا تست؟
موقع تست، البته اگر روشی باشه ترجیح میدم برای هردو
اگر لازم هست که کدی که نوشتم رو بفرستم؟

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام
در مورد خطای تست، بعد از اینکه شبکه آموزش دیده شده راه استانداردی برای کاهش این خطا وجود نداره
یعنی بهترین راهش اینه که شبکه رو بهتر آموزش بدید تا خطای کمتری روی دیتاهای تست تولید کنه
البته یه نکته خیلی مهم اینه که نباید آموزش بدید و نتیجه رو روی تست ببینید وگرنه احتمال خیلی زیاد روی مجموعه تست overfit می شین و باید تمامی کارهاتون روی validation set باشه

چند تا روش معمول و ساده هست که می تونید نتیجه بهتری بگیرید :
1- پارامترهای بهتری برای مرحله آموزش استفاده کنید(مثلا الگوریتم بهتر، learning rate بهتر، استفاده از data augmentation و ....)

2- استفاده از چندین مدل (ensemble). یعنی یا چند تا شبکه از اول با مقادیر اولیه متفاوت آموزش بدید و در نهایت هنگام تست جواب هاشون رو میانگین گیری کنید
یا توی مرحله آموزش از cyclic learning rate استفاده کنید، مثلا اول LR رو می ذارید 0.01 و توی 100 چرخه تا 0.0001 کم میشه، بعد این مدل فعلی توی این چرخه رو ذخیره می کنید و دوباره LR رو می ذارید همون 0.01 و دوباره این 100 تا چرخه رو تکرار می کنید و الی آخر

=================================

نکته مهم دیگه اینه که شبکه های Recurrent یه سری ریزه کاری هایی دارن تا بتونید حداکثر بهره رو ازشون ببرید، چند تا نمونه خیلی شناخته شده براتون مثال بزنم،
توی LSTM، بایاس forget gate خیلی مهمه که اول آموزش زیاد باشه که مشکل vanishing gradient تا حد امکان بوجود نیاد
یا اینکه وزندهی اولیه قسمت بازگشتی (hidden to hidden) اگه بصورت ماتریس I باشه، می تونه آموزش رو سریعتر کنه
که البته بسته به مساله و ساختار شبکه هم داره اما خلاصه کلی این وزندهی اولیه مهمه

در مقالاتی و پست هایی که روی اینترنت هست به دلیل اینکه موضوع آموزشه، خیلی روی جزئیات کار نمیشه و می خوان که تصویر کلی جا بیوفته، برای همین بقیه کارا و پیشرفت دادنش با خودتونه

توسط (1.6k امتیاز)
انتخاب شده توسط
سلام
البته من تست رو با استفاده از Multi-variant انجام دادم و کمی بهتر شد، بنا به نعداد لایه ها و نورون هایی که انتخاب میکنیم این مقدار تغییر میکنه.  
ممنون از توضیح خوب ، و وقتی که گذاشتید، بله حق با شماست در منابع اینترنتی خیلی جزئیات در نظر گرفته نمیشه،
اگر ممکن هست منبع مناسبی که بتونم LSTM رو بصورت دقیق با جزییات بهتر یادبگیرم معرفی کنید.
یکی از بهترین پست هایی که من در مورد LSTM دیدم از وبلاگ olah بوده :
http://colah.github.io/posts/2015-08-Understanding-LSTMs
...