强化学习(Reinforcement Learning)

初识(基本概念)

什么是强化学习

通过与环境的不断交互,获得环境给出的反馈,不断更新优化自身从而进行学习。环境并不会给出标准答案,只会针对每次输出给出得分,让计算机自己不断探索规律,逐步找到得到高得分的方法。

应用场景的特点

【需要多阶段决策】
单个的动作并不重要,重要的是策略,即达到目标的正确动作的序列。不存在中间状态中最好动作这种概念。如果一个动作是好的策略的组成部分,那么该动作就是好的。因此,强化学习模型具备评估策略好坏程度的能力,从以往好的动作序列中学习从而产生策略。

基本元素

四个基本元素:agent / 系统动作 / 环境状态 / 奖励
过程:通过训练,每进行一次更迭机器(agent)都能从环境中观察到当前环境的状态,基于观察给出相应的动作改变状态,环境会给予机器奖励。

例如在经典的俄罗斯方块游戏中:
agent:模型的载体(如:智能机器人)
环境状态:已下落方块的堆积情况
系统动作:正在下落的方块采取什么形状,该在哪放下
奖励:方块堆砌完整并消除一行/多行给予得分

两个关键的模块

价值函数:在特定的状态下执行某动作,带来的长期收益
决策:基于价值函数决定该执行怎样的动作

RL的目标:使模型学到的决策能够达到长远来看最优的总奖励收益

进一步了解(与已经熟知的概念比较)

强化学习是机器学习的一个分支

与有监督学习的区别

有监督学习的核心是通过与已知的“标准答案”做对比,利用对比得到的反馈对整个模型进行调整。但需要“标准答案”这一条件,既是有监督学习的优势(因为通过与标准答案进行对比得到的反馈是非常精准且有效的,能够保证整个模型的训练速度和准确率),也是有监督学习的局限(这个标准答案通过由人类给出,首先这一标注成本就很高,其次面对人类也并不知道标准答案的情况有监督学习是无法生效的)

以训练围棋机器人为例:
有监督的机制是将已经输入系统的大量棋谱与当前局势相比对,根据已有的经验做出判断;
强化学习是在没有任何棋谱的情况下,先尝试着下一局,这样会得到一个输或赢的结果,这个结果反馈到模型上,赢了就是正反馈,输了就是负反馈,从而对之前的行为进行调整,但具体怎么调整并不会被告知。通过不断的反馈和调整,模型能够学习到在什么样的情况下选择什么样的行为可以得到最好的结果。

与无监督学习的区别

无监督学习的核心是在训练过程中不提供任何关于正确答案的信息,让模型自主寻找到给定数据的结构或分布规律。最经典的一类算法是聚类算法,聚类的目的在于把相似的东西聚在一起,但并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。

而强化学习需要反馈作为引导的,且以下棋为例,需要下上千万盘棋强化学习模型的性能才能有质的提升,但很难有人类能与它对下上千万局。2006年的 AlphaGo 就是先利用有监督学习方法去训练出一个准确率还不错的模型A,并将A作为强化学习模型B的对手,由两者对局的结果作为反馈,从而使得B的性能不断提升且超越A。
而2017年AlphaGoZero的能力则在这个基础上有了质的提升。最大的区别是,它不再需要人类数据。也就是说,它一开始就没有接触过人类棋谱。研发团队只是让它自由随意地在棋盘上下棋,然后进行自我博弈。

与遗传算法相比较

相同点:
1.都可以用于解决多阶段决策的问题(遗传算法的经典应用:旅行商问题;强化学习的典型应用:AlphaGo)
2. 利用“以分数为导向”的更迭原则,人类并不直接告诉模型每一步该怎么修正,而是通过所给的“分数导向”让模型自主学习问题中隐含的规律,从而不断提升性能(遗传算法:评价函数;强化学习:输赢/对错的反馈)

不同点:
强化学习:一般采用的是逐步探索(单步更新)的方式,根据当前的状态和环境给过的反馈,决定下一阶段应该采取什么动作;
当然强化学习也有基于回合更新的算法如:Policy gradient,利用神经网络(两个全连接层,要学习的就是两个连接层之间的参数),输入当前环境的观测值,输出采取每个动作的概率值,根据概率值选择动作,然后根据环境给出的反馈,反向传递该动作的下一次被选时概率的增大幅度
【总得来说:强化学习虽然是以环境的反馈为导向,但是这个反馈以直接或者间接(梯度)的方法作用到了每一阶段上】

遗传算法:一条基因序列就是一种解,当然随机初始化出来的解都并不够好,通过选择交叉变异等方式使个体的基因序列发生变化,并利用评价函数为每个改变后的个体打分,得分高的留下,得分低的淘汰,通过不断迭代,最终留下评价函数给出分值最高的个体,即为最优解。
核心点:一次性编码每个阶段的动作,一个个体就是一轮游戏下来应该做的所有动作的组合,然后根据评价函数的分值,留下表现好的,淘汰表现不好的,变异也是随机

【总得来说:评估函数这个导向并不能“有理有据”地作用到每个阶段的动作上去,而是仅仅对整体效果进行评价】

与神经网络的结合

强化学习是个大家族,其中包括Q-learning、Sarsa、Policy gradient、Actor-Critic以及基于这些初始模型的各种改进算法。当强化学习算法与神经网络相结合的时候,显然能够使强化学习发挥更大优势。
以Policy gradient为例:
目标:训练出一个两层的全连接网络
输入:当前环境的观测值
输出:采取每个动作的概率值
反向传播:根据环境给出的反馈,该回合中的每个动作下一次被选时概率的增大幅度


深入了解

强化学习的分类

理解环境 (model-based): 通过对环境的理解,根据经验模拟出一个虚拟的环境。通过想象预判断接下来发生的所有情况,选择最好的并采取下一步行动。
不理解环境 (model-free): 不关心真实环境的结构等,只关注得分,不关注为什么。在测试时,等待真实环境给出的反馈,采取下一步的行动。

基于概率(Policy-Based RL):利用概率衡量下一次采取各种行动的可能性,因此概率高的行动也并不一定被选中,每种行动都有被选中的可能性,只不过概率不同;对于连续值表示的行动,利用概率分布进行选择
基于价值(Value-Based RL):利用得分衡量下一次采取各种行动的可能性,价值最高的被选中,决策更铁定;但是基于价值的方法无法适用于连续值表示的行动
Actor-Critic:actor 会基于概率选择出行动, 而 critic 会对做出的行动给出价值, 这样就在原有的 policy gradients 上加速了学习过程.

回合更新(Monte-Carlo update):例如,当游戏的一整个游戏回合完成之后(从游戏开始到结束)再根据结果总结经验,更新行为准则
单步更新(Temporal-Difference update):“边玩边学习”,对游戏中的每一步造成的影响进行学习和更新(单步更新更有效率,所以当前的大多数RL都是基于单步更新)

在线学习(On-Policy):必须“本人边玩边学”
离线学习(Off-Policy):可以看“别人玩”从中获取经验,可以“白天玩晚上学”白天得到的反馈保存,晚上通过记忆集中学习并更新

在这里插入图片描述

AlphaGo:Policy-based + value-based + model-based

参考:监督学习、无监督学习与强化学习

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值