(वेट इनिशियलाइज़ेशन तकनीकें)
🔶 1. Weight Initialization क्या है?
📌 परिभाषा:
Weight Initialization का मतलब होता है — training शुरू करने से पहले neural network के weights को कुछ initial values देना।
अगर weights सही से initialize नहीं किए गए, तो training धीमी या पूरी तरह से fail हो सकती है — खासकर deep networks में।
🔁 2. क्यों ज़रूरी है सही initialization?
गलत Initialization | समस्या |
---|---|
सभी weights = 0 | Neurons same gradient सीखेंगे → symmetry break नहीं होगा |
बहुत छोटे weights | Gradient vanish होने लगेगा (Vanishing Gradient) |
बहुत बड़े weights | Gradient explode करने लगेगा (Exploding Gradient) |
🔧 3. Common Weight Initialization Techniques
✅ A. Zero Initialization ❌ (Not Recommended)
nn.Linear(128, 64).weight.data.fill_(0)
- Problem: All neurons learn the same thing → no learning
- Symmetry नहीं टूटता
✅ B. Random Initialization (Normal/Uniform)
nn.init.normal_(layer.weight, mean=0.0, std=1.0)
nn.init.uniform_(layer.weight, a=-0.1, b=0.1)
- Random values से symmetry टूटती है
- लेकिन deep networks में gradient vanish/explode हो सकता है
✅ C. Xavier Initialization (Glorot Initializati
nn.init.xavier_uniform_(layer.weight)
✅ D. He Initialization (Kaiming Initialization)
- Recommended for ReLU activation
- Prevents vanishing gradients with ReLU

nn.init.kaiming_normal_(layer.weight, nonlinearity='relu')
📘 PyTorch Implementation
import torch.nn as nn
layer = nn.Linear(128, 64)
# Xavier Init
nn.init.xavier_uniform_(layer.weight)
# He Init (for ReLU)
nn.init.kaiming_normal_(layer.weight, nonlinearity='relu')
📈 Comparison Table:
Method | Suitable For | Keeps Variance | Recommended |
---|---|---|---|
Zero | Never | ❌ | ❌ |
Random | Shallow nets | ❌ | ⚠ |
Xavier | Sigmoid/Tanh | ✅ | ✅ |
He | ReLU | ✅ | ✅✅✅ |
🧠 Real-World Tip:
Deep networks trained with improper initialization often show:
- No learning (loss flat रहता है)
- NaN losses (gradient explode करता है)
- Poor accuracy (early layers freeze हो जाते हैं)
📝 Practice Questions:
- Weight Initialization क्यों ज़रूरी है?
- Xavier Initialization किस प्रकार के activation functions के लिए उपयुक्त है?
- He Initialization में variance कैसे decide होता है?
- Zero initialization क्यों fail हो जाता है?
- PyTorch में He initialization कैसे implement करते हैं?
🎯 Summary:
Concept | Explanation |
---|---|
Initialization | Training से पहले weights की setting |
Xavier | Sigmoid/Tanh के लिए best |
He | ReLU के लिए best |
Zero | Use नहीं करना चाहिए |