Vanishing and Exploding Gradients

(рдШрдЯрддреЗ рдФрд░ рдлреВрдЯрддреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯреНрд╕ рдХреА рд╕рдорд╕реНрдпрд╛)


ЁЯФ╢ 1. Problem Statement:

рдЬрдм DNN рдХреЛ train рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (backpropagation рдХреЗ рдЬрд╝рд░рд┐рдП), рддреЛ gradients рдХреЛ layers рдХреЗ рдмреАрдЪ backward propagate рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЧрд╣рд░реА networks рдореЗрдВ, рдпреЗ gradients:

  • рдмрд╣реБрдд рдЫреЛрдЯреЗ (near-zero) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ тЖТ Vanishing Gradients
  • рдмрд╣реБрдд рдмрдбрд╝реЗ (extremely high) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ тЖТ Exploding Gradients

ЁЯФ╖ 2. Vanishing Gradient Problem

ЁЯУМ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

Gradient values рдЗрддрдиреА рдЫреЛрдЯреА рд╣реЛ рдЬрд╛рддреА рд╣реИрдВ рдХрд┐ weights effectively update рд╣реА рдирд╣реАрдВ рд╣реЛ рдкрд╛рддреЗред
Training slow рдпрд╛ completely stuck рд╣реЛ рдЬрд╛рддреА рд╣реИред


тЭЧ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ?

  • рдЬрдм activation functions (рдЬреИрд╕реЗ Sigmoid рдпрд╛ Tanh) рдХреЗ derivatives рд╣рдореЗрд╢рд╛ < 1 рд╣реЛрддреЗ рд╣реИрдВ
  • рдФрд░ рдмрд╣реБрдд рд╕реА layers multiply рд╣реЛрддреА рд╣реИрдВ:

ЁЯза Impact:

  • Deep layers almost learn nothing
  • Early layers freeze
  • Training fails

ЁЯФ╖ 3. Exploding Gradient Problem

ЁЯУМ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

Gradients рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдмрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
тЖТ Weights extremely large
тЖТ Model becomes unstable
тЖТ Loss: NaN рдпрд╛ infinity


тЭЧ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ?

  • рдЬрдм weight initialization рдЧрд▓рдд рд╣реЛ
  • рдпрд╛ large derivatives repeatedly multiply рд╣реЛрддреЗ рд╣реИрдВ

ЁЯза Impact:

  • Loss suddenly рдмрд╣реБрдд рдмрдбрд╝рд╛
  • Model unstable
  • Numerical overflow

ЁЯФБ 4. Visual Representation:

тЭМ Vanishing Gradient:

Layer 1 тЖР 0.0003
Layer 2 тЖР 0.0008
Layer 3 тЖР 0.0011
...
Final layers learn nothing

тЭМ Exploding Gradient:

Layer 1 тЖР 8000.2
Layer 2 тЖР 40000.9
Layer 3 тЖР 90000.1
...
Loss becomes NaN

тЬЕ 5. Solutions and Fixes

ProblemSolution
Vanishing GradientReLU Activation Function
He Initialization (weights)
Batch Normalization
Residual Connections (ResNet)
Exploding GradientGradient Clipping
Proper Initialization
Lower Learning Rate

тЬФ Recommended Practices:

  • Use ReLU instead of Sigmoid/Tanh
  • Initialize weights with Xavier or He initialization
  • Add BatchNorm after layers
  • Use gradient clipping in training loop:
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)

ЁЯФз PyTorch Example (Gradient Clipping):

loss.backward()
torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=1.0)
optimizer.step()

ЁЯУИ Summary:

IssueCauseEffectFix
VanishingSmall gradients in deep layersNo learningReLU, He init, BatchNorm
ExplodingLarge gradientsNaN lossGradient clipping, Proper init

ЁЯУЭ Practice Questions:

  1. Vanishing Gradient рдХреНрдпрд╛ рд╣реИ? рдЗрд╕реЗ рдХреИрд╕реЗ рдкрд╣рдЪрд╛рдиреЗрдВрдЧреЗ?
  2. Exploding Gradient рд╕реЗ model рдкрд░ рдХреНрдпрд╛ рдЕрд╕рд░ рдкрдбрд╝рддрд╛ рд╣реИ?
  3. Activation functions gradients рдХреЛ рдХреИрд╕реЗ affect рдХрд░рддреЗ рд╣реИрдВ?
  4. Gradient Clipping рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реЛрддрд╛ рд╣реИ?
  5. Batch Normalization рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдХрдо рдХрд░рддрд╛ рд╣реИ?

Deep Neural Networks (DNN)

(рдбреАрдк рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХреНрд╕)


ЁЯФ╢ 1. What is a Deep Neural Network?

ЁЯУМ рдкрд░рд┐рднрд╛рд╖рд╛:

Deep Neural Network (DNN) рдПрдХ рдРрд╕рд╛ artificial neural network рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ hidden layers рд╣реЛрддреЗ рд╣реИрдВред

ЁЯСЙ рдпрд╣ shallow network (рдЬреИрд╕реЗ simple MLP рдЬрд┐рд╕рдореЗрдВ 1 hidden layer рд╣реЛ) рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ “depth” рд╣реЛрддреА рд╣реИ тАФ рдпрд╛рдиреА рдХрдИ layers рдЬреЛ input рд╕реЗ output рддрдХ data рдХреЛ progressively abstract рдХрд░рддреА рд╣реИрдВред


ЁЯза Structure of a DNN:

Input Layer тЖТ Hidden Layer 1 тЖТ Hidden Layer 2 тЖТ ... тЖТ Hidden Layer N тЖТ Output Layer
  • рд╣рд░ layer neurons рдХрд╛ group рд╣реЛрддрд╛ рд╣реИ
  • Each neuron applies:

z=wтЛЕx+b, a=f(z)

рдЬрд╣рд╛рдБ f рдХреЛрдИ activation function рд╣реЛрддрд╛ рд╣реИ


ЁЯУК Example:

рдорд╛рди рд▓реАрдЬрд┐рдП рдПрдХ DNN рдЬрд┐рд╕рдореЗрдВ:

  • Input Layer: 784 nodes (28×28 image pixels)
  • Hidden Layer 1: 512 neurons
  • Hidden Layer 2: 256 neurons
  • Output Layer: 10 neurons (digits 0тАУ9 classification)

ЁЯФ╖ 2. Why Use Deep Networks?

тЭУ рдХреНрдпреЛрдВ shallow networks рдХрд╛рдлреА рдирд╣реАрдВ рд╣реЛрддреЗ?

  • Shallow networks simple problems рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИрдВ
  • рд▓реЗрдХрд┐рди complex tasks (рдЬреИрд╕реЗ image recognition, NLP, audio classification) рдореЗрдВ input-output relationship рдмрд╣реБрдд nonlinear рд╣реЛрддреА рд╣реИ

тЬЕ Deep networks:

  • High-level features рдХреЛ automatically extract рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • Abstractions рдХреЛ hierarchy рдореЗрдВ capture рдХрд░рддреЗ рд╣реИрдВ

ЁЯза Hierarchical Feature Learning:

LayerLearns
Layer 1Edges, curves
Layer 2Shapes, textures
Layer 3Objects, faces

ЁЯФ╢ DNN рдХреА Architecture рдХреНрдпрд╛ рд╣реЛрддреА рд╣реИ?

Architecture рдХрд╛ рдорддрд▓рдм рд╣реЛрддрд╛ рд╣реИ рдХрд┐ DNN рдореЗрдВ рдХрд┐рддрдиреА layers рд╣реИрдВ, рд╣рд░ layer рдореЗрдВ рдХрд┐рддрдиреЗ neurons рд╣реИрдВ, activation functions рдХреНрдпрд╛ рд╣реИрдВ, рдФрд░ input-output data рдХрд╛ flow рдХреИрд╕рд╛ рд╣реИред


ЁЯУК High-Level Structure:

Input Layer тЖТ Hidden Layer 1 тЖТ Hidden Layer 2 тЖТ ... тЖТ Output Layer

рд╣рд░ layer рджреЛ рдЪреАрдЬрд╝реЗрдВ рдХрд░рддреА рд╣реИ:

  1. Linear Transformation z=WтЛЕx+b
  2. Activation Function a=f(z)

ЁЯФ╖ 2. Components of a DNN Architecture

ComponentDescription
Input LayerRaw input data (e.g., image pixels, features)
Hidden LayersIntermediate processing layers (more = more depth)
Output LayerFinal predictions (e.g., class scores)
Weights & BiasesParameters learned during training
Activation FunctionsAdds non-linearity (ReLU, Sigmoid, etc.)
Loss FunctionMeasures prediction error
OptimizerUpdates weights using gradients (SGD, Adam)

ЁЯза Typical Architecture Example (MNIST Digits):

Layer TypeShapeNotes
Input(784,)28├Ч28 image flattened
Dense 1(784 тЖТ 512)Hidden Layer 1 + ReLU
Dense 2(512 тЖТ 256)Hidden Layer 2 + ReLU
Output(256 тЖТ 10)Digit prediction + Softmax

ЁЯзо 3. Mathematical View


ЁЯФз 4. PyTorch Code: Custom DNN Architecture

import torch.nn as nn

class DNN(nn.Module):
def __init__(self):
super(DNN, self).__init__()
self.net = nn.Sequential(
nn.Linear(784, 512), # Input to Hidden 1
nn.ReLU(),
nn.Linear(512, 256), # Hidden 1 to Hidden 2
nn.ReLU(),
nn.Linear(256, 10) # Output Layer
)

def forward(self, x):
return self.net(x)

ЁЯУИ Visualization of Architecture

[Input Layer: 784]
тЖУ
[Dense Layer: 512 + ReLU]
тЖУ
[Dense Layer: 256 + ReLU]
тЖУ
[Output Layer: 10 (classes)]

ЁЯФН Key Architecture Design Questions

  1. рдХрд┐рддрдиреА hidden layers рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП?
  2. рд╣рд░ layer рдореЗрдВ рдХрд┐рддрдиреЗ neurons?
  3. рдХреМрди рд╕рд╛ activation function рдЪреБрдирдирд╛ рд╣реИ?
  4. рдХреНрдпрд╛ dropout, batch norm рдЪрд╛рд╣рд┐рдП?
  5. Loss function рдХреМрди рд╕рд╛ рд╣реИ?

ЁЯОп Summary:

ElementRole
LayersInput тЖТ Hidden(s) тЖТ Output
ActivationNon-linearity рд▓рд╛рддреА рд╣реИ
DepthLayers рдХреА рд╕рдВрдЦреНрдпрд╛
WidthNeurons per layer
OptimizerGradient рд╕реЗ weights update рдХрд░рддрд╛ рд╣реИ

ЁЯУЭ Practice Questions:

  1. DNN рдХреА architecture рдореЗрдВ рдХреМрди-рдХреМрди рд╕реЗ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ?
  2. Hidden layers рдХрд┐рддрдиреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП тАФ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдлрд░реНрдХ рдкрдбрд╝рддрд╛ рд╣реИ?
  3. Activation function рдХрд╛ рдХреНрдпрд╛ рдорд╣рддреНрд╡ рд╣реИ architecture рдореЗрдВ?
  4. DNN architecture рдореЗрдВ overfitting рдХреИрд╕реЗ рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ?
  5. Architecture tuning рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

ЁЯФ╢ Training a DNN

ЁЯТб Standard Process:

  1. Forward Pass: Prediction generate рдХрд░рдирд╛
  2. Loss Calculation: Prediction vs ground truth
  3. Backward Pass: Gradient computation
  4. Optimizer Step: Weights update

ЁЯЪз Challenges in Training Deep Networks:

ChallengeSolution
Vanishing GradientsReLU, BatchNorm, Residual connections
OverfittingDropout, Data Augmentation
Computational CostGPU acceleration, Mini-batch training

ЁЯФз 4. PyTorch Code: Simple DNN for Classification

import torch.nn as nn

class SimpleDNN(nn.Module):
def __init__(self):
super(SimpleDNN, self).__init__()
self.model = nn.Sequential(
nn.Linear(784, 512),
nn.ReLU(),
nn.Linear(512, 256),
nn.ReLU(),
nn.Linear(256, 10)
)

def forward(self, x):
return self.model(x)

ЁЯФм 5. Applications of DNNs

DomainUse Case
Computer VisionImage classification, Object detection
NLPText classification, Sentiment analysis
HealthcareDisease prediction from X-rays
FinanceCredit scoring, Fraud detection
RoboticsSensor fusion, control systems

ЁЯУИ Summary:

TermMeaning
DNNNeural network with 2+ hidden layers
DepthRefers to number of layers
PowerLearns complex mappings from data
ChallengesVanishing gradients, Overfitting, Compute cost

ЁЯУЭ Practice Questions:

  1. DNN рдФрд░ shallow network рдореЗрдВ рдХреНрдпрд╛ рдлрд░реНрдХ рд╣реИ?
  2. DNN рдХреЗ training рдореЗрдВ рдХреМрди-рдХреМрди рд╕реА steps рд╣реЛрддреА рд╣реИрдВ?
  3. Vanishing gradient рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ solve рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?
  4. PyTorch рдореЗрдВ DNN implement рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдЗрдПред
  5. DNN рдХрд┐рди-рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

Overfitting, Underfitting and Regularization

(рдУрд╡рд░рдлрд┐рдЯрд┐рдВрдЧ, рдЕрдВрдбрд░рдлрд┐рдЯрд┐рдВрдЧ рдФрд░ рд░реЗрдЧреНрдпреБрд▓рд░рд╛рдЗрдЬреЗрд╢рди)


ЁЯФ╢ 1. Underfitting рдХреНрдпрд╛ рд╣реИ?

ЁЯУМ рдкрд░рд┐рднрд╛рд╖рд╛:

Underfitting рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм model training data рдХреЛ рднреА рд╕рд╣реА рд╕реЗ рдирд╣реАрдВ рд╕реАрдЦ рдкрд╛рддрд╛ред

ЁЯФН рд╕рдВрдХреЗрдд:

  • High training loss
  • Low accuracy (train & test рджреЛрдиреЛрдВ рдкрд░)
  • Model simple рд╣реИ рдпрд╛ data complex

ЁЯза рдХрд╛рд░рдг:

  • Model рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ
  • рдХрдо training epochs
  • Features рдЕрдЪреНрдЫреЗ рд╕реЗ represent рдирд╣реАрдВ рдХрд┐рдП рдЧрдП

ЁЯФ╢ 2. Overfitting рдХреНрдпрд╛ рд╣реИ?

ЁЯУМ рдкрд░рд┐рднрд╛рд╖рд╛:

Overfitting рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм model training data рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╕реЗ рдпрд╛рдж рдХрд░ рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди test data рдкрд░ fail рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

ЁЯФН рд╕рдВрдХреЗрдд:

  • Training loss рдмрд╣реБрдд low
  • Test loss рдмрд╣реБрдд high
  • Accuracy train рдкрд░ high, test рдкрд░ low

ЁЯза рдХрд╛рд░рдг:

  • Model рдмрд╣реБрдд complex рд╣реИ (рдмрд╣реБрдд рд╕рд╛рд░реЗ parameters)
  • рдХрдо data
  • рдЬрд╝реНрдпрд╛рджрд╛ epochs
  • Noise рдХреЛ рднреА рд╕реАрдЦ рд▓рд┐рдпрд╛ model рдиреЗ

ЁЯУИ Summary Table:

TypeTrain AccuracyTest AccuracyError
UnderfittingLowLowHigh Bias
OverfittingHighLowHigh Variance
Just RightHighHighLow Bias & Variance

ЁЯФз 3. Regularization Techniques

ЁЯФ╖ Purpose:

Regularization techniques model рдХреЛ generalize рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ тАФ рдпрд╛рдиреА unseen (test) data рдкрд░ рдмреЗрд╣рддрд░ perform рдХрд░рдирд╛ред


ЁЯУМ Common Regularization Methods:

тЬЕ A. L1 & L2 Regularization:

optimizer = torch.optim.SGD(model.parameters(), lr=0.01, weight_decay=0.001)  # L2

тЬЕ B. Dropout:

  • рдХреБрдЫ neurons рдХреЛ randomly deactivate рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ training рдХреЗ рджреМрд░рд╛рди
  • рдЗрд╕рд╕реЗ model рд╕рднреА features рдкрд░ рдЬрд╝рд░реВрд░рдд рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛
nn.Dropout(p=0.5)

тЬЕ C. Early Stopping:

  • рдЬреИрд╕реЗ рд╣реА validation loss рдмрдврд╝рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдП тАФ training рд░реЛрдХ рджреА рдЬрд╛рддреА рд╣реИ
  • рдЗрд╕рд╕реЗ overfitting рд░реЛрдХрд╛ рдЬрд╛рддрд╛ рд╣реИ

тЬЕ D. Data Augmentation:

  • Image, text, рдпрд╛ audio data рдХреЛ рдереЛрдбрд╝рд╛ modify рдХрд░рдХреЗ training set рдХреЛ рдмрдбрд╝рд╛ рдмрдирд╛рдирд╛
  • рдЗрд╕рд╕реЗ model рдХреЛ general patterns рд╕реАрдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИ

тЬЕ E. Batch Normalization:

nn.BatchNorm1d(num_features)

ЁЯФБ PyTorch Example with Dropout:

import torch.nn as nn

model = nn.Sequential(
nn.Linear(100, 50),
nn.ReLU(),
nn.Dropout(p=0.5),
nn.Linear(50, 10)
)

ЁЯза Diagnostic Plot:

Epochs тЖТЁЯУЙ Train LossЁЯУИ Test Loss
1тАУ5High тЖТ LowHigh тЖТ Low
6тАУ20LowStarts rising тЖТ Overfitting starts

ЁЯОп Summary:

ConceptDefinitionSolution
UnderfittingModel рдХрдо рд╕реАрдЦрддрд╛ рд╣реИBigger model, more training
OverfittingModel рдмрд╣реБрдд рдЬрд╝реНрдпрд╛рджрд╛ рд╕реАрдЦ рд▓реЗрддрд╛ рд╣реИRegularization
RegularizationGeneralization рд╕реБрдзрд╛рд░рдиреЗ рдХреА рддрдХрдиреАрдХDropout, L2, Data Augmentation

ЁЯУЭ Practice Questions:

  1. Underfitting рдФрд░ Overfitting рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  2. Dropout рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
  3. L2 Regularization рдХрд╛ loss function рдореЗрдВ рдХреНрдпрд╛ рдпреЛрдЧрджрд╛рди рд╣реИ?
  4. Early stopping рдХреНрдпреЛрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
  5. Data augmentation overfitting рд╕реЗ рдХреИрд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ?


Learning Rate, Epochs, Batches

(рд▓рд░реНрдирд┐рдВрдЧ рд░реЗрдЯ, рдПрдкреЙрдХреНрд╕, рдФрд░ рдмреИрдЪреЗрд╕)


ЁЯФ╢ 1. Learning Rate (рд╕реАрдЦрдиреЗ рдХреА рд░рдлрд╝реНрддрд╛рд░)

ЁЯУМ Definition:

Learning Rate (╬╖) рдПрдХ hyperparameter рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ training рдХреЗ рджреМрд░рд╛рди weights рдХрд┐рддрдиреА рддреЗрдЬрд╝реА рд╕реЗ update рд╣реЛрдВред

рдпрд╣ Gradient Descent рдХреЗ update rule рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ:


ЁЯОп Learning Rate рдХреА рднреВрдорд┐рдХрд╛:

ValueEffect
рдмрд╣реБрдд рдЫреЛрдЯрд╛ (<0.0001)Slow learning, stuck in local minima
рдмрд╣реБрдд рдмрдбрд╝рд╛ (>1.0)Overshooting, unstable training
рд╕рд╣реА рдордзреНрдпрдоSmooth convergence to minimum loss

ЁЯУИ Visual Explanation:

  • Low LR: рдзреАрд░реЗ-рдзреАрд░реЗ valley рдореЗрдВ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ
  • High LR: рдЖрдЧреЗ-рдкреАрдЫреЗ рдХреВрджрддрд╛ рд░рд╣рддрд╛ рд╣реИ, valley рдорд┐рд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ
  • Ideal LR: рд╕реАрдзреЗ valley рдореЗрдВ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ

ЁЯУШ PyTorch рдореЗрдВ Learning Rate:

optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

ЁЯФ╢ 2. Epochs (Training Iterations over Dataset)

ЁЯУМ Definition:

Epoch рдПрдХ cycle рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреВрд░рд╛ training dataset once neural network рдореЗрдВ pass рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ тАФ forward + backward pass рджреЛрдиреЛрдВред

рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ 1000 images рд╣реИрдВ рдФрд░ рдЖрдкрдиреЗ 10 epochs рдЪрд▓рд╛рдП, рддреЛ model рдиреЗ dataset рдХреЛ 10 рдмрд╛рд░ рджреЗрдЦрд╛ред


ЁЯОп рдЕрдзрд┐рдХ Epochs рдХрд╛ рдорддрд▓рдм:

  • Model рдХреЛ рд╕реАрдЦрдиреЗ рдХрд╛ рдЬреНрдпрд╛рджрд╛ рдореМрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИ
  • рд▓реЗрдХрд┐рди overfitting рдХрд╛ рдЦрддрд░рд╛ рдмрдврд╝рддрд╛ рд╣реИ

ЁЯФ╢ 3. Batches рдФрд░ Batch Size

ЁЯУМ Batch:

Dataset рдХреЛ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ рдЯреБрдХрдбрд╝реЛрдВ (chunks) рдореЗрдВ divide рдХрд░рдХреЗ training рдХрд░рдирд╛ batch training рдХрд╣рд▓рд╛рддрд╛ рд╣реИред

рд╣рд░ batch рдкрд░ forward рдФрд░ backward pass рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

  • Batch Size: рдХрд┐рддрдиреЗ samples рдПрдХ рд╕рд╛рде process рд╣реЛрдВрдЧреЗ
  • Common sizes: 8, 16, 32, 64, 128

ЁЯОп Why Use Batches?

AdvantageExplanation
Memory EfficientрдкреВрд░рд╛ dataset memory рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ
Faster ComputationGPU рдкрд░ vectorized рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ
Noise helps generalizationStochastic updates model рдХреЛ overfitting рд╕реЗ рдмрдЪрд╛рддреЗ рд╣реИрдВ

ЁЯФБ Relationship Between All Three:

ConceptDefinition
EpochOne full pass over the entire dataset
Batch SizeNumber of samples processed at once
IterationOne update step = One batch

Example:

  • Dataset size = 1000
  • Batch size = 100
  • Then, 1 epoch = 10 iterations
  • If we train for 10 epochs тЖТ total 100 iterations

ЁЯФз PyTorch Code:

from torch.utils.data import DataLoader, TensorDataset
import torch

# Dummy data
X = torch.randn(1000, 10)
y = torch.randint(0, 2, (1000, 1)).float()
dataset = TensorDataset(X, y)

# DataLoader with batch size
dataloader = DataLoader(dataset, batch_size=64, shuffle=True)

# Training loop
for epoch in range(5): # 5 epochs
for batch_x, batch_y in dataloader:
# Forward pass, loss calculation, backward, step
...

ЁЯУЭ Summary Table:

TermMeaningTypical Value
Learning RateStep size for weight updates0.001 тАУ 0.01
EpochOne full pass over dataset10 тАУ 100
Batch SizeSamples per update32, 64, 128
IterationOne weight update stepdataset_size / batch_size

ЁЯОп Objectives Recap:

  • Learning Rate = Weights рдХрд┐рддрдирд╛ move рдХрд░реЗрдВ
  • Epoch = Dataset рдХрд┐рддрдиреА рдмрд╛рд░ pass рд╣реЛ
  • Batch Size = рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрд┐рддрдиреЗ samples process рд╣реЛрдВ
  • рдЗрди рддреАрдиреЛрдВ рдХрд╛ tuning model performance рдХреЗ рд▓рд┐рдП critical рд╣реИ

ЁЯУЭ Practice Questions:

  1. Learning Rate рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рдо рдХреНрдпрд╛ рд╣реИ?
  2. Batch Size рдФрд░ Iteration рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ?
  3. Overfitting рдХрд╛ рдЦрддрд░рд╛ рдХрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИ: рдХрдо epochs рдпрд╛ рдЬрд╝реНрдпрд╛рджрд╛ epochs?
  4. PyTorch рдореЗрдВ DataLoader рдХрд╛ рдХреНрдпрд╛ рдХрд╛рдо рд╣реИ?
  5. Batch training рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЬрд╝рд░реВрд░реА рд╣реЛрддрд╛ рд╣реИ?

Back Propagation :Backward Pass (Gradient Descent)

Backward Pass (Gradient Descent)

(рдмреИрдХрд╡рд░реНрдб рдкрд╛рд╕ рдФрд░ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдбрд┐рд╕реЗрдВрдЯ)


ЁЯФ╢ 1. Backward Pass рдХреНрдпрд╛ рд╣реИ?

Backward Pass (рдпрд╛ Backpropagation) рдПрдХ рдРрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ neural network рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдЧрд▓рддреА (loss) рдХреЛ input рдХреА рджрд┐рд╢рд╛ рдореЗрдВ “рд╡рд╛рдкрд╕” propagate рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ тАФ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ network рдХреА рдХрд┐рд╕ weight рдиреЗ рдХрд┐рддрдиреА рдЧрд▓рддреА рдХреАред

рдпрд╣ gradient information рддрдм use рд╣реЛрддреА рд╣реИ weights рдХреЛ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ adjust рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ prediction рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХреЗред


ЁЯОп рдЙрджреНрджреЗрд╢реНрдп:

“Neural network рдХреА prediction рдореЗрдВ рд╣реБрдИ рдЧрд▓рддреА рдХреЛ mathematically trace рдХрд░рдХреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ model рдХреЗ рдХреМрди-рдХреМрди рд╕реЗ weights рдЗрд╕ рдЧрд▓рддреА рдХреЗ рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рдирд╛ рд╣реИред”


ЁЯФД 2. Process Overview: Forward тЖТ Loss тЖТ Backward тЖТ Update

рдкреВрд░рд╛ Training Loop:

Input тЖТ Forward Pass тЖТ Output тЖТ Loss Calculation тЖТ 
Backward Pass тЖТ Gradient Calculation тЖТ
Optimizer Step тЖТ Weight Update

ЁЯзо 3. рдЧрдгрд┐рддреАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг: Chain Rule рд╕реЗ Gradient рдирд┐рдХрд╛рд▓рдирд╛

рдорд╛рди рд▓реАрдЬрд┐рдП:

  • y=f(x)
  • L=Loss(y,y^)

рддреЛ:

тАЛ

рдЬрд╣рд╛рдБ:

  • w: model parameter (weight)
  • z=wтЛЕx+b
  • y=f(z) (activation function)

рдпрд╣рд╛рдБ рд╣рдо chain rule рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ neuron рд╕реЗ рдЕрдЧрд▓реЗ neuron рддрдХ derivative propagate рдХрд░рддреЗ рд╣реИрдВ тАФ рдпрд╣реА рдХрд╣рд▓рд╛рддрд╛ рд╣реИ backpropagation.


ЁЯУШ 4. Gradient Descent: Training рдХреА Core Algorithm

Weight Update Rule:

рдЬрд╣рд╛рдБ:

  • ╬╖: learning rate (рд╕реАрдЦрдиреЗ рдХреА рд░рдлрд╝реНрддрд╛рд░)
  • тИВL/тИВw: loss рдХрд╛ gradient рдЙрд╕ weight рдХреЗ respect рдореЗрдВ
  • рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ weight рдХреЛ рдХрд┐рд╕ рджрд┐рд╢рд╛ рдФрд░ рдорд╛рддреНрд░рд╛ рдореЗрдВ adjust рдХрд░рдирд╛ рд╣реИ

тЪая╕П рдпрджрд┐ Learning Rate рдмрд╣реБрдд рдмрдбрд╝реА рд╣реЛ:

  • Model overshoot рдХрд░ рдЬрд╛рддрд╛ рд╣реИ
  • Training unstable рд╣реЛ рдЬрд╛рддреА рд╣реИ

тЪая╕П рдпрджрд┐ рдмрд╣реБрдд рдЫреЛрдЯреА рд╣реЛ:

  • Model рдмрд╣реБрдд рдзреАрд░реЗ рд╕реАрдЦрддрд╛ рд╣реИ
  • Local minima рдореЗрдВ рдЕрдЯрдХ рд╕рдХрддрд╛ рд╣реИ

ЁЯФз 5. PyTorch Implementation Example:

import torch
import torch.nn as nn
import torch.optim as optim

# Model
model = nn.Sequential(
nn.Linear(2, 3),
nn.ReLU(),
nn.Linear(3, 1),
nn.Sigmoid()
)

# Data
x = torch.tensor([[1.0, 2.0]])
y = torch.tensor([[0.0]])

# Loss and Optimizer
criterion = nn.BCELoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)

# ----------- Training Step ------------
# Step 1: Forward Pass
y_pred = model(x)

# Step 2: Loss Calculation
loss = criterion(y_pred, y)

# Step 3: Backward Pass
optimizer.zero_grad() # Clear old gradients
loss.backward() # Backpropagate
optimizer.step() # Update weights

ЁЯза 6. Visual Explanation:

Training Flowchart:

          Prediction
тЖС
Forward Pass
тЖУ
Loss Calculation
тЖУ
Backward Pass
тЖУ
Gradient w.r.t. Weights
тЖУ
Optimizer Step
тЖУ
Weights Updated

ЁЯФН 7. Roles of Key PyTorch Methods:

MethodPurpose
loss.backward()Gradient calculate рдХрд░рддрд╛ рд╣реИ loss рд╕реЗ рд╕рднреА weights рддрдХ
optimizer.step()Calculated gradients рдХреЛ use рдХрд░рдХреЗ weights update рдХрд░рддрд╛ рд╣реИ
optimizer.zero_grad()рдкреБрд░рд╛рдиреЗ gradients рдХреЛ clear рдХрд░рддрд╛ рд╣реИ

ЁЯТб рдЙрджрд╛рд╣рд░рдг: Gradient рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдорд╛рди рд▓реАрдЬрд┐рдП model рдиреЗ y^=0.8 predict рдХрд┐рдпрд╛ рдФрд░ true label рдерд╛ y=1, рддреЛ loss рд╣реЛрдЧрд╛: L=(yтИТy^)2=(1тИТ0.8)2=0.04

рдЗрд╕рдХрд╛ gradient: dL/ dy =2(y^тИТy)=2(0.8тИТ1)=тИТ0.4

рдпрд╣ negative gradient рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ prediction рдХрдо рдерд╛, weight рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред


ЁЯУЭ рдЕрднреНрдпрд╛рд╕ рдкреНрд░рд╢реНрди (Practice Questions):

  1. Backward Pass рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ neural network рдореЗрдВ?
  2. Gradient Descent рдХрд╛ update rule рд▓рд┐рдЦрд┐рдП
  3. PyTorch рдореЗрдВ loss.backward() рдХрд┐рд╕рдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
  4. Chain Rule рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ backpropagation рдореЗрдВ?
  5. Learning Rate рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рд╕реЗ рдХреНрдпрд╛ рдЦрддрд░рд╛ рд╣реЛрддрд╛ рд╣реИ?

ЁЯОп Objectives Recap:

  • Backward Pass = Loss рд╕реЗ gradient рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛
  • Gradient Descent = Weights update рдХрд░рдиреЗ рдХреА рддрдХрдиреАрдХ
  • Chain Rule = Gradient рдХреЛ propagate рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд╛рд░
  • PyTorch рдиреЗ рдЗрд╕ рдкреВрд░реЗ process рдХреЛ automate рдХрд┐рдпрд╛ рд╣реИ