Dropout — র্যান্ডম ছুটি
Dropout
অফিসে র্যান্ডম ছুটি
ধর তোর অফিস মতিঝিলে। ১০ জন employee আছে। Boss একটা নিয়ম করল — প্রতিদিন random ৩ জন ছুটি পাইব। আজকে রহিম, করিম, জামাল ছুটিতে। কাল হয়তো সালমা, নাহিদ, ফারুক। এইটা শুনে সবাই panic করল — 'আমি ছুটিতে থাকলে আমার কাজ কে করবে?' তাই প্রত্যেকে নিজের কাজ ছাড়াও পাশের জনের কাজও শিখে রাখল। ফলে কেউ absent থাকলেও অফিস চলে!
Neural network-এও same জিনিস! Training-এর সময় random neurons off করে দেওয়াই Dropout। গুরু বলে — 'Dropout হইল neurons-দের র্যান্ডম ছুটি — এইতে কেউ একজনের উপর depend করে না, সবাই নিজে নিজে শিখে। ফলে overfitting কমে!'
সংজ্ঞা
Dropout হইল একটা regularization technique যেখানে training-এর সময় প্রতিটা step-এ randomly কিছু neurons-কে zero করে দেওয়া হয় (deactivate)। এইতে network কোনো particular neuron-এর উপর over-rely করে না, ফলে overfitting কমে।
ব্যাখ্যা
Training vs Inference
Training-এ neurons randomly drop হয়। কিন্তু inference/test-এ সব neuron active থাকে — output-কে (1-p) দিয়া scale করা হয় যাতে expected value same থাকে। PyTorch-এ model.eval() দিলে auto handle করে।
কেন কাজ করে?
Dropout তিনটা কাজ করে: (1) Co-adaptation ভাঙে — neurons একা একা useful feature শেখে। (2) Ensemble effect — প্রতিটা mini-batch-এ different sub-network train হয়, test-এ সব combine হয়। (3) Noise injection — implicit data augmentation।
Dropout Rate কত হওয়া উচিত?
Hidden layers-এ p=0.5 common (50% drop)। Input layer-এ p=0.2 (20% drop)। Convolutional layers-এ Spatial Dropout use হয় — পুরা channel drop হয়। খুব বেশি dropout = underfitting, খুব কম = overfitting।
Dropout-এর Numerical Example
Hidden layer output: h = [0.5, 1.2, -0.3, 0.8, -1.0]। Dropout rate p = 0.4। একটা possible dropout mask আর output দেখাও।
Step 1: Random mask generate
p=0.4 মানে 40% neuron drop হইব। Bernoulli(0.6) mask: m = [1, 0, 1, 1, 0]
Step 2: Mask apply করো
h × m = element-wise multiply
Step 3: Scale করো (inverted dropout)
Training-এই 1/(1-p) দিয়া scale করো যাতে test-এ কিছু করতে না হয়
Dropout-এর পরে neuron 2 আর 5 off আছে (output = 0)। বাকিগুলা scaled up হইছে 1/0.6 = 1.667× দিয়া। প্রতিটা forward pass-এ different neurons off হইব — network different patterns শিখে।
ML-এ কোথায় লাগে?
মনে রাখার ট্রিক
Dropout = অফিসে র্যান্ডম ছুটি — কেউ absent থাকলেও কাজ চলে কারণ সবাই সব শিখে রাখছে। Training-এ random neurons off, test-এ সবাই active!