Vanishing Gradient Problem in RNNs

(RNN рдореЗрдВ рд╡рд┐рд▓реБрдкреНрдд рд╣реЛрддрд╛ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ тАФ рдХрд╛рд░рдг рдФрд░ рд╕рдорд╛рдзрд╛рди)

рдЕрдм рд╣рдо RNN рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭреЗрдВрдЧреЗ тАФрдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг deep RNNs рдХреЛ train рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
ЁЯзи Vanishing Gradient Problem


ЁЯФ╢ 1. What is the Vanishing Gradient Problem?

рдЬрдм neural network рдХреЛ train рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо backpropagation through time (BPTT) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рд░ time step рдкрд░ gradient calculate рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ-рдЬреИрд╕реЗ sequence рд▓рдВрдмрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдкреАрдЫреЗ рдХреА рдУрд░ gradients propagate рдХрд░рддреЗ рд╣реИрдВ тАФ
gradient рдХрд╛ рдорд╛рди рдмрд╣реБрдд рдЫреЛрдЯрд╛ (near zero) рд╣реЛрддрд╛ рдЬрд╛рддрд╛ рд╣реИред
ЁЯСЙ рдЗрд╕реЗ рд╣реА vanishing gradient рдХрд╣рддреЗ рд╣реИрдВред


ЁЯзо 2. Technical Explanation

RNN рдореЗрдВ hidden state update рд╣реЛрддрд╛ рд╣реИ:


тЪая╕П 3. Effects of Vanishing Gradient

EffectDescription
No learningрдкреБрд░рд╛рдиреЗ inputs рд╕реЗ рдХреЛрдИ рд╕реАрдЦ рдирд╣реАрдВ рд╣реЛрддрд╛
Short memoryRNN рдХреЗрд╡рд▓ recent inputs рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
Shallow reasoningLong-term dependencies рд╕рдордЭ рдирд╣реАрдВ рдкрд╛рддрд╛
Poor performanceEspecially in long sequences (e.g. paragraph-level text)

ЁЯУЙ 4. Visualization

Imagine a gradient value like 0.8
тЖТ Backprop through 50 steps:

Gradient тЖТ 0 рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
тЖТ Model рдкреБрд░рд╛рдиреЗ рд╢рдмреНрджреЛрдВ/steps рдХреЛ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИред


ЁЯзк 5. Real-life Example

Suppose рдЖрдкрдиреЗ рдпреЗ рд╡рд╛рдХреНрдп рджрд┐рдпрд╛:

“The movie was long, but in the end, it was incredibly good.”

Prediction рдЪрд╛рд╣рд┐рдП “good” рд╢рдмреНрдж рдХреЗ рд▓рд┐рдПред

Vanilla RNN рдореЗрдВ model рд╢рд╛рдпрдж “long” рдпрд╛ “but” рдХреЛ рджреЗрдЦ рдХрд░ negative guess рдХрд░ рд▓реЗ тАФ
рдХреНрдпреЛрдВрдХрд┐ beginning рдореЗрдВ рдореМрдЬреВрдж words рдХреА рдЬрд╛рдирдХрд╛рд░реА gradient vanish рд╣реЛрдиреЗ рдХреА рд╡рдЬрд╣ рд╕реЗ рдЦреЛ рдЬрд╛рддреА рд╣реИред


ЁЯзп 6. How to Solve Vanishing Gradient?

SolutionDescription
тЬЕ LSTM (Long Short-Term Memory)Introduces gates to control memory
тЬЕ GRU (Gated Recurrent Unit)Simpler than LSTM, effective
ЁЯФБ Gradient ClippingGradient рдХреЛ limit рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
тПл ReLU ActivationsVanishing рдХрдо рд╣реЛрддреА рд╣реИ (compared to tanh)
ЁЯза Better InitializationXavier/He initialization
ЁЯз▒ Skip ConnectionsрдЬреИрд╕реЗ ResNet рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ

ЁЯза 7. Summary Table

FeatureNormal RNNLSTM/GRU
MemoryShort-term onlyLong + short term
Gradient stabilityPoorBetter
Sequence length handlingWeakStrong
ComplexityLowMedium to High

ЁЯФз PyTorch: Gradient Clipping Example

from torch.nn.utils import clip_grad_norm_

clip_grad_norm_(model.parameters(), max_norm=1.0)

ЁЯУЭ Practice Questions:

  1. Vanishing gradient рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
  2. рдпрд╣ рд╕рдорд╕реНрдпрд╛ RNN рдореЗрдВ рдХреНрдпреЛрдВ рд╣реЛрддреА рд╣реИ?
  3. рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЕрд╕рд░ рдкрдбрд╝рддрд╛ рд╣реИ model рдХреА memory рдкрд░?
  4. рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
  5. LSTM рдФрд░ GRU рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХреИрд╕реЗ рд▓рдбрд╝рддреЗ рд╣реИрдВ?

ЁЯОп Summary

ConceptExplanation
Vanishing GradientGradient рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
ResultModel рдкреБрд░рд╛рдиреА рдЬрд╛рдирдХрд╛рд░реА рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ
Main CauseLong multiplication of small numbers
SolutionsLSTM, GRU, Clipping, ReLU

RNN Structure

(RNN рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐):рдЕрдм рд╣рдо RNN рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ (Structure) рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ тАФ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ RNN рдХрд┐рд╕ рддрд░рд╣ sequential data рдХреЛ process рдХрд░рддрд╛ рд╣реИ рдФрд░ memory рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред


ЁЯФ╢ 1. Basic Idea Behind RNN

RNN рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ input sequence рдХреЗ рд╣рд░ step рдкрд░ рдПрдХ рд╣реА cell (рдпрд╛ unit) рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдЕрд▓рдЧ hidden state рдХреЗ рд╕рд╛рдеред

Structure (Unrolled):

xтВБ тФАтФАтЦ║ [RNN Cell] тФАтФАтЦ║ hтВБ  
xтВВ тФАтФАтЦ║ [RNN Cell] тФАтФАтЦ║ hтВВ
xтВГ тФАтФАтЦ║ [RNN Cell] тФАтФАтЦ║ hтВГ
(shares weights)
  • xtтАЛ: Input at time step t
  • ht: Hidden state at time step t

RNN рдореЗрдВ hidden state ht, рдкрд╣рд▓реЗ state htтИТ1тАЛ рдФрд░ рд╡рд░реНрддрдорд╛рди input xtрдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред


ЁЯза 2. Key Components of RNN

ComponentDescription
Input xtSequence рдХрд╛ current step
Hidden state htMemory representation
Weights WShared across time steps
Output ytFinal prediction (optional at each step)

ЁЯзо 3. Mathematical Equations

ЁЯФ╣ Hidden State Update:

  • ЁЯФ╣ Output (Optional):

ЁЯФД 4. Weight Sharing

RNNs рдореЗрдВ рд╣рд░ time step рдкрд░ same weights

тАЛ use рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рдореЙрдбрд▓ рдХреЛ рдмрд╣реБрдд parameter efficient рдмрдирд╛рддрд╛ рд╣реИред


ЁЯз▒ 5. RNN Cell Diagram

          x_t
тЖУ
[ Linear Layer ]
тЖУ
+ h_{t-1}
тЖУ
[ tanh Activation ]
тЖУ
h_t
тЖУ
(optional)
y_t

ЁЯФз 6. PyTorch Implementation (Simple RNN Layer)

import torch
import torch.nn as nn

rnn = nn.RNN(input_size=8, hidden_size=16, batch_first=True)

x = torch.randn(4, 10, 8) # batch of 4, sequence length 10, features=8
h0 = torch.zeros(1, 4, 16) # (num_layers, batch, hidden_size)

output, hn = rnn(x, h0)

print(output.shape) # тЖТ [4, 10, 16]
print(hn.shape) # тЖТ [1, 4, 16]

ЁЯУК 7. Variants of RNNs (рдЖрдЧреЗ рдХреЗ рдЯреЙрдкрд┐рдХреНрд╕)

VariantSpecial Feature
Vanilla RNNSimple structure (as above)
LSTMLong memory, gating mechanism
GRUEfficient, fewer gates than LSTM

ЁЯУЭ Practice Questions:

  1. RNN рдореЗрдВ hidden state рдХреНрдпрд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ?
  2. RNN рдореЗрдВ weight sharing рдХрд╛ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИ?
  3. RNN Cell рдХрд┐рд╕ рддрд░рд╣ input рдФрд░ рдкрд┐рдЫрд▓реЗ state рд╕реЗ output рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ?
  4. Mathematical formula for hth_thtтАЛ рдХреНрдпрд╛ рд╣реИ?
  5. PyTorch рдореЗрдВ RNN рдХреЗ рд▓рд┐рдП input tensor рдХрд╛ shape рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

ЁЯОп Summary

ConceptMeaning
RNN CellBasic unit that processes each time step
Hidden StateInformation summary till time t
Shared WeightsSame weights used for all time steps
ActivationUsually tanh or ReLU
OutputOptional at each step or only at the end

Sequence Data and Time-Series

(рдХреНрд░рдорд┐рдХ рдбреЗрдЯрд╛ рдФрд░ рд╕рдордп-рд╢реНрд░реГрдВрдЦрд▓рд╛)


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

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

Sequence Data рдРрд╕рд╛ data рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ values рдХрд╛ рдХреНрд░рдо (order) рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред
рд╣рд░ рдПрдХ input рдкрд┐рдЫрд▓реЗ inputs рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

ЁЯУН Examples:

  • рдПрдХ рд╡рд╛рдХреНрдп рдХреЗ рд╢рдмреНрдж (sentence)
  • рд╕рдВрдЧреАрдд рдХреЗ рд╕реБрд░
  • рдореМрд╕рдо рдХреЗ data рдореЗрдВ рддрд╛рдкрдорд╛рди
  • рдХрд┐рд╕реА рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдЦрд░реАрдж рдЗрддрд┐рд╣рд╛рд╕

ЁЯФБ “Sequence” рдХрд╛ рдЕрд░реНрде рд╣реИ тАФ ordered рдФрд░ dependent items.


ЁЯФ╢ 2. Time-Series Data рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?

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

Time-Series рдПрдХ special type рдХрд╛ sequence data рд╣реИ рдЬрд┐рд╕рдореЗрдВ observations рд╕рдордп рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рдордмрджреНрдз рд╣реЛрддреЗ рд╣реИрдВред

ЁЯУН Examples:

  • Stock prices per day/hour
  • Temperature per minute
  • Website traffic per week
  • Electricity usage per second

ЁЯФБ рдЗрд╕рдореЗрдВ рд╕рдордп (time stamp) рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред


ЁЯУК 3. Sequence vs Time-Series: Difference

FeatureSequence DataTime-Series Data
OrderImportantImportant
Time IntervalOptionalMust be fixed or known
ExamplesText, DNA, eventsTemperature, stock, traffic
GoalNext item prediction, labelingForecasting, anomaly detection

ЁЯза 4. Why RNN is Good for Sequence/Time-Series?

RNN рдПрдХ рдРрд╕рд╛ neural network рд╣реИ рдЬреЛ past context рдХреЛ memory рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ next output рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред

тЬЕ It remembers
тЬЕ It learns from history
тЬЕ It handles variable-length input


ЁЯФД 5. Use Cases of Sequence and Time-Series with RNNs:

Use CaseDescription
Language ModelingNext word prediction
Sentiment AnalysisText рдХреЛ classify рдХрд░рдирд╛
Stock Price PredictionFuture price estimation
Weather ForecastingFuture temperature/humidity
Machine TranslationSequence to sequence conversion
Activity DetectionSensor-based human activity detection

ЁЯФз 6. PyTorch Example: RNN for Time-Series Input

import torch
import torch.nn as nn

rnn = nn.RNN(input_size=1, hidden_size=20, num_layers=1, batch_first=True)

# Input: batch of 5 samples, each with 10 timesteps, each step has 1 feature
input = torch.randn(5, 10, 1)
h0 = torch.zeros(1, 5, 20)

output, hn = rnn(input, h0)
print(output.shape) # тЖТ [5, 10, 20]

ЁЯФБ 7. Time-Series Forecasting Flow:

Past Inputs (xтВБ, xтВВ, ..., xтВЬ)  
тЖУ
RNN Model
тЖУ
Predicted Output (xтВЬтВКтВБ)

Optionally: Use sliding window for training

Example: Use past 10 days’ stock prices to predict the 11th


ЁЯУИ 8. Time-Series Challenges:

ChallengeDescription
TrendLong-term increase or decrease
SeasonalityRepeating patterns (e.g. daily, yearly)
NoiseRandom fluctuations
Missing DataGaps in time
Non-StationarityChanging mean/variance over time

RNNs, LSTMs, and GRUs are commonly used to handle these!


ЁЯУЭ Practice Questions:

  1. Sequence data рдФрд░ time-series data рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  2. Time-series рдХреЛ predict рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП RNN рдХреНрдпреЛрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИ?
  3. Time-series data рдореЗрдВ рдХреМрди-рдХреМрди рд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрддреА рд╣реИрдВ?
  4. Sliding window рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
  5. PyTorch рдореЗрдВ time-series data рдХреЛ рдХреИрд╕реЗ format рдХрд░рддреЗ рд╣реИрдВ?

ЁЯОп Summary:

ConceptExplanation
Sequence DataOrdered, context-dependent data
Time-SeriesTemporal, time-dependent data
RNNLearns from previous steps
Use CasesText, sensor, finance, environment
ChallengesTrends, seasonality, missing data

Introduction to RNNs

(рд░реАрдХрд░реЗрдВрдЯ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкрд░рд┐рдЪрдп)


ЁЯФ╢ 1. What is an RNN?

RNN (Recurrent Neural Network) рдПрдХ рдРрд╕рд╛ neural network рд╣реИ рдЬреЛ input рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ sequence data рдХреЛ process рдХрд░рддрд╛ рд╣реИ, рдФрд░ past inputs рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдпрд╛рдж рд░рдЦрдХрд░ рдЕрдЧрд▓реЗ outputs рддрдп рдХрд░рддрд╛ рд╣реИред

Simple terms рдореЗрдВ:
RNNs “memory” рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рд╕реЗ рд╡реЛ time-dependent problems solve рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


ЁЯФБ 2. рдХреНрдпреЛрдВ рдЬрд╝рд░реВрд░реА рд╣реИ RNN?

Traditional Neural Networks (рдЬреИрд╕реЗ MLP рдпрд╛ CNN) рд╣рд░ input рдХреЛ independent рдорд╛рдирддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди sequential data (рдЬреИрд╕реЗ рднрд╛рд╖рд╛, рдореМрд╕рдо рдХрд╛ рдбреЗрдЯрд╛, stock prices) рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ тАФ
рдкрд╣рд▓реЗ рд╢рдмреНрдж рдпрд╛ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдЧрд▓реА рд╕реНрдерд┐рддрд┐ рдкрд░ рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред

ЁЯза RNN рдЗрд╕ dependency рдХреЛ capture рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред


ЁЯУИ 3. Examples of Sequence Tasks:

ApplicationInputOutput
Sentiment AnalysisSentenceSentiment
Machine TranslationSentence in EnglishSentence in Hindi
Speech RecognitionAudio SignalText
Time Series ForecastingPast valuesFuture value

ЁЯз▒ 4. RNN Architecture:

Basic Structure:

xтВБ тЖТ [RNN Cell] тЖТ hтВБ  
xтВВ тЖТ [RNN Cell] тЖТ hтВВ
xтВГ тЖТ [RNN Cell] тЖТ hтВГ
... and so on

рд╣рд░ step рдкрд░ output ht рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ:

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


ЁЯФБ 5. RNN Memory Concept:

RNN рдореЗрдВ hidden state hth_thtтАЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА memory рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╣рд░ рдирдП input рдХреЗ рд╕рд╛рде рдпрд╣ update рд╣реЛрддрд╛ рд╣реИ тАФ рдЬрд┐рд╕рд╕реЗ model рдХреЛ context рдпрд╛рдж рд░рд╣рддрд╛ рд╣реИред


ЁЯФД 6. Unrolling an RNN:

RNN рдХреЛ рдПрдХ loop рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ unroll рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

x1 тЖТ [ ] тЖТ h1  
x2 тЖТ [ ] тЖТ h2
x3 тЖТ [ ] тЖТ h3

тЖТ рдпрд╣ loop-based representation рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА cell рдмрд╛рд░-рдмрд╛рд░ рдЪрд▓рддрд╛ рд╣реИред


ЁЯФз 7. PyTorch Code: Basic RNN Example

import torch
import torch.nn as nn

rnn = nn.RNN(input_size=10, hidden_size=20, num_layers=1, batch_first=True)

input = torch.randn(5, 3, 10) # (batch, sequence, input_size)
h0 = torch.zeros(1, 5, 20) # (num_layers, batch, hidden_size)

output, hn = rnn(input, h0)

print(output.shape) # тЖТ [5, 3, 20]
print(hn.shape) # тЖТ [1, 5, 20]

тЪая╕П 8. Limitations of Vanilla RNN

ProblemReason
Vanishing GradientLong-term dependencies рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ
Exploding GradientGradient рдмрд╣реБрдд рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ
Short MemoryрдХреЗрд╡рд▓ рдХреБрдЫ рдкрд┐рдЫрд▓реЗ steps рдХреЛ рдпрд╛рдж рд░рдЦ рдкрд╛рддрд╛ рд╣реИ

ЁЯСЙ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ: LSTM рдФрд░ GRU (рдЕрдЧрд▓реЗ topics рдореЗрдВ рдЖрдПрдЧрд╛)


ЁЯУШ Summary:


ЁЯУЭ Practice Questions:

  1. RNN рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ?
  2. Hidden state рдХрд╛ рдХреНрдпрд╛ рдХрд╛рдо рд╣реЛрддрд╛ рд╣реИ RNN рдореЗрдВ?
  3. RNN рдХреЛ unroll рдХрд░рдирд╛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
  4. RNN рдХреЗ рдХреМрди-рдХреМрди рд╕реЗ limitations рд╣реИрдВ?
  5. PyTorch рдореЗрдВ рдПрдХ simple RNN рдХреИрд╕реЗ implement рдХрд░рддреЗ рд╣реИрдВ?


Famous CNN Architectures (LeNet, AlexNet, VGG, ResNet)


ЁЯФ╢ 1. LeNet-5 (1998) тАУ By Yann LeCun

ЁЯХ░ рд╡рд░реНрд╖: 1998
ЁЯСд Developer: Yann LeCun, L├йon Bottou, Yoshua Bengio, Patrick Haffner

ЁЯУМ рд╡рд┐рд╡рд░рдг:

LeNet-5 рдХреЛ Yann LeCun рдиреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдмреИрдВрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ ZIP code рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдпрд╣ architecture CNN рдХреА рдкрд╣рд▓реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ success story рдорд╛рдиреА рдЬрд╛рддреА рд╣реИред

ЁЯУЪ рдорд╣рддреНрд╡:

  • MNIST рдЬреИрд╕реЗ digit recognition datasets рдкрд░ рдХрд╛рдлреА рд╕рдлрд▓ рд░рд╣рд╛
  • рдкрд╣рд▓реА рдмрд╛рд░ convolution, pooling, рдФрд░ fully connected layers рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдПрдХ structure рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
  • рдпрд╣ рдХрд╛рдо Bell Labs рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

ЁЯУМ Use Case: Handwritten digit recognition (MNIST)

ЁЯз▒ Architecture:

Input: 32x32 Grayscale Image  
тЖТ Conv (6 filters, 5x5)
тЖТ Avg Pooling
тЖТ Conv (16 filters, 5x5)
тЖТ Avg Pooling
тЖТ Flatten
тЖТ FC (120)
тЖТ FC (84)
тЖТ Output (10 classes)

тЬЕ Highlights:

  • рдкрд╣рд▓реА рд╕рдлрд▓ CNN architecture
  • рдмрд╣реБрдд рдХрдо parameters
  • рдЖрдЬ рднреА MNIST рдЬреИрд╕реЗ tasks рдкрд░ рдЙрдкрдпреЛрдЧреА

ЁЯФ╢ 2. AlexNet (2012) тАУ By Alex Krizhevsky et al.

ЁЯУМ Use Case: ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

ЁЯХ░ рд╡рд░реНрд╖: 2012
ЁЯСд Developer: Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton
ЁЯПл рд╕рдВрд╕реНрдерд╛рди: University of Toronto

ЁЯУМ рд╡рд┐рд╡рд░рдг:

AlexNet рдиреЗ 2012 рдореЗрдВ ImageNet Large Scale Visual Recognition Challenge (ILSVRC) рдореЗрдВ рд╣рд┐рд╕реНрд╕рд╛ рд▓рд┐рдпрд╛ рдФрд░ рдмрд╛рдХреА рд╕рднреА models рд╕реЗ рдмрд╣реБрдд рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ тАФ 15.3% error рд╕реЗ рд╕реАрдзреЗ 10.1% рдкрд░ рдЖрдпрд╛ред

ЁЯУЪ рдорд╣рддреНрд╡:

  • Deep Learning рдХреА mainstream рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдЗрд╕реА model рд╕реЗ рд╢реБрд░реВ рд╣реБрдИ
  • First CNN рдЬрд┐рд╕рдиреЗ GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ dataset train рдХрд┐рдпрд╛
  • Introduced ReLU, Dropout, рдФрд░ Data Augmentation

ЁЯз▒ Architecture:

Input: 224x224x3 Image  
тЖТ Conv1 (96 filters, 11x11, stride 4)
тЖТ MaxPool
тЖТ Conv2 (256 filters, 5x5)
тЖТ MaxPool
тЖТ Conv3 (384 filters, 3x3)
тЖТ Conv4 (384 filters, 3x3)
тЖТ Conv5 (256 filters, 3x3)
тЖТ MaxPool
тЖТ Flatten
тЖТ FC (4096)
тЖТ FC (4096)
тЖТ FC (1000)

тЬЕ Highlights:

  • ReLU activation introduced
  • Used Dropout and Data Augmentation
  • Trained on GPU
  • Won ILSVRC 2012 with huge margin

ЁЯФ╢ 3. VGGNet (2014) тАУ By Oxford (Simonyan & Zisserman)

ЁЯУМ Use Case: ImageNet Classification

ЁЯХ░ рд╡рд░реНрд╖: 2014
ЁЯСд рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛: Karen Simonyan & Andrew Zisserman
ЁЯПл рд╕рдВрд╕реНрдерд╛рди: University of Oxford тАУ Visual Geometry Group (VGG)

ЁЯУМ рд╡рд┐рд╡рд░рдг:

VGGNet рдиреЗ convolution layers рдХреЛ рдПрдХ uniform pattern (3×3 filters) рдореЗрдВ рд░рдЦрд╛, рдЬрд┐рд╕рд╕реЗ deeper networks рдХреЛ design рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реЛ рдЧрдпрд╛ред

ЁЯУЪ рдорд╣рддреНрд╡:

  • Depth рдмрдврд╝рд╛рдиреЗ рд╕реЗ accuracy рдХреИрд╕реЗ improve рд╣реЛрддреА рд╣реИ, рдпрд╣ рджрд┐рдЦрд╛рдпрд╛
  • рдЖрдЬ рднреА рдХрдИ pre-trained models рдФрд░ transfer learning рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • VGG-16 рдФрд░ VGG-19 рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ variants рдкреНрд░рд╕рд┐рджреНрдз рд╣реИрдВ

ЁЯз▒ Architecture (VGG-16):

Input: 224x224x3  
тЖТ (Conv 3x3, 64) ├Ч2
тЖТ MaxPool
тЖТ (Conv 3x3, 128) ├Ч2
тЖТ MaxPool
тЖТ (Conv 3x3, 256) ├Ч3
тЖТ MaxPool
тЖТ (Conv 3x3, 512) ├Ч3
тЖТ MaxPool
тЖТ (Conv 3x3, 512) ├Ч3
тЖТ MaxPool
тЖТ Flatten
тЖТ FC (4096)
тЖТ FC (4096)
тЖТ FC (1000)

тЬЕ Highlights:

  • Simple, uniform design
  • Uses only 3├Ч3 convolution filters
  • Very deep (~16тАУ19 layers)
  • More accurate than AlexNet, but slower

ЁЯФ╢ 4. ResNet (2015) тАУ By Microsoft Research

ЁЯУМ Use Case: Deep classification without degradation

ЁЯХ░ рд╡рд░реНрд╖: 2015
ЁЯСд рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun
ЁЯПв рд╕рдВрд╕реНрдерд╛рди: Microsoft Research

ЁЯУМ рд╡рд┐рд╡рд░рдг:

ResNet рдиреЗ deep learning рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ тАФ Vanishing Gradient тАФ рдХреЛ solve рдХрд┐рдпрд╛, рдЬрд┐рд╕рд╕реЗ 100+ layers рд╡рд╛рд▓реЗ deep networks train рд╣реЛ рд╕рдХреЗред

ЁЯУЪ рдорд╣рддреНрд╡:

  • Introduced Residual (Skip) Connections, рдЬрд┐рд╕рд╕реЗ deep models рднреА рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВ
  • 2015 ILSVRC рдореЗрдВ 1st position рд╣рд╛рд╕рд┐рд▓ рдХреА
  • рдЖрдЬ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ deep vision models (e.g., Faster R-CNN, Mask R-CNN, ResNeXt) ResNet рдХреЗ foundation рдкрд░ рдмрдиреЗ рд╣реИрдВ

ЁЯз▒ Key Innovation: Residual Connections

Output = F(x) + x

ЁЯз▒ Architecture (ResNet-50):

  • Uses bottleneck blocks:
    • Conv1x1 тЖТ Conv3x3 тЖТ Conv1x1
    • Shortcut connections (skip layers)
  • Total ~50 layers
  • Variants: ResNet-18, 34, 50, 101, 152

тЬЕ Highlights:

  • Solves vanishing gradient problem
  • Enables very deep networks (100+ layers)
  • Won ILSVRC 2015

ЁЯУК Comparison Table:

ModelYearLayersKey FeatureUse Case
LeNet1998~7SimplicityDigit Recognition
AlexNet20128ReLU, GPU, DropoutLarge-scale image classification
VGG-16201416Uniform 3×3 filtersImageNet
ResNet-50201550Residual connectionsDeep classification

ЁЯУИ Visual Insight:

  • LeNet тЖТ Basic template
  • AlexNet тЖТ CNN popularized
  • VGG тЖТ Depth with simplicity
  • ResNet тЖТ Deepest with performance

ЁЯФз PyTorch Example: Load Pretrained ResNet

from torchvision import models

model = models.resnet50(pretrained=True)

ЁЯУЭ Practice Questions:

  1. LeNet рдФрд░ AlexNet рдореЗрдВ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ?
  2. VGG architecture рдореЗрдВ рд╕рднреА convolutions рдХрд╛ рдЖрдХрд╛рд░ 3├Ч3 рдХреНрдпреЛрдВ рд░рдЦрд╛ рдЧрдпрд╛?
  3. ResNet рдореЗрдВ residual connection рдХрд╛ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реИ?
  4. AlexNet рдХреЛ GPU рдкрд░ рдХреНрдпреЛрдВ train рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛?
  5. ResNet рдХреЛ 100+ layers рддрдХ train рдХрд░рдирд╛ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реЛ рдкрд╛рдпрд╛?

ЁЯОп Summary:

ArchitectureBest ForKey Contribution
LeNetSimple tasksCNN base design
AlexNetComplex imagesReLU, GPU training
VGGClean structureDeep with uniformity
ResNetUltra-deep netsSkip connections