অপ্টিমাইজেশন — সেরা সমাধান খোঁজা
এই পাঠে যা শিখবেন
- "Optimization" আসলে কী — গাণিতিক সংজ্ঞা, AI-তে কেন কেন্দ্রীয়
- Convex বনাম Non-convex ফাংশন — পার্থক্য কেন গুরুত্বপূর্ণ
- Local minimum, Global minimum, Saddle point, Plateau
- AI-এর loss landscape — কেন এটি একটি পাহাড়-উপত্যকার মত
- Local minima থেকে বের হওয়ার আধুনিক কৌশল — SGD, momentum, Adam
১ · অপ্টিমাইজেশন কী?
একটি ফাংশন $f(x)$ দেওয়া আছে — আমাদের কাজ এমন $x^*$ খুঁজে বের করা যাতে $f(x^*)$ সর্বনিম্ন (বা সর্বোচ্চ) হয়। $$x^* = \arg\min_x f(x)$$
"argmin" মানে — সেই $x$ যেখানে $f$ ক্ষুদ্রতম। AI-তে $f$ হলো loss functionLoss functionমডেলের prediction-এর "ভুলের পরিমাপ"। Cross-entropy, MSE, hinge loss — বিভিন্ন কাজে বিভিন্ন। Training = এই function minimize করা।, $x$ হলো network-এর weights.
বাস্তব জীবনের অপ্টিমাইজেশন
- লজিস্টিকস: Pathao কীভাবে গন্তব্যে দ্রুততম পথে যাবে? — ট্রাভেলিং সেলসম্যান problem.
- উৎপাদন: কোন ক্রমে যন্ত্র চালালে সবচেয়ে কম খরচ?
- বিনিয়োগ: কোন পোর্টফোলিও সবচেয়ে কম ঝুঁকিতে সর্বোচ্চ লাভ? — Markowitz portfolio theory.
- AI: কোন weights $w$-এ loss সর্বনিম্ন? — সব deep learning.
সবগুলোতেই একই গাণিতিক কাঠামো — কিছু একটা minimize/maximize. অপ্টিমাইজেশন গণিত প্রায় ৩০০ বছরের পুরোনো (Newton, Lagrange) — তবু এখনো জীবন্ত গবেষণা ক্ষেত্র।
২ · Convex ফাংশন — সরল পৃথিবী
একটি ফাংশন convex যদি — যেকোনো দু'টি বিন্দুর মধ্যে সরলরেখা ফাংশনের গ্রাফের উপরে থাকে। সরল ভাষায় — বাটির আকৃতির গ্রাফ।
উদাহরণ: $f(x) = x^2$, $f(x) = e^x$, $f(x, y) = x^2 + y^2$, $f(x) = -\log x$ ($x > 0$)।
Convex ফাংশনে — local minimum মানেই global minimum। মাত্র একটাই গর্ত। Gradient descent সবসময় সেরা সমাধানে পৌঁছাবে।
চিনবেন কীভাবে?
২য় ডেরিভেটিভ নন-নেগেটিভ হলে — convex. যেমন $f(x) = x^2$-এর $f''(x) = 2 > 0$। বহু-চলকে — Hessian matrix positive semi-definite.
AI-তে কোথায় convex?
- Linear regression (MSEMSE · Mean Squared Errorregression-এর সবচেয়ে সাধারণ loss — prediction ও সত্য মানের পার্থক্যের বর্গের গড়।)।
- Logistic regression (single-layer)।
- SVMSVM · Support Vector Machineএকটি classifier যা দু'টি ক্লাসের মধ্যে সবচেয়ে বড় "ফাঁক"-এ separating boundary আঁকে। Pre-DL যুগে text/image classification-এ dominant ছিল। (hinge loss)।
- L1/L2 regularizationRegularization · নিয়মিতকরণমডেলকে overfit হওয়া থেকে বাঁচাতে loss-এ একটি penalty যোগ করা — যেমন weights-এর বড় হওয়া দণ্ডিত করা। (নিজেই convex)।
৩ · Non-convex — বাস্তব AI-এর জগৎ
বেশিরভাগ আধুনিক AI মডেলের loss function non-convex — অনেক পাহাড়, উপত্যকা, সমতল। Neural network-এর কোটি কোটি প্যারামিটারে — landscape অকল্পনীয়ভাবে জটিল।
উদাহরণ: $f(x) = \sin(x) \cdot x$, neural network-এর সব loss.
Non-convex landscape = হিমালয়। অনেক চূড়া, অনেক উপত্যকা। আপনি একটি উপত্যকায় বসে থাকলেও — দূরে আরও নিচু একটা থাকতে পারে। কোনটি deepest? কেউ জানে না — শুধু চারপাশে চেষ্টা।
৪ · Local Minimum, Global Minimum, Saddle Point, Plateau
- Global minimum: পুরো ফাংশনে সর্বনিম্ন বিন্দু। আমাদের আদর্শ লক্ষ্য।
- Local minimum: কাছাকাছি জায়গায় সর্বনিম্ন, কিন্তু পুরো ফাংশনে নয়।
- Saddle point: এক দিকে সর্বনিম্ন, আরেক দিকে সর্বোচ্চ। ঘোড়ার জিনের মতো আকৃতি।
- Plateau: বিস্তৃত সমতল অঞ্চল — ঢাল প্রায় শূন্য।
Gradient descent এর প্রতিটিতে আটকে যেতে পারে — যেহেতু ঢাল সবগুলোতেই (প্রায়) শূন্য। মডেল "শিখছি" ভাবে — আসলে stuck.
৫ · Python-এ Optimization Landscape দেখা
import numpy as np
# Convex: f(x) = x^2
def convex(x):
return x ** 2
# Non-convex: f(x) = x*sin(x) + x^2/10
def nonconvex(x):
return x * np.sin(x) + x ** 2 / 10
xs = np.linspace(-10, 10, 21)
print("x | convex(x) | nonconvex(x)")
print("-" * 38)
for x in xs:
print(f"{x:5.1f} | {convex(x):8.2f} | {nonconvex(x):8.2f}")
Gradient Descent ভিন্ন স্থান থেকে চালু করে
import numpy as np
def f(x):
return x * np.sin(x) + x ** 2 / 10
def df(x, h=1e-5):
return (f(x + h) - f(x - h)) / (2 * h)
def gradient_descent(start, eta=0.05, steps=200):
x = start
for _ in range(steps):
x = x - eta * df(x)
return x
# বিভিন্ন স্থান থেকে শুরু করে দেখি
for start in [-8, -4, 0, 3, 8]:
final = gradient_descent(start)
print(f"শুরু x={start:3d} → শেষ x={final:6.3f}, f={f(final):.4f}")
৬ · Loss Landscape — AI-তে কেমন
একটি neural network-এর loss landscape — অসংখ্য মাত্রায়। মানুষের কল্পনায় আনা যায় না।
কিন্তু গবেষণা (Goodfellow ২০১৫, Li et al. ২০১৮) বলে — ভালো deep নেটওয়ার্কের landscape "কম-পরিমাণে non-convex"। অনেক local minimum প্রায় একই উচ্চতায়।
তাই — সব ভালোই কাজ করে। এটি modern deep learning-এর একটি unsolved mystery.
৭ · Local Minimum / Saddle থেকে বের হওয়ার কৌশল
- Stochastic Gradient Descent (SGD)SGD · Stochastic Gradient Descentপুরো ডেটা না দেখে ছোট ছোট mini-batch-এ gradient হিসেব করে weight update করার পদ্ধতি। দ্রুত, এবং noise local minima থেকে বের হতে সাহায্য করে।: প্রতিটি ধাপে কিছু "noise" — local minimum থেকে বের হতে সাহায্য।
- MomentumMomentum · গতি জড়তাআগের update-গুলোর "গতি" ধরে রাখা — ছোট গর্ত পেরিয়ে যেতে এবং দ্রুত converge করতে সাহায্য করে। ভৌত জগতের গড়ানো বলের মত আচরণ।: আগের গতি ধরে রাখা — ছোট গর্ত পেরিয়ে যেতে পারে।
- Learning rateLearning Rate · শিক্ষণ হারপ্রতিটি update-এ কতটা বড় ধাপ নেবে, সেই $\eta$ মান। বড় হলে দ্রুত কিন্তু অস্থির; ছোট হলে ধীর কিন্তু স্থির। scheduling: শুরুতে বড়, পরে ছোট ধাপ (cosine annealing, step decay)।
- Multiple restarts: বিভিন্ন প্রারম্ভিক বিন্দু থেকে চেষ্টা।
- AdamAdam · Adaptive Moment Estimationআজকের সবচেয়ে জনপ্রিয় optimizer — momentum ও per-parameter adaptive learning rate একসাথে। GPT, BERT, Llama সব এতেই train., AdamW: আধুনিক optimizer যা momentum ও অভিযোজিত learning rate দেয়। GPT, BERT সবাই Adam.
- Warmup: শুরুর কয়েক step-এ ছোট learning rate — explosion এড়াতে।
৮ · Constraint Optimization
কখনো কখনো আমাদের লক্ষ্য হলো — কিছু সীমাবদ্ধতা মেনে minimize করা।
উদাহরণ: একটি ব্যবসায়ের লাভ সর্বোচ্চ করতে চান, কিন্তু খরচ ১০ লক্ষ টাকার বেশি না।
AI-এও — যেমন regularization (weights খুব বড় না হোক) — একটি soft constraint. L2 = "weights-এর Euclidean norm ছোট"।
গাণিতিকভাবে — LagrangeLagrange Multipliersconstraint-সহ optimization সমস্যা সমাধানের গাণিতিক কৌশল — মূল objective-এর সাথে constraint-কে penalty হিসেবে যোগ করে নতুন function বানানো হয়। multipliers দিয়ে সমাধান। AI-তে — penalty term loss-এ যোগ করে।
৯ · এক বাক্যে
"AI = $\arg\min_w \text{Loss}(w)$ — শেখা মানে গর্তে গড়িয়ে পড়া। Convex হলে সরল, non-convex হলে শিল্প।"
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Deep neural network-এ কোটি কোটি প্যারামিটার, hugely non-convex landscape — তবু gradient descent কাজ করে! কেন? "কেন kaj করে" এই rahasya-এর সাম্প্রতিক গবেষণা কী বলছে?
২০১২-এর AlexNet-এর পর থেকে এটি deep learning-এর "central mystery"। তত্ত্ব বলে — non-convex optimization NP-hard, তবু practice-এ SGD সফল। গত ১০ বছরে অনেক progress.
(১) High-D-এ saddle point > local minimum:
- Random matrix theory দেখায় — large network-এ critical points-এর মধ্যে শতকরা ৯৯% saddle, ১% local min.
- Saddle point থেকে বের হওয়া সহজ — শুধু "নিচু দিক" খুঁজে নামতে হয়।
- SGD-এর noise saddle থেকে escape করতে পারে।
(২) Loss landscape "flatness" hypothesis:
- Hochreiter ও Schmidhuber (১৯৯৭) — flat minima ভাল generalize.
- Li et al. (২০১৮) "Visualizing the Loss Landscape" — দেখায় deep network-এর landscape highway-এর মতো connected.
- প্রায় সব good local minima একই accuracy দেয়।
(৩) Overparameterization-এর যাদু:
- Modern model কোটি প্যারামিটার, training data হাজার example — তবু overfit হয় না।
- Belkin et al. (২০১৮) "double descent" — overparameterized regime-এ test error আবার কমে।
- Neural Tangent Kernel (NTK, Jacot ২০১৮) — অনেক বড় network লগ-effectively convex behave করে।
(৪) SGD-এর implicit regularization:
- SGD-এর batch noise — flat minima-র দিকে bias.
- Learning rate বড় হলে sharp minima পেরিয়ে যায়।
- Batch size ছোট = বেশি noise = ভাল generalization (অনেক empirical evidence)।
(৫) Lottery Ticket Hypothesis:
- Frankle ও Carbin (২০১৯) — large network-এ "winning ticket" sub-network থাকে যা একাই কাজ করে।
- Dense initialization-এই lucky combination পাওয়া যায় — তাই training সফল।
(৬) আজ যা অজানা:
- কেন overparameterization helps — formal proof নেই।
- "Why grokking?" — long training-এর পর হঠাৎ generalization (Power et al. ২০২২)।
- Phase transitions — emergence-এর গাণিতিক ব্যাখ্যা।
মূল উপলব্ধি: Deep learning-এর সাফল্য বিজ্ঞানের অগ্রগতির আগেই এসেছে। আমরা empirically জানি SGD কাজ করে — কিন্তু তত্ত্বে এখনো প্রশ্ন। এটাই AI-এর "physics waiting to happen" — যিনি এই rahasya সমাধান করবেন, তার Turing Award প্রায় নিশ্চিত।
প্র ০২ Adam, RMSProp, AdamW — আজকের প্রতিটি LLM training-এ এদের ব্যবহার। SGD বনাম Adam — কখন কোনটি? কেন সব Tarsformer training-এ AdamW?
Optimizer choice — production ML-এর সবচেয়ে practical decision. ২০১২-এর AlexNet SGD-তে train, কিন্তু ২০২৪-এর GPT-4 সম্ভবত AdamW-তে। ইতিহাস ও গণিত দু'টোই আছে।
(১) Vanilla SGD:
- $w \leftarrow w - \eta \nabla L$ — সরলতম।
- Strength: তত্ত্বে সবচেয়ে বেশি বোঝা, generalize ভালো।
- Weakness: প্রতিটি প্যারামিটারে একই learning rate; sparse feature-এ ধীর।
(২) SGD + Momentum:
- $v \leftarrow \beta v + \nabla L$, $w \leftarrow w - \eta v$।
- "গতি" ধরে রাখে — ছোট গর্ত পেরিয়ে যায়।
- ResNet, image classification-এ আজও gold standard.
(৩) AdaGrad (২০১১):
- প্রতিটি প্যারামিটারের history থেকে learning rate adapt.
- Frequent feature → ছোট LR, rare feature → বড় LR.
- সমস্যা: LR একটানা কমে, একসময় ০।
(৪) RMSProp (Hinton, ২০১২):
- AdaGrad-এর "exponential moving average" সমাধান।
- recent gradient-এর variance দিয়ে scale.
- RNN training-এ revolutionary.
(৫) Adam (Kingma & Ba, ২০১৪):
- Momentum + RMSProp = Adam.
- প্রতিটি প্যারামিটারে adaptive LR + momentum.
- Bias correction, default hyperparameters প্রায় সব problem-এ কাজ করে।
- Modern deep learning-এর "default" optimizer.
(৬) AdamW (Loshchilov & Hutter, ২০১৭):
- Adam-এর ভেতরে weight decay-র implementation ভুল ছিল।
- AdamW আলাদা করে weight decay প্রয়োগ করে।
- BERT, GPT, Llama, Claude — সব Transformer AdamW-তে।
(৭) কখন SGD, কখন Adam?
- CNN, image: SGD + momentum প্রায়ই ভাল generalize. ResNet, EfficientNet — SGD.
- Transformer, NLP: AdamW প্রায় universal — sparse, high-D space-এ কাজ করে।
- RL: Adam — noisy gradient সামাল দেয়।
- Fine-tuning: Adam, ছোট LR (1e-5)।
(৮) সাম্প্রতিক চ্যালেঞ্জার:
- Lion (Google, ২০২৩): Memory কম, কিছু benchmark-এ AdamW-এর চেয়ে ভাল।
- Sophia (Stanford, ২০২৩): 2nd-order info — LLM training-এ ৫০% দ্রুত claim.
- Shampoo: Google-এর internal — pre-conditioning-ভিত্তিক।
(৯) Practical টিপস:
- সবসময় warmup (linear/cosine) — Adam-এ critical.
- Learning rate scheduling — cosine annealing standard.
- Gradient clipping — explosion রোধে।
- Hyperparameter: lr=1e-3 (Adam), 1e-1 (SGD), batch size, momentum (০.৯)।
মূল উপলব্ধি: Optimizer "trivial choice" না — এটি research. ChatGPT-যুগে AdamW dominant, কিন্তু জীবন্ত গবেষণা ক্ষেত্র। ভাল ML engineer optimizer বুঝে — উপযুক্ত problem-এ উপযুক্ত optimizer বাছেন।
প্র ০৩ একটি AI টিম একই মডেল, একই ডেটায় ৩ বার train করে — কিন্তু ৩ বার ভিন্ন accuracy! কেন? Reproducibility-র কী কী চ্যালেঞ্জ AI-তে?
Reproducibility crisis — ML গবেষণায় বিশাল সমস্যা। NeurIPS, ICML conferences এ নিয়ে formal track রেখেছে। কারণ অনেক, এবং production-এ বাস্তব impact.
(১) Random sources of variability:
- Weight initialization: Different random seed → different starting point → different local minimum.
- Data shuffling: SGD batches order-এর উপর নির্ভর — ভিন্ন order = ভিন্ন path.
- Dropout: Training-এ random masking.
- Data augmentation: Random crop, flip, jitter.
- GPU non-determinism: CUDA-এর কিছু operation non-deterministic (cuDNN reduction)।
(২) Hardware ও software-এর প্রভাব:
- Float32 vs float16 — precision-এ পার্থক্য, accumulated error.
- Different GPU (V100 vs A100) — কিছু numerical ভিন্ন।
- cuDNN version, PyTorch version — algorithm পরিবর্তন।
- Multi-GPU training-এ all-reduce order non-deterministic.
(৩) Reproducibility checklist:
torch.manual_seed(42),np.random.seed(42),random.seed(42)torch.use_deterministic_algorithms(True)torch.backends.cudnn.deterministic = Truetorch.backends.cudnn.benchmark = False- Fixed Python hash seed:
PYTHONHASHSEED=42 - Single-GPU training (multi-GPU non-deterministic)
- requirements.txt pinned (PyTorch 2.1.0, exactly)
- Docker container পরিবেশ সংরক্ষণ
(৪) তবু — কিছু variability থেকে যায়:
- "Deterministic mode" সব operation-এ available না।
- Production speed × ১০-২০ ধীর হতে পারে।
- Hardware-specific কিছু optimization বাদ যায়।
(৫) Statistical solution:
- Single run-এর accuracy report করা বিভ্রান্তিকর।
- ৫-১০ বার train, mean ± std report.
- Confidence intervals, paired t-test (নতুন বনাম baseline)।
- Multiple seeds-এ result stable হলেই ক্লেইম "robust"।
(৬) Production impact:
- Continuous training pipeline — small variations expected.
- Champion/challenger model comparison বিশেষ careful.
- A/B test-এ multiple seed দিয়ে confirmation.
- Model registry-তে seed ও hyperparameters সংরক্ষণ।
(৭) Open science বিস্তৃতি:
- Papers With Code, ML Reproducibility Challenge.
- NeurIPS reproducibility checklist (২০১৯-)।
- Hugging Face — model + training script + seed publish.
মূল উপলব্ধি: "Same data, same code, same accuracy" — এটি AI-তে কঠিন। Random সর্বত্র — initialization থেকে GPU পর্যন্ত। ভাল ML engineer reproducibility-কে প্রথম দিন থেকে design করে — শুধু "experiment" না, "scientific process"।
প্র ০৪ "Convex problem" ও "Non-convex problem" — দুনিয়া আজও convex problems দিয়ে অনেক কাজ করে (logistic regression, SVM, lasso)। Deep learning এসে কেন non-convex-কে accept করতে হলো? পার্থক্য বাস্তব ব্যবসায়?
Non-convex শুধু গাণিতিক complication না — এটি ML-এর philosophical shift. ১৯৫০ থেকে ২০১০ পর্যন্ত ML-এর "official" পথ ছিল convex. Deep learning সেই বাঁধ ভেঙেছে।
(১) Convex AI-এর সফলতা:
- Logistic regression — fraud detection, click prediction.
- SVM — text classification, image categorization (pre-DL)।
- Lasso/Ridge — gene expression, finance.
- Convex optimization-এর তত্ত্ব ১০০ বছরের পরিপক্ক — convergence guarantee, complexity bounds.
(২) Convex-এর সীমা:
- Expressivity সীমিত — linear decision boundary মাত্র।
- Feature engineering manually — domain expert লাগে।
- "Cat vs dog" image classification — convex method-এ ৭০% accuracy ছিল ceiling.
(৩) ImageNet 2012 — paradigm shift:
- AlexNet (Krizhevsky, ২০১২) — 5-layer CNN, non-convex.
- 10% accuracy improvement over best convex method.
- "Convex world" hereafter অসম্পূর্ণ।
- Deep learning revolution start.
(৪) বাস্তব ব্যবসায় পার্থক্য:
- Convex (যেখানে এখনো ব্যবহৃত):
- Financial risk modeling — interpretable, regulator-friendly.
- Medical diagnosis — explainable.
- Small data, high-stakes decision.
- Fast inference — embedded systems.
- Non-convex (deep learning):
- Image, voice, video — millions of training data.
- Language model — billion-parameter scale.
- End-to-end learning — feature engineering নেই।
- Cost: training expensive, debug hard.
(৫) Hybrid approach আজ:
- Deep model + linear head — feature deep, classifier convex.
- LightGBM / XGBoost — tabular-এ convex (boosting), DL-এর চেয়ে ভাল।
- Neural-symbolic AI — convex reasoning + neural perception.
(৬) Convexity-র দাম:
- Convex method-এর "guarantee" আজও মূল্যবান। Deep learning empirical.
- Regulated industry (finance, healthcare) — "we trust this model" prove করতে convex সহজ।
- Theoretical research — convex optimization-এ Nobel-worthy কাজ চলমান।
(৭) ভবিষ্যৎ:
- Convex relaxation of non-convex — হাইব্রিড।
- Provable deep learning — neural network-এর non-convex গণিত বুঝতে পারলে — সব সমস্যা solved.
- "Foundation models on tap" — pretrained DL + downstream convex fine-tune.
মূল উপলব্ধি: Convex বনাম non-convex শুধু গণিত না — এটি engineering trade-off. Performance, interpretability, compute, regulation, scale — সব considerations. Mature AI engineer দু'টি জগৎ-ই বোঝে এবং সঠিক সমস্যায় সঠিক সরঞ্জাম বাছেন।
অনুশীলন
-
চিনুন: $f(x) = (x-3)^2 + 2$ — convex না non-convex? Global minimum কোথায়, মান কত?
$f''(x) = 2 > 0$ সর্বত্র — তাই convex. Minimum-এ $f'(x) = 2(x-3) = 0 \Rightarrow x = 3$। মান $f(3) = 0 + 2 = 2$।
Convex বলে — local = global. শুধু একটিই minimum.
-
কোডে চেষ্টা: উপরের non-convex কোডে $f$-এর দু'টি ভিন্ন আকার চেষ্টা করুন (যেমন $\sin(x) + 0.05x^2$)। কতগুলো local minimum আছে?
import numpy as np def f(x): return np.sin(x) + 0.05 * x**2 def df(x, h=1e-5): return (f(x+h) - f(x-h)) / (2*h) def gd(start, eta=0.05, steps=300): x = start for _ in range(steps): x -= eta * df(x) return x for s in np.arange(-15, 16, 3): print(f"start {s:4d} → end {gd(s):6.3f}")${-15, -10, -5, 0, 5, 10, 15}$ থেকে শুরু করলে ৫-৬টি ভিন্ন local minimum পাবেন। $\sin(x)$-এর প্রতিটি গর্ত একটি local min.
-
চিন্তা করুন: একটি AI টিম একটি মডেল ৩ বার একই ডেটায় train করে — কিন্তু প্রতিবার সামান্য ভিন্ন accuracy পায়। কেন? Optimization-এর কোন সমস্যা?
প্র ০৩-এ বিস্তারিত। সংক্ষেপে: random initialization, data shuffling order, dropout, GPU non-determinism — সব মিলিয়ে non-convex landscape-এ ভিন্ন local minimum-এ পৌঁছায়।
সমাধান:
seedfix করুন, deterministic mode, multiple runs-এর mean ± std report.
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ২৩ · সংখ্যাগত স্থিরতা পরবর্তী পাঠ Optimization-এ NaN ও Inf-এর সমস্যা। Stable softmax, log-sum-exp.
- পাঠ ২১ · তথ্য তত্ত্ব আগের পাঠ কোন function minimize করি? Cross-entropy — info theory থেকে।
- পাঠ ১৫ · Gradient Descent এই পাঠের সাথে সম্পর্কিত Optimization-এর workhorse. কীভাবে পাহাড় থেকে নামি।
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।