Gradient Descent

آموزش گرادیان کاهشی: بهینه‌سازی تابع خطا، نرخ یادگیری و انواع SGD و Mini-Batch

Gradient Descent چیست؟

موتور آموزش اکثر الگوریتم‌های ML! روشی برای یافتن کمینه تابع خطا گام‌به‌گام.

تشبیه کوهستان

در کوه، در مه شدید، پایین‌ترین نقطه را می‌خواهی. چه می‌کنی؟ شیب زمین زیر پایت را حس می‌کنی و یک قدم در جهت پایین‌ترین شیب برمی‌داری. این کار را تکرار می‌کنی تا به دره برسی!

فرمول

پارامتر_جدید = پارامتر - نرخ_یادگیری × گرادیان

θ = θ - α × ∇J(θ)

نرخ یادگیری؛ مهم‌ترین هایپرپارامتر

نرخنتیجه
خیلی کوچکآموزش کُند؛ شاید هرگز نرسد
مناسب ✅همگرایی سریع و پایدار
خیلی بزرگواگرایی! خطا به جای کم شدن، بیشتر می‌شود

انواع Gradient Descent

در scikit-learn

from sklearn.linear_model import SGDClassifier

model = SGDClassifier(learning_rate="optimal", max_iter=1000)
model.fit(X_train, y_train)
اگر خطا نوسان شدید دارد، نرخ یادگیری را کم کنید. اگر خیلی کند است، زیاد کنید. مقادیر رایج: ۰.۱، ۰.۰۱، ۰.۰۰۱

جمع‌بندی

این مبحث بخشی از دوره آموزش کامل ماشین لرنینگ است.

ابزارهای مرتبط