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 করে।
ব্যাখ্যা
SGD (Stochastic Gradient Descent)
প্রতিটা step-এ random mini-batch select করে gradient compute করে। Full batch-এর চেয়ে fast কিন্তু noisy gradient। Momentum যোগ করলে আগের direction-এর memory থাকে — valley-তে দ্রুত converge করে।
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।
কোন 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
Step 2: SGD Update
w₁ = w₀ - η·g = 2.0 - 0.01(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
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 করো!