گرادیان کاهشی تصادفی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز ویرایش بهوسیلهٔ ابرابزار: |
|||
خط ۲۰:
== کاربردها ==
گرادیان کاهشی تصادفی یک الگوریتم محبوب و متداول برای یادگیری طیف گستردهای از مدلها در [[یادگیری ماشین]] است، از جمله [[ماشین بردار پشتیبانی|ماشینهای بردار پشتیبانی]]، [[رگرسیون لجستیک]] و [[مدلهای گرافیکی]].<ref>Jenny Rose Finkel, Alex Kleeman, Christopher D. Manning (2008). [http://www.aclweb.org/anthology/P08-1109 Efficient, Feature-based, Conditional Random Field Parsing]. Proc. Annual Meeting of the ACL.</ref> الگوریتم [[بازگشت به عقب]] که
== روش پیادهسازی ==
خط ۲۷:
<math>\theta = \theta - \alpha \nabla_\theta \mathcal{J}_\boldsymbol{i}(\theta; x^{(i)},y^{(i)})</math>
که در آن <math>\mathcal{J}</math>تابع هزینه و <math>(x^{(i)},y^{(i)}) </math>یک عضو از دادههای آموزشی است که به صورت تصادفی انتخاب
در پیادهسازی دیگر در هر حلقه عضوی تصادفی از مجموعهٔ دادهها انتخاب نمیشود بلکه در هر حلقه کل مجموعه دادهها یک بار بهصورت تصادفی بازچینی میشود سپس به عملیات بهروزرسانی به ترتیب به ازای <math>\mathcal{J}_\boldsymbol{1},\mathcal{J}_\boldsymbol{1},...,\mathcal{J}_\boldsymbol{n}</math> انجام میشود که <math>\boldsymbol{n}</math> نشاندهندهٔ اندازهٔ مجموعهٔ دادههای آموزشی است. شبه کد زیر این پیادهسازی را نشان میدهد:
خط ۳۳:
تا زمانی که مینیمم بدست بیاید تکرار کن
دادههای آموزشی را به صورت تصادفی بازچینی کن
برای <math>\boldsymbol{i}</math> از ۱
<math>\theta = \theta - \alpha \nabla_\theta \mathcal{J}_\boldsymbol{i}(\theta; x^{(i)},y^{(i)})</math>
همانطور که پیشتر اشاره شد معمولاً عملیات بهروز رسانی برای <math>\mathcal{J}</math> حاصل از یک تک عضو مجموعهٔ دادههای آموزشی انجام نمیشود و برای زیرمجموعهای از این دادهها انجام میشود که به آن دستهٔ کوچک میگویند.<gallery widths="240" heights="240" perrow="2">
خط ۴۲:
== مثال ==
فرض کنید در یک مسئلهٔ یادگیری ماشین میخواهیم از روش کمترین مربعات استفاده کنیم به طوری که مجموعهای از دادههای آموزشی به شکل <math>(x^{(i)},y^{(i)}) </math> داریم که در هر دوتایی، <math>x^{(i)} </math> نشاندهندهٔ مساحت یک خانه و <math>y^{(i)}</math> نشاندهندهٔ قیمت خانه به آن مساحت باشد حال اگر بخواهیم نمودار <math>y</math> را بر حسب <math>x </math> با یک نمدار خطی تقریب بزنیم نیاز به روش کمترین مربعات داریم. طبق این روش بهترین تقریب این نمودار با خط <math>ax+b</math> زمانی اتفاق میافتد که تابع <math>\mathcal{J}(a,b) =\left ( \frac{1}{2n} \right ) \textstyle \sum_{i=1}^n \displaystyle((ax^{i}+b)- y^{i})</math> مینیمم مقدار خود را داشته باشد. حال در این مثال <math>\mathcal{J}(a,b)</math> تابع هزینه است و به روش گرادیان کاهشی تصادفی میشود مقدار <math>a , b</math> را بدست آورد که با ازای آنها تابع هزینه مینیمم شود و بهترین تقریب خطی یرای نمودار بدست بیاید.<ref>{{یادکرد وب|نام خانوادگی=Miller|نام=Lachlan|تاریخ=2018-01-10|وبگاه=Medium|نشانی=https://medium.com/@lachlanmiller_52885/machine-learning-week-1-cost-function-gradient-descent-and-univariate-linear-regression-8f5fe69815fd|عنوان=Machine Learning week 1: Cost Function, Gradient Descent and Univariate Linear Regression|بازبینی=2018-10-29}}</ref>
== بسط ==
تا به حال چندین روش نوین برای کاهش سریعتر گرادیان کاهشی ابداع شده که
=== تکانه (Momentum) ===
این روش برای اولین بار توسط روملهارت، هیلتون و ویلیامز معرفی شد.<ref name="Rumelhart19862" /> در این روش میزان تغییر پارامتر <math>\Delta \theta</math> در هر مرحله از بهینهسازی ذخیره شده تا در مرحله بعدی به شکل پایین از آن استفاده شود:
<math>\Delta \theta = \eta \Delta \theta - \alpha \nabla \mathcal{J}(\theta)</math>
سطر ۵۵ ⟵ ۵۳:
<math>\theta = \theta + \Delta \theta </math>
که با ترکیب این دو به عبارت پایین میرسیم:
<math>\theta = \theta - \alpha\nabla \mathcal{J_i}(\theta) + \eta \Delta \theta </math>
روش momentum باعث
=== میانگین (Averaging) ===
سطر ۶۵ ⟵ ۶۳:
=== گرادیان تطبیقی (AdaGrad) ===
روش آداگراد یا گرادیان تطبیقی برای اولین بار در سال ۲۰۱۱ معرفی و منتشر شد.<ref name="duchi" /><ref>{{cite web|first=Joseph|last=Perla|year=2014|title=Notes on AdaGrad|url=http://seed.ucsd.edu/mediawiki/images/6/6a/Adagrad.pdf|deadurl=yes|archiveurl=https://web.archive.org/web/20150330033637/http://seed.ucsd.edu/mediawiki/images/6/6a/Adagrad.pdf|archivedate=2015-03-30|df=}}</ref> این روش برای هر بُعدِ پارامتر یک نرخ یادگیری جداگانهای در نظر میگیرد؛ نرخ یادگیری همان <math>\alpha</math> در معادله بالاست. برای ابعاد خلوتتر (sparse) معمولاً این روش نرخ یادگیری را افزایش
نرخ یادگیری برای ابعاد محتلف پارامتر از قطر اصلی ضرب خارجی <math>G = \sum_{\tau=1}^t g_\tau g_\tau^\mathsf{T}</math> بدست میآید. در این معادله <math>g_\tau = \nabla \mathcal{J}_i(\theta)</math> گرادیان در مرحله <math>\tau</math> است و نرخ یادگیری برای بُعدِ j ام برابر خواهد بود با:
سطر ۷۵ ⟵ ۷۳:
<math>\theta = \theta - \eta\, \mathrm{diag}(G)^{-\frac{1}{2}} \circ g</math>
این معادله برای بعد <math>j</math>ام برابر خواهد بود با:
<math>\theta_j = \theta_j - \frac{\alpha}{\sqrt{G_{j,j}}} g_j.</math>
از آنجا که در نرخ یادگیری <math>\alpha</math> برای بُعدِ j ام پارامتر بر مقدار <math>\sqrt{G_i} = \sqrt{\sum_{\tau=1}^t g_\tau^2}</math> تقسیم میشود، ابعدای که خلوتترند سریعتر نرخ یادگیریشان کاهش مییابد.<ref name="Zeiler 20124">{{cite arXiv|last=Zeiler|first=Matthew D.|eprint=1212.5701|title=ADADELTA: An adaptive learning rate method|year=2012|class=cs.LG}}</ref> اگرچه روش گرادیان تطبیقی برای مسائل محدب طراحی
== جستارهای وابسته ==
سطر ۹۱ ⟵ ۸۹:
== منابع ==
{{پانویس|۲}}
[[رده:آمار]]
|