强化学习笔记 all in one
基础概念
强化学习和监督学习的区别:
- 强化学习输入的样本是序列数据,监督学习的样本之间相互独立
- 没有明确的监督者,通过奖励机制进行学习,但回馈可能是长期的,模糊的
一些强化学习的演示视频中,ai会做一些人类看来无意义的动作,正是这种“玄学”的回馈机制导致的
- actor: 行为主体
- action则可分为离散和连续,例如2d游戏中走格子迷宫就是一个典型的离散动作空间
- observaton o /states s: 观测与状态
- 观测到的情况o和现实情况(状态s)其实有可能不同,假设可以观察到全景,rl则成为一个马尔科夫决策过程
- policy π: 行为策略
- 带有参数θ
- reward:反馈
- baseline: 避免总是正值的reward,增加的偏置值,例如取期望
- episode: 一轮行动
- trajectory τ: \(\tau=\{s_{1},a_{1},s_{2},a_{2},\cdots,s_{T},a_{T}\}\)
- 折扣γ: 直觉上,最开始的训练回馈可能更重要,越往后则训练收益越小,所以对每步的回馈需要乘以一个 \(\gamma^{t-1}\),t为训练次数,这个超参数也可以用于控制训练策略偏短期还是偏长期
流程: env(s1)->actor(a1)->env(s2)……
$\begin{array}{l}{{p_{\theta}(\tau)}}{{{}=p(s_{1})p_{\theta}(a_{1}|s_{1})p(s_{2}|s_{1},a_{1})p_{\theta}(a_{2}|s_{2})p(s_{3}|s_{2},a_{2})\cdots}} \\ =p(s_{1})\prod_{t=1}^{T}p_{\theta}(a_{t}|s_{t})p(s_{t+1}|s_{t},a_{t})\end{array}$
同一轮中每对(s,a)产生一个reward,其期望为: \(\bar{R}_{\theta}=\sum_{\tau}R(\tau)p_{\theta}(\tau)=E_{\tau\cap P_{\theta}(\tau)}[R(\tau)]\)
取梯度
$$ \begin{align*}{r l}{\nabla{\bar{R}}_{\theta} \\ =\sum_{\tau}R(\tau)\nabla p_{\theta}(\tau)}&{{} \\ =\sum_{\tau}R(\tau)p_{\theta}(\tau){\frac{\nabla p_{\theta}(\tau)}{p_{\theta}(\tau)}}} \\ &=\sum_{\tau}R(\tau)p_{\theta}(\tau){\nabla}l o g p_{\theta}(\tau) \\ &=E_{\tau \sim p_{\theta}(\tau)}[R(\tau)\nabla l o g p_{\theta}(\tau)]\approx\frac{1}{N}\sum_{n=1}^{N}R(\tau^{n})\nabla \log p_{\theta}(\tau^{n}) \\ &={\frac{1}{N}}\sum_{n=1}^{N}\sum_{t=1}^{T_n}R(\tau^{n})\nabla l o g p_{\theta}(a_{t}^{n}|s_{t}^{n}) \end{align*} $$类似于机器学习的梯度下降,我们通过梯度计算寻找最大化reward的参数