专栏名称: AI科技评论
「AI科技评论」是国内顶尖人工智能媒体和产业服务平台,专注全球 AI 业界、学术和开发三大方向的深度报道。
目录
相关文章推荐
机器之心  ·  谢赛宁团队新基准让LLM集体自闭,DeepS ... ·  18 小时前  
宝玉xp  ·  Gergely ... ·  昨天  
黄建同学  ·  太好了! Claude Code ... ·  2 天前  
声网  ·  MiniMax、星野、智谱清言,这些 AI ... ·  2 天前  
声网  ·  MiniMax、星野、智谱清言,这些 AI ... ·  2 天前  
爱可可-爱生活  ·  【[45星]TritonParse:Trit ... ·  2 天前  
51好读  ›  专栏  ›  AI科技评论

UC Berkeley 讲座教授王强:Deep Learning 及 AlphaGo Zero(下)

AI科技评论  · 公众号  · AI  · 2017-12-02 18:57

正文

请到「今天看啥」查看全文




在这里我先给大家讲一下AlphaGo的原理。一般的棋盘比如围棋、象棋等,我们第一步先做一件事,把棋盘的状态向量标记成s,围棋的棋盘是19*19,它一共有361个交叉点,每个交叉点有三个状态,1表示黑子,-1表示白子,0表示没有子,考虑到每个位置还可能有落子的时间等信息,我们可以用361乘以N维的向量表示棋盘的状态。


我们把棋盘的状态向量变成s,从0开始,s0表示的棋盘里的所有状态,没有任何子,s1落的是第一个子,s2是第二个子,第二步加入落子的状态a,在当前的状态s下,我们暂时不考虑无法落子的情况。下第一个子的时候,可供下一步落子的空间是361个,我们把下一步落子的行动也用361维的向量表示,变成a。第三步我们来设计一个围棋的人工智能程序,给定s状态,然后寻找最好的策略a,让程序按照这个策略去走。有四个条件,先是棋盘的状态s,寻找下棋最好的策略a,然后让程序按照这个策略a走棋,获得棋盘上最大的地盘,这是围棋人工智能程序的基本原理和思路。



DeepMind以及我们之前在沃森那边做的,主要流程如下:


  • 第一步先找一个训练样本,然后在观察棋局的时候,发现在每一个状态s里都会有落子a,那么这时候就会有一个天然的训练样本。

  • 第二步,我们做一个网络,拿了一个3000万的样本,我们把s看成一个19×19的二维图像,然后乘以N,N指的是48种围棋的各种下赢的特征,落子向量a不断训练网络,这样就得到了一个模拟人下围棋的神经网络。

  • 第三步我们设计一个策略函数和一个概率分布,我们拿到一个模拟人类棋手的策略函数跟某个棋局的状态s,可计算出人类选手可能在棋盘落子的概率分布,每一步选择概率最高的落子,对方对子后重新再算一遍,多次进行迭代,那就是一个和人类相似的围棋程序,这是最开始的设计思维和方式,策略函数和概率分布。


其实DeepMind还不是很满意,他们设计好这个神经网络之后,可以和六段左右过招,互有胜负,但还是下不过之前从沃森中做出来的一个电脑程序。这时候,DeepMind把他们的函数与从沃森中衍生出来的程序的函数算法结合在一块,对原来的算法重新做了一个完整详细的修正。


DeepMind最初对围棋一概不知,先假设所有落子的分值,这个大家一定要记住,在做任何科学研究的时候,当你发现你一无所知的时候,一定先要设定一个值,这个值千万不能是零。然后第二部分就简单了,就像扔骰子一样,从361种方法里随机选一个走法,落第一个子a0,那么棋盘状态就由s0变为s1,对方再走一步,这时候棋盘状态就变成s2,这两个人一直走到状态sN,N也许是360,也许是361,最后一定能分出胜负,计算机赢的时候把R值记为1。


从s0、a0开始再模拟一次,接下来如PPT中卷积所示,做激活函数。在下到10万盘次之后,这时候AlphaGo得到了非常完整的落子方案,比如说第一个子落在哪里赢的可能性比较大。



MCTS在这里起的作用是什么呢?MCTS能保证计算机可以连续思考对策,在比较的过程中发现最好的落子方式。在这之后,DeepMind发现用MCTS还不是非常好,他们就开始设计了一个比较有意思的东西,就是评价函数,我在这里就不太多讲评价函数。


AlphaGo的监督学习过程其实由两个网络组成,一个是从其他人中获得的学习经验,先是做了一个softmax,即快速落子,它的神经网络比较窄,第二部分是深度监督式神经网络。


到了做强化学习的时候,它会把原来通过机器学习过来的监督神经网络copy到强化神经网络里,然后进行初始化,让强化神经网络作为对手和另一个强化神经网络进行互相学习,来选择一个最优的结果。具体细节如PPT所示,500次做一次迭代,在这里会用到一些梯度下降的方式。







请到「今天看啥」查看全文