نزول گرادیان تصادفی در مقابل نزول گرادیان: مقایسه ای سر به سر

  • 2022-08-15

stochastic gradient descent vs gradient descent

به عنوان مزایای یادگیری ماشین بیشتر خودنمایی می کند به همه تبدیل, بیشتر و بیشتر مردم در حال پریدن بر روی این قطار به سرعت در حال حرکت. و یکی از راه های یادگیری ماشین استفاده از مدل رگرسیون خطی است. یک مدل رگرسیون خطی به دستگاه اجازه می دهد تا پارامترهایی مانند اصطلاحات تعصب و وزن را بیاموزد تا حداقل یا راه حل بهینه جهانی را پیدا کند در حالی که میزان یادگیری بسیار پایین است. طبق تعریف نوع الگوریتم های مورد استفاده در مدل رگرسیون خطی تمایل دارد که توابع خطا را با حرکت تکراری به سمت جهت شیب دارترین نزول به حداقل برساند زیرا با منفی هر شیب مورد استفاده ما تعریف می شود. اگرچه رگرسیون خطی را می توان به سه (3) روش مختلف نزدیک کرد اما ما دو (2) را با هم مقایسه خواهیم کرد: نزول گرادیان تصادفی در مقابل نزول گرادیان. این به ما کمک می کند تا تفاوت بین نزول گرادیان و نزول گرادیان تصادفی را درک کنیم.

انواع فرودها گرادیان چیست?

در درجه اول سه (3) نوع شیب نزولی وجود دارد. و شامل موارد زیر است:

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

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

  1. نزول گرادیان تصادفی: نزول گرادیان تصادفی چیست(یا به طور خلاصه)? الگوریتم بهینهسازی گونهای از الگوریتم بهینهسازی است که هم در زمان و هم در فضای محاسباتی ما صرفه جویی میکند و در عین حال به دنبال بهترین راه حل بهینه است. مجموعه داده ها به درستی جابجا می شوند تا از سفارشات از قبل موجود جلوگیری شود و سپس به نمونه های م تقسیم شوند. به این ترتیب الگوریتم پایتون نزول گرادیان تصادفی می تواند به طور تصادفی هر نمونه از مجموعه داده را در هر تکرار انتخاب کند (برخلاف گذراندن یکباره کل مجموعه داده). یک مثال نزول گرادیان تصادفی فقط از یک نمونه از مجموعه تمرین برای هر تکرار استفاده می کند. و با انجام این کار, این تقریب تصادفی از مجموعه داده حذف بار محاسباتی در ارتباط با نزول گرادیان در حالی که دستیابی به تکرار سریع تر و در نرخ همگرایی پایین تر. این فرایند به سادگی طول می کشد یک مثال گرادیان تصادفی تصادفی, تکرار, سپس قبل از حرکت به عنوان مثال تصادفی بعدی را بهبود می بخشد. با این حال, چون طول می کشد و تکرار یک مثال در یک زمان, این امر منجر به سر و صدا بیشتر از ما به طور معمول می خواهم.
  1. نزول گرادیان مینی دسته ای: نزول گرادیان مینی دسته ای همان چیزی است که ما پل بین نزول گرادیان دسته ای و نزول گرادیان تصادفی می نامیم. کل موضوع مثل این است که گرادیان نزولی را در کنار هم نگه دارید و بهترین نقاط هر دو جهان را در نظر بگیرید و به یک الگوریتم عالی تبدیل کنید. بنابراین, در حالی که در گرادیان نزولی دسته ای ما باید از طریق کل مجموعه تمرین در هر تکرار اجرا و سپس یک مثال در یک زمان در تصادفی, گرادیان مینی دسته ای به سادگی مجموعه داده را به دسته های کوچک تقسیم می کند. از این رو, در حال اجرا نیست از طریق کل نمونه در یک بار, نه گرفتن یک مثال در یک زمان. این نوعی تعادل در الگوریتم ایجاد می کند که می توانیم هم استحکام تصادفی و هم کارایی محاسباتی نزول گرادیان دسته ای را پیدا کنیم.

فرمول های نزول گرادیان

اولین قدم در استفاده از الگوریتم شیب نزولی اختصاص مقادیر کوچک به پارامترها است. و به عنوان الگوریتم شروع به تکرار حرکت به سمت پیدا کردن حداقل جهانی این مقادیر را حفظ خواهد کرد در حال تغییر. ما فرض می کنیم که مهمترین پارامترها دبلیو (وزن) و ب (تعصب) هستند.

هنگامی که ما مقادیر به پارامترهای فوق اختصاص داده اند, ما باید به انتخاب یک مقدار برای ((نرخ یادگیری). ما باید مراقب باشیم مقداری را انتخاب کنیم که نه خیلی کوچک باشد و نه خیلی بزرگ. این به این دلیل است که اگر عدد بزرگ باشد, سپس شاهد واگرایی و فراتر رفتن تکرار خواهیم بود, و اگر خیلی کوچک باشد متوجه تکرار می شویم که کند است و خیلی طول می کشد تا به سمت حداقل جهانی همگرا شود. برای کمک به ما نرخ یادگیری مناسب را انتخاب کنید, از این رو, نیاز به رسم یک نمودار از تابع هزینه در برابر مقادیر مختلف وجود دارد α. چنین طرحی مانند طرح زیر خواهد بود:

Types of Gradient Descents

توصیه می شود برای شروع با چیدن یک مقدار به عنوان کوچک به عنوان 0.001 و رفتن از وجود دارد. برای مثال می توانیم از ارزش ها استفاده کنیم 0.001, 0.003, 0.01, 0.03, 0.1, 0.3 و غیره.

فرمول نزول گرادیان دسته ای

همانطور که قبلا بحث کردیم, نزول گرادیان دسته ای مجموع کل مجموعه تمرین را برای اجرای یک تکرار واحد می گیرد. سپس فرمول خواهد بود:

رابطه زیر به بهترین وجه نحوه مقداردهی اولیه پارامترها را در نزول گرادیان دسته ای توصیف می کند:

Batch Gradient Descent

در زیر قطعه ای از کد پایتون نزول گرادیان دسته ای وجود دارد:

فرمول نزول گرادیان تصادفی

با استفاده از این نوع الگوریتم معمولا یک نمونه از مجموعه تمرین را در هر تکرار اجرا می کنیم. یادگیری بعد از هر تکرار اتفاق می افتد به طوری که پارامترها بعد از هر عمل به روز می شوند (ایکس^من,بله^من). یک نزول گرادیان تصادفی فرمول زیر را دارد:

سپس ممکن است یک نزول شیب تصادفی را ببینیم که از طریق رابطه زیر توضیح داده شده است:

م در اینجا تعداد نمونه های تمرینی را نشان می دهد.

فرمول نزول گرادیان مینی دسته ای

شیب مینی دسته ای عملیات را در مینی دسته ها انجام می دهد و محاسبه می کندکه بین 50 تا 256 نمونه از تمرین در یک تکرار واحد است. این نتایج سریع تر است که دقیق تر و دقیق بازده. فرمول مینی دسته ای در زیر داده شده است:

هنگامی که ما می خواهیم برای نشان دادن این نوع با یک رابطه, ما می توانیم یکی از زیر استفاده کنید:

ب در اینجا تعداد دسته ها را نشان می دهد در حالی که م تعداد نمونه های تمرینی را نشان می دهد.

مقایسه نزول گرادیان تصادفی و نزول گرادیان

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

نزول گرادیان تصادفی

جوانب مثبت:

  • محاسبه سریع تر از طریق یک مثال در یک زمان می رود
  • تصادفی کمک می کند تا برای جلوگیری از چرخه و تکرار نمونه
  • بار محاسبات کمتر که اجازه می دهد تا برای استاندارد پایین تر خطا
  • زیرا اندازه نمونه کمتر از مجموعه تمرین است, نویز بیشتری وجود دارد که امکان بهبود خطای تعمیم را فراهم می کند

منفی:

  • معمولا پر سر و صدا تر است و این می تواند منجر به مدت زمان طولانی تری شود
  • منجر به واریانس بزرگتر می شود زیرا با یک مثال در هر تکرار کار می کند

نزول گرادیان (نزول گرادیان دسته ای)

جوانب مثبت:

  • مسیر به سمت حداقل جهانی همیشه ساده است و همیشه تضمین می شود که همگرا شود
  • حتی در حالی که فرایند یادگیری در حال انجام است, نرخ یادگیری را می توان ثابت اجازه می دهد تا بهبود
  • بدون سر و صدا تولید می کند و خطای استاندارد کمتری می دهد
  • این یک تخمین بی طرفانه از شیب ها تولید می کند

منفی:

  • کندتر است و زمان زیادی می برد
  • از نظر محاسباتی گران است و بار محاسباتی بسیار بالایی دارد

نحوه استفاده از شیب نزولی در یادگیری ماشین و علوم داده

اکنون که ما مقایسه کرده ایم گرادیان نزول در مقابل تصادفی, اجازه دهید روش های متعددی را در نظر بگیریم شیب نزولی می تواند هم در یادگیری ماشین و هم در علوم داده اعمال شود زیرا ما قبلا می دانیم که نزول گرادیان تصادفی پایتون در چندین زمینه از جمله یادگیری ماشین برای مدت زمان بسیار طولانی در حال حاضر کاربرد داشته است.

در اینجا چند روش متداول وجود دارد که می توانیم شیب نزولی را هم در یادگیری ماشین و هم در علوم داده اعمال کنیم:

  • ماشین بردار پشتیبانی: توسط وپنیک اول توسعه یافته و از الگوریتم یادگیری تحت نظارت برای بسیاری از اشکال تجزیه و تحلیل رگرسیون استفاده می کند.
  • رگرسیون لجستیک منطق را نه تنها در یادگیری ماشین بلکه در سایر زمینه ها از جمله زمینه پزشکی اعمال می کند.
  • مدل گرافیکی احتمالی: که از نمایش های گرافیکی برای توضیح وابستگی شرطی موجود بین متغیرهای مختلف تصادفی استفاده می کند.

نتیجه گیری

مقایسه شیب نزولی تصادفی در مقابل شیب نزولی به ما و سایر توسعه دهندگان کمک می کند تا بفهمیم با کدام یک از دوتایی ها بهتر و ارجح تر کار می کنیم. برای بسیاری از, مهم ترین تفاوت بین مختصات تبار در مقابل شیب تبار است چگونه ارزان تر است به استفاده از شیب نزولی تصادفی. این دلیل و بسیاری دیگر احتمالا به همین دلیل است که گرادیان تصادفی به ویژه در یادگیری ماشین و علوم داده همچنان به پذیرش فزاینده ای ادامه می دهد.

به یاد داشته باشید که شما می توانید به خبرنامه ایمیل ما مشترک شوید و بحث را دنبال کنید حتی زمانی که ما همچنان به مفاهیم مشابه ادامه می دهیم. در نهایت می توانید این مقاله را با دوستان خود در تمام رسانه های اجتماعی به اشتراک بگذارید تا بتوانند ارزش کسب کنند.

برچسب ها

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.