Gradient — সব দিকের ঢাল
Gradient
বান্দরবানের পাহাড়ে চড়া
ধর গুরু, তুই বান্দরবানে নীলগিরি পাহাড়ে হাইকিং করতে গেছস। পাহাড়ের চূড়ায় উঠতে চাস, কিন্তু কুয়াশায় কিছু দেখা যাইতেছে না। তুই একটা point-এ দাঁড়ায়ে আছস — সামনে গেলে ঢাল কত, ডানে গেলে কত, বাঁয়ে গেলে কত? প্রতি direction-এ ঢাল আলাদা! উত্তরে গেলে হয়তো খুব খাড়া, পূর্বে গেলে একটু কম খাড়া, পশ্চিমে গেলে নিচের দিকে। তুই সবচেয়ে খাড়া ঢালের দিকে যাইতে চাস — সবচেয়ে দ্রুত উপরে উঠতে। কিন্তু কোন দিকটা সবচেয়ে খাড়া? Gradient তোরে সেই দিকটা বইলা দিব!
Gradient হইল সব partial derivative মিলায়া বানানো vector — প্রতি direction-এ ঢাল কত সেইটা একটা vector-এ pack করা। Gradient-এর direction হইল steepest ascent-এর direction (সবচেয়ে খাড়া ঢালের দিক), আর magnitude হইল কত খাড়া। ML-এ loss function-এর gradient বলে দেয় loss কোন দিকে সবচেয়ে দ্রুত বাড়ে — তাই উল্টা দিকে গেলে loss কমবে!
সংজ্ঞা
Gradient হইল multi-variable function-এর সব partial derivative মিলায়া বানানো vector। ∇f (nabla f) লেখা হয়। f(x,y,z) হইলে gradient = [∂f/∂x, ∂f/∂y, ∂f/∂z]। এই vector-এর direction বলে function কোন দিকে সবচেয়ে দ্রুত বাড়ে, আর magnitude বলে কত দ্রুত।
ব্যাখ্যা
Gradient = Partial Derivative-দের Vector
Partial derivative chapter-এ শিখছিলি একটা একটা variable-এর effect। Gradient হইল সেই সব effect একসাথে একটা vector-এ রাখা। f(x,y) = x² + 3xy হইলে ∇f = [2x+3y, 3x]। প্রতিটা component একটা direction-এর ঢাল!
Gradient-এর Direction — সবচেয়ে খাড়া ঢাল
বান্দরবানের পাহাড়ে তুই কোনো point-এ দাঁড়ালে gradient তোরে point করবে সেই দিকে যেইদিকে পাহাড় সবচেয়ে দ্রুত উঠতেছে। উল্টা দিকে (-∇f) গেলে সবচেয়ে দ্রুত নামা যায়। ML-এ loss কমাইতে চাই — তাই gradient-এর উল্টা দিকে যাই!
Gradient-এর Magnitude — কত খাড়া
||∇f|| (gradient-এর length) বলে ঢাল কত steep। বড় magnitude = অনেক খাড়া ঢাল, ছোট magnitude = প্রায় সমতল। Zero gradient (∇f = 0) মানে পাহাড়ের চূড়া, গভীর খাদ, বা saddle point — কোনো দিকেই ঢাল নাই!
ML-এ Gradient — Loss Function-এর Compass
Neural network-এ parameters θ = [w₁, w₂, ..., wₙ]। Loss L(θ) একটা multi-variable function। ∇L = [∂L/∂w₁, ∂L/∂w₂, ..., ∂L/∂wₙ] — এই gradient vector বলে দেয় loss কমাইতে কোন weight কোন দিকে কতটুকু change করতে হইব। Gradient descent-এ এই vector-ই guide!
বান্দরবান পাহাড়ের Gradient
পাহাড়ের height function: h(x,y) = -x² - 2y² + 4x + 6y + 10। Point (1, 2)-এ gradient বের কর, direction আর magnitude বের কর।
Step 1: Partial derivatives বের কর
প্রতিটা variable-এর respect-এ differentiate কর।
Step 2: Point (1,2)-এ evaluate কর
x=1, y=2 বসাও।
Step 3: Magnitude বের কর
Gradient vector-এর length।
Gradient = [2, -2]। মানে x-দিকে height বাড়তেছে (2 rate-এ), y-দিকে কমতেছে (-2 rate-এ)। সবচেয়ে দ্রুত উঠতে চাইলে x-axis বরাবর সামনে আর y-axis বরাবর পিছনে যাও! পাহাড়ের চূড়া (gradient = 0) point-এ আছে x=2, y=1.5 — ওইখানে ∇h = [0, 0]।
ML-এ কোথায় লাগে?
মনে রাখার ট্রিক
Gradient = বান্দরবানের পাহাড়ে compass! তোরে বলে দেয় সবচেয়ে খাড়া ঢাল কোন দিকে (direction) আর কত খাড়া (magnitude)। চূড়ায় উঠতে চাইলে gradient-এর দিকে যাও, নামতে চাইলে উল্টা দিকে (gradient descent)!