পাঠ ১৫ · ৩০-এর মধ্যে · মডিউল ২
Home / AI Courses / AI Foundations / গ্রেডিয়েন্ট ডিসেন্ট

গ্রেডিয়েন্ট ডিসেন্ট — পাহাড় থেকে নিচে

Gradient descent — walking downhill
৯ মিনিট পড়া শুরু · Beginner NumPy কোডসহ

এই পাঠে যা শিখবেন

  • Gradient Descent অ্যালগরিদম — তিনটি ধাপে
  • Learning rate ($\eta$) কী, কেন এত গুরুত্বপূর্ণ
  • একটি বাস্তব মডেল প্রশিক্ষণ — শূন্য থেকে কোডে
  • "কোথায় থামব" — convergence-এর ধারণা

১ · মূল ধারণাটি দু'লাইনে

Gradient Descent

১) যেখানে আছেন সেখানের গ্রেডিয়েন্ট হিসাব করুন।
২) তার বিপরীত দিকে একটি ছোট ধাপ যান।
৩) পুনরাবৃত্তি — যতক্ষণ না গ্রেডিয়েন্ট প্রায় শূন্য (অর্থাৎ আপনি সর্বনিম্নে)।

গণিতের ভাষায় — প্রতিটি ধাপে ওজন (weight) আপডেট হয়:

$$w \;\leftarrow\; w \;-\; \eta \, \nabla L(w)$$

  • $w$ — যা শিখতে চাই (model parameters)
  • $L(w)$ — loss functionLoss Functionমডেলের prediction সঠিক উত্তর থেকে কত দূরে — তা মাপার ফাংশন। training-এ এই loss কমানোই লক্ষ্য।: মডেল কতটা ভুল
  • $\nabla L(w)$ — গ্রেডিয়েন্ট: $w$-এর সাপেক্ষে $L$ কত দ্রুত বদলায়
  • $\eta$ — learning rateLearning Rate (η)প্রতিটি weight update-এ ধাপের আকার। সবচেয়ে গুরুত্বপূর্ণ hyperparameter. সাধারণ DL-এ ১০⁻⁴ থেকে ১০⁻¹। GPT/LLM-এ ১০⁻⁵ scale-এ। বড় = diverge ঝুঁকি; ছোট = ধীর। Modern practice: warmup + cosine decay schedule.: ধাপের আকার (সাধারণত ছোট সংখ্যা যেমন $0.01$)
পাহাড়ের গায়ে ঘন কুয়াশায় দাঁড়িয়ে আছেন। সর্বনিম্নে নামতে চান। চারপাশ দেখা যাচ্ছে না — কিন্তু পায়ের নিচে ঢাল অনুভব করতে পারেন। কৌশল: সবচেয়ে নিচু ঢালের দিকে এক পা ফেলুন। পরের জায়গায় গিয়ে আবার ঢাল অনুভব করুন। আবার এক পা। এটাই Gradient Descent.

২ · একটি সরল উদাহরণ — হাতে চালানো

$L(w) = w^2$ — একটি সরল প্যারাবোলা। সর্বনিম্ন স্পষ্ট: $w = 0$, $L = 0$।
ডেরিভেটিভ: $L'(w) = 2w$।

শুরু করি $w = 5$ থেকে, learning rate $\eta = 0.1$:

  • ধাপ ০: $w = 5$, $L = 25$, $\nabla L = 10$ → $w \leftarrow 5 - 0.1 \cdot 10 = 4$
  • ধাপ ১: $w = 4$, $L = 16$, $\nabla L = 8$ → $w \leftarrow 4 - 0.8 = 3.2$
  • ধাপ ২: $w = 3.2$, $L = 10.24$, $\nabla L = 6.4$ → $w \leftarrow 3.2 - 0.64 = 2.56$
  • ...
  • ধাপ ১০: $w \approx 0.54$, $L \approx 0.29$ — শূন্যের কাছাকাছি!

প্রতিটি ধাপে $w$ ছোট হচ্ছে — সর্বনিম্নের দিকে এগোচ্ছে। ঠিক যা আমরা চেয়েছি।

৩ · Python-এ Gradient Descent

Python
# L(w) = w^2 কে minimize করি
def L(w):
    return w ** 2

def grad_L(w):
    return 2 * w

# শুরু
w = 5.0
eta = 0.1   # learning rate

for step in range(15):
    g = grad_L(w)
    w = w - eta * g
    print(f"ধাপ {step+1:2d}: w = {w:7.4f}, L = {L(w):8.4f}")

    
প্রতি ধাপে $w$ ০-এর কাছাকাছি যাচ্ছে এবং $L$ কমছে। ১৫ ধাপে $w \approx 0.05$ — যথেষ্ট সর্বনিম্ন।

৪ · Learning Rate — সবচেয়ে গুরুত্বপূর্ণ hyperparameter

$\eta$ বদলিয়ে দেখুন কী হয় —

  • খুব ছোট ($\eta = 0.001$): ধাপ এত ছোট, ১৫ বার পরেও $w \approx 4.7$। অনেক ধাপ লাগবে।
  • সঠিক ($\eta = 0.1$): দ্রুত নিচে নামছে। ১৫ ধাপে প্রায় ০।
  • বড় ($\eta = 0.9$): এক ধাপে এত দূরে যায় যে অন্য পাশে চলে যায়। ফলাফল দোলাচ্ছে।
  • খুব বড় ($\eta = 1.1$): প্রতিটি ধাপে আরও দূরে — diverge করে যাচ্ছে। ভয়াবহ!
Python · Learning rate তুলনা
def L(w):
    return w ** 2

def grad_L(w):
    return 2 * w

for eta in [0.001, 0.1, 0.9, 1.1]:
    w = 5.0
    for _ in range(10):
        w = w - eta * grad_L(w)
    print(f"η = {eta:5.3f} → ১০ ধাপ পরে w = {w:12.4f}")

    
$\eta = 1.1$-এ $w$ লক্ষ ছাড়িয়ে যাচ্ছে — diverging! Learning rate বাছাই AI মডেল প্রশিক্ষণের সবচেয়ে গুরুত্বপূর্ণ সিদ্ধান্ত।
Learning Rate η — চারটি দৃশ্য L(w) = w² parabola; start w=5 η = 0.001 — ধীর progress তুচ্ছ η = 0.1 — সঠিক দ্রুত minimum-এ η = 0.9 — দোলায় এপাশ-ওপাশ η = 1.1 — diverge দূরে যাচ্ছে Goldilocks: খুব ছোট না, খুব বড় না — practice-এ schedule (warmup + decay)।
Learning rate-ই training-এর সবচেয়ে sensitive সেটিং — ভুল মান, ভুল ফলাফল।
বাস্তবে — খুব বড় $\eta$ মডেলকে diverge করে দেয় (loss বাড়তে থাকে)। খুব ছোট $\eta$ মডেলকে শ্লথ করে দেয়। সঠিক $\eta$ খুঁজতে প্রায়ই কয়েকটা মান চেষ্টা করতে হয়। আধুনিক optimizer (Adam, AdamW) স্বয়ংক্রিয়ভাবে এটি সমন্বয় করে।

৫ · একটি বাস্তব AI উদাহরণ — Linear Regression

বাড়ির আকার ($x$) থেকে দাম ($y$) অনুমান। মডেল: $\hat{y} = w \cdot x$। loss: $L(w) = \frac{1}{n}\sum_i (y_i - w x_i)^2$।

Python · NumPy
import numpy as np

# কৃত্রিম ডেটা — সত্য সম্পর্ক y = 3x
x = np.array([1, 2, 3, 4, 5], dtype=float)
y = np.array([3, 6, 9, 12, 15], dtype=float)

# w 0 থেকে শুরু — দেখি GD এটি 3-এ পৌঁছাতে পারে কি না
w = 0.0
eta = 0.02

for step in range(30):
    y_hat = w * x
    error = y_hat - y
    grad = 2 * np.mean(error * x)   # Loss-এর ডেরিভেটিভ
    w = w - eta * grad
    if step % 5 == 0 or step == 29:
        loss = np.mean(error ** 2)
        print(f"ধাপ {step:2d}: w = {w:.4f}, loss = {loss:.4f}")

print(f"\nচূড়ান্ত w = {w:.4f} (সত্য মান: 3.0)")

    
$w$ ০ থেকে শুরু হয়ে ৩-এর কাছাকাছি পৌঁছায়। loss দ্রুত কমছে। এটাই AI-এর "শেখা" — সংখ্যা সমন্বয় করে loss কমানো।

৬ · কোথায় থামব? — ConvergenceConvergencetraining-এ যখন loss আর উল্লেখযোগ্য কমে না — মডেল optimal বা local minimum-এ পৌঁছেছে। তখন training থামানোর সময়।

তিনটি সাধারণ থামার কৌশল —

  • নির্দিষ্ট সংখ্যা ধাপ: "১০০০ epochEpochপুরো training data-এর উপর একবার পাস। ১ epoch = সব training examples একবার দেখা। DL training সাধারণত কয়েক থেকে শত শত epoch চলে। পর্যন্ত চালাও।"
  • Loss পরিবর্তন কম: "যদি loss টানা ১০ ধাপে $0.0001$-এর কম পরিবর্তন হয়, থামো।"
  • Validation loss বাড়ছে: "Train loss কমলেও test loss বাড়ছে — overfitting শুরু, থামো" (early stoppingEarly Stoppingএকটি regularization কৌশল — validation loss আর কমলে training থামানো। overfitting প্রতিরোধে সবচেয়ে সহজ ও কার্যকর উপায়।)।

৭ · Gradient Descent-এর ভ্যারিয়েন্ট

মূল ধারণা একই — শুধু কীভাবে গ্রেডিয়েন্ট হিসাব হবে তাতে পার্থক্য —

  • Batch GDBatch Gradient Descentপ্রতিটি update-এ পুরো training dataset-এর উপর gradient হিসাব। Exact কিন্তু বড় dataset-এ অত্যন্ত slow ও memory-heavy.: পুরো ডেটাসেটে গ্রেডিয়েন্ট হিসাব। সঠিক, কিন্তু ধীর।
  • Stochastic GDSGD (Stochastic Gradient Descent)প্রতিটি update-এ একটি (বা mini-batch) example ব্যবহার করে gradient approximate. Robbins-Monro ১৯৫১। DL-এর backbone. Noise = exploration; saddle escape; flat minima preferred → better generalization. Momentum ও Adam সব এর variants. (SGD): প্রতি ধাপে শুধু একটি ডেটা-পয়েন্ট। দ্রুত, কিন্তু কোলাহলপূর্ণ।
  • Mini-batch GDMini-batch Gradient Descentপ্রতি update-এ একটি ছোট সাবসেট (যেমন ৩২, ৬৪, ১২৮ examples) ব্যবহার করে gradient. Batch GD-র efficiency ও SGD-র noise — দু'টোর সমন্বয়। আধুনিক DL-এ default.: ছোট ব্যাচ (যেমন ৩২-৬৪)। বাস্তবে সবচেয়ে বেশি ব্যবহৃত।
  • Adam, AdamWAdamWAdam optimizer + decoupled weight decay (Loshchilov ২০১৭)। আধুনিক LLM training-এর (GPT, Claude, Llama) standard optimizer., RMSProp: "smart" GD — যা প্রতিটি প্যারামিটারের জন্য আলাদা optimizerOptimizerএকটি algorithm যা loss কমাতে weight কীভাবে update করবে তা ঠিক করে। উদাহরণ: SGD, Adam, AdamW, RMSProp, Lion. দিয়ে learning rate সমন্বয় করে। আধুনিক AI-তে standard.
ChatGPT-এর প্রশিক্ষণে ব্যবহৃত হয়েছে AdamW optimizer. মূলনীতি একই — গ্রেডিয়েন্টের বিপরীত দিকে ছোট ছোট ধাপ। শুধু "ছোট ধাপ" আরও স্মার্ট।

৮ · এক বাক্যে সারাংশ

AI শিখে — Gradient Descent দিয়ে। Loss কমাতে কোটি কোটি ছোট ধাপ।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ SGD-র "noise" কীভাবে local minimum থেকে বের হতে সাহায্য করে? কেন pure batch GD এতে দুর্বল?

SGD-এর counterintuitive efficacy — DL সাফল্যের অন্যতম কারণ। Noise "bug" না, "feature"।

Batch GD-র সমস্যা:

  • সম্পূর্ণ ডেটাসেটে gradient = exact. deterministic.
  • Loss landscape-এ একটি local minimum-এ পৌঁছালে — gradient ০, stuck.
  • Saddle point-এ — gradient প্রায় ০, slow escape.
  • Sharp minima preferred — flat-এর তুলনায়। GeneralizationGeneralizationমডেলের training data-র বাইরে নতুন data-তে ভাল perform করার ক্ষমতা। DL-এর ultimate goal — শুধু মুখস্থ না, প্রকৃত pattern শেখা। দুর্বল।

SGD-এর noise কীভাবে সাহায্য করে:

  • প্রতিটি mini-batch-এ gradient = approximate. True gradient + noise.
  • Local minimum-এ — noise random push. ছোট hill ডিঙাতে পারে।
  • Saddle point-এ — noise specific direction-এ push, escape দ্রুত।
  • Sharp minima-এ noise দিয়ে kicked out. Flat minima stable.

Sharp vs flat minima — generalization:

  • Sharp = high curvature; weights একটু পরিবর্তনে loss বিশাল বাড়ে।
  • Flat = low curvature; weights পরিবর্তনে loss স্থির।
  • Test data slightly ভিন্ন distribution → flat minima robust.
  • Keskar et al. (২০১৬), Hochreiter (১৯৯৭) — empirically প্রমাণিত।

Implicit regularization:

  • SGD-এর noise — small effective L2 regularization.
  • Smaller batch size → more noise → stronger regularization.
  • এই কারণে — large batch training-এ extra regularization দরকার।

Modern variants:

  • SGD with momentum: noisy SGD + history smoothing. Practical sweet spot.
  • Adam: momentum + per-parameter scaling. DL default.
  • SGD with warmup: prevents early divergence.

Counterargument — noise too much:

  • Very small batch → too noisy → unstable training.
  • Sweet spot সাধারণত batch size 32-256.
  • Linear scaling rule (Goyal et al., ২০১৭): batch size × N → η × N.

মূল উপলব্ধি: "Exact gradient" সবসময় ভাল — এই intuition ভুল। Noise-এ exploration; exploration-এ generalization. DL একটি stochastic, not deterministic, optimization problem.

প্র ০২ Adam বনাম SGD with momentum — কোনটি কখন ব্যবহার করবেন? GPT-৪/Claude-এর training-এ কোনটি ব্যবহৃত হয়, কেন?

Optimizer choice — DL practical সবচেয়ে বিতর্কিত একটি বিষয়। দু'টিরই দৃঢ় সমর্থক আছে।

SGD with momentum:

  • Update: $v_t = \beta v_{t-1} + \nabla L$; $w_t = w_{t-1} - \eta v_t$।
  • Per-parameter learning rate একই।
  • Memory: O(parameters) — একটি velocity vector.
  • Hyperparameters: $\eta$, $\beta$ (typically 0.9)।
  • Generalization: প্রায়ই Adam থেকে ভাল (computer vision-এ)।

Adam (Kingma ২০১৪):

  • Update: momentum (1st moment) + variance estimate (2nd moment) per-parameter.
  • $\hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)$ — adaptive scaling.
  • Memory: 2x parameters — দু'টি running stats.
  • Hyperparameters: $\eta$, $\beta_1, \beta_2, \epsilon$।
  • Convergence: দ্রুত। নতুন setting-এ "এটি ব্যবহার করুন"।

AdamW (Loshchilov ২০১৭):

  • Adam + decoupled weight decay.
  • Adam-এর "weight decay actually L2 regularization" সমস্যা সমাধান।
  • Modern LLM (GPT, Claude, Llama) standard.

কখন কোনটি:

  • SGD with momentum বেছে নিন যদি:
    • Computer Vision (ResNet, EfficientNet) — historically SGD ভাল।
    • Large-scale ImageNet training.
    • Generalization critical.
    • Time আছে hyperparameter tune-এ।
  • AdamW বেছে নিন যদি:
    • NLP / LLM training.
    • Sparse gradients (rare features)।
    • Hyperparameter tuning কম time.
    • Default choice — যখন uncertain.

GPT-৪ ও Claude-এ:

  • OpenAI/Anthropic — AdamW with cosine decay schedule.
  • Learning rate ~3e-4 (peak), decayed to 1/10.
  • $\beta_1 = 0.9$, $\beta_2 = 0.95$ (LLM-এ লোয়ার)।
  • Weight decay ~0.1.
  • Warmup ~2000 steps.

কেন AdamW LLM-এ:

  • Word embedding-এ rare token-এর rare update. Per-parameter scaling sparse gradients-এ critical.
  • Loss landscape বিভিন্ন parameter group-এ ভিন্ন scale.
  • Robust — কম hyperparameter sensitivity.

সাম্প্রতিক alternatives:

  • Lion (Google ২০২৩): Adam-এর simpler, memory-efficient.
  • Sophia (Stanford ২০২৩): 2nd-order info LLM-এ।
  • Schedule-Free (Meta ২০২৪): learning rate schedule-এর প্রয়োজন কম।

মূল উপলব্ধি: "Best optimizer" নেই। Domain ও scale-এ depend. ২০২৫-এও — research চলছে।

প্র ০৩ Modern LLM training-এ "warmup" ও "cosine decay" learning rate schedule ব্যবহৃত। এটি কেন? Constant rate কেন কাজ করে না?

Learning rate schedule — engineering সিদ্ধান্ত যা training stability ও convergence quality উভয়েই নিয়ন্ত্রণ করে।

Constant LR-এর সমস্যা:

  • প্রথমে: gradients বড়। Constant LR বিশাল ধাপ → divergence.
  • মাঝখানে: গভীর exploration দরকার। বড় LR ঠিক আছে।
  • শেষে: minimum-এর কাছে। বড় LR-এ overshoot.
  • একটি LR দু'টি phase-কে satisfy করতে পারে না।

Warmup phase (~১০০-১০,০০০ steps):

  • LR ০ থেকে peak-এ গ্রাজুয়ালি বাড়ে।
  • উদ্দেশ্য: প্রথমদিকে stable updates. Random init-এ gradient খুব বড়।
  • Adam-এর $v_t$ (running variance) এই সময়ে warm up — প্রথম দিকে scaling unstable.
  • Linear warmup most common; cosine warmup-ও ব্যবহৃত।

Plateau / steady phase:

  • Peak LR-এ exploration.
  • Loss দ্রুত কমে।

Decay phase (cosine, exponential, step):

  • LR ধীরে ধীরে কমে।
  • Goal: minimum-এ "settle"।
  • Cosine decay: smooth, popular. $\eta_t = \eta_{min} + 0.5(\eta_{max} - \eta_{min})(1 + \cos(\pi t / T))$।
  • Linear decay: simpler.
  • Step decay: discrete drops at milestones.

কেন cosine LLM-এ:

  • Smooth — sudden drops minimum miss করে না।
  • Long tail — fine-tuning শেষের দিকে। Better convergence.
  • Empirically — Chinchilla, GPT-3, GPT-4 paper-এ optimal.

আরও complex schedules:

  • Cyclical LR (Smith ২০১৫): LR oscillate. sometimes saddle escape এ সাহায্য।
  • One-Cycle (Smith ২০১৭): warmup-up-down একটি cycle-এ।
  • Chinchilla schedule: compute-optimal training — fixed token count, schedule সেই অনুযায়ী।
  • SGDR (warm restarts): periodically restart with new warmup. ensemble effect.

Practical tips:

  • Warmup steps = ~১% of total training steps.
  • Peak LR — empirical tune. Max stable rate-এর half.
  • Min LR = peak / ১০।
  • Schedule decoupled from optimizer — Adam, SGD সবার সাথে কাজ করে।

Schedule-Free optimizers (২০২৪):

  • Schedule-এর জটিলতা থেকে মুক্তির চেষ্টা।
  • Internal warmup logic embedded.
  • Research front — promise কিন্তু production-এ এখনো adoption সীমিত।

মূল উপলব্ধি: Modern LLM training-এ optimization "set and forget" না — careful schedule design. হাজার ঘণ্টার GPU-time সাশ্রয় বা নষ্ট। এটি AI engineering-এর underrated discipline.

প্র ০৪ Gradient Descent — এত সরল, ১৮৪৭-এ Cauchy বের করেছেন। তাহলে DL-এর জন্য কেন এত wait? কেন ২০১২-র আগে এটি দিয়ে শেখানো যায়নি?

এই প্রশ্ন AI ইতিহাসের সবচেয়ে গুরুত্বপূর্ণ paradox-গুলোর একটি। Algorithm পুরানো, কিন্তু success নতুন।

GD-র ইতিহাস:

  • Cauchy (১৮৪৭) — Method of Steepest Descent.
  • Robbins-Monro (১৯৫১) — Stochastic GD.
  • Backpropagation (Rumelhart, Hinton, Williams ১৯৮৬) — neural networks-এ chain rule.
  • SGD প্রায় শুরু থেকেই neural network-এ ব্যবহৃত।

২০১২-র আগে কেন কাজ করেনি — কারণ একাধিক:

  • (১) Vanishing gradients (deep networks):
    • Sigmoid activation: derivative max = 0.25.
    • ১০ layer-এ chain rule = 0.25¹⁰ ≈ 10⁻⁶। Gradient vanishes.
    • Lower layers কখনো শিখতেই পারে না।
    • Solution: ReLU (Hinton ২০১০)। Derivative = 0 or 1.
  • (২) Bad initialization:
    • Random small weights → vanishing gradients.
    • Random large weights → exploding gradients.
    • Solution: Xavier init (২০১০), He init (২০১৫)। Variance properly scaled.
  • (৩) Compute power:
    • একটি deep CNN train করতে ১৯৯০-এ মাস লাগত।
    • Hyperparameter tune impossible.
    • NVIDIA CUDA (২০০৬) → GPU-তে ১০০× speedup.
    • ২০১২-তে GPU practical.
  • (৪) Data scarcity:
    • Deep network ১,০০০ images-এ overfit.
    • ImageNet (Fei-Fei Li, ২০০৯) — ১.৪M images, gamechanger.
    • Internet + smartphones — data abundance ২০১০+।
  • (৫) Regularization techniques:
    • Dropout (২০১২) — overfitting কমানোর সহজ trick.
    • Batch Normalization (২০১৫) — internal covariate shift.
    • Weight decay, label smoothing, mixup — সব ২০১০+।
  • (৬) Optimizer improvements:
    • Vanilla SGD slow.
    • Momentum, Nesterov (পুরানো কিন্তু কম জানা)।
    • RMSProp (Hinton ২০১২), Adam (২০১৪) — practical breakthroughs.
  • (৭) Skip connections (২০১৫):
    • ResNet — gradient flow shortcut paths.
    • ১০০+ layer training সম্ভব।

২০১২-র moment — AlexNet:

  • Hinton's lab, ImageNet challenge.
  • ReLU + Dropout + GPU + ImageNet + clever architecture.
  • Error rate 26% → 15% — competitor-দের অনেক এগিয়ে।
  • "Perfect storm" — সব ingredients একসাথে।

উপলব্ধি — algorithm vs ecosystem:

  • Algorithm: ১৮০ বছর পুরানো (GD)।
  • Ecosystem: GPU + data + tricks + frameworks (TensorFlow ২০১৫)।
  • "Bitter lesson" (Sutton ২০১৯): clever algorithm < scalable methods + compute.

মূল উপলব্ধি: AI breakthrough rarely "new theory"। Often "old idea + sufficient compute + sufficient data + small engineering tricks"। এটি research direction-এ প্রভাব ফেলে — fundamental advances vs scaling.

অনুশীলন

  1. হাতে কয়েকটি ধাপ: $L(w) = (w - 4)^2$, শুরু $w = 0$, $\eta = 0.5$। প্রথম ৩ ধাপ হিসাব করুন।

    $L'(w) = 2(w-4)$। Update: $w \leftarrow w - 0.5 \cdot 2(w-4) = w - (w-4) = 4$।

    • ধাপ ১: $w = 0$, $L'(0) = -8$ → $w = 0 - 0.5 \cdot (-8) = 4$।
    • ধাপ ২: $w = 4$, $L'(4) = 0$ → $w = 4 - 0 = 4$। (already minimum)
    • ধাপ ৩: $w = 4$ (unchanged)।

    লক্ষ্য: এই particular case-এ $\eta = 0.5$ exactly এক ধাপে minimum-এ পৌঁছায় — কোনো overshoot বা undershoot. Quadratic-এ optimal $\eta = 1/(2\cdot \text{coefficient})$।

  2. কোডে চেষ্টা: উপরের Linear Regression কোডে $\eta$-কে $0.001$, $0.02$, $0.1$, $0.2$ — চারটি মানে চালান। কোনটি ভালো? কেন?
    • $\eta = 0.001$: ৩০ ধাপে $w$ ০.৫-এর নিচে — অনেক slow.
    • $\eta = 0.02$: ৩০ ধাপে $w \approx 3$ — সঠিক।
    • $\eta = 0.1$: দ্রুত converge. কিন্তু প্রথমে কিছুটা oscillation.
    • $\eta = 0.2$: Diverge. $w$ লক্ষ ছাড়িয়ে যায়।

    কারণ: Loss surface-এর curvature-এর সাথে $\eta$ মিলতে হয়। $\eta = 2/(\text{max eigenvalue})$-র চেয়ে বড় হলে diverge.

  3. চিন্তা করুন: AI-তে loss landscape অনেক জটিল হয় (অনেক উপত্যকা, পাহাড়)। SGD-র "noise" কীভাবে এতে সাহায্য করতে পারে — local minimum থেকে বের হতে?

    প্র ০১-এ বিস্তারিত আছে। সংক্ষেপে:

    • Random mini-batch → noisy gradient.
    • Local minimum-এ noise = random push, ছোট hill ডিঙাতে পারে।
    • Sharp minima থেকে kicked out, flat minima stable → better generalization.
    • Saddle point-এ specific direction-এ push.

    মূল কথা: noise = exploration. DL-এ "deterministic optimization" থেকে "stochastic" অনেক ভাল।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

কোড রানার কাজ না করলে? ব্রাউজারে কাজ না করলে Google Colab ব্যবহার করুন — Google-এর ফ্রি অনলাইন Python পরিবেশ, শুধু Gmail অ্যাকাউন্ট লাগে।
পূর্ববর্তী পাঠ
পাঠ ১৪ · গ্রেডিয়েন্ট