🧮ML গণিত গুরু
calculusকঠিন12 মিনিট

Jacobian — বহু-ভেরিয়েবলের ডেরিভেটিভ ম্যাট্রিক্স

Jacobian Matrix

🏭

বাবুলের টি-শার্ট ফ্যাক্টরি

ধর তোর বন্ধু বাবুল তেজগাঁওয়ে টি-শার্ট ফ্যাক্টরি দিছে। তার ৩টা input আছে — কাপড়ের পরিমাণ (x₁), শ্রমিক সংখ্যা (x₂), আর বিদ্যুৎ খরচ (x₃)। আর ২টা output — দৈনিক টি-শার্ট সংখ্যা (y₁) আর মোট খরচ (y₂)। এখন বাবুল জানতে চায় — কাপড় ১ মিটার বাড়াইলে production কতটুক বাড়ে আর cost কতটুক বাড়ে? শ্রমিক ১ জন বাড়াইলে? প্রতিটা input-এর প্রতিটা output-এ effect আলাদা — এইগুলা সব organize করতে একটা ম্যাট্রিক্স লাগে।

এইটাই Jacobian Matrix, গুরু! সব partial derivative এক জায়গায় — প্রতিটা output-এর প্রতিটা input-এর সাপেক্ষে rate of change। Neural network-এ input layer থেকে output layer পর্যন্ত gradient বহন করার মূল হাতিয়ার!

সংজ্ঞা

Jacobian হইল একটা matrix যেখানে একটা vector-valued function f: ℝⁿ → ℝᵐ এর সব first-order partial derivatives organized থাকে। i-তম row, j-তম column-এ থাকে ∂fᵢ/∂xⱼ — অর্থাৎ i-তম output-এর j-তম input-এর সাপেক্ষে derivative।

Jacobian Matrix — m outputs, n inputs
\[\mathbf{J} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}_{m \times n}\]

ব্যাখ্যা

Jacobian-এর গঠন

f: ℝⁿ → ℝᵐ function হইলে Jacobian m×n matrix। প্রতিটা row একটা output function-এর gradient, প্রতিটা column একটা input variable-এর সব output-এ effect। বাবুলের ফ্যাক্টরিতে 3 input, 2 output — তাই Jacobian হবে 2×3 matrix।

\[J_{ij} = \frac{\partial f_i}{\partial x_j}\]

Jacobian দিয়ে Linear Approximation

Jacobian matrix হইল multivariate function-এর best linear approximation। ছোট পরিবর্তন Δx দিলে output-এর পরিবর্তন Δy ≈ J · Δx। বাবুল যদি একটু বেশি কাপড় কিনে, Jacobian বলে দিবে production আর cost কতটুক বদলাবে।

\[\Delta \mathbf{y} \approx \mathbf{J} \cdot \Delta \mathbf{x}\]

Chain Rule আর Jacobian

দুইটা function compose করলে (g ∘ f), পুরা system-এর Jacobian হয় দুই Jacobian-এর multiplication। Neural network-এ প্রতিটা layer একটা function — backpropagation মানে হইল Jacobian-এর chain multiplication!

\[\mathbf{J}_{g \circ f} = \mathbf{J}_g \cdot \mathbf{J}_f\]

Jacobian Determinant

Square Jacobian-এর determinant বলে transformation locally কতটুক area/volume stretch বা shrink করে। |det(J)| > 1 মানে expand, < 1 মানে shrink, = 0 মানে dimension collapse (singular)। Normalizing Flow model-এ এইটা critical।

\[|\det(\mathbf{J})| = \text{volume scaling factor}\]

বাবুলের ফ্যাক্টরির Jacobian

বাবুলের factory: production y₁ = 3x₁ + 2x₂, cost y₂ = x₁² + x₂। (x₁, x₂) = (2, 1) point-এ Jacobian বের করো এবং x₁ তে 0.1 বাড়লে output কত বদলাবে?

Step 1: Partial Derivatives বের করি

প্রতিটা output-এর প্রতিটা input-এর সাপেক্ষে derivative

\[\frac{\partial y_1}{\partial x_1} = 3, \; \frac{\partial y_1}{\partial x_2} = 2, \; \frac{\partial y_2}{\partial x_1} = 2x_1, \; \frac{\partial y_2}{\partial x_2} = 1\]

Step 2: Jacobian Matrix বসাই

(x₁, x₂) = (2, 1) point-এ evaluate করি

\[\mathbf{J} = \begin{bmatrix} 3 & 2 \\ 2(2) & 1 \end{bmatrix} = \begin{bmatrix} 3 & 2 \\ 4 & 1 \end{bmatrix}\]

Step 3: Δx = (0.1, 0) দিয়া Δy বের করি

x₁ তে 0.1 বাড়লে, x₂ same থাকলে

\[\Delta \mathbf{y} = \mathbf{J} \cdot \Delta \mathbf{x} = \begin{bmatrix} 3 & 2 \\ 4 & 1 \end{bmatrix} \begin{bmatrix} 0.1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0.3 \\ 0.4 \end{bmatrix}\]
উত্তর:

কাপড় 0.1 unit বাড়াইলে production 0.3 unit বাড়ে আর cost 0.4 unit বাড়ে। Jacobian একবারে সব effect দেখাইয়া দিল, গুরু!

ML-এ কোথায় লাগে?

💡

মনে রাখার ট্রিক

Jacobian = ফ্যাক্টরির Dashboard। প্রতিটা knob (input) ঘোরাইলে প্রতিটা meter (output) কতটুক নড়ে — সব information এক ম্যাট্রিক্সে। Row = output, Column = input। বাবুলের factory-র কথা মনে রাখ — ৩ knob, ২ meter, তাই 2×3 dashboard!

#jacobian#partial-derivative#matrix-calculus#backpropagation#chain-rule#normalizing-flow#neural-ode