PART I 各部分总结
# Q-Learning & SARSA算法
## 1 解决问题类型(表格型)
- Model Free
- 有限状态
- 有限动作
## 2 算法介绍 TD-Learning(Value Based)
### 2.1 SARSA(On-Policy)
#### 2.1.1 算法构成
```dotnetcli
1. 初始化S
2. 根据S和Q table获取A
a. 环境采取A,获得R和S'
b. 根据S'和Q table获取A'
c. 更新Q table
d. S'=S,A'=A
```
#### 2.1.2 Q table更新方法

#### 2.1.3 SARSA过程

### 2.2 Q-Learning(Off-Policy)
#### 2.2.1 算法构成
```dotnetcli
1. 初始化S
a. 根据S和Q table获取A
b. 环境采样动作A,获得R,S'
c. 更新Q table
d. S'=S
```
#### 2.2.2 Q table更新方法

#### 2.2.3 Q-Learning过程

## 3 差异比较

因为上述原因,SARSA更保守,Q-Learning更激进。
## 4 算法的实现架构
- Main:负责环境的创建,智能体创建,训练过程(环境和智能体交互)
- Env:负责实现环境部分即S采取A会给出怎样的S',R
- Agent:负责实现智能体部分,包括探索的模块sample,策略模块predict,学习更新模块learn
# DQN
## 1 解决问题类型
- Model Free
- 有限状态拓展到连续状态
- 有限动作
## 2 算法介绍 TD-Learning(Value Based)
### 2.1 DQN(Off-Policy)
#### 2.1.1 整体框架


#### 2.1.2 DQN in PARL

#### 2.1.3 核心思想
在Q-learning基础上,把Q Table用神经网络替换,解决大量状态下的维度灾难。
#### 2.1.4 两个技巧
- 经验回放
- 消除数据关联(数据IID分布化),减小参数更新方差,加速收敛
- 重复使用经验,提高数据利用
- 固定Q Target
- 增加学习的稳定性
#### 2.1.5 算法构成
```dotnetcli
1. 初始化评估网络q(w)参数w,目标网络q(w')参数w'=w
a. 选择状态S
b. 根据q(S,.;w)选择A,获得R,S'
c. (S,A,R,S')存入经验池D
d. 从经验池D取出一批(S_i,A_i,R_i,S'_i)
e. 更新w Loss = 1/|B|*sum((R_i+r*maxq(S_i',a;w')-q(S_i,A_i;w))^2)
f. S = S'
g. 更新目标网络 w' = w (多步后)
```
# PG
## 1 解决问题类型
- Model Free
- 有限状态拓展到连续状态
- 有限动作
## 2 算法介绍 TD-Learning(Polciy Based)
### 2.1 PG
#### 2.1.1 两种实现方式

#### 2.1.2 整体框架

#### 2.1.3 PG in PARL

# DDPG
## 1 解决问题类型
- Model Free
- 有限状态拓展到连续状态
- 有限动作拓展到连续动作
## 2 算法介绍 (Polciy Based)
### 2.1 DDPG的成因
从离散动作向连续动作拓展

### 2.2 DQN与DDPG的差异

### 2.3 DDPG整体框架

注意:target_P和target_Q的引入和DQN类似作用是为了稳定学习。
### 2.4 DDPG in PARL

### 2.5 DDPG Summary

PART II 体会
体会强化学习的调参比起监督学习,无论时间成本还是难度都要高不少,非常容易不收敛
笔记好详细~~
加油!共同进步!
脑补了一下Markdown的格式,嗯,舒服多了。
唔,抱歉这个我直接把写的markdown格式搬上来了,然而论坛貌似不支持。。