机器学习之强化学习

什么是强化学习

强化学习是在一连串行动的最后加以评价是所使用的学习方法。强化学习能用于通过游戏的胜负来获得战略知识等任务。

举个栗子:象棋、围棋、五子棋等棋盘类游戏,可以考虑构建能够获得擅长下棋的知识的学习系统。

这时! 有一种方法:当计算机棋手走了一步之后,老师对这一步进行评价从而教其学习。这是属于监督学习的学习方法。比如以象棋为例,轮到计算机棋手时,计算机棋手遵从自己所具有的知识,选择某个棋子进行移动。这样一来,老师会给出 “这一步下得好,有潜质!! ” 或者 ”这一步走得真垃圾,老子不想教你了,赶紧滚蛋,!!”的评价。计算机棋手会根据老师的帮助语言更新自身所具有的知识,从而推进对于游戏对战知识的学习。

基于这一方法,可以非常有效地进行学习。事实上,如何构建教师数据是非常困难的。对与象棋、围棋、五子棋等,每下一步棋都对这一步进行评价,这不是一个简单的任务。当采用监督学习这样的机器学习方法进行学习时,以过去的棋谱数据作为学习数据,必须要有一个人来对计算机棋手的每一步进行评价从而生成教师数据。这样数据量太大,如果评价不正确,也不能成为老师。所以评价每一步棋是否正确在多数情况下是不现实的。

对于这个问题,可以使用强化学习。强化学习的框架是:在一连串下棋动作之后获得评价,基于这个评价来推进学习。这里,对于游戏整体的下法是好是坏的评价非常简单,只需要看一下游戏的胜负就可以了。各类棋盘等游戏无非就只有三中结果:赢,输,平局。

因此,对于自己一连串下法的评价,可以通过游戏胜负或平局来知道。强化学习利用一连串行动的最后评价值来学习下棋中每一步行动相关的知识。游戏胜负是明确的事实,与过去棋谱放在一起,和对每一步都生成教师数据相比,能过比较容易地生成学习数据。

在强化学习中,一连串行动最后所得的评价值,成为奖赏。以游戏的例子来说,游戏获胜就是获得正的奖赏,游戏失败就是获得负的奖赏。强化学习会在获得奖赏时,对于从开始到获得奖赏过程中的每一个行动,分配奖赏。

强化学习的具体方法——Q学习

在Q学习框架中,作为学习对象的是称位Q值的数值。Q值是指在某种情况下,为了选择下一个要采取的指标数值的集合。根据Q学习而获得Q值,在某个状态下选择下一个行动时,可以根据Q值来进行选择。

以游戏为例,考虑在某个局面下选择的下法。在给定某个局面下对各种可能的下一步选择的Q值。此时就可以根据可能选择的下发所对应的Q值的大小选择一个Q值,把与这个Q值对应的下法作为下一步的下法。随着Q学习的推进,Q值不断改善,就可以根据各种状态的Q值进行合适的行动选择。一般来说,强化学习的行动选择的方针称为策略。

Q学习中,获得合适的Q值是学习的目标。在学习的初期,不清楚什么是适合的Q值,所以无法做决定。英雌,在学习初期,Q值是由随机数来随机确定的。在此基础上,根据Q值进行行动的选择,更新状态。

Q学习是指在学习初期其行动几乎等同于随机选择,其行动结果当然就与完成目标所需的行动相差甚远。但是在这一系列行动中的结果可以得到奖赏。Q学习会在此时根据获得的奖赏变更Q值。也就是说,能够获得奖赏的行动所对应的Q值就会增加,那么这一行动会更容易被选择,以此来更新Q值。重复进行这样的过程,强化学习不断推进。

然而,仅仅对与奖赏直接相关的行动的Q值进行改善,那么行动系列最开始的行动的Q值一直保持原来的随机值而得不到更新。因此,对于某个行动的结果无法立刻获得奖赏的情况,可以按照一种方法对Q值进行更新,这方法是根据行动产生新的迁移状态,从可能选择的行动对应的Q值里选择最大的Q值,将这个最大值取一定比例加到之前的Q值上。
Q学习

这样一来,针对获得最终奖赏的行动所连接的行动全体,可以根据奖赏按顺序进行评价。第一次获得奖赏时,增加得到奖赏的上一步行动所对应的Q值。然后,如果之前的行动所对应的Q值充分大,对前一步的前一步行动根据刚刚增加的Q值进行计算。重复这样的做法,获得奖赏的一连串的行动所对应的Q值都获得了增加。

Q值更新的具体公式:Q值更新的具体公式
这里,st表示时刻t的状态,at表示在st时所选择的行动。
maxQ(s t+1,a t+1):在下一个时刻(t+1)能够选择的行动中所对应的Q值中的最大值;

r:奖赏(仅限于能够获得时,不能够获得的话是0);

a:学习系数(0.1左右)
在这里插入图片描述是折扣率(0.9左右)

Q学习中,在行动时,利用Q值更新公式来更新Q值,从而进行强化学习。公式的含义:等式左边是更新的对象是Q值。右边的第二项和原本的第一项的Q值相加,是用于更新的值。与右边第二项的全体进行乘积的学习系数a,是用于调节学习速度的常数。第二项的括号内,是仅仅在获得奖赏的情况下加上奖赏值r以及下一个能够选择的行动所对应的Q值的最大值的某个比例,再和原本的Q值进行差分后得到的值。

Q 学习的学习步骤

1 对所有的Q值用随机数初始化;
2 重复以下操作直到学习非常充分为止:
····2.1 返回到动作的初始状态;
····2.2 从可以选择的动作中,基于Q值选择下一次行动;
····2.3 行动后,根据Q值计算公式更新Q值;
····2.4 达到某个条件时回到2.1(游戏结束)
····2.5 返回到2.2

其中2.3的Q值更新过程是根据2.1来进行的
更新步骤如下:
····2.3.1如果能获得奖赏,将奖赏按比例加到Q值上
····2.3.2从下一个状态能够选择的行动所对的Q值中,将最大值按比例加到Q值上。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值