🧮ML গণিত গুরু
calculusমাঝারি13 মিনিট

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
\[\nabla f = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}\]

ব্যাখ্যা

Gradient = Partial Derivative-দের Vector

Partial derivative chapter-এ শিখছিলি একটা একটা variable-এর effect। Gradient হইল সেই সব effect একসাথে একটা vector-এ রাখা। f(x,y) = x² + 3xy হইলে ∇f = [2x+3y, 3x]। প্রতিটা component একটা direction-এর ঢাল!

\[f(x,y) = x^2 + 3xy \implies \nabla f = \begin{bmatrix} 2x + 3y \\ 3x \end{bmatrix}\]

Gradient-এর Direction — সবচেয়ে খাড়া ঢাল

বান্দরবানের পাহাড়ে তুই কোনো point-এ দাঁড়ালে gradient তোরে point করবে সেই দিকে যেইদিকে পাহাড় সবচেয়ে দ্রুত উঠতেছে। উল্টা দিকে (-∇f) গেলে সবচেয়ে দ্রুত নামা যায়। ML-এ loss কমাইতে চাই — তাই gradient-এর উল্টা দিকে যাই!

\[\text{steepest ascent direction} = \frac{\nabla f}{\|\nabla f\|}\]

Gradient-এর Magnitude — কত খাড়া

||∇f|| (gradient-এর length) বলে ঢাল কত steep। বড় magnitude = অনেক খাড়া ঢাল, ছোট magnitude = প্রায় সমতল। Zero gradient (∇f = 0) মানে পাহাড়ের চূড়া, গভীর খাদ, বা saddle point — কোনো দিকেই ঢাল নাই!

\[\|\nabla f\| = \sqrt{\left(\frac{\partial f}{\partial x}\right)^2 + \left(\frac{\partial f}{\partial y}\right)^2}\]

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!

\[\nabla_\theta L = \begin{bmatrix} \frac{\partial L}{\partial w_1} \\ \frac{\partial L}{\partial w_2} \\ \vdots \\ \frac{\partial L}{\partial w_n} \end{bmatrix}\]

বান্দরবান পাহাড়ের Gradient

পাহাড়ের height function: h(x,y) = -x² - 2y² + 4x + 6y + 10। Point (1, 2)-এ gradient বের কর, direction আর magnitude বের কর।

Step 1: Partial derivatives বের কর

প্রতিটা variable-এর respect-এ differentiate কর।

\[\frac{\partial h}{\partial x} = -2x + 4, \quad \frac{\partial h}{\partial y} = -4y + 6\]

Step 2: Point (1,2)-এ evaluate কর

x=1, y=2 বসাও।

\[\nabla h(1,2) = \begin{bmatrix} -2(1)+4 \\ -4(2)+6 \end{bmatrix} = \begin{bmatrix} 2 \\ -2 \end{bmatrix}\]

Step 3: Magnitude বের কর

Gradient vector-এর length।

\[\|\nabla h\| = \sqrt{2^2 + (-2)^2} = \sqrt{8} = 2\sqrt{2} \approx 2.83\]
উত্তর:

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)!

#gradient#nabla#partial-derivative-vector#steepest-ascent#loss-surface#gradient-clipping