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

با تشکر

دسته بندی ها

+1 امتیاز

با سلام ،
آیا روشی برا تخمین مقدار λ بر حسب تابع f وجود دارد؟
به عبارت دیگر روشهایی برای adaptive نمودن مقدار λ بر حسب تابع f وجود دارد؟
ممنون میشم در این خصوص راهنمائی بفرمائید.

توسط (105 امتیاز)
lambda manzuretun learning rate hastesh ya zaribe regularization

3 پاسخ

+1 امتیاز

سلام
در مورد شبکه های عصبی فعلی و الگوریتم های متداولی که استفاده میشه، از ساده ترین هاش مثل sgd+momentum تا الگوریتم های یکم پیچیده تر مثل AdaDelta یا Adam، همشون دارن تلاش می کنن که همین کارو بکنن و به یه نحوی، مستقیم یا غیر مستقیم، learning rate رو به صورت adaptive تغییر بدن
نکته دیگه اینه که تازه همه این چیزا توی خانواده الگوریتم های مبتنی بر گرادیان مرتبه اولن و کلی الگوریتم دیگه هست که از مرتبه های بالاتر استفاده می کنه، نمونه هاییش که الان توی شبکه های عصبی استفاده بشه شاید ازمعروفتش L-BFGS باشه که توی بعضی از کارهای style transfer یا visualization عملکرد شبکه ها استفاده میشه

https://en.wikipedia.org/wiki/Limited-memory_BFGS

اینا مدلها بیشتر مبتنی بر روش نیوتن و استفاده از ماتریس هسین و اینجور اطلاعات و تخمین های مرتبه دوم هستن
از کارهای دیگه بگم، مقاله های زیادی هم روی این زمینه تعیین یا adaptive کردن گام هست
مثلا این مقاله:
No More Pesky Learning Rates

https://arxiv.org/pdf/1206.1106.pdf

این فیلد فوق العاده گستردس و به خاطر اهمیتش، خیلی خیلی روش کار شده و هنوزم کار میشه. توی این زمینه اگه مقالات کنفرانس COLT رو دنبال کنید خیلی مطالب خوب و جالبی بدست میارید. معمولا کلاس و سطح مطالب هم خیلی بالاتر از استفاده صرف از شبکه یا تغییرات معماریه. مقالات امسالش رو می تونید از اینجا ببینید

http://proceedings.mlr.press/v65

الان همه بحث ما توی شبکه های عصبی یا یه جوری مرتبط با کارهای هوش مصنوعی و یادگیری بود، اما بهینه سازی اینقدر موضوع مهم و گسترده ایه که خودش به طور محض سالها جای کار داره و بهتره اگه در زمینه جدی می خواید کار کنید یکی از کتابها در زمینه بهینه سازی پیوسته رو بخونید (بحث بهینه سازی گسسته مثل net flow و بحثهای ترکیبیاتی خیلی فرق داره)
برای بهینه سازی پیوسته نظر شخصی من اینه که این کتاب خیلی ساده و راحت مطالب رو توضیح داده و خوب جا انداخته

Numerical Optimization از انتشارات اشپرینگر

http://www.springer.com/gp/book/9780387303031

اگه خیلی وقت خوندشنش رو ندارید و می خواید فقط یه دید کلی خوب به دست بیارید از الگوریتم هایی که الان توی یادگیری عمیق زیاد ازش استفاده میشه، توصیه میکنم فصل 3 ام که در مورد الگوریتم های line search ه رو بخونید

توسط (1.6k امتیاز)
0 امتیاز

zaribe regularization منظورم هست؟ ممنون میشم راهنمائی بفرمائید.

توسط (105 امتیاز)
0 امتیاز

اگر توجه کنید ضریب رگیولاریزیشن یک هایپرپارامتر هستش و نه یک پارامتر که بخواهیم بهینه کنیم. اگر منظورتون اینه که چجوری این مقدار رو تعیین کنیم تا مساله ی یادگیری overfit نشه بله راهکار وجود داره. معمولا در ماشین لرنیگ اگر از روش early stop استفاده نکنید می تونید از این راه استفاده کنید که بیاید اول تا می شده شبکه رو روی داده ی ترین آزمایش کنید تا خطا روی تابع ترین به کمترین مقدار ممکن برسه. این کار رو به این خاطر انجام میدن که شرط لازم برای عمومیت بخشی، یادگیری داده های ترین هستش و با این کار مشکل high bias رو حل می کنند. بعد که به یه معماری مطلوب برای ترین رسیدند میان شبکه رو روی داده های تست یا ولیدیشن امتحان می کنند. اگر خطا زیاد بود مشکل high varaince خواهیم داشت به همین دلیل سعی می کنند با تغییر هایپر پارامترهای مساله این مشکل رو نیز حل کنند. برای این کار اگر فرضا از L2 Regularization استفاده کرده باشید که همون ضریب لامبدا رو داره، میان به تدریج این ضریب رو زیاد می کنند. به این شکل که فرض کنید به یه مدل رسیدند که 99 درصد روی داده های ترین درست جواب میده ولی روی تست به فرض 60 درصد. میان مساله رو با تعیین 0.1 برای لامبدا یه بار دیگه ترین می کنند. به تدریج این لامبدا رو تا جایی زیاد می کنند که تست و ولیدیشن یه مقدار مناسبی برسند. مقدار زیاد لامبدا باعث می شه اصلا مساله چیزی روی داده های ترین هم یاد نگیره. به همین خاطر به تدریج زیادش می کنند تا ببینند چه مقداری مناسب هستش.

توسط (165 امتیاز)
...