పార్ట్ 52: బ్యాక్ప్రాపగేషన్ (Backpropagation) - తప్పును సరిదిద్దుకునే అద్భుత విద్య!
పోయిన పార్టులో లాస్ ఫంక్షన్ (Loss Function) ద్వారా నెట్వర్క్ ఎంత తప్పు చేసిందో తెలుసుకున్నాం కదా. తప్పు జరిగిందని తెలిశాక ఏడవకుండా, "ఆ తప్పు ఎందుకు జరిగింది? దాన్ని ఎలా సరిదిద్దుకోవాలి?" అని నెట్వర్క్ వెనక్కి వెళ్లి ఆలోచించే అద్భుతమైన ప్రక్రియే ఈ బ్యాక్ప్రాపగేషన్ (Backpropagation).
నిజం చెప్పాలంటే, డీప్ లెర్నింగ్ కి అసలైన ప్రాణం ఇదే! ఇది లేకపోతే AI కి కొత్త విషయాలు నేర్చుకునే శక్తే లేదు.
దీన్ని ఒక చిన్న కథ ద్వారా అర్థం చేసుకుందాం:
రియల్ లైఫ్ ఉదాహరణ: హోటల్లో ఉప్పగా ఉన్న సూప్!
ఒక పెద్ద హోటల్ కిచెన్ ఊహించుకోండి.
- ఫార్వర్డ్ ప్రాపగేషన్: హెల్పర్ ఉప్పు, కారం కలిపాడు -> మెయిన్ చెఫ్ సూప్ ఉడికించాడు -> వెయిటర్ తీసుకెళ్లి కస్టమర్కి ఇచ్చాడు.
- లాస్ ఫంక్షన్ (తప్పు): కస్టమర్ దాన్ని తాగి "ఇందులో ఉప్పు చాలా ఎక్కువగా ఉంది" అని తిట్టాడు (ఇదే Loss).
- బ్యాక్ప్రాపగేషన్ (దిద్దుబాటు): ఇప్పుడు మేనేజర్ ఈ తప్పును సరిదిద్దడానికి వెనక్కి (Backward) వెళ్తాడు:
- ముందుగా వెయిటర్ దగ్గరకు వెళ్లి "నీ తప్పేం లేదులే" అంటాడు.
- తర్వాత మెయిన్ చెఫ్ దగ్గరకు వెళ్లి "ఉప్పు ఎక్కువైంది, నువ్వు సరిగ్గా చెక్ చేయలేదా?" అని అడుగుతాడు.
- చివరగా హెల్పర్ దగ్గరకు వెళ్లి "నువ్వు 2 స్పూన్ల ఉప్పు వేశావు, రేపటి నుండి 1 స్పూన్ మాత్రమే వెయ్యి" అని రూల్ మారుస్తాడు.
ఇలా అవుట్పుట్ (కస్టమర్) దగ్గర మొదలై, వెనక్కి ప్రయాణిస్తూ, ఇన్పుట్ (హెల్పర్) దగ్గర ఉన్న 'ఉప్పు (Weight)' ను మార్చడాన్నే బ్యాక్ప్రాపగేషన్ అంటారు.
నెట్వర్క్ లోపల ఇది ఎలా జరుగుతుంది?
AI కి ఒక కుక్క ఫోటో ఇచ్చి, అది "పిల్లి" అని తప్పుగా చెప్పింది అనుకుందాం.
- లాస్ ఫంక్షన్ వెంటనే "నువ్వు 80% తప్పు చెప్పావు" అని స్కోర్ ఇస్తుంది.
- అప్పుడు ఈ బ్యాక్ప్రాపగేషన్ టెక్నాలజీ ఆ '80% తప్పు' అనే కంప్లైంట్ ను తీసుకుని, నెట్వర్క్ లోని చివరి లేయర్ (అవుట్పుట్) నుండి మొదటి లేయర్ (ఇన్పుట్) వైపుకు రివర్స్లో ప్రయాణిస్తుంది.
- ప్రతి లేయర్ దగ్గరా ఆగి... "ఈ తప్పు జరగడానికి ఏ నరం (Neuron) కారణం? ఏ వెయిట్ (Weight) కారణం?" అని వెతుక్కుంటూ వెళ్తుంది.
- ఫైనల్ గా తప్పుకు కారణమైన ఆ వెయిట్స్ (Weights) మరియు బయాస్ (Bias) నంబర్లను కొద్దిగా మారుస్తుంది (Adjust చేస్తుంది).
ఇలా వెయిట్స్ ను మార్చడం వల్ల, మళ్లీ ఇంకోసారి అదే కుక్క ఫోటో ఇచ్చినప్పుడు, నెట్వర్క్ ముందుకంటే కరెక్ట్ గా జవాబు చెప్తుంది.
AI కి ట్రైనింగ్ ఇవ్వడం అంటే ఏంటి?ముందుకి వెళ్లడం (Forward) -> తప్పు ఎంతుందో చూడటం (Loss) -> వెనక్కి వచ్చి తప్పులు సరిదిద్దుకోవడం (Backward). ఈ వలయాన్ని లక్షల సార్లు రిపీట్ చేయడాన్నే 'ట్రైనింగ్' అంటారు. ఇలా చేస్తూ ఉంటే తప్పు (Loss) నెమ్మదిగా సున్నాకు పడిపోయి, AI పర్ఫెక్ట్ గా మారుతుంది!
కింద ఉన్న ఇంటరాక్టివ్ విడ్జెట్ ద్వారా, 'లాస్ (తప్పు)' అనేది నెట్వర్క్లో వెనక్కి ఎలా ప్రయాణిస్తుందో, వెనక్కి వెళ్తూ అది ఆ వెయిట్స్ (Weights) నంబర్లను ఎలా సరిదిద్దుతుందో మీరే స్వయంగా స్టెప్-బై-స్టెప్ చూడండి:
సారాంశం: జరిగిన తప్పును తీసుకుని, నెట్వర్క్ చివర నుండి మొదటికి రివర్స్లో ప్రయాణిస్తూ, తప్పుకు కారణమైన 'వెయిట్స్' ను మార్చే ప్రక్రియనే బ్యాక్ప్రాపగేషన్ అంటారు. AI కి బుద్ధి వచ్చేది దీనివల్లే!
--------------------------------------2--------------------------------------------
**పార్ట్ 52: బ్యాక్ప్రాపగేషన్ (Backpropagation) — దిద్దుబాటు ప్రక్రియ** అనేది మొత్తం డీప్ లెర్నింగ్ ప్రపంచానికే అసలైన ప్రాణం!
మనం సిలబస్లో చెప్పుకున్నట్లుగా—ఒక విద్యార్థి పరీక్ష రాశాక, ఇంటికి వచ్చి ఆన్సర్ కీ (Answer Key) చూసుకుని, తన తప్పులు ఎక్కడ జరిగాయో తెలుసుకుని, వెనక్కి వెళ్లి ఆ తప్పులను సరిదిద్దుకునే అద్భుతమైన ప్రక్రియనే AI భాషలో **బ్యాక్ప్రాపగేషన్ (Backpropagation)** అంటారు.
* **Back (బ్యాక్)** అంటే **"వెనక్కి"**.
* **Propagation (ప్రాపగేషన్)** అంటే **"ప్రవహించడం / ప్రయాణించడం"**.
* అంటే, ఫైనల్ జవాబులో వచ్చిన **తప్పు (Error / Loss)** ను పట్టుకుని, చివరి లేయర్ (**Output Layer**) నుండి మొదటి లేయర్ (**Input Layer**) వైపుకు **వెనక్కి ప్రయాణిస్తూ**, దారిలో ఉన్న న్యూరాన్ల **వెయిట్స్ ($w$) మరియు బయాస్ ($b$)** లను సరిదిద్దడం!
---
## 🔄 1. ఇప్పటివరకు జరిగిన 3 అడుగుల కథ (The Complete Picture)
పార్ట్ 50, 51, 52.. ఈ మూడూ విడివిడి పాఠాలు కావు; ఒక AI ఎలా నేర్చుకుంటుందో చెప్పే ఒకే కథలోని మూడు భాగాలు:
1. **ఫార్వర్డ్ ప్రాపగేషన్ (పార్ట్ 50 - పరీక్ష రాయడం):** సమాచారం ముందుకు వెళ్లి, AI తనకు తెలిసిన వెయిట్స్తో **"విద్యార్థికి 75 మార్కులు వస్తాయి"** అని జవాబు చెప్పింది.
2. **లాస్ ఫంక్షన్ (పార్ట్ 51 - మార్కులు & తప్పు కొలవడం):** అసలు మార్కులు **90** అని తేలింది. అంటే AI చెప్పిన జవాబులో **15 మార్కుల తేడా (Loss = $15^2 = 225$)** ఉందని మీటర్ చూపించింది.
3. **బ్యాక్ప్రాపగేషన్ (పార్ట్ 52 - తప్పులు దిద్దుకోవడం):** ఇప్పుడు ఆ 15 మార్కుల తప్పు ఎవరి వల్ల జరిగిందో కనిపెట్టడానికి AI **వెనక్కి (కుడి నుండి ఎడమకు)** ప్రయాణించి తన మెదడులోని వెయిట్స్ను మార్చుకుంటుంది!
```
1. ఫార్వర్డ్ ప్రాపగేషన్ (Forward Pass - ముందుకు ప్రయాణం: ప్రశ్న నుండి జవాబు వైపు)
══════════════════════════════════════════════════════════════════════════════►
[ఇన్పుట్ లేయర్] ─────────► [హిడెన్ లేయర్స్ (w, b)] ─────────► [అవుట్పుట్: 75 మార్కులు]
▲ │
│ ▼
[వెయిట్స్ (w) సవరణ!] [లాస్ (Loss): అసలు 90, తప్పు = 15]
│ │
◄═════════════════════════════════┴════════════════════════════════╝
2. బ్యాక్ప్రాపగేషన్ (Backward Pass - వెనక్కి ప్రయాణం: తప్పు నుండి దిద్దుబాటు వైపు)
```
---
## 🏏 2. సింపుల్ పోలిక: "క్రికెట్ మ్యాచ్ ఓటమి & కెప్టెన్ రివ్యూ!"
అసలు బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి తప్పును ఎలా సరిదిద్దుతుందో అర్థం చేసుకోవడానికి ఒక **క్రికెట్ మ్యాచ్** ఉదాహరణ చూద్దాం.
ఒక ఫైనల్ మ్యాచ్లో మన క్రికెట్ టీమ్ 15 రన్స్ తేడాతో ఓడిపోయింది అనుకుందాం (**ఇది Loss**). మ్యాచ్ అయిపోయాక కోచ్ మరియు కెప్టెన్ డ్రెస్సింగ్ రూమ్లో కూర్చుని **రివ్యూ (Backpropagation)** చేస్తారు. అప్పుడు కెప్టెన్ జట్టులోని 11 మంది ఆటగాళ్లను ఒకేలా తిట్టడు!
* **ఆటగాడు 1 (ఫీల్డర్):** ఇతను మ్యాచ్లో 3 సులభమైన క్యాచ్లు వదిలేశాడు. ఓటమిలో ఇతని పాత్ర చాలా ఎక్కువ! కాబట్టి కోచ్ ఇతనికి **ఎక్కువ ప్రాక్టీస్ (పెద్ద మార్పు / Big Adjustment)** ఇస్తాడు.
* **ఆటగాడు 2 (బౌలర్):** ఇతను బాగానే బౌలింగ్ చేశాడు కానీ చివరి ఓవర్లో ఒక వైడ్ వేశాడు. కాబట్టి ఇతనికి **చిన్న సలహా (చిన్న మార్పు / Small Adjustment)** ఇస్తాడు.
* **ఆటగాడు 3 (11వ నంబర్ బ్యాట్స్మన్):** ఇతనికి అసలు బ్యాటింగ్ చేసే అవకాశమే రాలేదు (డగౌట్లోనే కూర్చున్నాడు). కాబట్టి ఓటమిలో ఇతని తప్పు **సున్నా (`0`)**! ఇతన్ని కోచ్ ఏమీ అనడు.
**బ్యాక్ప్రాపగేషన్ చేసే పని అచ్చం ఇదే!**
న్యూరల్ నెట్వర్క్లో తప్పు జరిగినప్పుడు, అది వెనక్కి వెళ్లి అన్ని వెయిట్స్ను గుడ్డిగా మార్చదు. **"ఈ తప్పు జరగడానికి ఏ న్యూరాన్ ఎంత కారణం? ఏ వెయిట్ ($w$) ఎంత బాధ్యత వహించాలి?"** అని లెక్కగట్టి, తప్పు చేసిన వెయిట్స్ను మాత్రమే వాటి బాధ్యతకు తగినట్లుగా మార్చుతుంది!
---
## 🧮 3. పెన్ను, పేపర్ తీసుకుని "దిద్దుబాటు" చేద్దాం! (మన 75 vs 90 మార్కుల లెక్క)
పార్ట్ 50లో మనం చేసిన లెక్కను ఇప్పుడు బ్యాక్ప్రాపగేషన్ ఎలా సరిదిద్దుతుందో కళ్లకు కట్టినట్లు చూద్దాం!
### 📌 మన పాత లెక్క (Forward Pass జ్ఞాపకం):
* హిడెన్ న్యూరాన్ $H_1$ బయటకు పంపిన సిగ్నల్: **$a_1 = 10$** *(ఇది బాగా ఆన్ అయింది!)*
* హిడెన్ న్యూరాన్ $H_2$ బయటకు పంపిన సిగ్నల్: **$a_2 = 0$** *(ReLU గేట్ కీపర్ దీన్ని ఆఫ్ చేశాడు!)*
* అవుట్పుట్ న్యూరాన్ దగ్గర ఉన్న పాత వెయిట్స్: **$w_5 = 5$**, **$w_6 = 4$**, మరియు బయాస్ **$b_3 = 25$**.
* **AI చెప్పిన పాత జవాబు:**
$$\hat{y} = (a_1 \times w_5) + (a_2 \times w_6) + b_3 = (10 \times 5) + (0 \times 4) + 25 = \mathbf{75\text{ మార్కులు}}$$
* **అసలు రావాల్సిన జవాబు ($y$):** **`90 మార్కులు`** (తప్పు = **15 మార్కులు తక్కువ చెప్పింది**).
---
### 🔧 ఇప్పుడు బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి చేసే 3 స్టెప్పులు:
#### స్టెప్ 1: దోషి ఎవరో పట్టుకోవడం (Blame Assignment)
అవుట్పుట్ న్యూరాన్ దగ్గర **15 మార్కులు తక్కువ** పడ్డాయి. ఇప్పుడు బ్యాక్ప్రాపగేషన్ వెనక్కి తిరిగి తనకు సమాచారం ఇచ్చిన $H_1$ మరియు $H_2$ లను ప్రశ్నిస్తుంది:
* **న్యూరాన్ $H_2$ తో:** *"ఏయ్ $H_2$! నువ్వు ఇందాక `0` (సున్నా) పంపావు ($a_2 = 0$). నువ్వు అసలు ఆటలోనే లేవు కాబట్టి, నీ వెయిట్ ($w_6 = 4$) ని మార్చినా ఫలితం ఉండదు. నువ్వు సైలెంట్గా ఉండు!"*
* **న్యూరాన్ $H_1$ తో:** *"ఏయ్ $H_1$! నువ్వు `10` అనే పెద్ద సిగ్నల్ పంపావు ($a_1 = 10$). ఫైనల్ మార్కులు 75 రావడానికి నువ్వే మెయిన్ కారణం! మనకు ఇంకా **15 మార్కులు అదనంగా** కావాలి కాబట్టి, నీ వెయిట్ ($w_5 = 5$) ని ఇప్పుడు మనం పెంచబోతున్నాం!"*
#### స్టెప్ 2: వెయిట్ ($w_5$) ను సవరించడం (Weight Update)
మనకు అదనంగా **15 మార్కులు** కావాలి. $H_1$ పంపే సిగ్నల్ విలువ **`10`**.
$10$ ని ఎంతతో గుణిస్తే అదనంగా $15$ వస్తుంది? **$\mathbf{1.5}$ తో!** ($10 \times 1.5 = 15$).
కాబట్టి బ్యాక్ప్రాపగేషన్ ఆ పాత వెయిట్ $w_5 = 5$ కి ఇంకో **$1.5$** జోడించి, దాన్ని కొత్త వెయిట్గా మారుస్తుంది:
$$\text{కొత్త వెయిట్ } (w_5) = 5 + 1.5 = \mathbf{6.5}$$
#### స్టెప్ 3: మళ్లీ ఫార్వర్డ్ ప్రాపగేషన్ చేసి మ్యాజిక్ చూడటం!
ఇప్పుడు వెయిట్ సవరణ పూర్తయింది! కంప్యూటర్ మళ్లీ అదే ప్రశ్నకు కొత్త వెయిట్ (**$w_5 = 6.5$**) తో ఫార్వర్డ్ ప్రాపగేషన్ చేస్తుంది:
$$\text{కొత్త జవాబు } (\hat{y}_{new}) = (10 \times \mathbf{6.5}) + (0 \times 4) + 25$$
$$\hat{y}_{new} = 65 + 0 + 25 = \mathbf{90\text{ మార్కులు!}}$$
**కొత్త లాస్ (Loss):** $(90 - 90)^2 = \mathbf{0}$! 🎯
చూశారా! ఒక్కసారి బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి వెయిట్ను `5` నుండి `6.5` కి మార్చగానే, AI తన తప్పును పూర్తిగా సరిదిద్దుకుని కచ్చితంగా **90 మార్కులు** అని చెప్పేసింది!
---
## ⛰️ 4. AI సైంటిస్ట్ రహస్యాలు: "గ్రేడియంట్ డిసెంట్" & "లెర్నింగ్ రేట్"
బ్యాక్ప్రాపగేషన్ లోపల ఈ వెయిట్స్ సవరణ జరగడానికి ఇద్దరు గణిత హీరోలు పనిచేస్తారు. 10వ తరగతి విద్యార్థికి వీటి పేర్లు, అర్థం తెలిస్తే మీరు సగం AI సైంటిస్ట్ అయిపోయినట్లే!
### ① గ్రేడియంట్ డిసెంట్ (Gradient Descent) — "చీకట్లో కొండ దిగడం!"
* మనం పార్ట్ 51 గ్రాఫ్లో చూసినట్లు, **లాస్ (Loss)** అనేది ఒక ఎత్తైన **'U' ఆకారపు కొండ లోయ** లాంటిది.
* మొదట్లో AI ఆ కొండ మీద ఎక్కడో పైన ఉంటుంది (ఎక్కువ తప్పులు చేస్తుంది). దాని లక్ష్యం కొండ అడుగున ఉన్న లోయలోకి (**Loss = 0**) చేరుకోవడం!
* కానీ AI కి కళ్లు ఉండవు. మరి కళ్లకు గంతలు కట్టుకున్న మనిషి కొండ మీద నుండి కిందకి ఎలా దిగుతాడు? తన కాలితో నేల **ఎటువైపు వాలుగా (Slope) ఉందో** తడిమి చూసి, ఆ వాలు ఉన్న వైపుకు అడుగు వేస్తాడు కదా!
* గణితంలో ఆ **'వాలు (Slope)'** నే **గ్రేడియంట్ (Gradient)** అంటారు. అలా వాలును పట్టుకుని కొండ కిందకి (తప్పు తగ్గే వైపుకు) దిగడాన్నే **గ్రేడియంట్ డిసెంట్ (Gradient Descent)** అంటారు!
### ② లెర్నింగ్ రేట్ (Learning Rate) — "అడుగు ఎంత పెద్దది వేయాలి?"
కొండ దిగేటప్పుడు మనం వేసే **అడుగు పరిమాణాన్నే (Step Size)** AI లో **లెర్నింగ్ రేట్** అంటారు.
* **మరీ చిన్న అడుగులు వేస్తే (Low Learning Rate):** చీమ నడిచినట్లు కొండ దిగడానికి నెలల తరబడి సమయం పడుతుంది.
* **మరీ పెద్ద గంతులు వేస్తే (High Learning Rate):** లోయ అడుగు భాగాన్ని దాటేసి, అవతలి వైపు కొండ మీదకి ఎగిరి పడతాం! (తప్పు తగ్గకపోగా ఇంకా పెరుగుతుంది).
* అందుకే AI సైంటిస్టులు లెర్నింగ్ రేట్ను చాలా జాగ్రత్తగా (ఉదాహరణకు `0.01` లేదా `0.001` గా) సెట్ చేస్తారు. దీనివల్ల AI ఒకేసారి కాకుండా, ఒక్కో రౌండ్లో కొంచెం కొంచెంగా వెయిట్స్ను మార్చుకుంటూ పర్ఫెక్ట్ ఆన్సర్ దగ్గరికి చేరుకుంటుంది!
---
## 📊 ఒక్క చూపులో: ఫార్వర్డ్ ప్రాపగేషన్ vs బ్యాక్ప్రాపగేషన్
| లక్షణం | ఫార్వర్డ్ ప్రాపగేషన్ (Forward Propagation) | బ్యాక్ప్రాపగేషన్ (Backpropagation) |
| --- | --- | --- |
| **ప్రయాణ దిశ** | **ముందుకు** (Input $\rightarrow$ Hidden $\rightarrow$ Output) | **వెనక్కి** (Output $\rightarrow$ Hidden $\rightarrow$ Input) |
| **ప్రధాన ఉద్దేశం** | ప్రశ్నకు **జవాబును అంచనా వేయడం** (Prediction) | తప్పును బట్టి **వెయిట్స్ను సరిదిద్దడం** (Correction) |
| **స్కూల్ పరీక్ష పోలిక** | ఎగ్జామ్ హాల్లో కూర్చుని పరీక్ష రాయడం | ఇంటికి వచ్చాక ఆన్సర్ కీ చూసి తప్పులు దిద్దుకోవడం |
| **వెయిట్స్ ($w, b$) మారతాయా?** | మారవు! ఉన్న వెయిట్స్తోనే లెక్క వేస్తుంది. | **మారతాయి!** తప్పు తగ్గేలా వెయిట్స్ అప్డేట్ అవుతాయి. |
| **ఎప్పుడు జరుగుతుంది?** | ట్రైనింగ్ సమయంలో మరియు మనం ప్రశ్న అడిగిన ప్రతిసారీ | కేవలం AI కి **ట్రైనింగ్ (Training) ఇచ్చేటప్పుడు మాత్రమే!** |
---
## 🎮 ప్రాక్టికల్గా చూడండి: ఫార్వర్డ్ పాస్ & బ్యాక్ప్రాపగేషన్ లైవ్ సిమ్యులేటర్!
కింద ఉన్న ఇంటరాక్టివ్ డయాగ్రామ్లో మనం పైన నేర్చుకున్న **4 దశల పూర్తి సైకిల్** (Forward Pass $\rightarrow$ Loss $\rightarrow$ Backpropagation $\rightarrow$ Corrected Pass) ఎలా జరుగుతుందో మీరు స్వయంగా బటన్లు నొక్కి చూడవచ్చు!
* **`తర్వాతి దశ (Next)`** బటన్ నొక్కుతూ వెళ్లండి.
* 3వ దశలో ఎర్రటి బాణాలు **వెనక్కి (Backpropagation)** ప్రయాణించి వెయిట్ $w_5$ ను `5.0` నుండి `6.5` కి ఎలా మారుస్తాయో, 4వ దశలో లాస్ `0` అయిపోయి జవాబు `90` కి ఎలా మారుతుందో గమనించండి:
---
> **💡 గుర్తుంచుకోవాల్సిన అసలు రహస్యం:**
> **ఫార్వర్డ్ ప్రాపగేషన్** అనేది AI తనకు తెలిసిన జ్ఞానంతో **పరీక్ష రాయడం** అయితే, **లాస్ ఫంక్షన్** అనేది టీచర్ వేసే **ఎర్ర గీత (మార్కుల కోత)**, మరియు **బ్యాక్ప్రాపగేషన్** అనేది ఆ తప్పులను చూసుకుని వెనక్కి వెళ్లి తన మెదడులోని వెయిట్స్ను **సరిదిద్దుకోవడం**! ఈ మూడు పనులూ కొన్ని వేల సార్లు తిరగడం వల్లే ఒక సాధారణ ప్రోగ్రామ్ "సూపర్ ఇంటెలిజెంట్ AI" గా మారుతుంది!
మరి AI ఒక్కసారి చదివితే సరిపోదు కదా! ఒకే పుస్తకాన్ని పదే పదే చదివి పర్ఫెక్ట్ అవ్వడం (**Epochs**) మరియు ఆ పెద్ద పుస్తకాన్ని ఒకేసారి కాకుండా చాప్టర్ల వారీగా ముక్కలు చేసి చదవడం (**Batches**) ఎలా జరుగుతుంది?
-----------------------------------------3-------------------------------------------
**పార్ట్ 52: బ్యాక్ప్రాపగేషన్ (Backpropagation) — దిద్దుబాటు ప్రక్రియ** అనేది మొత్తం డీప్ లెర్నింగ్ ప్రపంచానికే అసలైన ప్రాణం!
మనం సిలబస్లో చెప్పుకున్నట్లుగా—ఒక విద్యార్థి పరీక్ష రాశాక, ఇంటికి వచ్చి ఆన్సర్ కీ (Answer Key) చూసుకుని, తన తప్పులు ఎక్కడ జరిగాయో తెలుసుకుని, వెనక్కి వెళ్లి ఆ తప్పులను సరిదిద్దుకునే అద్భుతమైన ప్రక్రియనే AI భాషలో **బ్యాక్ప్రాపగేషన్ (Backpropagation)** అంటారు.
* **Back (బ్యాక్)** అంటే **"వెనక్కి"**.
* **Propagation (ప్రాపగేషన్)** అంటే **"ప్రవహించడం / ప్రయాణించడం"**.
* అంటే, ఫైనల్ జవాబులో వచ్చిన **తప్పు (Error / Loss)** ను పట్టుకుని, చివరి లేయర్ (**Output Layer**) నుండి మొదటి లేయర్ (**Input Layer**) వైపుకు **వెనక్కి ప్రయాణిస్తూ**, దారిలో ఉన్న న్యూరాన్ల **వెయిట్స్ ($w$) మరియు బయాస్ ($b$)** లను సరిదిద్దడం!
---
## 🔄 1. ఇప్పటివరకు జరిగిన 3 అడుగుల కథ (The Complete Picture)
పార్ట్ 50, 51, 52.. ఈ మూడూ విడివిడి పాఠాలు కావు; ఒక AI ఎలా నేర్చుకుంటుందో చెప్పే ఒకే కథలోని మూడు భాగాలు:
1. **ఫార్వర్డ్ ప్రాపగేషన్ (పార్ట్ 50 - పరీక్ష రాయడం):** సమాచారం ముందుకు వెళ్లి, AI తనకు తెలిసిన వెయిట్స్తో **"విద్యార్థికి 75 మార్కులు వస్తాయి"** అని జవాబు చెప్పింది.
2. **లాస్ ఫంక్షన్ (పార్ట్ 51 - మార్కులు & తప్పు కొలవడం):** అసలు మార్కులు **90** అని తేలింది. అంటే AI చెప్పిన జవాబులో **15 మార్కుల తేడా (Loss = $15^2 = 225$)** ఉందని మీటర్ చూపించింది.
3. **బ్యాక్ప్రాపగేషన్ (పార్ట్ 52 - తప్పులు దిద్దుకోవడం):** ఇప్పుడు ఆ 15 మార్కుల తప్పు ఎవరి వల్ల జరిగిందో కనిపెట్టడానికి AI **వెనక్కి (కుడి నుండి ఎడమకు)** ప్రయాణించి తన మెదడులోని వెయిట్స్ను మార్చుకుంటుంది!
```
1. ఫార్వర్డ్ ప్రాపగేషన్ (Forward Pass - ముందుకు ప్రయాణం: ప్రశ్న నుండి జవాబు వైపు)
══════════════════════════════════════════════════════════════════════════════►
[ఇన్పుట్ లేయర్] ─────────► [హిడెన్ లేయర్స్ (w, b)] ─────────► [అవుట్పుట్: 75 మార్కులు]
▲ │
│ ▼
[వెయిట్స్ (w) సవరణ!] [లాస్ (Loss): అసలు 90, తప్పు = 15]
│ │
◄═════════════════════════════════┴════════════════════════════════╝
2. బ్యాక్ప్రాపగేషన్ (Backward Pass - వెనక్కి ప్రయాణం: తప్పు నుండి దిద్దుబాటు వైపు)
```
---
## 🏏 2. సింపుల్ పోలిక: "క్రికెట్ మ్యాచ్ ఓటమి & కెప్టెన్ రివ్యూ!"
అసలు బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి తప్పును ఎలా సరిదిద్దుతుందో అర్థం చేసుకోవడానికి ఒక **క్రికెట్ మ్యాచ్** ఉదాహరణ చూద్దాం.
ఒక ఫైనల్ మ్యాచ్లో మన క్రికెట్ టీమ్ 15 రన్స్ తేడాతో ఓడిపోయింది అనుకుందాం (**ఇది Loss**). మ్యాచ్ అయిపోయాక కోచ్ మరియు కెప్టెన్ డ్రెస్సింగ్ రూమ్లో కూర్చుని **రివ్యూ (Backpropagation)** చేస్తారు. అప్పుడు కెప్టెన్ జట్టులోని 11 మంది ఆటగాళ్లను ఒకేలా తిట్టడు!
* **ఆటగాడు 1 (ఫీల్డర్):** ఇతను మ్యాచ్లో 3 సులభమైన క్యాచ్లు వదిలేశాడు. ఓటమిలో ఇతని పాత్ర చాలా ఎక్కువ! కాబట్టి కోచ్ ఇతనికి **ఎక్కువ ప్రాక్టీస్ (పెద్ద మార్పు / Big Adjustment)** ఇస్తాడు.
* **ఆటగాడు 2 (బౌలర్):** ఇతను బాగానే బౌలింగ్ చేశాడు కానీ చివరి ఓవర్లో ఒక వైడ్ వేశాడు. కాబట్టి ఇతనికి **చిన్న సలహా (చిన్న మార్పు / Small Adjustment)** ఇస్తాడు.
* **ఆటగాడు 3 (11వ నంబర్ బ్యాట్స్మన్):** ఇతనికి అసలు బ్యాటింగ్ చేసే అవకాశమే రాలేదు (డగౌట్లోనే కూర్చున్నాడు). కాబట్టి ఓటమిలో ఇతని తప్పు **సున్నా (`0`)**! ఇతన్ని కోచ్ ఏమీ అనడు.
**బ్యాక్ప్రాపగేషన్ చేసే పని అచ్చం ఇదే!**
న్యూరల్ నెట్వర్క్లో తప్పు జరిగినప్పుడు, అది వెనక్కి వెళ్లి అన్ని వెయిట్స్ను గుడ్డిగా మార్చదు. **"ఈ తప్పు జరగడానికి ఏ న్యూరాన్ ఎంత కారణం? ఏ వెయిట్ ($w$) ఎంత బాధ్యత వహించాలి?"** అని లెక్కగట్టి, తప్పు చేసిన వెయిట్స్ను మాత్రమే వాటి బాధ్యతకు తగినట్లుగా మార్చుతుంది!
---
## 🧮 3. పెన్ను, పేపర్ తీసుకుని "దిద్దుబాటు" చేద్దాం! (మన 75 vs 90 మార్కుల లెక్క)
పార్ట్ 50లో మనం చేసిన లెక్కను ఇప్పుడు బ్యాక్ప్రాపగేషన్ ఎలా సరిదిద్దుతుందో కళ్లకు కట్టినట్లు చూద్దాం!
### 📌 మన పాత లెక్క (Forward Pass జ్ఞాపకం):
* హిడెన్ న్యూరాన్ $H_1$ బయటకు పంపిన సిగ్నల్: **$a_1 = 10$** *(ఇది బాగా ఆన్ అయింది!)*
* హిడెన్ న్యూరాన్ $H_2$ బయటకు పంపిన సిగ్నల్: **$a_2 = 0$** *(ReLU గేట్ కీపర్ దీన్ని ఆఫ్ చేశాడు!)*
* అవుట్పుట్ న్యూరాన్ దగ్గర ఉన్న పాత వెయిట్స్: **$w_5 = 5$**, **$w_6 = 4$**, మరియు బయాస్ **$b_3 = 25$**.
* **AI చెప్పిన పాత జవాబు:**
$$\hat{y} = (a_1 \times w_5) + (a_2 \times w_6) + b_3 = (10 \times 5) + (0 \times 4) + 25 = \mathbf{75\text{ మార్కులు}}$$
* **అసలు రావాల్సిన జవాబు ($y$):** **`90 మార్కులు`** (తప్పు = **15 మార్కులు తక్కువ చెప్పింది**).
---
### 🔧 ఇప్పుడు బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి చేసే 3 స్టెప్పులు:
#### స్టెప్ 1: దోషి ఎవరో పట్టుకోవడం (Blame Assignment)
అవుట్పుట్ న్యూరాన్ దగ్గర **15 మార్కులు తక్కువ** పడ్డాయి. ఇప్పుడు బ్యాక్ప్రాపగేషన్ వెనక్కి తిరిగి తనకు సమాచారం ఇచ్చిన $H_1$ మరియు $H_2$ లను ప్రశ్నిస్తుంది:
* **న్యూరాన్ $H_2$ తో:** *"ఏయ్ $H_2$! నువ్వు ఇందాక `0` (సున్నా) పంపావు ($a_2 = 0$). నువ్వు అసలు ఆటలోనే లేవు కాబట్టి, నీ వెయిట్ ($w_6 = 4$) ని మార్చినా ఫలితం ఉండదు. నువ్వు సైలెంట్గా ఉండు!"*
* **న్యూరాన్ $H_1$ తో:** *"ఏయ్ $H_1$! నువ్వు `10` అనే పెద్ద సిగ్నల్ పంపావు ($a_1 = 10$). ఫైనల్ మార్కులు 75 రావడానికి నువ్వే మెయిన్ కారణం! మనకు ఇంకా **15 మార్కులు అదనంగా** కావాలి కాబట్టి, నీ వెయిట్ ($w_5 = 5$) ని ఇప్పుడు మనం పెంచబోతున్నాం!"*
#### స్టెప్ 2: వెయిట్ ($w_5$) ను సవరించడం (Weight Update)
మనకు అదనంగా **15 మార్కులు** కావాలి. $H_1$ పంపే సిగ్నల్ విలువ **`10`**.
$10$ ని ఎంతతో గుణిస్తే అదనంగా $15$ వస్తుంది? **$\mathbf{1.5}$ తో!** ($10 \times 1.5 = 15$).
కాబట్టి బ్యాక్ప్రాపగేషన్ ఆ పాత వెయిట్ $w_5 = 5$ కి ఇంకో **$1.5$** జోడించి, దాన్ని కొత్త వెయిట్గా మారుస్తుంది:
$$\text{కొత్త వెయిట్ } (w_5) = 5 + 1.5 = \mathbf{6.5}$$
#### స్టెప్ 3: మళ్లీ ఫార్వర్డ్ ప్రాపగేషన్ చేసి మ్యాజిక్ చూడటం!
ఇప్పుడు వెయిట్ సవరణ పూర్తయింది! కంప్యూటర్ మళ్లీ అదే ప్రశ్నకు కొత్త వెయిట్ (**$w_5 = 6.5$**) తో ఫార్వర్డ్ ప్రాపగేషన్ చేస్తుంది:
$$\text{కొత్త జవాబు } (\hat{y}_{new}) = (10 \times \mathbf{6.5}) + (0 \times 4) + 25$$
$$\hat{y}_{new} = 65 + 0 + 25 = \mathbf{90\text{ మార్కులు!}}$$
**కొత్త లాస్ (Loss):** $(90 - 90)^2 = \mathbf{0}$! 🎯
చూశారా! ఒక్కసారి బ్యాక్ప్రాపగేషన్ వెనక్కి వెళ్లి వెయిట్ను `5` నుండి `6.5` కి మార్చగానే, AI తన తప్పును పూర్తిగా సరిదిద్దుకుని కచ్చితంగా **90 మార్కులు** అని చెప్పేసింది!
---
## ⛰️ 4. AI సైంటిస్ట్ రహస్యాలు: "గ్రేడియంట్ డిసెంట్" & "లెర్నింగ్ రేట్"
బ్యాక్ప్రాపగేషన్ లోపల ఈ వెయిట్స్ సవరణ జరగడానికి ఇద్దరు గణిత హీరోలు పనిచేస్తారు. 10వ తరగతి విద్యార్థికి వీటి పేర్లు, అర్థం తెలిస్తే మీరు సగం AI సైంటిస్ట్ అయిపోయినట్లే!
### ① గ్రేడియంట్ డిసెంట్ (Gradient Descent) — "చీకట్లో కొండ దిగడం!"
* మనం పార్ట్ 51 గ్రాఫ్లో చూసినట్లు, **లాస్ (Loss)** అనేది ఒక ఎత్తైన **'U' ఆకారపు కొండ లోయ** లాంటిది.
* మొదట్లో AI ఆ కొండ మీద ఎక్కడో పైన ఉంటుంది (ఎక్కువ తప్పులు చేస్తుంది). దాని లక్ష్యం కొండ అడుగున ఉన్న లోయలోకి (**Loss = 0**) చేరుకోవడం!
* కానీ AI కి కళ్లు ఉండవు. మరి కళ్లకు గంతలు కట్టుకున్న మనిషి కొండ మీద నుండి కిందకి ఎలా దిగుతాడు? తన కాలితో నేల **ఎటువైపు వాలుగా (Slope) ఉందో** తడిమి చూసి, ఆ వాలు ఉన్న వైపుకు అడుగు వేస్తాడు కదా!
* గణితంలో ఆ **'వాలు (Slope)'** నే **గ్రేడియంట్ (Gradient)** అంటారు. అలా వాలును పట్టుకుని కొండ కిందకి (తప్పు తగ్గే వైపుకు) దిగడాన్నే **గ్రేడియంట్ డిసెంట్ (Gradient Descent)** అంటారు!
### ② లెర్నింగ్ రేట్ (Learning Rate) — "అడుగు ఎంత పెద్దది వేయాలి?"
కొండ దిగేటప్పుడు మనం వేసే **అడుగు పరిమాణాన్నే (Step Size)** AI లో **లెర్నింగ్ రేట్** అంటారు.
* **మరీ చిన్న అడుగులు వేస్తే (Low Learning Rate):** చీమ నడిచినట్లు కొండ దిగడానికి నెలల తరబడి సమయం పడుతుంది.
* **మరీ పెద్ద గంతులు వేస్తే (High Learning Rate):** లోయ అడుగు భాగాన్ని దాటేసి, అవతలి వైపు కొండ మీదకి ఎగిరి పడతాం! (తప్పు తగ్గకపోగా ఇంకా పెరుగుతుంది).
* అందుకే AI సైంటిస్టులు లెర్నింగ్ రేట్ను చాలా జాగ్రత్తగా (ఉదాహరణకు `0.01` లేదా `0.001` గా) సెట్ చేస్తారు. దీనివల్ల AI ఒకేసారి కాకుండా, ఒక్కో రౌండ్లో కొంచెం కొంచెంగా వెయిట్స్ను మార్చుకుంటూ పర్ఫెక్ట్ ఆన్సర్ దగ్గరికి చేరుకుంటుంది!
---
## 📊 ఒక్క చూపులో: ఫార్వర్డ్ ప్రాపగేషన్ vs బ్యాక్ప్రాపగేషన్
| లక్షణం | ఫార్వర్డ్ ప్రాపగేషన్ (Forward Propagation) | బ్యాక్ప్రాపగేషన్ (Backpropagation) |
| --- | --- | --- |
| **ప్రయాణ దిశ** | **ముందుకు** (Input $\rightarrow$ Hidden $\rightarrow$ Output) | **వెనక్కి** (Output $\rightarrow$ Hidden $\rightarrow$ Input) |
| **ప్రధాన ఉద్దేశం** | ప్రశ్నకు **జవాబును అంచనా వేయడం** (Prediction) | తప్పును బట్టి **వెయిట్స్ను సరిదిద్దడం** (Correction) |
| **స్కూల్ పరీక్ష పోలిక** | ఎగ్జామ్ హాల్లో కూర్చుని పరీక్ష రాయడం | ఇంటికి వచ్చాక ఆన్సర్ కీ చూసి తప్పులు దిద్దుకోవడం |
| **వెయిట్స్ ($w, b$) మారతాయా?** | మారవు! ఉన్న వెయిట్స్తోనే లెక్క వేస్తుంది. | **మారతాయి!** తప్పు తగ్గేలా వెయిట్స్ అప్డేట్ అవుతాయి. |
| **ఎప్పుడు జరుగుతుంది?** | ట్రైనింగ్ సమయంలో మరియు మనం ప్రశ్న అడిగిన ప్రతిసారీ | కేవలం AI కి **ట్రైనింగ్ (Training) ఇచ్చేటప్పుడు మాత్రమే!** |
---
## 🎮 ప్రాక్టికల్గా చూడండి: ఫార్వర్డ్ పాస్ & బ్యాక్ప్రాపగేషన్ లైవ్ సిమ్యులేటర్!
కింద ఉన్న ఇంటరాక్టివ్ డయాగ్రామ్లో మనం పైన నేర్చుకున్న **4 దశల పూర్తి సైకిల్** (Forward Pass $\rightarrow$ Loss $\rightarrow$ Backpropagation $\rightarrow$ Corrected Pass) ఎలా జరుగుతుందో మీరు స్వయంగా బటన్లు నొక్కి చూడవచ్చు!
* **`తర్వాతి దశ (Next)`** బటన్ నొక్కుతూ వెళ్లండి.
* 3వ దశలో ఎర్రటి బాణాలు **వెనక్కి (Backpropagation)** ప్రయాణించి వెయిట్ $w_5$ ను `5.0` నుండి `6.5` కి ఎలా మారుస్తాయో, 4వ దశలో లాస్ `0` అయిపోయి జవాబు `90` కి ఎలా మారుతుందో గమనించండి:
---
> **💡 గుర్తుంచుకోవాల్సిన అసలు రహస్యం:**
> **ఫార్వర్డ్ ప్రాపగేషన్** అనేది AI తనకు తెలిసిన జ్ఞానంతో **పరీక్ష రాయడం** అయితే, **లాస్ ఫంక్షన్** అనేది టీచర్ వేసే **ఎర్ర గీత (మార్కుల కోత)**, మరియు **బ్యాక్ప్రాపగేషన్** అనేది ఆ తప్పులను చూసుకుని వెనక్కి వెళ్లి తన మెదడులోని వెయిట్స్ను **సరిదిద్దుకోవడం**! ఈ మూడు పనులూ కొన్ని వేల సార్లు తిరగడం వల్లే ఒక సాధారణ ప్రోగ్రామ్ "సూపర్ ఇంటెలిజెంట్ AI" గా మారుతుంది!
మరి AI ఒక్కసారి చదివితే సరిపోదు కదా! ఒకే పుస్తకాన్ని పదే పదే చదివి పర్ఫెక్ట్ అవ్వడం (**Epochs**) మరియు ఆ పెద్ద పుస్తకాన్ని ఒకేసారి కాకుండా చాప్టర్ల వారీగా ముక్కలు చేసి చదవడం (**Batches**) ఎలా జరుగుతుంది?
------------------------------------------------4------------------------------------------
అద్భుతం! మన మహా ప్రయాణంలో అత్యంత కీలకమైన మరియు డీప్ లెర్నింగ్కు గుండెకాయ లాంటి ఘట్టానికి చేరుకున్నాం.
10వ తరగతి విద్యార్థికి ఎంతో సులభంగా అర్థమయ్యేలా పార్ట్ 52 (బ్యాక్ప్రాపగేషన్ - Backpropagation - దిద్దుబాటు) గురించి ఇప్పుడు వివరంగా తెలుసుకుందాం!
పార్ట్ 52: బ్యాక్ప్రాపగేషన్ (Backpropagation) - తప్పులను సరిదిద్దుకోవడం
మనం ఇంతకుముందు పార్ట్లో AI చేసిన తప్పును 'లాస్ ఫంక్షన్' ద్వారా ఎలా గుర్తించామో చూశాము. మరి ఆ తప్పును గుర్తించిన తర్వాత, కంప్యూటర్ దాన్ని ఎలా సరిదిద్దుకుంటుంది? దానికంటూ ఒక అద్భుతమైన టెక్నిక్ ఉంది. దాన్నే 'బ్యాక్ప్రాపగేషన్' (Backpropagation) అంటారు!
దీన్ని ఒక చిన్న ఉదాహరణతో అర్థం చేసుకుందాం!
📝 స్కూల్ ఎగ్జామ్ పేపర్ కరెక్షన్ ఉదాహరణ
స్కూల్లో మీరు ఒక మ్యాథ్స్ ఎగ్జామ్ రాశారనుకోండి. ఆన్సర్ పేపర్ టీచర్ దిద్ది మీ చేతికి ఇస్తారు:
- మీరు ఒక లెక్కలో తప్పు చేశారని టీచర్ దానికి రెడ్ పెన్తో మార్కులు కట్ చేసి, పక్కన కరెక్ట్ ఆన్సర్ రాస్తారు.
- మీరు ఆ పేపర్ చూసి, "ఓహో! నేను ఈ స్టెప్ దగ్గర తప్పు చేశాను కదా, నెక్స్ట్ టైమ్ ఇలా చేయకూడదు" అని మీ తప్పును సరిదిద్దుకుంటారు. ఇంకోసారి ఆ తప్పు చేయకుండా మీ మైండ్లో మార్పులు చేసుకుంటారు.
సరిగ్గా ఇదే పద్ధతిలో, డీప్ లెర్నింగ్లో కంప్యూటర్ చేసే పనే బ్యాక్ప్రాపగేషన్!
🔄 ఇది ఎలా పనిచేస్తుంది? (ముందు నుండి వెనక్కి ప్రయాణం)
- ముందుకి ప్రయాణం (Forward): AI ఒక ఫోటో చూసి తప్పు సమాధానం చెప్పింది.
- లాస్ ఫంక్షన్ హెచ్చరిక: "నువ్వు చెప్పింది తప్పు, నీకు చాలా మార్కులు పోయాయి" అని చెప్పింది.
- వెనక్కి ప్రయాణం (Backward Propagation): వెంటనే AI మెదడు అవుట్పుట్ లేయర్ నుండి వెనక్కి ప్రయాణించడం (Back) మొదలుపెడుతుంది!
- చివరి లేయర్ నుండి హిడెన్ లేయర్స్ గుండా ఇన్పుట్ వైపు వెళ్తూ... ఏ నరం వల్ల (Neuron) ఈ తప్పు జరిగిందో వెతుకుతుంది.
- ఆ నరం దగ్గర ఉన్న 'వెయిట్స్' (Weights) ను కొద్దిగా మార్చి, తప్పును సరిదిద్దుకుంటుంది.
🧠 డీప్ లెర్నింగ్కి ఇదే అసలైన ప్రాణం!
కంప్యూటర్ ఒక్కసారిగా పర్ఫెక్ట్ అయిపోదు. అది లక్షలాది ఫోటోలను చూస్తూ, ప్రతిసారీ తప్పులు చేస్తూ... ఆ తప్పులను ఈ బ్యాక్ప్రాపగేషన్ ద్వారా సరిదిద్దుకుంటూ పోతుంది. అలా కొన్ని వేల సార్లు ప్రాక్టీస్ చేశాక, అది ఏ తప్పు చేయకుండా వంద శాతం కరెక్ట్ ఆన్సర్లు చెప్పడం నేర్చుకుంటుంది!
🎯 ముగింపు (సారాంశం)
సులభంగా చెప్పాలంటే... చేసిన తప్పుల నుండి పాఠాలు నేర్చుకుంటూ, ప్రతిసారీ మరింత తెలివిగా మారడానికి AI కి సహాయపడే "అసలైన అభ్యాస రహస్యమే" ఈ బ్యాక్ప్రాపగేషన్!
మరి, ఇలాంటి చదువును కంప్యూటర్ ఒకేసారి కాకుండా చాప్టర్ల వారీగా, పదే పదే ఎలా చదువుకుంటుంది? దాని గురించే తర్వాతి పార్ట్ 53 (ఎపోక్స్ మరియు బ్యాచెస్ - Epochs & Batches) లో చూద్దాం!
-----------------------------------------5------------------------------------------------
పార్ట్ 52: బ్యాక్ప్రాపగేషన్ (Backpropagation) - దిద్దుబాటు ప్రక్రియ
బ్యాక్ప్రాపగేషన్ (Backward Propagation of Errors) అనేది డీప్ లెర్నింగ్కు నిజమైన గుండెకాయ వంటిది. ఫార్వర్డ్ ప్రాపగేషన్ ద్వారా నెట్వర్క్ ఒక అంచనా వేసి, లాస్ ఫంక్షన్ ద్వారా ఎంత తప్పు జరిగిందో లెక్కించిన తర్వాత... ఆ తప్పును సరిదిద్దుకోవడానికి సమాచారం చివరి అవుట్పుట్ లేయర్ నుండి వెనక్కి ప్రయాణించి, ప్రతి న్యూరాన్ యొక్క వెయిట్స్ మరియు బయాస్లను సరిచేసే గణిత ప్రక్రియనే బ్యాక్ప్రాపగేషన్ అంటారు.
ఈ దిద్దుబాటు ప్రక్రియ లేకపోతే కంప్యూటర్ కేవలం గుడ్డిగా ఊహాగానాలు మాత్రమే చేయగలదు; ఎప్పటికీ తన తప్పుల నుండి కొత్త విషయాలను నేర్చుకోలేదు.
ఎగ్జామ్ పేపర్ దిద్దుబాటు పోలిక
10వ తరగతి వార్షిక పరీక్షల ఫలితాలు వచ్చిన సందర్భాన్ని ఊహించుకోండి:
- పరీక్ష రాయడం (ఫార్వర్డ్ ప్రాపగేషన్): మీరు ప్రశ్నపత్రం చూసి ఆలోచించి సమాధానాలు రాశారు.
- మార్కులు తగ్గడం (లాస్ ఫంక్షన్): టీచర్ పేపర్ దిద్ది 100 కి 60 మార్కులు వేశారు. అంటే 40 మార్కుల నష్టం (Loss = 40) జరిగింది.
- ఆన్సర్ కీ విశ్లేషణ (బ్యాక్ప్రాపగేషన్):
- మీరు పేపర్ను చివరి 20వ ప్రశ్న నుండి మొదటి ప్రశ్న వైపుకు వెనక్కి తిరగేస్తూ వెళ్తారు.
- "ఈ లెక్కలో సూత్రం మర్చిపోయాను, ఆ జవాబులో స్పెల్లింగ్ తప్పు రాశాను" అని ఒక్కో తప్పుకు కారణాన్ని గుర్తిస్తారు.
- తర్వాతి పరీక్షలో ఆ తప్పులు పునరావృతం కాకుండా మీ చదువుకునే విధానాన్ని మార్చుకుంటారు.
న్యూరల్ నెట్వర్క్ కూడా అవుట్పుట్ లేయర్ వద్ద మొదలుపెట్టి, హిడెన్ లేయర్ల గుండా మొదటి ఇన్పుట్ లేయర్ వరకు వెనక్కి ప్రయాణిస్తూ ఇదే విధంగా తనను తాను సరిదిద్దుకుంటుంది.
బ్యాక్ప్రాపగేషన్ పనిచేసే 4 ప్రధాన దశలు
[1. లాస్ గుర్తింపు] ──> [2. వెనక్కి ప్రయాణం] ──> [3. గ్రేడియంట్ లెక్కింపు] ──> [4. వెయిట్స్ అప్డేట్]
- తప్పును సరిచూడటం (Loss Evaluation):అవుట్పుట్ లేయర్ వద్ద అసలు జవాబుకు, వచ్చిన జవాబుకు మధ్య తేడా ఎంత ఉందో లాస్ ఫంక్షన్ ద్వారా లెక్కిస్తుంది.
- ఎవరి తప్పు ఎంత? (Blame Assignment):ఈ భారీ తప్పు జరగడానికి ఏ న్యూరాన్ ఎంత కారణం? ఏ వెయిట్ విలువ ఎక్కువగా ఉండటం వల్ల లేదా తక్కువగా ఉండటం వల్ల ఈ తప్పు జరిగింది? అనేది కాలిక్యులస్లోని చైన్ రూల్ (Chain Rule - విచలన గణితం) ద్వారా వెనక లేయర్లకు పంచుకుంటూ వస్తుంది.
- గ్రేడియంట్ (Gradient) కనుక్కోవడం:"ఈ నిర్దిష్ట వెయిట్ను కొద్దిగా పెంచితే లాస్ తగ్గుతుందా? లేక తగ్గిస్తే తగ్గుతుందా?" అని చెప్పే దిక్సూచీనే గ్రేడియంట్ ($\frac{\partial L}{\partial w}$).
- వెయిట్స్ సర్దుబాటు (Weight Update):గ్రేడియంట్ చూపించిన దిశకు వ్యతిరేకంగా వెయిట్స్ మరియు బయాస్లను కొద్దిగా మారుస్తుంది. దీనివల్ల తర్వాతి రౌండ్లో నెట్వర్క్ తప్పు తగ్గుతుంది.
కొండ దిగే కిటుకు: గ్రేడియంట్ డిసెంట్ (Gradient Descent)
బ్యాక్ప్రాపగేషన్ కనుక్కున్న దిశలో అడుగులు వేయడానికి ఉపయోగించే అల్గారిథమే గ్రేడియంట్ డిసెంట్.
- దట్టమైన పొగమంచు లేదా చీకటి ఉన్న కొండ పైభాగంలో మీరు చిక్కుకుపోయారనుకోండి. మీ లక్ష్యం కొండ కింద ఉన్న మైదానానికి (కనిష్ట లాస్ - Minimum Error) చేరడం.
- కంటికి ఏమీ కనిపించదు కాబట్టి, కాళ్లతో నేల వాలును (Slope/Gradient) పరీక్షిస్తూ, నేల ఏ వైపుకు వాలి ఉంటే ఆ దిశగా ఒక్కో అడుగు జాగ్రత్తగా కిందకు వేసుకుంటూ దిగుతారు.
- కంప్యూటర్ కూడా లాస్ అనే కొండ పైనుండి, వాలును లెక్కగడుతూ నెమ్మదిగా లోయ వైపుకు అడుగులు వేస్తుంది.
లెర్నింగ్ రేట్ (Learning Rate - $\eta$): అడుగుల పరిమాణం
కొండ దిగేటప్పుడు మీరు ఎంత పెద్ద అడుగు వేస్తున్నారు అనేదే లెర్నింగ్ రేట్.
$$\text{కొత్త వెయిట్} = \text{పాత వెయిట్} - (\text{లెర్నింగ్ రేట్} \times \text{గ్రేడియంట్})$$
| లెర్నింగ్ రేట్ పరిమాణం | ఏం జరుగుతుంది? | ఫలితం |
| చాలా ఎక్కువ ఉంటే (Too High) | భారీ గెంతులు వేయడం వల్ల అసలు లోయను దాటి అవతలి కొండపై పడతారు. | నెట్వర్క్ ఎప్పటికీ సరైన జవాబును నేర్చుకోలేదు (Overshooting). |
| చాలా తక్కువ ఉంటే (Too Low) | చీమ నడకలా అంగుళం అంగుళం కదులుతారు. | నేర్చుకోవడానికి రోజులు లేదా నెలల సమయం పడుతుంది. |
| సరైన స్థాయిలో ఉంటే (Optimal) | స్థిరమైన అడుగులతో త్వరగా కనిష్ట లాస్ స్థానానికి చేరుకుంటారు. | నెట్వర్క్ వేగంగా, కచ్చితంగా శిక్షణ పూర్తి చేసుకుంటుంది. |
శిక్షణ చక్రం (The Training Loop)
ఒక న్యూరల్ నెట్వర్క్ నేర్చుకునే పూర్తి ప్రక్రియ ఈ మూడు దశల నిరంతర ఆవర్తనం:
- ఫార్వర్డ్ పాస్: సమాచారం ముందుకు వెళ్లి ఒక సమాధానాన్ని ఇస్తుంది.
- లాస్ లెక్కింపు: తప్పు ఎంత జరిగిందో సంఖ్య రూపంలో తెలుస్తుంది.
- బ్యాక్వర్డ్ పాస్ (బ్యాక్ప్రాపగేషన్): వెనక్కి వచ్చి వెయిట్స్ను సరిచేసుకుంటుంది.
ఈ చక్రం ఒక్కసారి జరిగితే నెట్వర్క్ పూర్తిగా నేర్చుకోలేదు. లక్షలాది డేటాను ఉపయోగించి ఈ చక్రాన్ని వేల సార్లు తిప్పాల్సి ఉంటుంది. ఈ శిక్షణను ఎన్నిసార్లు, ఏయే బ్యాచ్లలో నిర్వహిస్తారో తెలిపే కీలక కాన్సెప్టులే ఎపోక్స్ మరియు బ్యాచెస్ (Epochs & Batches).