Loss Functions and Optimization

(हानि फलन और अनुकूलन विधियाँ)


🔷 1. Loss Function (हानि फलन) क्या है?

Loss function यह मापता है कि आपके मॉडल की prediction असली output से कितनी दूर है।

🔁 Role in Training:

  • Prediction → Loss Function → Error → Backpropagation → Weight Update

📌 कार्य:

Stepकार्य
PredictionOutput generate करना
Lossगलती मापना
BackpropagationGradient निकालना
OptimizerWeights update करना

🔹 2. Loss Function के प्रकार

🔸 A. Regression Problems के लिए:

✅ Mean Squared Error (MSE):

  • Continuous values के लिए
  • Output को penalize करता है अगर prediction और label का अंतर बड़ा हो

✅ Mean Absolute Error (MAE):

  • Outliers से कम प्रभावित

🔸 B. Classification Problems के लिए:

✅ Binary Cross Entropy:

L=−[ylog⁡(p)+(1−y)log⁡(1−p)]

  • Binary classification के लिए
  • Sigmoid + BCELoss

✅ Categorical Cross Entropy:

  • Multi-class classification
  • Softmax + CrossEntropyLoss

💻 PyTorch Examples:

import torch
import torch.nn as nn

# MSE Loss
mse_loss = nn.MSELoss()
pred = torch.tensor([2.5])
target = torch.tensor([3.0])
print("MSE:", mse_loss(pred, target).item())

# Binary Cross Entropy
bce_loss = nn.BCELoss()
pred = torch.tensor([0.9])
target = torch.tensor([1.0])
print("BCE:", bce_loss(pred, target).item())

🔧 3. Optimization (अनुकूलन)

Optimizer वह algorithm है जो model के weights को loss minimize करने के लिए update करता है।


🔸 4. Common Optimization Algorithms

OptimizerDescription
SGDSimple gradient descent
MomentumAdds momentum to SGD updates
RMSPropAdaptive learning rate, good for RNN
AdamAdaptive + Momentum = Most widely used

🔁 Gradient Descent Update Rule:

जहाँ:

  • η: Learning rate
  • ∂L/∂w: Gradient of loss w.r.t. weights

⚠️ Learning Rate की भूमिका:

Learning Rateपरिणाम
बहुत छोटाSlow training
बहुत बड़ाOvershooting, unstable
सहीFast & stable convergence

💻 PyTorch में Optimizer:

import torch.optim as optim

model = torch.nn.Linear(1, 1)
optimizer = optim.Adam(model.parameters(), lr=0.01)

# Example training step:
loss = torch.tensor(0.5, requires_grad=True)
loss.backward()
optimizer.step()
optimizer.zero_grad()

🎯 Objectives Summary

  • Loss function prediction error को मापता है
  • Optimizers gradients का उपयोग कर weights को update करते हैं
  • PyTorch में loss + optimizer combo सबसे जरूरी सेटअप है

📝 अभ्यास प्रश्न (Practice Questions)

  1. Loss Function और Optimizer में क्या अंतर है?
  2. MSE और MAE में क्या अंतर है?
  3. Binary Cross-Entropy का फॉर्मूला लिखिए
  4. Adam Optimizer कैसे काम करता है?
  5. नीचे दिए गए कोड का output क्या होगा?

loss = torch.tensor(1.0, requires_grad=True) loss.backward() print(loss.grad)