Deep Learning/Neural Network-এর ভিত্তি/Lesson 01
Perceptron: একটা neuron
Neural network-এর সবচেয়ে ছোট একক — weighted sum, bias আর একটা সিদ্ধান্ত। Perceptron learning rule দিয়ে নিজে হাতে AND/OR শেখানো, আর XOR কেন পারে না — যে সমস্যা "deep" learning-এর জন্ম দিয়েছে।
- সময়
- 24 মিনিট
- Exercise
- 1
- Challenge
- 1
- Quiz
- 3 প্রশ্ন
সহজ ভাষায়
মস্তিষ্কের একটা neuron অনেকগুলো সংকেত পায়, প্রতিটার গুরুত্ব আলাদা, আর মোট সংকেত যথেষ্ট শক্তিশালী হলে "জ্বলে ওঠে"। Perceptron (১৯৫৮) এর সবচেয়ে সরল গাণিতিক রূপ:
x1 ──(w1)──┐
├──► Σ wᵢxᵢ + b ──► > 0 ? ──► 1 বা 0
x2 ──(w2)──┘
- weight () — প্রতিটা input কতটা গুরুত্বপূর্ণ
- bias () — কতটা সহজে "জ্বলে ওঠে"
Math path-এর মনে আছে? Perceptron হুবহু সেটাই, শেষে একটা হ্যাঁ/না সিদ্ধান্ত।
কেন দরকার?
GPT, Claude, image recognition — সব neural network আসলে লাখ লাখ, কোটি কোটি এমন neuron-এর জাল। একটা neuron বুঝলে পুরো জালের ভিত্তি বোঝা হয়ে যায়। আর এই path-এ আমরা আগে NumPy দিয়ে নিজে হাতে সবকিছু বানাবো — তারপর PyTorch-এ যাবো, যাতে library-র ভেতরে কী হচ্ছে সেটা অজানা না থাকে।
এই playground-এ PyTorch চলে না (browser-এ চালানোর মতো ছোট না) — কিন্তু তাতে ক্ষতি নেই। NumPy দিয়ে নিজে বানানো network-ই সবচেয়ে ভালো শিক্ষক। PyTorch lesson-গুলোর code তোমার computer-এ বা Google Colab-এ চালাবে।
হাতে weight বসানো
একই neuron, শুধু bias আলাদা — আর logic gate বদলে গেল। AND-এর জন্য দুটো input-ই লাগে (1 + 1 − 1.5 > 0), OR-এর জন্য একটাই যথেষ্ট।
Visual intuition: একটা সরলরেখা
Perceptron আসলে 2D সমতলে একটা সরলরেখা টানে — একপাশে 1, অন্যপাশে 0:
রেখাটা — এর একপাশে সবুজ (1), অন্যপাশে লাল (0)। একে বলে decision boundary।
শেখা: perceptron learning rule
Weight হাতে না বসিয়ে data থেকে শেখা যায়। নিয়মটা সহজ — ভুল হলে, ভুলের উল্টো দিকে একটু সরো:
(eta) হলো learning rate — প্রতিবার কতটা সরবে।
- 1 হওয়ার কথা, বলেছে 0 → → weight বাড়ে → পরেরবার sum বড়
- 0 হওয়ার কথা, বলেছে 1 → → weight কমে
- ঠিক বলেছে → কিছুই বদলায় না
Challenge-এ এই নিয়মটা নিজে লিখবে, আর দেখবে perceptron নিজেই OR, AND, NAND শিখে ফেলে।
XOR: যে সমস্যা AI-কে থামিয়ে দিয়েছিল
XOR — দুটো input আলাদা হলে 1:
১০০০ epoch-এও পারে না! কারণ XOR-এর বিন্দুগুলো (০,১) আর (১,০) একদিকে, (০,০) আর (১,১) আরেকদিকে — কোনো একটা সরলরেখা দিয়ে এদের আলাদা করা অসম্ভব।
১৯৬৯-এ Minsky আর Papert এটা প্রমাণ করলেন, আর neural network গবেষণায় প্রায় ১৫ বছরের "AI winter" নেমে এল। সমাধান এল পরে: একাধিক neuron, একাধিক layer — প্রথম layer কয়েকটা রেখা টানে, পরের layer সেগুলো মেলায়। এটাই deep learning-এর "deep"। Forward propagation lesson-এ নিজে XOR সমাধান করবে।
Exercise
Exercise
হাতে weight বসিয়ে AND gate
Perceptron-এর নিয়ম: output = 1 যদি (w₁x₁ + w₂x₂ + b) > 0, নাহলে 0।
w = np.array([1.0, 1.0]) আর b = -1.5 দিয়ে perceptron(x, w, b) function লেখো, তারপর চারটা input-এর জন্য output outputs array-তে রাখো।
দেখো — এই weight দিয়ে perceptron AND gate হয়ে যায় (দুটোই 1 হলে তবেই 1)।
Quiz
Challenge
Challenge
Perceptron নিজে শিখুক
Weight হাতে না বসিয়ে data থেকে শেখাও — perceptron learning rule (Rosenblatt, 1958):
প্রতিটা sample-এর জন্য: prediction ভুল হলে - w ← w + lr · (y − ŷ) · x - b ← b + lr · (y − ŷ)
train_perceptron(X, y, lr=0.1, epochs=20) লেখো: w আর b শূন্য দিয়ে শুরু, প্রতি epoch-এ সব sample একবার করে (ক্রম অনুযায়ী), শেষে (w, b) return।
বাস্তবে কোথায় ব্যবহার হয়?
আধুনিক neural network-এর প্রতিটা neuron এখনো perceptron-এর মূল কাজটাই করে — — শুধু দুটো পার্থক্য:
- শেষের "হ্যাঁ/না" (step function)-এর বদলে মসৃণ activation function (ReLU, sigmoid) — পরের lesson
- ভুল থেকে শেখার জন্য perceptron rule-এর বদলে gradient descent + backpropagation — এই module-এর শেষ lesson
PyTorch-এ একটা perceptron-এর সমতুল্য: nn.Linear(2, 1) — দুটো input, একটা output, ভেতরে ঠিক আর ।
Interview প্রশ্ন
- Beginner: Perceptron কী? Weight আর bias কী কাজ করে?
- Intermediate: একটা perceptron XOR শিখতে পারে না কেন? "Linearly separable" মানে কী?
- Advanced: Perceptron convergence theorem কী বলে? Data linearly separable না হলে কী হয়?
এরপর কী?
Step function — হঠাৎ 0 থেকে 1 লাফ — শেখার জন্য সমস্যাজনক: সামান্য weight বদলালে output-এ কোনো পরিবর্তনই হয় না, তাই "কোন দিকে সরবো" বোঝা যায় না। সমাধান: মসৃণ function। পরের lesson: Activation functions।