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-এর গঠন
f: ℝⁿ → ℝᵐ function হইলে Jacobian m×n matrix। প্রতিটা row একটা output function-এর gradient, প্রতিটা column একটা input variable-এর সব output-এ effect। বাবুলের ফ্যাক্টরিতে 3 input, 2 output — তাই Jacobian হবে 2×3 matrix।
Jacobian দিয়ে Linear Approximation
Jacobian matrix হইল multivariate function-এর best linear approximation। ছোট পরিবর্তন Δx দিলে output-এর পরিবর্তন Δy ≈ J · Δx। বাবুল যদি একটু বেশি কাপড় কিনে, Jacobian বলে দিবে production আর cost কতটুক বদলাবে।
Chain Rule আর Jacobian
দুইটা function compose করলে (g ∘ f), পুরা system-এর Jacobian হয় দুই Jacobian-এর multiplication। Neural network-এ প্রতিটা layer একটা function — backpropagation মানে হইল Jacobian-এর chain multiplication!
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।
বাবুলের ফ্যাক্টরির 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
Step 2: Jacobian Matrix বসাই
(x₁, x₂) = (2, 1) point-এ evaluate করি
Step 3: Δx = (0.1, 0) দিয়া Δy বের করি
x₁ তে 0.1 বাড়লে, x₂ same থাকলে
কাপড় 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!