首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

闲谈 AlphaGo Zero:自我学习之增强学习

逍遥公子专栏

上期回顾及思考

在AlphaGo Lee的算法中,人类的知识引导它找到了局部最优解,这并不能说人类的知识在其中起了负作用。关键得看优化算法是否足够强大,是否能跳出局部最优而找到全局最优。(如果算法够好,人类的知识可能会起到更好的助益。AlphaGo Master在某种程度上也证明了这点。)

AlphaGo的成员发展,到目前,经历了四代:

从人工智能算法的角度来看,

这里要注意的是:在人工智能的算法上,AlphaGo Master并没有突破性的变化。

Alpha Zero分别与 AlphaGo Lee和Alpha Master 的对决结果,是否真地说明:人类的棋谱知识没什么用?

增强学习是什么?

阿法元的成功带火了一个名词:增强学习(Reinforcement Learning,也称为强化学习)。

实际上,从AlphaGo Lee就开始采用增强学习。只是它先学完人类的棋局,再进行增强学习(通过自我对弈的方式)。

从大面上讲,增强学习是机器学习的一个分支。其中一种分法如下:

因此:增强学习是一种能教会机器理解事物、并解决实际问题的方法。

增强学习的目的

增强学习的目的:在一个环境(environment)中,得到适用于代理(agent)的最佳策略(policy)。

下图是其典型构造。

策略向环境产生一个行动(action),从而改变此环境的状态(state);同时环境也会向代理反馈一个奖励(reward):如果奖励是正向的,将强化原有的策略;反之,则弱化原有的策略。无论哪种情况,都会促使代理进行相应的策略调整,从而获得最大化的奖励。

听起来,有点难理解?

下面,我们以下围棋为例,解释这个问题,你就好理解了。

在下围棋这个应用上,“代理”是:棋的一方(例如:AlphaGo);“策略”是:你走棋的思路;“行动”是:你落子的招式;“环境”是:围棋和对手;“状态”是:棋局的形势;而“奖励”就是:最终的输赢(也可以是棋局的优劣)。

增强学习是一种带有反馈行为的学习方式:“代理”与“环境”相互交互,通过“行动”,获取反馈信息,然后不断地自我调整、学习,最终找到最优策略。这一点,它与传统的有监督学习和无监督学习是不同的。

我的体会

1

最优策略是一系列行动的序列

增强学习得到的最优策略是一系列行动的序列,并不是单一的一个行动。这就相当于要找到一条最优的曲线。如果用传统的解优化的方法,的确是非常困难的。

2

"环境"存在不确定性

环境的存在带来了一定的不确定性。就好比下棋时,你不确定对手下一步的招式,这就增加了问题的复杂度。

怎样求解,得到最优策略?

理论上,求解出最优策略是非常困难的。一般会加上一个很强的假设并符合马尔科夫链的特性。即:下一个行动的好坏只与当前的状态有关,而与之前的行动和状态都无关。

这是个很强的假设,大大简化了问题。(好在,实际中,符合这种假设的应用还不少。)

针对它,有个专业名词:MDP(Markov Decision Process,马尔科夫决策过程)。

说到这里,不禁想起十年前,当时在做博后。深夜里,和实验室的同学们一起研究 MDP 论文的情景。

当时是怎么也不会想到:十年后,MDP 换了个叫法 - “增强学习”,竟然这样火了起来。

要解一个增强学习的问题,关键在于要得到两个函数:一个是价值函数,一个是Q函数。

价值函数(V函数):评估当前状态的好坏

它是当前状态的函数 V(s)。基于当前的状态,在考虑所有可能的行动及导致的新状态的基础上,得到最终奖励的平均值。

Q函数:计算价值

它考虑的是:采取行动a之后的价值。

它是当前状态V(s)和行动的函数 Q(s,a)。即:在当前状态s下,当采取行动a后,得到的最终奖励的平均值。

对照上述定义不难看出:Q函数是一个策略函数,给出了在当前状态下,最佳的行动是什么。

只要把在当前状态下所有可能的行动的Q函数值都计算一下,选择最大的值,其对应的行动就是最佳的(因为它让最终的奖励最大化)。

但Q函数的计算是离不开V函数的。

根据V函数的定义,把在当前状态下,采取某一行动后可能导致的行动状态的价值分别计算,并取其最大值,就能得到Q函数的值。

在解决实际问题中,要得到这两个函数是非常困难的。

学术界一般会进行大量假设,限制问题范围,以求能得到一个闭环的公式描述。

在AlphaGo中,

怎么得到这两个函数的值?

AlphaGo采用深度神经网络的方法得到这两个函数的值,以指导最佳的落子策略。

既然是深度网络的方式,就必须有有标记的样本对它进行训练(可参看另一篇阿法元的文章《闲谈AlphaGo Zero (阿法元)》)。

AlphaGo 的算法采用的是:随机走子和自我对弈的方式。即:根据最终的胜负(AlphaGo Lee的方式)或评估的棋局优劣(AlphaGo Master 和AlphaGo Zero的方式)产生大量的有标注的样本数据来训练这个深度神经网络。这个方式被称为蒙特卡洛搜索树(Monte-Carlo Tree Search, MCTS)。

(当然,这里说的是其基本思路,它背后的理论要复杂很多。具体细节大家可参看相关的专业解读。)

本文小结

写到这,有关AlphaGo的文章,就告一段落了。各路大侠:若有兴趣,欢迎和我进一步讨论,互相学习。

这篇文章讲的理论有点多,我自己也是花了很多时间来阅读理解,并尽量用通俗易懂的文字把它描述出来。

抛开其中深奥的理论,我最深的一点感触是:阿法元所用的算法,无论是增强学习还是深度神经网络,亦或是蒙特卡洛搜索树,都是在人工智能学术界已经研究得比较久的,并且是较成熟的方法。所以不仅是阿法元的技术,整个AlphaGo系列,都只是一种现有方法的整合的工程应用。

当然,这种工程应用的结果让人不敢小觑:在现有理论的基础上,工程应用带来的可创新空间还是非常非常地大;给人们的生活带来的惊喜也将是越来越无法估量的,就好像:乔布斯的苹果、马斯克的特斯拉。

我们下期再见!

小编 二当家

部分图片 网络

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180114G034UA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券