Deep Learning学习笔记(5)——AlphaGo

本文详细介绍了IBM深蓝战胜卡斯帕罗夫的策略以及AlphaGo如何运用神经网络与深度学习颠覆围棋界。AlphaGo结合策略网络、估值网络和蒙特卡洛树搜索,通过自我对弈和强化学习不断提升棋力,最终击败世界冠军。这一突破展示了深度学习在复杂决策问题上的强大能力。
摘要由CSDN通过智能技术生成

读《神经网络与深度学习》一书,随笔。

1 IBM深蓝下象棋

深蓝打败卡斯帕罗夫用的是蛮力和一些启发式算法。其原理是:用评估函数评估当前棋盘的局势 + 在大量可能局势中挑最有利的。评估函数采用了8000多个因素来计算,需要非常专业的国际象棋知识。用博弈树搜索后面的6步,然后用评估函数在第6层上评估节点的质量,用评估函数的值替换了这个节点下的所有子树的概述,用极大极小算法找到下一步动作。

围棋难在:

(1)落子点太多,使得博弈树搜索到足够深度更困难;

(2)评估函数太难设计。

2 AlphaGo下围棋

AlphaGo的主要原理包括三个重要部分:

(1)估值网络(Value Network,也叫价值网络):用于估计棋局的局势,在当前棋局状态下,每个落子位置导致整个棋局“最后”的胜率。相当于深蓝的评估函数,不同点是自己学习的而不是领域专家精心设计出来的,并且估计的是最终胜率而不是短期的攻城略地。

(2)走棋策略网络(Policy Network):在某一个棋局的状态下,计算各个可能落子位置的概率,并选择下一步最佳的走法。

(3)蒙特卡洛树搜索(MCTS,Monte Carlo Tree Search)

上述每个部分具体是什么?又是怎么训练的呢?

2.1 策略网络

是一个13层的CNN网络,卷积核大小采用5 x 5。

训练数据集:围棋游戏中获取的对局样本,3000万人类对弈的位置信息拆解为训练集。

训练目标:在每一种棋局状态下,人类棋手的下一步落子是什么,对于算法来说就是看每种图形的下一种图形是什么。所以策略网是用来计算对手如何落子的。

结果:用这个数据集直接生硬的训练,精度能有57%,这表明大量人下棋总是凭直觉。只有策略网络的AlphaGo(起个别名P_human)下不过业余6段的人类棋手。

优化:此时的训练数据仍然不够,因此采用强化学习进一步AlphaGo的棋力。

2.2 估值网络

也是一个CNN网络。估值网络是AlphaGo的一大创新。

训练:通过两台AlphaGo对弈的方式来训练。人类完成一局对弈一般数小时,AlphaGo之间对弈1秒钟内能完成数局,这种方式可以快速地累积出正确的评价样本。

因此估值网络并不是通过这个世界上已知的棋谱作为训练的,因为人类对弈会受到主观因素的影响。AlphaGo在对战欧洲棋王时,使用的训练组样本只有3000万个棋谱位置,但是在对战李世石时,棋谱位置已经增加到了1亿个。所以,先前提到的机器下围棋的最大困难点:评价机制的部分,就是这样通过卷积神经网络来解决的。

综上所述,策略网络是分类问题,考虑的是对方会下在哪,估值网络是评估问题,考虑的是我下在这的胜率是多少。

2.3 MCTS搜索

MCTS是当时另外一个非常强的AI棋手CrazyStone中用到的算法,是由Coulum设计的(黄士杰的老师),他最初对围棋一无所知。用MCTS搜索替代了博弈树搜索才拯救了围棋算法。MCTS通过模拟大量的棋局,使得最靠谱的落子方法自己涌现出来,而不是暴力的搜索博弈树中的每一种可能的落子方案。

训练:模拟两个人下棋,起初,用掷骰子的方法决定子落在哪里。如果赢了,一些落子方案的分值就增加。然后继续开始下一盘棋,之前被保存下来的落子方案会引导下一步模拟选择行为,模拟因此越来越不随机。随着想象中的棋局下得越来越多,那些看起来不错的落子方案的分数就会越来越高,而落子方案越是有前途,越会被更多地选中进行推演,于是最有“前途”的落子方法就会“涌现”出来。最后,AlphaGo在想象中下完10万盘棋后,选择它推演中分数最高的那个方案落子,这时,AlphaGo才真正下了当前的一步棋。

优势:MCTS搜索的特点是没有任何人工的特征,完全依靠规则本身,通过不断想象自对弈来提高能力。除此之外,MCTS完全不用等对手落子后才开始计算,在对手思考过程中它就已经在计算了,因为对手的落子完全可能出现在之前想象的对弈中,所以所有的计算都不会浪费。

优化:黄士杰意识到他老师的程序起点太低,需要一个方法替代扔骰子。所以用之前训练好的P_human来代替扔骰子。在这一步还可以加一些由围棋专家设计的手工规则,用来排除一些不好的走法。

2.4 AlphaGo整体训练过程

(1)利用3000万专业棋手棋谱训练两个网络:基于全局特征和CNN训练的走棋策略网;基于局部特征和线性模型训练的快速走棋策略,后面在线对弈时用;

(2)利用第 t 轮的策略网络与先前训练好的策略网络互相对弈,利用强化学习修正第 t 轮的策略网络参数,得到一个增强的策略网络;

(3)利用普通策略网络生成棋局的前 U-1 步,然后利用随机采样决定第 U 步的位置(为了防止过拟合),随后,利用增强的策略网络完成后面的自我对弈过程。第 U 步的盘面作为特征输入,胜负作为label,学习一个估值网络。

2.5 AlphaGo在线对弈过程

核心思想是在MCTS中嵌入深度神经网络来减少搜索空间。

(1)根据当前盘面已经落子情况提取相应特征。

(2)利用策略网络估计出棋盘其他空地的落子概率。

(3)根据落子概率计算此处往下发展的权重。利用估值网络和快速走棋策略网络分别判断局势,两个局势得分相加为此处最后走棋获胜的得分。使用快速走棋策略快速行棋至最后,每次行棋结束后会有一个输赢结果,综合统计这个节点对应的胜率。而估值网络只根据当前状态便可直接评估出最后的结果。两者各有优缺点,可以互补。

(4)利用第3步计算的得分更新之前那个走棋位置的权重。然后,从权重最大的那条边开始继续搜索和更新。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深度学习笔记v5是一本关于深度学习学习资料,下面我将用300字来回答有关这本笔记的内容。 深度学习是机器学习领域的一个重要分支,它主要研究模拟人脑神经网络的算法和模型,用于实现复杂的学习任务。深度学习在图像识别、语音识别和自然语言处理等领域取得了很多重要的突破,成为了人工智能领域的热点研究方向。 深度学习笔记v5中,首先介绍了深度学习的基本概念和原理。笔记详细解释了神经网络结构、前向传播、反向传播以及梯度下降等基本概念和算法。这些内容帮助读者理解深度学习的基本原理和工作机制。 接着,笔记介绍了常用的深度学习框架,如TensorFlow和PyTorch。这些框架提供了丰富的工具和函数,使得深度学习的开发变得更加简单和高效。笔记详细介绍了如何使用这些框架进行模型训练和评估。 此外,笔记还包含了一些深度学习的经典应用案例。这些案例涵盖了图像分类、目标检测、语音识别等多个领域。通过这些案例,读者可以深入了解深度学习在实际问题中的应用,并学习如何利用深度学习解决现实世界中的复杂任务。 最后,笔记还提供了大量的代码示例和练习题,帮助读者巩固所学的知识。通过实践,读者可以更好地理解深度学习的原理和应用。 总而言之,深度学习笔记v5是一本系统而全面的学习资料,适合对深度学习感兴趣的读者。通过阅读这本笔记,读者可以了解深度学习的基本概念和原理,掌握常用的深度学习框架,以及应用深度学习解决实际问题的方法。希望这本笔记能够对读者在深度学习领域的学习和研究有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值