পাঠ ১৩ · ৩৫-এর মধ্যে · মডিউল ৪
Home / AI Courses / Math for AI & ML / চেইন রুল

ডেরিভেটিভ পুনরালোচনা — চেইন রুল

Derivatives revisited — the chain rule
১৩ মিনিট পড়া মাঝারি · Intermediate NumPy কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • লিমিট দিয়ে ডেরিভেটিভের সংজ্ঞা আবার মনে করিয়ে নেওয়া
  • পাওয়ার, প্রোডাক্ট ও কোশেন্ট রুল দ্রুত পুনরালোচনা
  • চেইন রুল ধাপে ধাপে বোঝা ও ৩টি উদাহরণে প্রয়োগ করা
  • কেন চেইন রুল ছাড়া একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণ করা অসম্ভব তা স্পষ্টভাবে বোঝা

১ · ডেরিভেটিভের সংজ্ঞা — লিমিট দিয়ে

একটি ফাংশন $f(x)$-এর ডেরিভেটিভDerivativeএকটি বিন্দুতে ফাংশনের তাৎক্ষণিক পরিবর্তনের হার — গ্রাফের ঐ বিন্দুতে স্পর্শক রেখার ঢাল। মানে সেই বিন্দুতে ফাংশনটি কত দ্রুত বদলাচ্ছে। প্রাথমিক সংজ্ঞাটি একটি লিমিট দিয়ে দেওয়া হয়:

$$ f'(x) = \lim_{h \to 0} \frac{f(x+h) - f(x)}{h} $$

ভগ্নাংশটি $\frac{f(x+h)-f(x)}{h}$ আসলে দুটি বিন্দুর মধ্যে গড় পরিবর্তনের হার (secant line-এর ঢাল)। $h$ কে শূন্যের দিকে নিয়ে গেলে দুটি বিন্দু একে অপরের কাছাকাছি চলে আসে, এবং সেই লিমিটে আমরা পাই একটি বিন্দুতে তাৎক্ষণিক পরিবর্তনের হার — অর্থাৎ স্পর্শক রেখার ঢাল।

$f(x) = x^2$ নিয়ে এই লিমিট হাতে-কলমে দেখা যাক: $\frac{(x+h)^2 - x^2}{h} = \frac{x^2 + 2xh + h^2 - x^2}{h} = \frac{2xh+h^2}{h} = 2x + h$। যখন $h \to 0$, এই রাশি $2x$-এ পৌঁছায়। তাই $f'(x) = 2x$ — যা আমরা পাওয়ার রুল দিয়েও পেয়ে থাকি।

২ · তিনটি মৌলিক নিয়ম পুনরালোচনা

প্রতিবার লিমিট থেকে শুরু করা অব্যবহারিক, তাই কিছু নিয়ম মুখস্থ রাখা হয় — এগুলো সবই উপরের লিমিট সংজ্ঞা থেকে প্রমাণযোগ্য, কিন্তু এই পাঠে আমরা শুধু ফলাফল পুনরালোচনা করছি।

পাওয়ার রুল

$$ \frac{d}{dx} x^n = n x^{n-1} $$

যেমন: $\frac{d}{dx} x^3 = 3x^2$, এবং $\frac{d}{dx} x = 1$ ($n=1$ বসিয়ে)।

প্রোডাক্ট রুল

দুটি ফাংশনের গুণফলের ডেরিভেটিভ — প্রতিটি ফাংশন পালাক্রমে ডেরাইভ হয়:

$$ \frac{d}{dx}\big[f(x)g(x)\big] = f'(x)g(x) + f(x)g'(x) $$

যেমন $h(x) = x^2 \sin x$ হলে $h'(x) = 2x\sin x + x^2\cos x$।

কোশেন্ট রুল

দুটি ফাংশনের ভাগফলের ডেরিভেটিভ:

$$ \frac{d}{dx}\left[\frac{f(x)}{g(x)}\right] = \frac{f'(x)g(x) - f(x)g'(x)}{g(x)^2} $$

এই তিনটি নিয়মই যথেষ্ট শক্তিশালী সরল ফাংশনের জন্য — কিন্তু ML-এ আমরা প্রায় সবসময় ফাংশনের ভেতরে ফাংশন দেখি (যেমন $\sigma(wx+b)$), আর সেখানেই আসল কাজের হাতিয়ার — চেইন রুল।

৩ · চেইন রুল — কম্পোজিট ফাংশনের ডেরিভেটিভ

ধরুন $h(x) = f(g(x))$ — অর্থাৎ প্রথমে $x$-কে $g$ দিয়ে রূপান্তর করা হলো, তারপর সেই ফলাফলকে $f$ দিয়ে। একে বলা হয় কম্পোজিট ফাংশনComposite Functionএকটি ফাংশনের আউটপুট আরেকটি ফাংশনের ইনপুট হিসেবে ব্যবহৃত হলে তাকে কম্পোজিট ফাংশন বলে — $f(g(x))$।। চেইন রুল বলে:

$$ \frac{d}{dx} f(g(x)) = f'(g(x)) \cdot g'(x) $$

কথায় বললে — বাইরের ফাংশনের ডেরিভেটিভ (ভেতরের ফাংশনের মানে বসিয়ে), গুণ ভেতরের ফাংশনের ডেরিভেটিভ। প্রতিটি "স্তর" নিজের স্থানীয় পরিবর্তনের হার অবদান রাখে, আর সেগুলো গুণ হয়ে মিলিত হয়।

গাড়ির গিয়ার সিস্টেমের কথা ভাবুন। ইঞ্জিন ঘোরে একটি হারে, প্রথম গিয়ার সেই হারকে একটি অনুপাতে বদলায়, দ্বিতীয় গিয়ার আবার সেটাকে আরেকটি অনুপাতে বদলায়। চাকার চূড়ান্ত ঘূর্ণন-হার হলো প্রতিটি গিয়ার-অনুপাতের গুণফল — যোগফল নয়। চেইন রুলও ঠিক এভাবেই কাজ করে: প্রতিটি স্তরের "স্থানীয় হার" একে অপরের সাথে গুণ হয়।

উদাহরণ ১ — $h(x) = (3x+1)^2$।

ধরি $g(x) = 3x+1$ (ভেতরের ফাংশন) এবং $f(u) = u^2$ (বাইরের ফাংশন), তাহলে $h(x)=f(g(x))$। $f'(u) = 2u$ এবং $g'(x) = 3$। চেইন রুল প্রয়োগ করে:

$$ h'(x) = f'(g(x)) \cdot g'(x) = 2(3x+1) \cdot 3 = 6(3x+1) $$

উদাহরণ ২ — $h(x) = e^{-x^2}$।

এখানে $g(x) = -x^2$ এবং $f(u) = e^u$, যেখানে $f'(u) = e^u$ এবং $g'(x) = -2x$। তাই:

$$ h'(x) = e^{-x^2} \cdot (-2x) = -2x \, e^{-x^2} $$

উদাহরণ ৩ — একটি প্রিভিউ। সিগময়েড ফাংশন $\sigma(x) = \frac{1}{1+e^{-x}}$ নিজেই একটি কম্পোজিট ফাংশনের চেইন — ভেতরে $-x$, তারপর $e^{(\cdot)}$, তারপর $1+(\cdot)$, তারপর $\frac{1}{(\cdot)}$। এর সম্পূর্ণ ডেরিভেশন আমরা করব পাঠ ১৮-এ, কিন্তু এখনই লক্ষ করুন — এটি সমাধান করতে চেইন রুল ছাড়া কোনো উপায় নেই।

সবচেয়ে সাধারণ ভুল — শুধু বাইরের ফাংশন ডেরাইভ করে থেমে যাওয়া, ভেতরের ফাংশনের ডেরিভেটিভ ($g'(x)$) দিয়ে গুণ করতে ভুলে যাওয়া। $h(x)=(3x+1)^2$-এর ক্ষেত্রে ভুল উত্তর হবে $h'(x) = 2(3x+1)$ — সঠিক উত্তরে $\times 3$ অনুপস্থিত।
মূল কথা · Key takeaway

একটি নিউরাল নেটওয়ার্ক আসলে ফাংশনের ভেতরে ফাংশনের একটি দীর্ঘ চেইন — লেয়ার ১-এর আউটপুট লেয়ার ২-এর ইনপুট, তার আউটপুট লেয়ার ৩-এর ইনপুট, এবং শেষে লস ফাংশন। প্রতিটি প্যারামিটারের সাপেক্ষে লসের ডেরিভেটিভ বের করতে হলে এই পুরো চেইন ধরে গুণ করে যেতে হয় — এটিই ব্যাকপ্রপাগেশনের ভিত্তি (মডিউল ৫-এ সম্পূর্ণ ডেরাইভ করা হবে)।

৪ · কোড দিয়ে যাচাই — অ্যানালিটিক্যাল বনাম সংখ্যাগত ডেরিভেটিভ

নিচে $h(x) = (3x+1)^2$-এর ডেরিভেটিভ দুইভাবে হিসাব করা হলো — একবার চেইন রুল দিয়ে পাওয়া সূত্র $h'(x)=6(3x+1)$ ব্যবহার করে, আরেকবার লিমিট সংজ্ঞা থেকে সরাসরি একটি ছোট $h$ (যেমন $10^{-6}$) দিয়ে সংখ্যাগতভাবে অনুমান করে। দুটো প্রায় অভিন্ন হওয়া উচিত।

Python · NumPy
import numpy as np

def h(x):
    return (3 * x + 1) ** 2

# চেইন রুল দিয়ে হাতে বের করা ডেরিভেটিভ: h'(x) = 6(3x + 1)
def h_prime_analytical(x):
    return 6 * (3 * x + 1)

# লিমিট সংজ্ঞা থেকে সংখ্যাগত অনুমান (finite difference)
def h_prime_numerical(x, step=1e-6):
    return (h(x + step) - h(x)) / step

x0 = 2.0
print("অ্যানালিটিক্যাল (চেইন রুল):", h_prime_analytical(x0))
print("সংখ্যাগত (finite difference):", h_prime_numerical(x0))

    
এই ধরনের "সংখ্যাগত পরীক্ষা" (numerical gradient checking) বাস্তব ML কোডে খুবই গুরুত্বপূর্ণ — যখন আপনি হাতে একটি জটিল ডেরিভেটিভ বের করেন, তখন এভাবে finite difference দিয়ে যাচাই করে নিশ্চিত হওয়া যায় ভুল হয়নি।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ চেইন রুলকে কেন ব্যাকপ্রপাগেশনের "একমাত্র" গাণিতিক ভিত্তি বলা হয়?

কারণ একটি নিউরাল নেটওয়ার্কের লস ফাংশন প্রতিটি প্যারামিটারের সাপেক্ষে একটি বহু-স্তরের কম্পোজিট ফাংশন — ইনপুট থেকে লস পর্যন্ত অনেকগুলো ফাংশনের পরপর প্রয়োগ। এই পুরো চেইনের ডেরিভেটিভ বের করার একমাত্র উপায় হলো প্রতিটি স্তরের স্থানীয় ডেরিভেটিভ গুণ করে যাওয়া — যা ঠিক চেইন রুলেরই বহু-স্তরের রূপ। অন্য কোনো গাণিতিক নিয়ম দিয়ে এটি করা সম্ভব নয়।

প্র ০২ প্রোডাক্ট রুল ও চেইন রুলের মধ্যে পার্থক্য কী — কখন কোনটা ব্যবহার করব?

প্রোডাক্ট রুল ব্যবহৃত হয় যখন দুটি আলাদা ফাংশন একসাথে গুণ হয়, যেমন $x^2 \sin x$। চেইন রুল ব্যবহৃত হয় যখন একটি ফাংশন আরেকটি ফাংশনের ভেতরে বসানো থাকে, যেমন $\sin(x^2)$। পার্থক্য বোঝার সহজ উপায় — প্রশ্ন করুন: "এখানে কি দুটো আলাদা রাশি গুণ হচ্ছে, নাকি একটি রাশি আরেকটির ইনপুট?"

প্র ০৩ $h(x)=(3x+1)^2$ সরাসরি expand করে ($9x^2+6x+1$) ডেরাইভ করলে কি চেইন রুলের উত্তরের সাথে মেলে?

হ্যাঁ, অবশ্যই মেলা উচিত — এবং এটি একটি ভালো sanity check। $9x^2+6x+1$-এর ডেরিভেটিভ পাওয়ার রুল দিয়ে $18x + 6$, যা $6(3x+1) = 18x+6$-এর সমান। বাস্তব জীবনে expand করা সবসময় সহজ নয় (বিশেষত জটিল ফাংশনের ক্ষেত্রে), তাই চেইন রুলই সাধারণ ও নির্ভরযোগ্য পদ্ধতি।

অনুশীলন

  1. চেইন রুল প্রয়োগ করুন: $h(x) = (2x^2+1)^3$-এর ডেরিভেটিভ হাতে বের করুন।

    $g(x)=2x^2+1$, $g'(x)=4x$; $f(u)=u^3$, $f'(u)=3u^2$। তাই $h'(x) = 3(2x^2+1)^2 \cdot 4x = 12x(2x^2+1)^2$।

  2. চেইন রুল প্রয়োগ করুন: $h(x) = e^{5x}$-এর ডেরিভেটিভ বের করুন।

    $g(x)=5x$, $g'(x)=5$; $f(u)=e^u$, $f'(u)=e^u$। তাই $h'(x) = e^{5x} \cdot 5 = 5e^{5x}$।

  3. কোড দিয়ে যাচাই করুন: উপরের code cell-এ x0-এর মান বদলে (যেমন -1.0 বা 0.5) নিজে $h'(x)=6(3x+1)$ সূত্র দিয়ে হাতে হিসাব করুন, তারপর Run চেপে দুই মান মিলিয়ে দেখুন।

    অ্যানালিটিক্যাল ও সংখ্যাগত মান প্রায় হুবহু মিলবে (সামান্য floating-point পার্থক্য থাকতে পারে, কারণ finite difference একটি অনুমান মাত্র, প্রকৃত লিমিট নয়)।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

পূর্ববর্তী পাঠ
পজিটিভ ডেফিনিট ম্যাট্রিক্স ও কোয়াড্রেটিক ফর্ম