آزمایشگاه آزاد؛ بدون نیاز به ورود
گرادیان نزولی چطور پایینترین نقطه رو پیدا میکنه؟
تصور کن روی یک تپه دنبال دره میگردی. مشتق میگه شیب به کدام سمت بالاست؛ گرادیان نزولی هر بار یک قدم در جهت مخالف برمیداره. اندازهٔ قدم میتونه رسیدن رو سریعتر یا سختتر کنه.
آزمایش رو شروع کناز نقطهٔ شروع ۳- و نرخ یادگیری ۰٫۱ آغاز کن. تابع به سمت کمینهٔ x=۲ حرکت میکنه. این ویجت مسیر رو تا ۵۰ نقطه ادامه میده، حتی اگر زودتر به نزدیکی کمینه رسیده باشه؛ پس شمارندهٔ «گام تا همگرایی» تعداد واقعی گامهای رسیدن نیست.
آزمایشگاه در حال آماده شدنه…
حالا خودت امتحان کن
هر بار فقط یک چیز رو تغییر بده تا اثرش رو ببینی. قبل از اجرا، نتیجه رو حدس بزن.
قدم نیمه راه
نقطهٔ شروع رو روی ۳- و نرخ یادگیری رو روی ۰٫۵ بذار. مسیر نقطهها و مقدار نهایی تابع رو بخون.
حدست چیه؟ برای این سهمی، قدمی بهاندازهٔ نصفِ نرخ میتونه در یک مرحله به x=۲ برسه یا از آن رد بشه؟
توضیح نتیجه رو ببین
از x=۳-، مشتق برابر ۱۰- است؛ با نرخ ۰٫۵، بهروزرسانی x رو دقیقاً به ۲ میرسونه و f(۲)=۰ میشه. با این حال مسیر تا ۵۰ نقطه ادامه پیدا میکنه و شمارنده هم ۵۰ نشون میده؛ آن شمارنده زمان واقعی رسیدن به کمینه نیست. نشانگرِ مقدار صفر هم بهاشتباه بالای نمودار میافتد، پس کارتِ مقدار نهایی رو برای این آزمایش ملاک بگیر.
وقتی قدم از حد میگذره
نقطهٔ شروع رو روی ۳- ثابت نگه دار و نرخ یادگیری رو روی ۱ بذار. مقدار نهایی تابع و مسیر رسمشده رو ببین.
حدست چیه؟ آیا نقطه به کمینه میایسته یا یک بار از دو سوی آن میپره؟
توضیح نتیجه رو ببین
در این نرخ، عاملِ فاصله از کمینه برابر ۱- میشه؛ نقطهها بین ۳- و ۷ جابهجا میشن و به ۲ نزدیک نمیشن. مقدار تابع ۲۵ میمونه. شکل فقط محور x از ۵- تا ۵ رو نشان میده، پس جایگاه ۷ در لبهٔ نمودار بریده دیده میشه.
قدم خیلی بزرگ واگرا میشود
همان نقطهٔ شروع ۳- رو نگه دار و نرخ رو روی ۱٫۵ ببر. وضعیت مسیر رو کنار حالت نرخ ۰٫۵ مقایسه کن.
حدست چیه؟ اگر هر بار دو برابرِ فاصله از کمینه رو در جهت مخالف بپری، فاصله کمتر میشه یا بزرگتر؟
توضیح نتیجه رو ببین
با نرخ ۱٫۵، فاصله در هر قدم دو برابر میشه و جهتش عوض میشه. مدل بعد از ۶ نقطه از آستانهٔ خودش میگذره و در شکل واگرایی رو با ∞ نشان میده. نمودار فقط بازهٔ x از ۵- تا ۵ رو میکشه؛ مسیرهای بیرون این بازه روی لبه فشرده میشن.
پشت این حرکت چه خبره؟
مشتق، جهت شیب را میگوید
f(x) = (x - 2)^2; f'(x) = 2*(x - 2); x_(n+1) = x_n - alpha*f'(x_n)
برای سهمی این صفحه، f(x) برابر فاصلهٔ x از ۲ به توان دو است. مشتق در هر نقطه شیبِ منحنی رو میده؛ قدم در جهت منفیِ مشتق حرکت میکنه تا مقدار تابع کم بشه. کمینه در x=۲ است و مقدار تابع آنجا صفر میشه.
اندازهٔ قدم، نتیجه را عوض میکند
x_(n+1) - 2 = (1 - 2*alpha) * (x_n - 2)
اگر فاصله از کمینه رو بنویسیم، بعد از هر قدم این فاصله در عامل یک منهای دو برابر نرخ ضرب میشه. وقتی قدر مطلق این عامل کمتر از یک باشه فاصله کوچک میشه؛ در نرخ ۱ فاصله فقط علامتش عوض میشه و در نرخ بزرگتر از ۱ اندازهاش رشد میکنه.
همگرایی با واگرایی فرق دارد
در این تابع، نرخ بین صفر و یک فاصله رو کم میکنه؛ نرخ ۰٫۵ از هر نقطه در یک قدم به x=۲ میرسه. نرخ ۱ بهجای ایستادن دو سوی کمینه میپرد، و نرخ بالاتر از یک فاصله رو بزرگتر میکنه. این شرط برای همین سهمی است و به همهٔ تابعها تعمیم داده نمیشه.
شمارنده را با تعداد واقعی گامها اشتباه نگیر
ویجت تعداد ثابتِ ۵۰ نقطه را ثبت میکنه و حتی بعد از رسیدن به کمینه ادامه میده. بنابراین کارت «گام تا همگرایی» همیشه زمان رسیدن رو اندازه نمیگیره؛ در نرخ ۰٫۵ مثلاً کمینه بعد از یک بهروزرسانی بهدست میآد، ولی کارت ۵۰ نشون میده.
سؤالت رو بپرس، جوابش رو هم ببین
وقتی توی چت دربارهٔ یک مفهوم درس میخونی، دستیار هوش مصنوعی میتونه شبیهسازی مرتبط رو کنار توضیحش نشون بده. پارامترها رو تغییر میدی و با کمک توضیح بعدی، نتیجه رو بهتر میفهمی.
شروع یادگیری با چتبرای ادامه در چت، وارد مسیر شروع و ورود میشی. نتیجهٔ این آزمایش به چت منتقل نمیشه.
نمونهٔ نمایشی از آموزش در چت
اگر نرخ یادگیری رو زیاد کنم، حتماً زودتر به کمینه میرسم؟
نه. روی این سهمی نرخ ۰٫۵ در یک قدم از هر شروعی به x=۲ میرسه؛ نرخ ۱ بین دو طرف کمینه میپره و نرخ ۱٫۵ با هر قدم دورتر میشه. بزرگتر بودن قدم همیشه بهتر نیست. این رفتار از همین تابع و رابطهٔ بهروزرسانی میآد.
سؤالهای رایج
چرا مشتق در x=۲ صفره؟
در x=۲ کف سهمی قرار داره و شیب آن نقطه صفره؛ بنابراین بهروزرسانیِ گرادیان نزولی دیگه x رو جابهجا نمیکنه. مقدار تابع هم آنجا صفر است.
چرا نرخ ۰٫۵ از هر نقطه دقیقاً به کمینه میرسه؟
چون در تابع f(x)=(x-۲)^۲، یک قدم با نرخ ۰٫۵ فاصلهٔ x تا ۲ رو صفر میکنه. این نتیجهٔ ویژهٔ همین سهمی و مشتق آن است، نه قاعدهای برای هر تابع.
چرا نرخ ۱ همگرا نیست؟
در این تابع، بعد از هر قدم علامت فاصله از ۲ عوض میشه ولی اندازهاش همان میمونه. پس اگر از ۳- شروع کنی، بین ۳- و ۷ میچرخی و به کمینه نمیرسی.
چرا کارت گامها میگه ۵۰ وقتی کمینه زودتر پیدا شد؟
این پیادهسازی مسیر را تا ۵۰ نقطه ادامه میده و برای رسیدن متوقف نمیشه. پس آن عدد تعداد نقاط ذخیرهشده است، نه شمار دقیق گامهای لازم تا کمینه.
اگر وضعیت هنوز واگرا نیست، یعنی حتماً همگرا میشه؟
نه. مدل فقط وقتی واگرایی رو علامت میزنه که قدر مطلق x از ۱۰۰ بگذره. یک مسیر میتونه در ۵۰ گام از کمینه دور بشه اما هنوز به آن آستانه نرسیده باشه؛ وضعیتِ باقیمانده در رابط «در حال حرکت» است.