赞
踩
人们通常使用动态系统理论中的一些思想来形式化强化学习问题,比如马尔可夫决策过程(MDP)就包含了这三个方面 ——
感知
、动作
、目标
,并将其以简单且不失本质的方式呈现。适用于解决任何这类问题的方法就是强化学习方法。
监督学习有以下两个特点:
强化学习不满足这两点:
agent 难以即时评价当前动作的好坏
所以Reinforcement Learning不同于Supervised Learning之处在于以下几点
虽然强化学习和监督学习有诸多不同,但这并不代表监督学习无法解决强化学习问题(这种称为 “模仿学习”)
对于相同任务,强化学习和其他监督学习方法最大的区别是二者使用的训练信号不同 —— Richard S.Sutton
进化方法本质是一类优化方法,比如遗传算法、遗传规划、模拟退火算法等,它们的目标一般是对一个目标值进行优化。对于一些比较简单的问题,数学上有很多数值优化方法,比如梯度下降、拟牛顿法等等,但对于复杂问题,比如旅行商问题这类的,往往使用进化方法求解。
进化算法也可以用于解强化学习问题,这些方法采取大量静态策略,每个策略在扩展过的较长时间内与环境的一个独立示例进行交互,选择获取了最多收益的策略极其变种来产生下一代策略,然后继续循环更新,算法性能随着迭代不断提升。
如果策略空间充分小,或者可以很好地结构化以找到好的策略,或者我们有充分时间进行搜索,那么进化方法是有效的。另外,进化算法在智能体不能精确地感知环境状态的问题上具有优势
以下井字棋为例,由于我们不能获知对手的行动策略,博弈论的 “极大极小” 算法,或是序列决策问题的动态规划算法都无法使用,而强化学习和进化方法都适用
从这个例子中,我们可以看出,进化算法忽略了问题中的一些有用结构,比如:策略是从状态到动作的函数、个体在生命周期中经历的状态序列及相应动作,强化学习则关注到和环境的交互过程,通过建立价值函数利用了这些信息。总的来说
事实上,进化算法、爬山、退火这类优化算法,其在策略空间的搜索有很大的随机性,有点碰运气的意思,也没有很好的数学基础,几乎已经是过气的研究领域了。不过最近周志华组出了一本关于演进学习的新书,说是打实了数学基础,或许会带来一些改变。
任务:训练一个玩乒乓球游戏的Agent,action只有move up和move down
设计出Agent的结构如下:把游戏画面转为像素数组后输入策略网络,最终得出各个动作的概率分布
我们可以把游戏中两个拍子位置的任意组合看作一个环境状态(state)
s
s
s,游戏过程中环境的状态在不断变化
准确地说,这里的游戏画面截图是状态state s s s,我们通过某个嵌入函数 embedding function ϕ \phi ϕ 将其映射为一个观测 observation o = ϕ ( s ) o = \phi(s) o=ϕ(s),然后带入强化学习算法处理,只是为了表示简便,通常不特别区分观测和状态。例如
- ϕ \phi ϕ 是 identity 函数,则观测 o o o 也是游戏的一帧画面,这种方式比较简便,但是输入维度可能太大
- ϕ \phi ϕ 是将游戏图像映射到两个拍子位置的函数,则观测 o o o 是两个拍子位置组成的二维向量
这里的Policy Network可以用多种方式得到
探索-利用窘境
:探索和利用无法同时进行,要探索潜在的更好的action,就不得不牺牲短期的reward
例子:选餐馆
- Exploration:尝试一家没吃过的餐厅,但是可能踩雷
- Exploitation:选一家以前吃过感觉不错的餐厅,但是这样也失去了发现更好餐馆的机会
贡献度分配问题
:agent 与环境交互得到一个很长的轨迹,这个过程中 agent 执行了很多动作,并获得一定的收益,如何判断各个动作(准确说是在某状态下执行某动作)对于获取收益贡献的大小?占用度量
,它表示策略会访问到的状态或状态动作对的(折扣)概率分布,已经证明占用度量和策略是一一对应的。强化学习的策略在训练中会不断更新,其对应的数据分布(即占用度量)也会相应地改变。因此 agent 看到的数据分布是随着智能体的学习而不断发生改变的
以下引用自 强化学习入门知识(基础篇)
规划
,就是在真正经历之前,先考虑未来可能发生的各种情况从而预先决定采用何种动作。按学习内容,强化学习算法(Agent)可以分成
示意图如下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。