(रीकरेंट न्यूरल नेटवर्क का परिचय)
🔶 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:
Application | Input | Output |
---|---|---|
Sentiment Analysis | Sentence | Sentiment |
Machine Translation | Sentence in English | Sentence in Hindi |
Speech Recognition | Audio Signal | Text |
Time Series Forecasting | Past values | Future 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
Problem | Reason |
---|---|
Vanishing Gradient | Long-term dependencies भूल जाते हैं |
Exploding Gradient | Gradient बहुत बढ़ जाता है |
Short Memory | केवल कुछ पिछले steps को याद रख पाता है |
👉 इसका समाधान है: LSTM और GRU (अगले topics में आएगा)
📘 Summary:

📝 Practice Questions:
- RNN किस प्रकार की समस्याओं को हल करने के लिए उपयुक्त है?
- Hidden state का क्या काम होता है RNN में?
- RNN को unroll करना क्या होता है?
- RNN के कौन-कौन से limitations हैं?
- PyTorch में एक simple RNN कैसे implement करते हैं?