🧮ML গণিত গুরু
optimizationমাঝারি10 মিনিট

Optimizers — SGD, Adam ও বন্ধুরা

Optimizers — SGD, Adam & Friends

🛒

সবচেয়ে সস্তা দোকান খোঁজা

ধর তুই নিউমার্কেটে জুতা কিনতে গেছিস। ৫০টা দোকান আছে। কিভাবে সবচেয়ে সস্তা দোকান খুঁজবি? উপায় ১ (Gradient Descent): প্রতিটা দোকানে যাও, দাম দেখো, সস্তার দিকে এগিয়া যাও — slow কিন্তু sure। উপায় ২ (SGD): রান্ডম ৫টা দোকান দেখো, সস্তার দিকে দৌড়াও — fast কিন্তু noisy। উপায় ৩ (Adam): আগের দোকানগুলার trend মনে রাখো, smart decision নাও — fast + stable!

ML-এ model training-এ loss minimize করতে বিভিন্ন optimizer use হয়। গুরু বলে — 'SGD হইল বেসিক দোকানে দোকানে হাঁটা, Adam হইল Google Maps দিয়া shortest path! প্রতিটার নিজস্ব strength আছে।'

সংজ্ঞা

Optimizer হইল সেই algorithm যেইটা loss function minimize করতে model-এর weights update করে। Gradient-এর direction আর magnitude use করে প্রতিটা step-এ weights adjust করে।

Basic update rule — learning rate (η) × gradient (g) দিয়া weights update
\[\theta_{t+1} = \theta_t - \eta \cdot g_t\]

ব্যাখ্যা

SGD (Stochastic Gradient Descent)

প্রতিটা step-এ random mini-batch select করে gradient compute করে। Full batch-এর চেয়ে fast কিন্তু noisy gradient। Momentum যোগ করলে আগের direction-এর memory থাকে — valley-তে দ্রুত converge করে।

\[v_t = \beta v_{t-1} + (1-\beta) g_t, \quad \theta_{t+1} = \theta_t - \eta \cdot v_t\]

Adam (Adaptive Moment Estimation)

Adam দুইটা জিনিস track করে — gradient-এর running average (1st moment) আর gradient²-এর running average (2nd moment)। এইটা automatically per-parameter learning rate adjust করে। বেশিরভাগ problem-এ best default choice।

\[m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t, \quad v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2\]

কোন Optimizer কখন?

Computer Vision-এ SGD + Momentum ভালো (ResNet, ViT)। NLP/Transformer-এ Adam/AdamW standard (BERT, GPT)। Small dataset-এ LBFGS ভালো। সবার default: Adam দিয়া শুরু করো!

SGD vs Adam — একটা Simple Example

Loss function L(w) = w⁴ - 3w² + 2। w₀ = 2.0 থেকে শুরু। SGD (lr=0.01) আর Adam দিয়া ৩ step update দেখাও।

Step 1: Gradient বের করো

dL/dw = 4w³ - 6w। w=2 তে gradient = 4(8) - 6(2) = 20

\[\frac{dL}{dw} = 4w^3 - 6w, \quad g(2.0) = 32 - 12 = 20\]

Step 2: SGD Update

w₁ = w₀ - η·g = 2.0 - 0.01(20) = 1.8

\[w_1 = 2.0 - 0.01 \times 20 = 1.8\]

Step 3: Adam Update

Adam-এ m₁ = 0.1(20) = 2.0, v₁ = 0.001(400) = 0.4, bias-corrected: m̂ = 20, v̂ = 400

\[w_1^{\text{adam}} = 2.0 - 0.01 \times \frac{20}{\sqrt{400} + \epsilon} \approx 2.0 - 0.01 = 1.99\]
উত্তর:

SGD: 2.0 → 1.8 (বড় step)। Adam: 2.0 → 1.99 (ছোট কিন্তু controlled step)। Adam gradient-এর magnitude normalize করে, তাই large gradient-এও stable থাকে।

ML-এ কোথায় লাগে?

💡

মনে রাখার ট্রিক

SGD = নিউমার্কেটে দোকানে দোকানে হাঁটা (slow, simple)। Adam = Google Maps দিয়া smart shortcut (fast, adaptive)। সন্দেহ হইলে Adam দিয়া শুরু করো, CV-তে SGD try করো!

#sgd#adam#adamw#rmsprop#momentum#learning-rate#optimizer