CH 33Phase 5 · Deep Learning Mathematics

Neural Network Mathematics

১৫–২৫ মিনিট বাংলা · Math · Python
📖 একটি ছোট গল্প

১৯৫৮ সালে Frank Rosenblatt একটি যন্ত্র বানালেন যা ছবি দেখে "ত্রিভুজ" না "বৃত্ত" বলতে পারত — নাম Perceptron। New York Times লিখল: "শীঘ্রই এই যন্ত্র হাঁটতে, কথা বলতে, নিজেকে চিনতে শিখবে।" বাস্তবে সেটা শুধু linear সমস্যা solve করতে পারত — XOR-ও না! কিন্তু সেই একটি neuron-ই আজকের GPT-এর পূর্বপুরুষ।

Artificial Neuron

একটি neuron = weighted sum + activation:

z = w·x + b, a = σ(z)
  • x ∈ ℝⁿ — input vector
  • w ∈ ℝⁿ — weights (শেখা হয়)
  • b — bias (shift)
  • σ — activation (non-linearity)

Perceptron Rule

Binary classifier: ŷ = sign(w·x + b)। ভুল হলে update:

w ← w + η (y − ŷ) x
⚠️ সতর্কতা
Perceptron শুধু linearly separable data-তে converge করে। XOR-এর জন্য multi-layer দরকার।

Multi-Layer Perceptron

একাধিক layer stack করলে non-linear function approximate করা যায়:

h⁽¹⁾ = σ(W⁽¹⁾x + b⁽¹⁾), h⁽²⁾ = σ(W⁽²⁾h⁽¹⁾ + b⁽²⁾), ŷ = W⁽³⁾h⁽²⁾ + b⁽³⁾

Universal Approximation Theorem: একটি hidden layer যথেষ্ট neuron সহ যেকোনো continuous function approximate করতে পারে।

Python Implementation

pythonPython · NumPy
import numpy as np

# 2-layer MLP for XOR
X = np.array([[0,0],[0,1],[1,0],[1,1]])
y = np.array([[0],[1],[1],[0]])

np.random.seed(0)
W1 = np.random.randn(2, 4); b1 = np.zeros((1, 4))
W2 = np.random.randn(4, 1); b2 = np.zeros((1, 1))

def sigmoid(z): return 1/(1+np.exp(-z))

for epoch in range(5000):
    # forward
    h = sigmoid(X @ W1 + b1)
    yhat = sigmoid(h @ W2 + b2)
    loss = np.mean((yhat - y)**2)
    # backward
    d2 = (yhat - y) * yhat * (1 - yhat)
    d1 = (d2 @ W2.T) * h * (1 - h)
    W2 -= 0.5 * h.T @ d2;  b2 -= 0.5 * d2.sum(0, keepdims=True)
    W1 -= 0.5 * X.T @ d1;  b1 -= 0.5 * d1.sum(0, keepdims=True)

print("XOR predictions:", yhat.round(2).ravel())

Practice

  1. উপরের code-এ hidden size 4 → 2 করলে কী হয়?
  2. Sigmoid এর জায়গায় ReLU বসান। convergence দ্রুত হলো কি?

Summary · সারসংক্ষেপ

  • Neuron = σ(w·x + b) — সব deep network-এর atom।
  • Single perceptron linear; MLP দিয়ে non-linear function approximate করা যায়।
  • Universal Approximation: hidden layer যথেষ্ট হলে প্রায় যেকোনো function শেখা সম্ভব।