A tiny neural network: forward pass and backpropagation


Choose one example
Learning rate η

Weights & biases

মূল ধারণা।
এই নেটওয়ার্কে একটি input x, দুটি hidden neuron আর একটি output y আছে। এতে সাতটি সংখ্যা আছে যা training বদলায়: প্রতিটি hidden neuron-এর একটি weight ও একটি bias (w1, b1 এবং w2, b2), আর output-এর প্রতিটি neuron-এর জন্য একটি weight (w3, w4) ও একটি bias b3।
• Forward pass: প্রতিটি neuron z = w·x + b হিসাব করে, তারপর ReLU সেটি ধনাত্মক হলে রেখে দেয়, না হলে 0 করে দেয়। output নিজের weight দিয়ে দুটি neuron যোগ করে: y = w3·h1 + w4·h2 + b3। loss মাপে কতটা ভুল হলো: L = (y − t)², যেখানে t হলো target।
• Backward pass: loss থেকে শুরু করে এক এক বাক্স করে পেছনে হাঁটুন। প্রতিটি ধাপে একটি ছোট local slope দিয়ে গুণ হয়, এটিই chain rule। শেষে সাতটি সংখ্যার প্রত্যেকটির একটি gradient (বেগুনি) থাকে: সেই সংখ্যাটি একটু বাড়লে loss কতটা বদলায়।
• Update: প্রতিটি সংখ্যাকে তার gradient-এর উল্টো দিকে একটি ছোট ধাপ সরান, new = old − η × gradient, যেমনটি optimizers পাতায় আছে।
এটি বারবার, পাঁচটি পয়েন্টের সবগুলোর ওপর একসঙ্গে করাই হলো training।

যা চেষ্টা করে দেখার মতো:
1. Next step-এ এগারোবার ক্লিক করুন, আর প্রতিটি লাইন ক্যালকুলেটর দিয়ে মিলিয়ে দেখুন। উদাহরণ x = 2, t = 3-এর জন্য নেটওয়ার্ক বলে y = 1.50, আর loss 2.25। তারপর Update weights & biases-এ ক্লিক করে আবার forward pass ধাপে ধাপে চালান: η = 0.05 হলে নতুন y হয় 3.06, আর loss নেমে আসে 0.0032-এ।

2. উদাহরণ x = −2 বেছে নিন। এখন z1 = 0.50·(−2.00) + 0.00 = −1.00 ঋণাত্মক, ReLU দেয় 0, আর backward pass-এ গেট বন্ধ হয়ে যায়: w1, b1 ও w3-এর gradient ঠিক 0। এই উদাহরণে neuron 1 শিখতে পারে না। সব উদাহরণেই যদি 0 হয়, তবে সেটি কখনোই শিখবে না: এটিই dead neuron, যেমনটি activation পাতায় আছে।

3. η বাড়িয়ে 0.1 করুন আর শুরু থেকে update করুন। ধাপটি খুব বড়: y target ছাড়িয়ে যায়, 1.50 থেকে 4.95-এ, আর এই উদাহরণের loss 2.25 থেকে বেড়ে 3.80 হয়।