强化学习笔记
第一章
基础概念
强化学习就是:学习π函数或者Q*函数。
如何控制Agent:
①假如知道,直接把当前状态s输入到函数中,得到各个action的概率,然后随机抽样得到一个动作a
②假如知道,就可以用来当前状态s下的每一个动作a的好坏,选出Q最高的动作。
两种随机性:
action的随机性:π函数是action的概率密度函数,最终采取哪个是从(0.3前进,0.1后退,0.7跳)中抽样得到的。
state的随机性:下一个环境是环境根据状态转移概率函数p抽样得到的,输入为s和a。
- π是Policy函数。π(a|s)=P(A=a|S=s) 意思是给定状态s,做出action=a的概率密度函数。
- 轨迹trajectory是一个序列,序列单个元素包含(state,action,reward)。
第二章-Value-based learning
DQN(Deep Q Network):用一个神经网络来近似Q*,神经网络参数的学习需要使用TD(temporal different)算法。
TD是学习DQN最常用的算法。
TD算法意义:有了TD算法,不需要打完游戏也能更新模型。
理解:出发时预估全路程所需时间=当前时刻真实走过的时间+当前时刻预估剩下路程所需时间。
损失:用模型的最初估计 Q(w),基于部分实事+重新估计的值y的差叫做TD error。损失函数是求td error的平方/2。
DQN的神经网络输入:状态s
DQN的神经网络输出:对每一个动作a的打分
TD算法流程
第三章-Policy-based learning
用一个神经网络来近似Policy函数π,神经网络参数的学习需要使用Policy Gradient。
Policy函数π对三个action的示例,输出是一个三维向量:
- π(left|s):0.2
- π(right|s):0.3
- π(up|s):0.5
蒙特卡洛:从某个位置的函数中抽多个随机样本,用随机样本来近似函数期望。
Policy Gradient策略梯度算法流程:
用蒙特卡洛近似来计算梯度,从策略密度函数π(·|st;θt)随机抽样得到一个动作at。
根据Q_π的计算法方法不同分为两类算法:
- Reinforce算法:用策略π来控制agent运动,从一开始到游戏结束,记录整个轨迹(a,s,r三元组的集合)。用观测到的u_t来近似Q_函数。
- 用神经网络近似Q_π:我们已经用一个神经网络来近似π,现在又要用另一个神经网络来近Q_π。
第四章-Actor-critic Method(策略学习+价值学习)
Actor策略网络:
![](https://i-blog.csdnimg.cn/direct/7edb7bcdec1b4ce0ba3fe34a81edb59c.png)
优化策略网络使得裁判给的分更高。策略梯度算法更新网络。
Critic价值网络(给动作打分):
靠环境给的reward让自己打分越来越准。用TD算法更新网络。
整体流程:
Critic裁判根据前后两个时刻的输出(q_t和q_t+1)以及奖励R_t,用tf算法来更新价值网络。
参考资料:翻遍整个B站!这绝对是2023年讲的最好的强化学习零基础入门到精通完整版教程(含实战源码)_哔哩哔哩_bilibili