强化学习:
强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。
是为了让机器从一开始什么都不会什么都不懂,通过不断的从错误中学习,不断的去尝试,然后找到规律,学习到达到目标的方法,这就是完整的强化学习的过程。
例如:
强化学习所解决的问题的特点:
智能体和环境之间不断进行交互
搜索和试错
延迟奖励(当前所做的动作可能很多步之后才会产生相应的结果)
目标:
获取更多的累积奖励alphago
获得更可靠的估计
强化学习 (Reinforcement Learning) 是一个机器学习大家族中的分支, 由于近些年来的技术突破, 和深度学习 (Deep Learning) 的整合, 使得强化学习有了进一步的运用。比如让计算机学着玩游戏, AlphaGo 挑战世界围棋高手, 都是强化学习在行的事。强化学习也是让你的程序从对当前环境完全陌生, 成长为一个在环境中游刃有余的高手。
那么在机器当中,机器也需要一个好的老师,它不会告诉你对错,只会给到你得分,那么这个时候,机器就会慢慢学习到,到底做了那些动作,然后的到了高分。
如何根据特定的任务,选取不同的强化学习的方法?
大致可以分为两类:
不理解环境(model-free RL):就是不尝试这去理解环境,环境给到我们什么我们就尝试着使用什么
理解环境(model-base RL):就是有了一个模型去理解环境,这个模型就是环境
那么不理解环境的情况下,都有哪些方法呢?
- Q learning
- Sarsa
- Policy Gradients
而理解环境的无非就是多了一道工序,理解环境,也就是对模型进行了一个建模,然后它不仅可以在真实的世界中玩耍,也可以在虚拟的世界中玩耍,那么玩耍的方式也是,那几种。
所以它们两个最主要的区别是什么?
Model-free的方法,只能是通过环境给的反馈,然后一步一步的往下进行:
Model-base的方法,它可以通过建模来去想像接下来要发生的各种各样的事件的可能性。
这也就是在比赛场上Alphago能够超越人类的原因
- learning:
什么是Q-learning?
例如小时候,写作业和看电视,写完作业,就会得到相应的奖励,写不完就会被惩罚,
当前的状态呢是写作业(s1),我想判断一下,下一步是写作业(a2)还是看电视(a1),好这个时候我们联想了一下,发现下一个动作选择a2,要比选择a1的到的潜在奖励要高,那么这个时候就会选择a2,那么具体是怎么判断的潜在奖励,可以是使用S1关于a的一个Q表来表示。现在我们将状态更新到了s2,那么接下来是a1还是a2,这个时候又更新了一个Q表,来做选择,依次重复。
如何更新提升?
Sarsa和Q-learning是非常的相似的,它们最大的区别就是,sarsa是实践派,因为在做估计的时候,Q-learning在Q表中,获取到一个最大值,但是在真实的选区中,它并不一定会选取到最大奖励的那个值,而sarsa就是实践派,它一定会选择到奖励最大的值。
它们更新公式的区别:
因为sarsa是说到做到型,因此我们也叫他on-policy在线学习,而Q-learning叫做off-policy。
DQN(Deep Q Network):
谷歌就是靠这种方式使得点电脑玩游戏比我们人类玩游戏还要厉害很多,而这次我们说的这个DQN就是Q-learning融合了深度学习的方法。Q-learning也有一种瓶颈在里边,它们都是使用表格进行存储的,但是就比如说下围棋,使用表格的话,这个表格该是得有多大。
但是这并不是机器会玩游戏得根本原因;根本原因是因为了两个机制,一个是Experience replay,一个是Fixed Q-target:
Experience replay:很简单,就是再过往得经历当中,随机的去抽样,去学习参数,就好像一个数据库一样,随机抽样,消除了经历之间得相关性,这样可以更高效得学习到神经网络中得参数。而Fixed Q-target:使用两个结构相同得网络,一个网络中使用最新得参数预测Q得预测值,另一个网络中使用老的参数得到Q得真实值。然后对比去更新。
接着Policy Gradients,我们学了很多得方法,发现有学习奖惩得值,然后根据这些值的最高价值,去选择动作,当然也有不通过选取值,直接输出动作的方法,就是Policy Gradients,
这个算法最大的好处就是说,它能够再连续的动作空间上直接选择到动作,而基于值得方式不行,为什么不行,想象一下,在一个动作空间很大得空间中,先去计算出每个动作连续得值,然后再去根据值得可能性去选择动作,很明显计算太大,根本是吃不消得。