Home »
Blog »
AI/ML Engineer সিরিজ » Series 04 » Episode 03
Function, Derivative, Gradient: 'ঢাল' কী আর কেন model শেখে এটা দিয়ে
gradient descent-এর প্রস্তুতি (Series 04, Episode 03)
🟡 INTERMEDIATE
Series 04 — Math, Statistics ও Probability
Episode 03 / 07
📑 এই পর্বে যা যা আছে
- ১. গল্প: অন্ধকারে পাহাড় থেকে নামা
- ২. আসল সমস্যা: model কীভাবে বুঝবে কোন দিকে যাবে
- ৩. Function কী — input থেকে output
- ৪. Level 1 — derivative মানে "ঢাল" (পাহাড়ের গল্প)
- ৫. Level 2 — derivative technical ভাবে
- ৬. Gradient — একাধিক দিকের ঢাল
- ৭. Level 3 — কেন model gradient দিয়ে শেখে
- ৮. Visual: loss পাহাড় ও নামার পথ
- ৯. Code: হাতে-কলমে ঢাল দেখা
- ১০. Learning rate — কত বড় পা ফেলব
- ১১. বাংলাদেশের context
- ১২. Boss Question
- ১৩. Job Requirement Decoder
- ১৪. সাধারণ ভুল ধারণা
- ১৫. Interview Prep
- ১৬. হাতে-কলমে (Mini Exercise)
- ১৭. Project Connection
- ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব
🏔️ ১. গল্প: অন্ধকারে পাহাড় থেকে নামা
Rahim-কে Nila একটা কল্পনা করতে বলল: "তুমি একটা পাহাড়ের গায়ে দাঁড়িয়ে, ঘন কুয়াশা, চারপাশে
কিছুই দেখা যাচ্ছে না। তোমাকে সবচেয়ে নিচে (উপত্যকায়) পৌঁছাতে হবে। তুমি কী করবে?"
Rahim ভাবল, তারপর বলল: "পা দিয়ে চারপাশ অনুভব করব — কোন দিকে জমি নিচের দিকে ঢালু, সেদিকে এক
পা ফেলব। তারপর আবার অনুভব করব, আবার এক পা। এভাবে নামতে থাকব।"
Nila হাসল: "অভিনন্দন! তুমি এইমাত্র gradient descent আবিষ্কার করলে। 'কোন দিকে
ঢালু' — সেটাই derivative বা gradient। আর ছোট ছোট পা ফেলে নিচে
নামা — সেটাই model-এর শেখা। ML-এ 'নিচে' মানে 'কম ভুল'।"
এই একটা গল্পই এই পুরো পর্বের সারাংশ। Calculus মানে ভয়ংকর integral না — junior-দের জন্য Calculus
মানে এই "ঢাল ধরে নামা"-র intuition।
🎯 ২. আসল সমস্যা: model কীভাবে বুঝবে কোন দিকে যাবে
একটা model শুরুতে random parameter নিয়ে বসে থাকে — মানে শুরুতে খুব ভুল prediction দেয়। এখন প্রশ্ন:
parameter-গুলো কোন দিকে, কতটুকু বদলালে ভুল কমবে? এটাই ML-এর কেন্দ্রীয় সমস্যা। উত্তর: প্রতিটা
parameter-এর সাপেক্ষে ভুলের (loss-এর) "ঢাল" বের করে সেই ঢালের বিপরীত দিকে একটু সরে যাওয়া। এই
"ঢাল" বের করার হাতিয়ারই derivative/gradient।
🔢 ৩. Function কী — input থেকে output
Function হলো একটা মেশিন: input দিলে output দেয়। ML-এ আমাদের সবচেয়ে গুরুত্বপূর্ণ function হলো
loss function — এর input হলো model-এর parameter, output হলো "model কতটা ভুল করছে"।
মূল ধারণা: model শেখা মানে loss function-এর সবচেয়ে নিচু বিন্দু (minimum) খুঁজে
বের করা — অর্থাৎ যেখানে ভুল সবচেয়ে কম। পাহাড়ের উপত্যকা = কম ভুল।
📉 ৪. Level 1 — derivative মানে "ঢাল" (পাহাড়ের গল্প)
derivative-এর ভয়ংকর সংজ্ঞা ভুলে যান। এক কথায়:
Derivative = কোনো বিন্দুতে function কতটা খাড়া, আর কোন দিকে ঢালু।
• ঢাল ধনাত্মক (positive) → function উপরে উঠছে → ভুল বাড়ছে → উল্টো দিকে যাও।
• ঢাল ঋণাত্মক (negative) → function নিচে নামছে → ভুল কমছে → এই দিকেই যাও।
• ঢাল প্রায় শূন্য → সমতল → হয়তো সবচেয়ে নিচু বিন্দুতে (minimum) পৌঁছে গেছি।
পাহাড় থেকে নামার সময় আপনি ঠিক এই কাজটাই করেন — সবচেয়ে বেশি নিচু-ঢালু দিক খুঁজে সেদিকে পা ফেলেন।
⚙️ ৫. Level 2 — derivative technical ভাবে
Technical ভাবে derivative হলো — input খুব সামান্য বদলালে output কতটা বদলায় তার হার (rate of
change)। যেমন speed হলো "সময়ের সাপেক্ষে দূরত্বের derivative"।
একটা সহজ উদাহরণ: f(x) = x²। এর derivative f'(x) = 2x। মানে:
x = 3-এ ঢাল = 2×3 = 6 (খাড়া, উপরে উঠছে)।
x = 0-এ ঢাল = 0 (সমতল — এটাই সবচেয়ে নিচু বিন্দু)।
x = -3-এ ঢাল = -6 (উল্টো দিকে ঢালু)।
junior-দের জন্য জরুরি অংশ: আপনাকে derivative হাতে বের করা শিখতে হবে না — PyTorch/
TensorFlow স্বয়ংক্রিয়ভাবে (autograd) এটা করে। আপনার লাগবে শুধু এর মানে বোঝা: ঢাল ভুল
কমানোর দিক দেখায়।
🧭 ৬. Gradient — একাধিক দিকের ঢাল
বাস্তব model-এ একটা না, হাজার হাজার parameter থাকে। প্রতিটা parameter-এর সাপেক্ষে আলাদা আলাদা ঢাল
থাকে। এই সব ঢাল একসাথে একটা vector-এ রাখলে সেটাকে বলে gradient।
Gradient = সব দিকের ঢালের vector, যা বলে দেয় loss সবচেয়ে দ্রুত কোন দিকে বাড়ে।
তাই আমরা তার বিপরীত দিকে যাই — এজন্যই নাম "gradient descent" (নিচে নামা)।
খেয়াল করুন — এখানে Series 04-এর আগের পর্বের vector ফিরে এল। gradient একটা vector, তাই Linear
Algebra ও Calculus এখানে হাত মেলায়।
👷 ৭. Level 3 — কেন model gradient দিয়ে শেখে
একজন AI Engineer-এর চোখে পুরো training loop-টা এমন:
১. random parameter দিয়ে শুরু
২. prediction করো → ভুল (loss) মাপো
৩. gradient বের করো (কোন দিকে loss বাড়ে)
৪. gradient-এর বিপরীত দিকে parameter একটু সরাও
৫. আবার ২ নম্বরে যাও (বহুবার = epoch)
↓
loss ধীরে ধীরে কমে → model শেখে
এটাই প্রায় সব ML/Deep Learning model-এর শেখার মূল কৌশল। Linear Regression থেকে বিশাল LLM
পর্যন্ত — সবাই কোনো না কোনো রূপে gradient descent ব্যবহার করে। তাই এই intuition একবার বুঝলে
পুরো ML জুড়ে কাজে দেবে।
📊 ৮. Visual: loss পাহাড় ও নামার পথ
loss
│ \ /
│ \ /
│ \ (উঁচু = বেশি ভুল) /
│ \ /
│ \___ __/
│ \___ ___/
│ \__ ● __/ ← এখানে ঢাল ≈ 0 (minimum, কম ভুল)
│ নামার দিকে ছোট ছোট পা
└────────────────────────────────────► parameter
প্রতিটা "পা" = এক ধাপ gradient descent
model শুরুতে বাঁ বা ডান পাশে উঁচুতে থাকে (বেশি ভুল)। ঢাল ধরে ছোট ছোট পা ফেলে ধীরে ধীরে মাঝের
নিচু বিন্দুতে (কম ভুল) নামে।
💻 ৯. Code: হাতে-কলমে ঢাল দেখা
NumPy দিয়ে আমরা f(x) = x²-এর সবচেয়ে নিচু বিন্দু gradient descent দিয়ে খুঁজব — কোনো
library-র জাদু ছাড়া, নিজের হাতে। NumPy ব্যবহার করছি কারণ এটা সংখ্যার হিসাবের standard tool।
# লক্ষ্য: f(x) = x^2 -এর minimum খোঁজা (আমরা জানি উত্তর x=0)
def f(x):
return x ** 2
def gradient(x): # f'(x) = 2x (ঢাল)
return 2 * x
x = 8.0 # random শুরু
learning_rate = 0.1 # পায়ের আকার
for step in range(20):
g = gradient(x) # এখন ঢাল কত
x = x - learning_rate * g # ঢালের বিপরীতে এক পা
print(f"step {step:2d}: x={x:.4f} loss={f(x):.4f}")
কী observe করবেন: প্রতি step-এ x ৮ থেকে ধীরে ধীরে ০-র দিকে যাবে,
আর loss কমতে থাকবে। এই পুরো "ঢাল বের করে বিপরীতে পা ফেলা" — এটাই gradient descent,
যা S04E07-এ আরও বিস্তারিত আসবে।
👣 ১০. Learning rate — কত বড় পা ফেলব
উপরের কোডে learning_rate ঠিক করে আমরা কত বড় পা ফেলব। এটা junior-দের সবচেয়ে বেশি
টিউন করা hyperparameter:
খুব ছোট learning rate
পা ছোট → নিরাপদ কিন্তু ধীর। minimum-এ পৌঁছাতে অনেক সময়/epoch লাগে।
খুব বড় learning rate
পা বড় → minimum পেরিয়ে লাফিয়ে যায়, কখনো ঠিকমতো নামেই না (diverge করে)।
Experiment: উপরের কোডে learning_rate = 1.1 দিন — দেখবেন x
ছোট হওয়ার বদলে বড় হয়ে যাচ্ছে (diverge)। আবার 0.001 দিন — খুব ধীরে নামবে। এই hands-on
অনুভূতিই interview ও কাজে কাজে দেবে।
🇧🇩 ১১. বাংলাদেশের context
যেকোনো local team-এ যখন আপনি Linear Regression, Logistic Regression বা একটা neural network train
করবেন — বলুন Nagad-এ fraud model বা Daraz-এ demand forecast — ভেতরে ঠিক এই gradient descent-ই
চলছে। model "শিখছে না" (loss কমছে না) মানে সাধারণত learning rate ভুল, বা data সমস্যা। এই intuition
থাকলে আপনি model debug করতে পারবেন; না থাকলে শুধু হতাশ হয়ে বসে থাকবেন।
💼 ১২. Boss Question
💼 Boss Question
Boss: "তুমি বলছ model 'শিখছে'। কিন্তু কীভাবে বুঝব সে শিখছে, নাকি সময় নষ্ট করছে? আর derivative
দিয়ে আমার কী?"
উত্তর: খুব সহজ signal — training চলাকালীন loss কমছে কিনা সেটা
দেখি। loss কমা মানে model প্রতি ধাপে কম ভুল করছে, মানে শিখছে। loss আটকে গেলে বা বেড়ে গেলে বুঝি
learning rate বা data-তে সমস্যা — তখন সময় নষ্ট না করে থামিয়ে ঠিক করি। এই "loss কমছে কিনা"
বোঝাটাই derivative/gradient-এর সরাসরি ব্যবহার — এটা না বুঝলে GPU-তে ঘণ্টার পর ঘণ্টা টাকা পুড়িয়েও
টের পাবেন না model খারাপ শিখছে।
🔎 ১৩. Job Requirement Decoder
"Understanding of gradient descent and how models are optimized/trained."
| প্রশ্ন | উত্তর |
| এর মানে কী? | model কীভাবে ভুল কমিয়ে শেখে (gradient descent) সেই প্রক্রিয়া বোঝেন। |
| কোম্পানি কেন চায়? | training কাজ না করলে (loss না কমলে) আপনি কারণ ধরে ঠিক করতে পারবেন। |
| কোন সমস্যা সমাধান করে? | model "শিখছে না", diverge করছে, ধীরে শিখছে — এসব diagnose করা। |
| junior-এর কী জানা লাগে? | derivative = ঢাল, gradient = দিক, learning rate-এর প্রভাব, loss কমা = শেখা। |
| এখনই কী master লাগে না? | backprop-এর chain rule হাতে derive, ভিন্ন optimizer-এর গণিত, convergence proof। |
| GitHub-এ কীভাবে দেখাবেন? | একটা from-scratch gradient descent notebook, loss curve plot করে ব্যাখ্যা। |
| Interview-তে কী জিজ্ঞেস করতে পারে? | "gradient descent কীভাবে কাজ করে?", "learning rate বড় হলে কী হয়?", "loss না কমলে কী দেখবেন?" |
⚠️ ১৪. সাধারণ ভুল ধারণা
ভুল ১: "gradient descent শেখার আগে সব Calculus শিখতে হবে।" →
ঠিক: derivative = ঢাল, এই intuition-ই junior-দের জন্য যথেষ্ট।
ভুল ২: "বড় learning rate = দ্রুত শেখা, তাই ভালো।" →
ঠিক: খুব বড় হলে minimum পেরিয়ে diverge করে; balance দরকার।
ভুল ৩: "gradient আর derivative দুটো আলাদা জিনিস।" →
ঠিক: gradient হলো একাধিক variable-এর derivative-এর vector; একই ধারণার সম্প্রসারণ।
ভুল ৪: "training মানেই loss সবসময় কমবে।" →
ঠিক: ঠিক না হলে loss ওঠানামা করতে পারে বা বাড়তে পারে — সেটাই সমস্যার signal।
🎤 ১৫. Interview Prep
প্রশ্ন ১: gradient কী?
উত্তর: loss সবচেয়ে দ্রুত কোন দিকে বাড়ে তার ঢালের vector; আমরা তার বিপরীতে গিয়ে loss কমাই।
প্রশ্ন ২: derivative শূন্য হলে কী বোঝায়?
উত্তর: সমতল বিন্দু — সম্ভাব্য minimum (বা maximum/saddle); loss আর কমছে না।
প্রশ্ন ৩: learning rate খুব বড় দিলে কী হয়?
উত্তর: parameter minimum পেরিয়ে লাফায়, loss কমার বদলে বাড়ে/diverge করে।
প্রশ্ন ৪: ML-এ Calculus কোথায় লাগে?
উত্তর: loss কমানোর দিক (gradient) বের করতে; এটাই সব gradient-based training-এর ভিত্তি।
✍️ ১৬. হাতে-কলমে (Mini Exercise)
১. উপরের gradient descent কোডটা চালান, তারপর learning_rate পরিবর্তন করুন:
0.01, 0.5, 1.1 — প্রতিটায় x-এর আচরণ লিখে রাখুন।
২. f(x)=x²-এর জায়গায় f(x)=(x-4)² ও gradient=2*(x-4) বসিয়ে
দেখুন এবার minimum কোথায় যায় — কেন?
৩. এক লাইনে লিখুন: "ঢাল ধরে নামা" আর "model শেখা" কীভাবে একই জিনিস?
🚀 ১৭. Project Connection
Series 05-এ আমাদের flagship "Bangladesh Tech Career Assistant" যখন একটা ML model
(V3) হবে — বলুন job description থেকে salary-band predict — সেই model ভেতরে ঠিক আজকের gradient
descent দিয়েই শিখবে। যখন আমরা training-এর loss curve দেখব, তখন আজকের "loss কমছে কিনা" intuition-ই
বলে দেবে model ঠিক শিখছে কিনা। মানে আজকের পাহাড়-থেকে-নামার গল্প V3-এর training-এ সরাসরি কাজে লাগবে।
📌 ১৮. সারসংক্ষেপ ও পরবর্তী পর্ব
এই পর্বে আমরা শিখলাম:
✓ function হলো input→output মেশিন; ML-এ সবচেয়ে গুরুত্বপূর্ণ function = loss
✓ derivative = কোনো বিন্দুতে function-এর "ঢাল" ও দিক
✓ gradient = সব parameter-এর ঢালের vector, loss সবচেয়ে দ্রুত কোন দিকে বাড়ে
✓ gradient descent = ঢালের বিপরীতে ছোট ছোট পা ফেলে loss কমানো = model-এর শেখা
✓ learning rate পায়ের আকার — খুব বড়/ছোট দুটোই সমস্যা
✓ junior-দের derivative হাতে করা লাগে না; autograd করে, intuition-টা লাগে
পরবর্তী Episode (S04E04): "Statistics Basics: mean, median, variance, std — data-র
চরিত্র"। এবার তৃতীয় স্তম্ভ Statistics — যেটা junior-রা প্রতিদিন সবচেয়ে বেশি ব্যবহার করে। data-কে
সংখ্যায় বর্ণনা করা, outlier চেনা, আর কেন mean সবসময় সত্য বলে না — সব শিখব।