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 рдХрд┐рдпрд╛ рд╣реИ

Backpropagation and Training ,Forward Pass and Loss Calculation

(рдмреИрдХрдкреНрд░реЛрдкреЗрдЧреЗрд╢рди рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛)


ЁЯФ╖ 1. Introduction (рдкрд░рд┐рдЪрдп)

Backpropagation = тАЬBackwards propagation of errorsтАЭ
рдпрд╣ рдПрдХ algorithm рд╣реИ рдЬреЛ Neural Network рдХреЗ weights рдХреЛ loss function рдХреЗ рдЖрдзрд╛рд░ рдкрд░ update рдХрд░рддрд╛ рд╣реИред


ЁЯФБ 2. Training рдХрд╛ рдкреВрд░рд╛ Flow

  1. Forward Pass:
    Input тЖТ Hidden тЖТ Output
    (Prediction generate рд╣реЛрддрд╛ рд╣реИ)
  2. Loss Calculation:
    Prediction рдФрд░ Ground Truth рдХреЗ рдмреАрдЪ Loss рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИ
  3. Backward Pass (Backpropagation):
    Loss рдХрд╛ Gradient calculate рд╣реЛрддрд╛ рд╣реИ рд╣рд░ weight рдХреЗ рд▓рд┐рдП
  4. Weight Update (Optimizer):
    Gradient Descent рджреНрд╡рд╛рд░рд╛ Weights рдХреЛ update рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  5. Repeat for Epochs:
    рдЬрдм рддрдХ model рд╕рдЯреАрдХ prediction рди рдХрд░рдиреЗ рд▓рдЧреЗ

ЁЯФз 3. Backpropagation: рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

Backpropagation рдПрдХ mathematical tool рд╣реИ рдЬреЛ Chain Rule of Calculus рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

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

  • L: Loss
  • y: Prediction
  • z: Neuron input
  • w: Weight

ЁЯза Visual Diagram (Flowchart):

Input тЖТ Hidden тЖТ Output тЖТ Loss
тЖС
Backpropagate Gradient
тЖУ
Update Weights (via Optimizer)

ЁЯТ╗ PyTorch рдореЗрдВ Training Code (Simple)

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

# Simple Model
model = nn.Linear(1, 1)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

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

# Training Loop
for epoch in range(10):
outputs = model(x) # Forward
loss = criterion(outputs, y) # Compute Loss

optimizer.zero_grad() # Clear gradients
loss.backward() # Backpropagation
optimizer.step() # Update weights

print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}")

ЁЯФН Important Terms Recap

TermExplanation
Forward PassPrediction рдмрдирд╛рдирд╛
LossрдЧрд▓рддреА рдорд╛рдкрдирд╛
Backward PassGradient рдирд┐рдХрд╛рд▓рдирд╛
OptimizerWeight update рдХрд░рдирд╛
EpochDataset рдкрд░ рдПрдХ complete pass

ЁЯОп Learning Objectives Summary

  • Backpropagation рд╕реАрдЦрдиреЗ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ
  • рдпрд╣ Loss function рдХреЗ gradient рдХреЗ рдЖрдзрд╛рд░ рдкрд░ weights рдХреЛ рд╕реБрдзрд╛рд░рддрд╛ рд╣реИ
  • Optimizer gradient рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ model рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ
  • рдкреВрд░рд╛ training loop PyTorch рдореЗрдВ automate рд╣реЛрддрд╛ рд╣реИ

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

  1. Backpropagation рдХрд┐рд╕ rule рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ?
  2. Forward Pass рдФрд░ Backward Pass рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  3. Loss.backward() рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?
  4. Optimizer.zero_grad() рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ?
  5. рдПрдХ training loop рдХреЗ рдЪрд╛рд░ рдореБрдЦреНрдп steps рдХреНрдпрд╛ рд╣реЛрддреЗ рд╣реИрдВ?

Forward Pass and Loss Calculation

(рдлрд╝реЙрд░рд╡рд░реНрдб рдкрд╛рд╕ рдФрд░ рд▓реЙрд╕ рдХреА рдЧрдгрдирд╛)

ЁЯФ╢ 1. Forward Pass (рдЗрдирдкреБрдЯ рд╕реЗ рдЖрдЙрдкрдЯ рддрдХ рдХреА рдпрд╛рддреНрд░рд╛)

Forward Pass рд╡рд╣ рдЪрд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ neural network рдХрд┐рд╕реА рдЗрдирдкреБрдЯ рдХреЛ рд▓реЗрдХрд░ рдЙрд╕реЗ рд╡рд┐рднрд┐рдиреНрди layers рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрдВрддрд┐рдо output (prediction) рдЙрддреНрдкрдиреНрди рд╣реЛред

ЁЯФБ Step-by-Step Process:

  1. Input Vector (x) network рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ
  2. Each Layer:
    • Performs a linear transformation

Applies an activation function

  1. Final output layer рджреЗрддрд╛ рд╣реИ prediction y^

ЁЯза Neural Network Flow:

scssCopyEditInput тЖТ Hidden Layer 1 тЖТ Hidden Layer 2 тЖТ ... тЖТ Output Layer тЖТ Prediction
  • Linear + Activation sequence рд╣рд░ layer рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ
  • Output layer рдХреА activation function task рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ (рдЬреИрд╕реЗ classification рдХреЗ рд▓рд┐рдП softmax рдпрд╛ sigmoid)

ЁЯУМ Forward Pass рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп:

  • Input features рдХреЛ progressively abstract рдХрд░рдирд╛
  • Neural network рдХреЗ current weights рд╕реЗ output generate рдХрд░рдирд╛
  • рдЗрд╕ output рдХреЛ рдЕрд╕рд▓реА label рд╕реЗ compare рдХрд░ рдкрд╛рдиреЗ рд▓рд╛рдпрдХ рдмрдирд╛рдирд╛

ЁЯФ╖ 2. Loss Calculation (Prediction рдХреА рдЧрд╝рд▓рддреА рдорд╛рдкрдирд╛)

Once prediction (y^тАЛ) is ready, it is compared to the true label (y) using a Loss Function.
Loss function рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ prediction рдХрд┐рддрдирд╛ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд╣реИред


ЁЯФв Common Loss Functions:


ЁЯФБ Loss Calculation рдХрд╛ Flow:

  1. Prediction (y^тАЛ) compute рдХрд░реЛ
  2. Ground truth label yрд╕реЗ compare рдХрд░реЛ
  3. Error calculate рдХрд░реЛ using loss function
  4. рдпрд╣реА error backpropagation рдореЗрдВ propagate рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛

ЁЯТ╗ PyTorch Example: Loss and Prediction

import torch
import torch.nn as nn

# Input and True label
x = torch.tensor([[1.0, 2.0]])
y_true = torch.tensor([[0.0]])

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

# Loss function
criterion = nn.BCELoss()

# Forward Pass
y_pred = model(x)

# Loss Calculation
loss = criterion(y_pred, y_true)

print("Prediction:", y_pred.item())
print("Loss:", loss.item())

ЁЯФБ Complete Diagram Flow:

Input тЖТ Hidden тЖТ Output тЖТ Loss
тЖС
Backpropagate Gradient
тЖУ
Update Weights (via Optimizer)

тЬЕ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ forward pass prediction рдХрд░рддрд╛ рд╣реИ, рдФрд░ loss function рдЙрд╕ prediction рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЛ рдорд╛рдкрддрд╛ рд╣реИред


ЁЯУМ Summary Table

StepDescription
Forward PassInput рдХреЛ through layers рднреЗрдЬрдирд╛
OutputPrediction generate рдХрд░рдирд╛
Loss CalculationPrediction рдФрд░ label рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдорд╛рдкрдирд╛
Next StepLoss рдХреЛ use рдХрд░рдХреЗ gradient calculate рдХрд░рдирд╛

ЁЯОп Objectives Recap:

  • Forward Pass transforms input тЖТ prediction
  • Loss function tells how wrong the prediction is
  • Loss is key for guiding weight updates

ЁЯУЭ Practice Questions:

  1. Forward Pass рдореЗрдВ рдХреМрди-рдХреМрди рд╕реА operations рд╣реЛрддреА рд╣реИрдВ?
  2. z=Wx+b рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ?
  3. Binary Classification рдХреЗ рд▓рд┐рдП рдХреМрди-рд╕рд╛ loss function рдЙрдкрдпреЛрдЧ рд╣реЛрддрд╛ рд╣реИ?
  4. Loss function рдФрд░ optimizer рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  5. PyTorch рдореЗрдВ loss calculate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди-рдХреМрди рд╕реА steps рд╣реЛрддреА рд╣реИрдВ?

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)

Activation Functions

(рд╕рдХреНрд░рд┐рдпрдг рдлрд▓рди: Sigmoid, Tanh, ReLU)


ЁЯФ╖ 1. рдкрд░рд┐рдЪрдп (Introduction)

Neural Network рдореЗрдВ Activation Function рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ neuron “active” рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВред
рдпрд╣ non-linearity рд▓рд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдореЙрдбрд▓ complex patterns рдХреЛ рд╕реАрдЦ рд╕рдХреЗред


ЁЯФ╣ 2. рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ? (Why Needed?)

рдмрд┐рдирд╛ Activation Function рдХреЗ neural network рдПрдХ simple linear model рдмрди рдЬрд╛рдПрдЧрд╛ред

ЁЯУМ With Activation Function тЖТ Deep, non-linear models
ЁЯУМ Without Activation тЖТ рд╕рд┐рд░реНрдл linear transformation


ЁЯФ╢ 3. рдореБрдЦреНрдп Activation Functions


ЁЯФ╕ A. Sigmoid Function

ЁЯУМ Output Range: (0, 1)
ЁЯУМ рдЙрдкрдпреЛрдЧ: Binary classification, Logistic regression

тЬЕ рд▓рд╛рдн:

  • Probability рдХреА рддрд░рд╣ рдЖрдЙрдЯрдкреБрдЯ рджреЗрддрд╛ рд╣реИ
  • Smooth gradient

тЭМ рдХрдореА:

  • Gradient vanishing problem
  • Output range рдЫреЛрдЯрд╛ рд╣реИ

ЁЯУИ рдЧреНрд░рд╛рдл: S-shaped (S-curve)


ЁЯФ╕ B. Tanh (Hyperbolic Tangent)

ЁЯУМ Output Range: (-1, 1)
ЁЯУМ рдЙрдкрдпреЛрдЧ: рдЬрдм input data zero-centered рд╣реЛ

тЬЕ рд▓рд╛рдн:

  • Stronger gradients than sigmoid
  • Centered at 0 тЖТ better learning

тЭМ рдХрдореА:

  • Still suffers from vanishing gradient (large input рдкрд░ gradient тЖТ 0)

ЁЯУИ рдЧреНрд░рд╛рдл: S-shaped but centered at 0


ЁЯФ╕ C. ReLU (Rectified Linear Unit)

ЁЯУМ Output Range: [0, тИЮ)
ЁЯУМ рдЙрдкрдпреЛрдЧ: Deep Networks рдореЗрдВ рд╕рдмрд╕реЗ рдЖрдо activation

тЬЕ рд▓рд╛рдн:

  • Fast computation
  • Sparse activation (only positive values pass)
  • No vanishing gradient for positive inputs

тЭМ рдХрдореА:

  • Dying ReLU Problem: negative input тЖТ always zero gradient

ЁЯУИ рдЧреНрд░рд╛рдл: 0 for x < 0, linear for x > 0


ЁЯФБ рддреБрд▓рдирд╛ рддрд╛рд▓рд┐рдХрд╛ (Comparison Table)

FeatureSigmoidTanhReLU
Output Range(0, 1)(-1, 1)[0, тИЮ)
Non-linearityтЬЕтЬЕтЬЕ
Vanishing GradientYesYesNo (partial)
SpeedSlowSlowFast
UsageBinary outputsHidden layers (earlier)Deep models (most common)

ЁЯТ╗ PyTorch Code: Activation Functions

import torch
import torch.nn.functional as F

x = torch.tensor([-2.0, 0.0, 2.0])

print("Sigmoid:", torch.sigmoid(x))
print("Tanh:", torch.tanh(x))
print("ReLU:", F.relu(x))

ЁЯОп Learning Summary (рд╕рд╛рд░рд╛рдВрд╢)

  • Sigmoid рдФрд░ Tanh smooth functions рд╣реИрдВ рд▓реЗрдХрд┐рди saturation (vanishing gradient) рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
  • ReLU simple, fast, рдФрд░ deep networks рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ
  • Hidden layers рдореЗрдВ ReLU рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп choice рд╣реИ

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

  1. Sigmoid рдФрд░ Tanh рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  2. ReLU рдХрд╛ рдЧрдгрд┐рддреАрдп рдлреЙрд░реНрдореВрд▓рд╛ рдХреНрдпрд╛ рд╣реИ?
  3. Dying ReLU problem рдХреНрдпрд╛ рд╣реИ?
  4. рдпрджрд┐ input -3 рд╣реЛ рддреЛ ReLU рдХрд╛ output рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
  5. рдиреАрдЪреЗ рджрд┐рдП рдЧрдП PyTorch рдХреЛрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдмрддрд╛рдЗрдП:

x = torch.tensor([-1.0, 0.0, 1.0]) print(torch.tanh(x))