mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 13:43:05 +02:00
298 lines
16 KiB
Markdown
298 lines
16 KiB
Markdown
# Pytanie 36: Uczenie się ze wzmocnieniem (Reinforcement Learning)
|
||
|
||
## Pytanie
|
||
**"Omówić ogólny algorytm, elementy składowe oraz własności uczenia się ze wzmocnieniem."**
|
||
|
||
Przedmiot: SIU (Systemy Inteligentne i Uczące się)
|
||
|
||
---
|
||
|
||
## 📚 Odpowiedź główna
|
||
|
||
### 1. Model uczenia ze wzmocnieniem
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ REINFORCEMENT LEARNING LOOP │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────────┐ │
|
||
│ action aₜ │ │ reward rₜ │
|
||
│ ──────────→ │ ENVIRONMENT │ ──────────→ │
|
||
│ │ │ │ │ │
|
||
│ │ └─────────────┘ │ │
|
||
│ │ │ │ │
|
||
│ │ state sₜ₊₁ │ │
|
||
│ │ │ │ │
|
||
│ │ ↓ ↓ │
|
||
│ │ ┌─────────────┐ │
|
||
│ └────────── │ AGENT │ ←─────────┘ │
|
||
│ │ (policy π) │ │
|
||
│ └─────────────┘ │
|
||
│ │
|
||
│ Cel: Maksymalizacja skumulowanej nagrody E[Σ γᵗrₜ] │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 2. Elementy składowe
|
||
|
||
| Element | Symbol | Opis |
|
||
|---------|--------|------|
|
||
| **State** | s ∈ S | Obserwacja środowiska |
|
||
| **Action** | a ∈ A | Decyzja agenta |
|
||
| **Reward** | r ∈ ℝ | Sygnał zwrotny |
|
||
| **Policy** | π(a\|s) | Strategia wyboru akcji |
|
||
| **Value function** | V(s), Q(s,a) | Oczekiwana nagroda |
|
||
| **Discount factor** | γ ∈ [0,1] | Ważność przyszłych nagród |
|
||
| **Transition** | P(s'\|s,a) | Dynamika środowiska |
|
||
|
||
### Markov Decision Process (MDP)
|
||
|
||
```
|
||
MDP = (S, A, P, R, γ)
|
||
|
||
S: Zbiór stanów
|
||
A: Zbiór akcji
|
||
P: P(s'|s,a) - prawdopodobieństwa przejść
|
||
R: R(s,a,s') - funkcja nagrody
|
||
γ: Współczynnik dyskontowania
|
||
|
||
Właściwość Markowa:
|
||
P(sₜ₊₁|s₀,a₀,...,sₜ,aₜ) = P(sₜ₊₁|sₜ,aₜ)
|
||
|
||
Przyszłość zależy tylko od obecnego stanu!
|
||
```
|
||
|
||
---
|
||
|
||
### 3. Funkcje wartości
|
||
|
||
#### State Value Function V(s)
|
||
|
||
$$V^\pi(s) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s \right]$$
|
||
|
||
#### Action Value Function Q(s,a)
|
||
|
||
$$Q^\pi(s,a) = \mathbb{E}_\pi \left[ \sum_{t=0}^{\infty} \gamma^t r_t \mid s_0 = s, a_0 = a \right]$$
|
||
|
||
#### Równania Bellmana
|
||
|
||
```
|
||
V*(s) = max_a [R(s,a) + γ Σ_s' P(s'|s,a) V*(s')]
|
||
|
||
Q*(s,a) = R(s,a) + γ Σ_s' P(s'|s,a) max_a' Q*(s',a')
|
||
|
||
Rekurencyjne równania - podstawa algorytmów DP
|
||
```
|
||
|
||
---
|
||
|
||
### 4. Algorytmy
|
||
|
||
#### 4.1 Value-based methods
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ Q-LEARNING (off-policy, model-free) │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Q(s,a) ← Q(s,a) + α[r + γ max_a' Q(s',a') - Q(s,a)] │
|
||
│ └────────────────────────────────┘ │
|
||
│ TD target │
|
||
│ │
|
||
│ Algorytm: │
|
||
│ 1. Obserwuj stan s │
|
||
│ 2. Wybierz akcję a (ε-greedy) │
|
||
│ 3. Wykonaj a, obserwuj r, s' │
|
||
│ 4. Zaktualizuj Q(s,a) │
|
||
│ 5. s ← s', goto 1 │
|
||
│ │
|
||
│ ε-greedy: │
|
||
│ Z prawdop. ε: losowa akcja (exploration) │
|
||
│ Z prawdop. 1-ε: argmax Q(s,a) (exploitation) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ SARSA (on-policy) │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Q(s,a) ← Q(s,a) + α[r + γ Q(s',a') - Q(s,a)] │
|
||
│ ↑ │
|
||
│ Rzeczywista następna akcja (nie max!) │
|
||
│ │
|
||
│ Różnica od Q-learning: │
|
||
│ - Używa akcji faktycznie wybranej przez policy │
|
||
│ - Bardziej "ostrożny" (uwzględnia exploration) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.2 Deep Q-Network (DQN)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ DQN - Q-learning z siecią neuronową │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ State s → [Neural Network] → Q(s,a₁), Q(s,a₂), ..., Q(s,aₙ) │
|
||
│ │
|
||
│ Innowacje: │
|
||
│ 1. Experience Replay: bufor (s,a,r,s'), losowe próbkowanie │
|
||
│ 2. Target Network: osobna sieć do obliczania targetów │
|
||
│ (aktualizowana co N kroków) │
|
||
│ │
|
||
│ Loss: L = (r + γ max Q_target(s',a') - Q(s,a))² │
|
||
│ │
|
||
│ Przełom: Atari games (2015) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.3 Policy-based methods
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ POLICY GRADIENT │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ Bezpośrednia optymalizacja parametrów θ policy π_θ(a|s) │
|
||
│ │
|
||
│ Gradient: │
|
||
│ ∇_θ J(θ) = E_π [∇_θ log π_θ(a|s) · Q(s,a)] │
|
||
│ │
|
||
│ REINFORCE algorithm: │
|
||
│ 1. Generuj trajektorię τ = (s₀,a₀,r₀,s₁,...) │
|
||
│ 2. Oblicz return: Gₜ = Σ_{k=0}^{T-t} γᵏ r_{t+k} │
|
||
│ 3. Update: θ ← θ + α ∇_θ log π_θ(aₜ|sₜ) · Gₜ │
|
||
│ │
|
||
│ Zalety: ciągłe akcje, stochastic policies │
|
||
│ Wady: wysoka wariancja, wolna zbieżność │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 4.4 Actor-Critic
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ ACTOR-CRITIC - łączy value-based i policy-based │
|
||
├─────────────────────────────────────────────────────────────────┤
|
||
│ │
|
||
│ ┌─────────┐ ┌─────────┐ │
|
||
│ │ ACTOR │ ←───── │ CRITIC │ │
|
||
│ │ π_θ(a|s)│ │ V_w(s) │ │
|
||
│ └────┬────┘ └────┬────┘ │
|
||
│ │ │ │
|
||
│ ↓ │ │
|
||
│ action value estimate │
|
||
│ │
|
||
│ Actor: wybiera akcje (policy) │
|
||
│ Critic: ocenia jak dobre są akcje (value function) │
|
||
│ │
|
||
│ Advantage: A(s,a) = Q(s,a) - V(s) │
|
||
│ Actor update: θ ← θ + α ∇_θ log π_θ(a|s) · A(s,a) │
|
||
│ Critic update: minimize (r + γV(s') - V(s))² │
|
||
│ │
|
||
│ Algorytmy: A2C, A3C, PPO, SAC │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 5. Klasyfikacja algorytmów
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ │
|
||
│ ┌── Model-based (zna/uczy się P, R) │
|
||
│ RL Methods ─┤ │
|
||
│ └── Model-free (nie zna środowiska) │
|
||
│ │ │
|
||
│ ├── Value-based (Q-learning, DQN) │
|
||
│ ├── Policy-based (REINFORCE) │
|
||
│ └── Actor-Critic (A2C, PPO, SAC) │
|
||
│ │
|
||
│ ┌── On-policy (SARSA, A2C) - używa obecnej π │
|
||
│ RL Methods ─┤ │
|
||
│ └── Off-policy (Q-learning, DQN) - używa innej π │
|
||
│ │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
### 6. Exploration vs Exploitation
|
||
|
||
| Strategia | Opis |
|
||
|-----------|------|
|
||
| **ε-greedy** | Z prawdop. ε losowa akcja |
|
||
| **Softmax/Boltzmann** | P(a) ∝ exp(Q(s,a)/τ) |
|
||
| **UCB** | a = argmax[Q(s,a) + c√(ln N / n(a))] |
|
||
| **Thompson Sampling** | Próbkowanie z posterior |
|
||
| **Curiosity-driven** | Bonus za nowość |
|
||
|
||
---
|
||
|
||
### 7. Własności i wyzwania
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────────────┐
|
||
│ WŁASNOŚCI: │
|
||
│ ✓ Uczenie przez interakcję (nie supervised) │
|
||
│ ✓ Delayed rewards (kredyt za sekwencję akcji) │
|
||
│ ✓ Generalizacja (do nowych stanów) │
|
||
│ ✓ Online learning (ciągłe doskonalenie) │
|
||
│ │
|
||
│ WYZWANIA: │
|
||
│ ✗ Sample inefficiency (wymaga wielu interakcji) │
|
||
│ ✗ Credit assignment (która akcja odpowiada za reward?) │
|
||
│ ✗ Exploration-exploitation tradeoff │
|
||
│ ✗ Partial observability (POMDP) │
|
||
│ ✗ Non-stationarity (środowisko się zmienia) │
|
||
│ ✗ Reward shaping (sparse rewards problem) │
|
||
└─────────────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🧠 Mnemoniki
|
||
|
||
### "SARSA = State Action Reward State Action":
|
||
Sekwencja w algorytmie SARSA
|
||
|
||
### "Q = Quality of action":
|
||
Q(s,a) mierzy jakość akcji a w stanie s
|
||
|
||
### "Actor-Critic = Action + Advice":
|
||
Actor wybiera akcje, Critic doradza (ocenia)
|
||
|
||
---
|
||
|
||
## ❓ Pytania dodatkowe
|
||
|
||
### Q1: "Jaka jest różnica między Q-learning a SARSA?"
|
||
**Odpowiedź:** Q-learning (off-policy): używa max Q(s',a') - optymistyczne. SARSA (on-policy): używa Q(s',a') gdzie a' to rzeczywista następna akcja - bardziej ostrożne, uwzględnia policy exploration.
|
||
|
||
### Q2: "Po co Experience Replay w DQN?"
|
||
**Odpowiedź:** Łamie korelację między kolejnymi próbkami (iid requirement), efektywniejsze wykorzystanie danych (wielokrotne uczenie z jednej próbki), stabilizuje trening.
|
||
|
||
### Q3: "Kiedy model-based jest lepszy?"
|
||
**Odpowiedź:** Gdy środowisko jest przewidywalne, samples są drogie (robotyka), potrzebne planowanie. Model-free lepszy gdy środowisko złożone, trudne do modelowania, dużo samples dostępnych.
|
||
|
||
---
|
||
|
||
## 🎯 Kluczowe punkty
|
||
|
||
1. **MDP:** (S, A, P, R, γ) - formalizacja problemu
|
||
2. **Bellman:** V*(s) = max[R + γ·ΣP·V*]
|
||
3. **Q-learning:** off-policy, max Q update
|
||
4. **Policy Gradient:** ∇J = E[∇log π · Q]
|
||
5. **Actor-Critic:** policy + value function
|
||
|
||
---
|
||
|
||
## 📖 Źródła
|
||
|
||
1. Sutton, Barto - "Reinforcement Learning: An Introduction"
|
||
2. Silver - DeepMind RL lectures
|
||
3. Mnih et al. - "Playing Atari with Deep RL" (2015)
|