Weight Initialization Techniques

(वेट इनिशियलाइज़ेशन तकनीकें)


🔶 1. Weight Initialization क्या है?

📌 परिभाषा:

Weight Initialization का मतलब होता है — training शुरू करने से पहले neural network के weights को कुछ initial values देना।

अगर weights सही से initialize नहीं किए गए, तो training धीमी या पूरी तरह से fail हो सकती है — खासकर deep networks में।


🔁 2. क्यों ज़रूरी है सही initialization?

गलत Initializationसमस्या
सभी weights = 0Neurons same gradient सीखेंगे → symmetry break नहीं होगा
बहुत छोटे weightsGradient vanish होने लगेगा (Vanishing Gradient)
बहुत बड़े weightsGradient 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:

MethodSuitable ForKeeps VarianceRecommended
ZeroNever
RandomShallow nets
XavierSigmoid/Tanh
HeReLU✅✅✅

🧠 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:

  1. Weight Initialization क्यों ज़रूरी है?
  2. Xavier Initialization किस प्रकार के activation functions के लिए उपयुक्त है?
  3. He Initialization में variance कैसे decide होता है?
  4. Zero initialization क्यों fail हो जाता है?
  5. PyTorch में He initialization कैसे implement करते हैं?

🎯 Summary:

ConceptExplanation
InitializationTraining से पहले weights की setting
XavierSigmoid/Tanh के लिए best
HeReLU के लिए best
ZeroUse नहीं करना चाहिए