পর্ব ১৯ · মেশিন লার্নিং-এ ক্যালকুলাস
Autodiff: NumPy/PyTorch hands-on
তত্ত্ব শেষ — কোডে gradient check, JVP/VJP, computation graph।
শেখার লক্ষ্য
- forward vs reverse mode
- PyTorch autograd ব্যবহার
- gradient check করতে
পূর্বপ্রয়োজন
chain rule, backprop, Python ভিত্তি।
Numerical gradient (check)
Central difference O(h²) accurate। analytic gradient verify করতে essential — ML বাগ ধরার সেরা টুল।
Reverse-mode (PyTorch)
import torch; x=torch.tensor([1.0,2.0], requires_grad=True); y=(x**2).sum(); y.backward(); print(x.grad) → tensor([2.,4.])।
- requires_grad=True → tracking start।
- .backward() → graph traverse, .grad পূরণ।
- torch.no_grad(): inference সময় graph off।
- detach() → graph থেকে বিচ্ছিন্ন copy।
Forward vs reverse mode
Forward (JVP): input-pertubation → output-perturbation; cost O(n_input)। Reverse (VJP/backprop): output-grad → input-grad; cost O(n_output)। DL-এ output=scalar loss, input=million parameters → reverse জেতে।
JAX সংস্কৃতি
grad, jit, vmap, pmap — functional autodiff। jax.grad(f)(x) সরাসরি function returns। jvp(f,(x,),(v,)) ও vjp(f,x)[1](w) দিয়ে Hessian-vector product cheap।