几年前AlphaGo火爆时,学习过一遍RL,回炉重新整理一下。
RL本质:马尔可夫决策过程。\( S, A, P, R \): 状态,动作,转换概率,奖励。
算法分类
- model or not
- model-based: 需要根据agent和env的交互,建立一个model; 和最优控制关联度高
- value iteration
- policy iteration
- policy search
- model-free (value-based,得到值函数)
- 表格逼近(状态有限且离散)
- 蒙特卡洛方法 (从利用模型来计算期望,到利用蒙特卡洛来计算期望)
- TD时间差分
- 值函数逼近(状态连续)
- policy iteration
- value iteration
- DQN (TD+NN)
- 使用NN来做值函数逼近
- 使用经验回放来解决训练数据之间的关联性
- 使用目标网络来处理时间差分重的TD偏差
- DQN (TD+NN)
- policy search
- Policy Gradient
- PPO: 避免策略更新过大,重要性采样
- AC = PG (policy) + TD (value)
- Policy Gradient
- 表格逼近(状态有限且离散)
- model-based: 需要根据agent和env的交互,建立一个model; 和最优控制关联度高
- online or offline
- online
- offline
- Q-learning。Q-learning取的是最大化Q值,实际上,这个动作并没有执行,即行为策略并没有执行,因此行为策略和我们的目标策略没有必然的联系,所以它是off-policy的。
- on-policy or off-policy
- 行动策略,评估及改善策略,两者是否一致,一致是on-policy
- 逆向强化学习
- 专家的policy往往是接近最优的,根据专家样本来得到reward function
- 一般用来解决机器人路径规划
- Q or V
- Q: the value of the Action
- 一个动作的Q值,就是这个动作以不同转移概率到达的所有状态的V值的期望,并加上奖励。
- V: the value of the State
- 一个状态的V值,就是这个状态下的所有动作的Q值,在策略下的期望。
- Q: the value of the Action