با تشکر از تحقیقات فعال ، ما بسیار بهتر از الگوریتم های بهینه سازی مختلف نسبت به تبار شیب وانیل مجهز هستیم. بیایید در مورد دو رویکرد متفاوت دیگر در مورد نزول شیب - حرکت و میزان یادگیری تطبیقی بحث کنیم.
پس از داشتن الگوی شبکه عصبی خود ، باید بهترین مجموعه پارامترها را پیدا کنیم تا از دست دادن آموزش/آزمون به حداقل برسیم و دقت مدل را به حداکثر برسانیم. حل کننده مدل داده های آموزشی ، مدل و الگوریتم های بهینه سازی را برای آموزش مدل گرد هم می آورد. یک حل کننده مدل دارای:
- مجموعه داده های آموزش و آزمایش
- مراجعه به مدل
- نوع متفاوتی از بهینه سازها مانند SGD ، آدم
- سابقه از دست دادن و دقت برای مرحله تمرین برای هر دوره
- پارامترهای بهینه شده برای مدل
بگذارید با یک مرور کوتاه از ستون فقرات همه بهینه سازهای محبوب ، نزول شیب ، ایده های پیرامون ساختن حل کننده مدل خود را شروع کنیم.
نزول شیب
نزول شیب رایج ترین الگوریتم بهینه سازی است که در یادگیری ماشین مورد استفاده قرار می گیرد. از شیب عملکرد ضرر برای یافتن حداقل جهانی با یک قدم در یک زمان به سمت منفی شیب استفاده می کند (همانطور که می خواهیم عملکرد ضرر را به حداقل برسانیم).
اگر ( delta w ) و ( delta b ) تغییراتی هستند که باید به ترتیب در جهت (w ) و (b ) پیدا کنیم. منحنی پارامترها ، سپس شیب عملکرد از دست دادن l به صورت تعریف می شود ،
روشی که نزول شیب کار می کند این است که اکنون بارها و بارها شیب ( دلتا l ) را محاسبه کرده و سپس در جهت مخالف حرکت کنید ، "سقوط" شیب دره.
جایی که ( alpha ) به عنوان نرخ یادگیری شناخته می شود ، که نشان دهنده اندازه مرحله برداشته شده در هر تکرار با نزول شیب است.
چرا تبار شیب؟
نزول شیب به همراه الگوریتم Backpropagation به الگوریتم یادگیری de-facto شبکه های عصبی تبدیل شده است.
در سایر الگوریتم های بهینه سازی مانند روش نیوتن و BFGS ، ما باید ماتریس مشتق جزئی مرتبه دوم یا ماتریس Hessian را محاسبه کنیم. اگرچه این الگوریتم به روزرسانی های کارآمد را ایجاد می کند و به پارامتر نرخ یادگیری احتیاج ندارد ، ما باید ماتریس مشتقات جزئی مرتبه دوم را برای هر پارامتر با توجه به هر پارامتر دیگر محاسبه کنیم ، که از نظر حافظه بسیار محاسباتی و بسیار ناکارآمد است.
Gradient Descent فقط به مشتقات مرتبه اول پارامترها با توجه به تابع ضرر نیاز دارد که به طور موثر توسط Backpropagation محاسبه می شود و بنابراین به دلیل سادگی و کارایی آن بالاتر از این تکنیک ها می درخشد.
تغییرات گرادیان نزول
تغییرات دیگری از Gradient Descent وجود دارد که ایده های کمی برای همگرایی سریعتر به بهینه اضافه شده است. محبوب ترین الگوریتم ها عبارتند از:
- نزول گرادیان تصادفی (SGD)
- SGD با مومنتوم
- گرادیان شتاب نستوروف (NAG)
- گرادیان تطبیقی (AdaGrad)
- RMSprop
- آدم
نزول گرادیان تصادفی
هنگامی که ورودی آموزش بسیار زیاد است، شیب نزول به کندی همگرا می شود. نزول گرادیان تصادفی تغییر ترجیحی گرادیان نزولی است که گرادیان را از نمونه کوچکی از ورودی های آموزشی انتخاب شده به طور تصادفی در هر تکرار به نام minibatches تخمین می زند.
مینی بچ ها
مینی بچ ها با به هم زدن داده های آموزشی و انتخاب تصادفی تعداد معینی از نمونه های آموزشی تولید می شوند. این تعداد نمونه اندازه minibatch نامیده می شود و پارامتری برای SGD است. این هم کد:
به روز رسانی قانون
SGD از یک قانون به روز رسانی بسیار ساده برای تغییر پارامترها در امتداد گرادیان منفی استفاده می کند. فرض کنید یک لیست پارامترهای قابل یادگیری برای هر لایه به ترتیب پارامترها و یک لیست مشابه برای گرادیان گرادیان محاسبه شده با گذر به عقب با چندین گرادیان برای هر پارامتر قابل یادگیری داریم، قانون به روز رسانی ساده ما به این صورت خواهد بود:
SGD
هر قرار گرفتن در معرض کامل مجموعه داده های آموزشی، دوره نامیده می شود. الگوریتم SGD برای تعداد معینی از دوره ها تکرار می شود. از توابع get_minibatches و vanilla_update بالا استفاده می کند تا الزامات حل کننده مدل ما را گرد هم آورد.
تکانه
تکنیک مومنتوم رویکردی است که یک قانون به روزرسانی ارائه می کند که از دیدگاه فیزیکی بهینه سازی انگیزه دارد. تصور کنید توپی در یک زمین تپه ای در حال تلاش برای رسیدن به عمیق ترین دره است. هنگامی که شیب تپه بسیار زیاد است، توپ شتاب زیادی پیدا می کند و می تواند از تپه های خفیف سر راه خود عبور کند. با کاهش شیب، حرکت و سرعت توپ کاهش می یابد، در نهایت در عمیق ترین موقعیت دره قرار می گیرد.
این تکنیک استاندارد SGD را با معرفی سرعت (v) که پارامتری است که می خواهیم بهینه کنیم و اصطکاک (mu) تغییر می دهد که سعی می کند سرعت را کنترل کند و از عبور بیش از حد دره جلوگیری می کند و در عین حال امکان فرود سریع تر را فراهم می کند. گرادیان فقط بر سرعت تأثیر مستقیم دارد که به نوبه خود بر موقعیت تأثیر می گذارد. از نظر ریاضی،
[x08egin v &= mu v - alpha Delta L \ w &= w + v end]
که به کد به عنوان ترجمه می شود
مزیت مومنتوم این است که تغییرات بسیار کوچکی در SGD ایجاد می کند، اما سرعت یادگیری را افزایش می دهد. ما باید سرعت را برای تمام پارامترها ذخیره کنیم و از این سرعت برای به روز رسانی استفاده کنیم. در اینجا تابع تغییر یافته برای SGD است که از قانون به روز رسانی حرکت بالا استفاده می کند.
گرادیان شتاب نستروف
گرادیان شتاب نستروف یک تغییر هوشمندانه از تکانه است که کمی بهتر از تکانه استاندارد کار می کند. ایده پشت حرکت نستروف این است که به جای محاسبه گرادیان در موقعیت فعلی، شیب را در موقعیتی محاسبه می کنیم که می دانیم حرکت ما در شرف گرفتن ماست، به نام موقعیت "نگاه به جلو" نامیده می شود. از منظر فیزیکی، منطقی است که در مورد موقعیت نهایی خود بر اساس موقعیتی که می دانیم در مدت کوتاهی به آن خواهیم رسید، قضاوت کنیم.
این پیاده سازی با فشار دادن کمی پارامترهای ما در جهت سرعت و محاسبه گرادیان ها، تغییرات جزئی در SGD Momentum استاندارد ایجاد می کند. این هم کد:
نرخ یادگیری تطبیقی
تا به حال ما از نرخ یادگیری جهانی و برابر برای همه پارامترهای خود استفاده کرده ایم. بنابراین تمام پارامترهای ما با فاکتور ثابت به روز می شوند. اما اگر بتوانیم این فاکتور را حتی برای هر پارامتر با پیشرفت آموزش تسریع یا کاهش دهیم چه؟ما می توانیم یادگیری را در طول مراحل آموزشی به طور تطبیقی تنظیم کنیم و بدانیم در کدام جهت سرعت و کدام جهت را کاهش دهیم. روش های متعددی که از چنین نرخ های یادگیری تطبیقی استفاده می کنند، پیشنهاد شده اند، به ویژه AdaGrad، RMSprop و ADAM.
آداگراد
AdaGrad (کاغذ اصلی) مجموع گرادیان مجذور هر پارامتر را پیگیری می کند و مرحله به روز رسانی پارامتر را عادی می کند. ایده این است که پارامترهایی که به روزرسانی های بزرگ را دریافت می کنند، نرخ یادگیری مؤثرشان کاهش می یابد، در حالی که پارامترهایی که به روزرسانی های کوچک دریافت می کنند، نرخ یادگیری مؤثرشان افزایش می یابد. به این ترتیب می توانیم با تسریع در یادگیری هر پارامتر، همگرایی را تسریع کنیم.
RMSprop
یک نقطه ضعف Adagrad این است که حافظه پنهان [i] += درجه [i] ** 2 قسمت از بروزرسانی به صورت یکنواخت در حال افزایش است. این می تواند مشکلاتی را ایجاد کند زیرا میزان یادگیری می تواند به طور پیوسته کاهش یابد تا جایی که یادگیری را به طور کلی متوقف کند. RMSProp (منتشر نشده ، استناد در اینجا) با پوسیدگی شیب مربع گذشته توسط یک عامل پوسیدگی برای کنترل نرخ یادگیری تهاجمی ، با این مشکل مبارزه می کند. در اینجا Decay_Rate یک هاپرپارامتر با مقادیر معمولی مانند 0. 9،0. 99 و غیره است.
آدم
آدام (مقاله اصلی) یک الگوریتم بهینه سازی مرتبه اول است که اخیراً پیشنهاد و در حال حاضر ارائه شده است. این یک پیشرفت در RMSProp با افزودن حرکت به قانون به روزرسانی ، ترکیب بهترین های هر دو حرکت و دنیای یادگیری تطبیقی است. ما دو پارامتر دیگر Beta1 و Beta2 را با مقادیر توصیه شده 0. 9 و 0. 999 معرفی می کنیم.
نکته دیگر که باید توجه داشته باشید این است که آدم شامل مکانیسم تصحیح تعصب است ، که چند تکرار اول را جبران می کند که هر دو حافظه نهان و سرعت در صفر مغرضانه باشند زیرا به صفر می شوند.
مقالات آموزش فارکس...
ما را در سایت مقالات آموزش فارکس دنبال می کنید
برچسب :
نویسنده : بهزاد فراهانی
بازدید : <-PostHit->
تاريخ : جمعه
25 فروردين
1402 ساعت: 12:24