强化学习概述
前面其他的基本都是和监督学习相关
用于收集标记困难的情况(游戏?)
本质也是找一个 Function
元素:
- Actor
- Environment
不断循环进行输入输出(考虑程序的 Actor 模型);有一个结束条件,比如游戏结束
多个 episode
对应关系:
- function: Actor(Policy Network),如果是分类输出会再 sample 一次(加入随机性)
- loss:是一次循环的 Total Reward,参考之前看过训练赛车跑圈的内容;不断循环迭代变强
- optimization:
问题:
- a 是随机的(testing 也是随机的)
- Env 和 Reward 是黑盒子(类似 GAN 的 Discriminator,但是不是一个神经网络)
Policy Gradient
Actor 如何训练
根据需要让 Actor 采取或不采取的到某些 Label 就用一般的分类方式即可
分类数据是 {s,a,A}:内容是在各种状态下 想要 Actor 采取和不采取的行为
其中 {s,a} 是训练过程中收集到的 trajectory
进一步 A 可以是程度的衡量而不是只是两个选择,如何去设计定于 A(重点)
Reward Delay:
- 长程奖励的考虑,不考虑就是完全贪婪方式($A_t=r_t$)
- Cumulated Reward:每次都考虑最后,有点像是操作系统置换算法的 最优算法 $A_t=G_t=\sum\limits_{n=t}^N{r_n}$ ;问题:时间特别长就不合理,就是杞人忧天了
- 加入 Discount Factor:求和时加入到因子随往后幂次增长($G_t^{’}=\sum\limits_{i=t}^N{\gamma^{t-i}r_i}$); 越往后越小(像是泰勒级数展开)
- 加入标准化:需要相对化 Reward,所有 G 减去一个 Baseline $G_t^{’}-b$
最终算法:
- RL 中,数据在训练中收集,梯度每次只变动了一次
- 每次自己都发生了变化,变强了,所以要重新收集数据
交互和训练对象是同一个叫做 On-policy;同理就有 Off-policy 的方法(提高效率),具体算法是 PPO(Proximal Policy Optimization),需要知道和其他 Actor 的差异才能通过自己算对方(哲学来说就是,别人能用的方法,自己要用的话需要评估和别人的差异):通过小失败进行修正
Exploration
- 如果 Actor 没有随机,就不会有创造性,不能收集到本身机率低的行为
Actor-Critic
Critic
- 评估 Actor 的好坏,
- Value Function:$V^{\theta}(s)$ ,评估参数在给定环境给出的一次观测的好坏,通过 $G^{’}$,这个函数需要预测这个值
下面有两种方式评估,也就是算出上面的 baseline
Monte_Carlo
- 根据过去的记录,预测 G 应该是多少
Temporal-difference
- 不需要完成整场游戏
- 利用 Value Function 的递推关系,两次差一个 $r_t$
最终是 $A_t,=,G_t^{’}-V^\theta(s_t)$
其中因为 actor 的输出是一个分布,所以 value function 是取期望值,是一个平均
Advantage Actor-Critic
- 对 $G_t^{’}$ 取平均,即做完 $a_t$ 操作的 actor 输出
- 取做个输出减做完之前的输出,就能看到这个行动的结果期望是怎样的
- $r_t+V^\theta(s_{t+1})-V^\theta(s_t)$
Reward Shaping
额外的 Reward (望梅止渴,小目标,引导性奖励 ),具体的思路参考 VizDoom 的强化学习例子(需要领域知识的)
Sparse Reward:奖励非常稀疏,基本都是 0
如果没有正向输入,就没法利用到 Reward 去强化学习
Curiosity
- 如果发现新的东西就加分(马里奥例子)
- 但是要避免噪音(也是新的东西)
No Reward:Learning From Demonstration
Reward 不一定很好定义,因为要知道如何定义加分在除去游戏环境中;因为在现实中可能会有损失,不能试错
Imitation Learning
- 去除 Reward
- 找 expert 示范(demonstration),人类引导机器
- Behavior Cloning:小几率情况学习不到,并且有些行为是特质
Inverse Reinforcement Learning (IRL)
反推 Reward Function;可能对机器更有效果,参考 GAN 的潜藏空间(这里是以专家作为 dataset,也就是高标准,机器自己产生的作为低标准)