行为主义理论
这是来自心理学和教育研究的理论,心理学中也有专门的行为心理学派,主要通过人的各种行为研究心理的活动,在教育心理学更多应用,给学习者设定各种刺激和奖励等措施,来看是否对学习的效果是否有提高。
强化学习就是借鉴这种思想在一些决策系统上应用,现在深度学习和强化学习的结合也越来越多,更大提高机器的智能。
目前工业界普遍使用的策略都是人为整理设定的一堆规则,所以算法也是基于规则推理,或者加上关联分析和规则合并,显然人力成本高而且泛化能力不足。而强化深度学习的结合就是解决这类问题,强化学习只需要一些目标,而深度学习需要很多的独立同分布样本,强化学习弥补了这些缺点,而在更多人机交互和语言处理的环境下,比如智能问答这些结合可以更好提升模型应用能力。
正如我们开始学语言也是开始模仿开始,然后可能根据反馈来纠正,强化学习就是这种行为模式,行为主义理论,也就是行为主义学习理论,又叫刺激-反应理论。是当今学习里的主要流派之一,就像人类开始认识大自然一样,我们没有什么先验知识,我们学习可以不要准备直接进入环境,然后不断调整。这是水会窒息,这是水果可以吃,然后我们得到了激励和惩罚,从而做出反应。
比较专业的心理学上解释,行为主义者认为,学习时刺激和反应之间的联结,基本假设是,行动是学习者对环境刺激所做出的反应,他们把环境看成是刺激,把伴而随之的有机体行为看做是反应,认为所有行为都是习得的。行为主义学习理论应用在学校教育实践上,就是要求教师掌握塑造和矫正学生行为的方法,为学生建立一种环境,尽可能在最大程度上强化学生的合适行为,消除不合适的行为。
强化学习理论
借鉴行为主义理论来看强化学习就比较形象了。强化学习系统主要由几个部分组成,一个是智能体(agent),状态(state)、奖赏(reward)、动作(action)和环境(environment)。
智能体:agent就是整个强化学习系统的核心。它能够感知环境的状态(state),并且根据环境提供的奖励(reward)信号,然后通过选择一个合适的动作(action),来较大化长期的reward值。这就向我们学习的过程设立长期目标和短期目标类似,短期目标可能会根据学习的效果和进度进行调整。
同样agent在学习过程中也是看某个动作代理环境的正回报,比如成绩提高了,升级了,那么这一动作会被加强,反之则会逐渐减弱。
Environment:环境会接受Agent执行的一系列的动作(Action),并且对这一系列的动作的好坏进行评价,并转换成一种可量化的标量(标量信号)Reward反馈给Agent、而不会告诉Agent应该如何去学习动作。Agent只能靠自己的历史经历去学习。同时环境还像Agent提供它所处在的状态信息。
Reward:环境提供给Agent的一个可量化的标量反馈信号,就像我们得到多少红花,打分,升级等,是对我们动作的评价,Agent的一系列动作的目标就是使得未来的累计奖赏尽可能大,可能是在当前状态下选择个最大可能的动作。
state:状态就是agent所处的环境信息,包含了agent用于进行Action选择的所有信息,它是历史(History)的一个函数:St =f(Ht)
简单说就是智能体在环境中处于某个状态(state)下,根据当下状态St,选择一个动作at;受到环境的影响,环境发生变化,转换到新的状态st+1;环境反馈给智能体一个奖励(正向为奖励,负向则为惩罚)
强化学习主要用在需要大量类人决策的系统,比如对答系统,AI游戏,智能炒股投资,自动驾驶,个性化医疗、智能教育等。
常见的强化学习仿真环境平台有MuJoCo、OpenAI Gym,rllab,
DeepMind Lab,TROCS,PySC2等。
最常见的强化学习应用就是游戏,比如我们走象棋,可以把棋子所在格子当做状态,上下左右的走可以设定为action,而能吃掉对方或包围更多对方设为奖励。
更多的复杂游戏如 flappy bird 超级玛丽等等游戏都可以通过这种方式自动学习。
当然现在深度强化越来越强,之前AI星际战胜了人类高手,也开启了再复杂策略游戏的探索。
我们知道dota 、王者荣耀、星际这类策略游戏更为复杂,而且最终的获胜也是各种状态,就拿环境来说就不只是平面,还有更多障碍物,高低程度,动作也能使一系列的攻击,不同的组合是不同的,使用魔法技能大招的破坏也不同,还有可以捡物品买卖物品和使用物品等,甚至可以合体。状态空间是非常大的,星际类更为多的是可以建立建筑物,还可以将军队分组,这也是攻防的动作之一,更为复杂这样也就是为何加入了深度学习。
离线策略和在线策略
米卢喜欢告诉队员们,多看电视看对手比赛视频,可以分析对手可以思考自己的策略,比如你对位的特点,这就类似一种离线学习,当然更好的的是打模拟游戏,或是在和队友和陪练的对弈下训练。一般足球队也会有主力队,也可以叫一队伍,当然还有替补的二队,就是为了更多人可以训练。
在线学习就是“learn on the job”
就是直接在做中学,这时候可能荟碰到很多麻烦,就出错了。
离线学习就是“Look over someone‘s shoulder’”
在实验模拟中看别人的样例演示
比如看韩国队比赛,然后看他对手的策略
离线学习重要性,可以更好的适应对手
根据视频的韩国队的对手的策略,可以基本采用适合的阵型,然后直接开始
根据视频或模拟学到的策略,继续更多使用这些经验
然后我们在使用时候探索哪个比较奏效,然后作为最优选择,就更多使用这个,比如更好的防守效果,攻击更多的对方的弱点
再可能从一个策略生成多个策略,比如看到韩国的后防转身比较慢,就可以多采用长传渗透和边路快速突袭的策略,进而可以组合多种新战术。
比如自动驾驶和电力的安全稳定控制系统就更需要了,很多规则需要离线模拟来学习。
具体在强化学习里就更多看的是训练数据集,是离线数据集上的学习到的策略就是离线策略。重点的区别是在离线时候可以看历史数据直接选择,而在线的时候我们是看不到的,不一定能选到最优。所以本质强化就是启发式的选择过程,不是单一目标的最优化预测过程。
在线学习比如sarsa ,离线学习则比如Qlearning。
理解环境
根据agent是否理解环境,可以分为model-free RL和model-based RL
主要区别就是在训练之前是否对环境作虚拟建模,没有虚拟建模则是model-free,就像 Q learning、Sarsa、Policy Gradients 都是从环境中得到反馈然后从中学习。model-based RL会先对真实的世界进行建模,然后在虚拟的环境进行练习。比如我们自动驾驶,虚拟的环境就可以更为复杂的,多变的,可能比现实更多可能,而不理解环境的就是直接丢进现实世界,碰撞的反应来学习,这样肯定没几下就报废了。
又像我们开发的测试环境和生产环境,一般在测试环境可以更多组合,更多架构和选型,会有更多的策略测试探索。
model-free RL只能是根据具体的反馈来进行下一步策略的选择,就像语音机器人,很多是要按照人的发出的指令进行下一步,再根据人的反应来接下一步。
而model-based可以主动想象反馈可能性,然后基于场景去主动互动。
所以model-based的RL更有想象力
基于概率和基于价值
强化学习方法又可以分为基于概率(Policy-based)和基于价值(value-based)的,主要看action的判断策略。
基于概率的方法各个动作是有随机概率,选择哪个是不一定的,而基于价值的方式都会选择一个最大价值的动作,当然如果是一系列连续动作,基于价值的方式就不适用,而基于概率的策略就比较适宜,比如打即时策略时候电脑的动作也有随机性,而下象棋的电脑往往是固定的步骤,因为是最优选择。
基于概率的RL有Policy Gradients ,基于价值的RL有Qlearning ,Sarsa
还有两种结合的actor-Critic
actor-critic从字面意思就比较容易理解,是演员和裁判的结合,actor像演员,体操、篮球扣篮赛等,具有表演和创造型的动作策略,一般是有个大致的规则,但是在动作时候,个体是随机的,不可能都每步去限制它,那就根本无法看下去了。就像你看球赛一直不断暂停的话,也就不好看。
actor是基于概率的可能进行某些动作,比如扣篮可能失败,然后运动员表演会增加即兴表演,而或者根据情况改变动作,打分的就是基于价值的策略,看动作舒展,高度,制空,创新性等。
组合策略的方式可以不打断actor的过程,同时在一轮行动更新评价,根据连续动作来评分。
回合更新和单步更新
假设强化学习就是在玩游戏,游戏回合有开始和结束。回合更新指的是游戏开始后,需要等待游戏结束再总结这一回合,再更新我们的行为准则。而单步更新则是在游戏进行中每一步都在更新,不用等待游戏的结束,这样边玩边学习。现在一般都是边玩边学。
参考
莫烦的课程还是比较实用通俗,但他主要专注工业应用,而且自己讲课分享
https://mofanpy.com/