首页
CtrlK
Mleon的头像

强化学习:AlphaGo

AlphaGo
4
AlphaGo
引言
引言
重复
重复
学习
学习
强化
强化
围棋
围棋
里程碑
里程碑
AlphaGo理念
AlphaGo理念
重复已知
重复已知
难解未知
难解未知
学习已知
学习已知
需要思考
需要思考
后手模式
后手模式
评估好坏
评估好坏
搜索树
搜索树
优化搜索
优化搜索
自我改进
自我改进
模拟未知
模拟未知
超快学习
超快学习
AlphaGo总结
AlphaGo总结
AlphaZero
AlphaZero
单集封面
单集封面

强化学习:AlphaGo

02-12
4 次观看
Mleon的头像
Mleon
粉丝:169
主题:5
描述:12
例子:2
其他:2
字数:2432

强化学习:AlphaGo

02-12
4 次观看
Mleon的头像
Mleon
粉丝:169
Mleon的头像
Mleon
粉丝:169
主题:5
描述:12
例子:2
其他:2
字数:2432

AlphaGo

引言

介绍 围棋

视频链接: https://youtu.be/4PyWLgrt7YY?si=JfjDxLeTtmSp7Vuo

欢迎回来。在这个视频中,我们将使用强化学习来掌握围棋。下围棋时,你轮流在棋盘上放置棋子。目标是包围对手并控制领地。看起来很简单,但可能性的空间使得它比国际象棋更难掌握。

介绍 里程碑

在2016年,一个名为AlphaGo的计算机程序击败了世界顶级围棋选手。这是人工智能领域的一个重要里程碑。

AlphaGo理念

AlphaGo基于两个重要理念。首先,它通过分析数千场之前的比赛向人类专家学习。其次,它与自己进行了数百万场比赛,使用强化学习不断提高。

重复

重复已知

我们将从头开始。我们应该在哪里放置第一颗棋子?让我们咨询一下专家。这里有三场历史上最优秀的围棋选手的比赛。你会注意到他们都从右上角开始,但这只是三场比赛。让我们下载一些其他的比赛,再多一些。这是自1941年以来日本职业选手进行的10000场比赛。让我们看看他们的开局走法。超过一半的比赛以这一步开始,其余的多数从这里开始。我们将不太流行的走法显示为更透明。现在,假设我们选择从这里开始。在5514场以这一步开始的比赛中,这是白棋的走法分布。接下来,让我们再次选择最受欢迎的一步。我们可以使用相同的策略来选择接下来的几步。酷。我们已经创建了一个围棋程序。你所做的就是模仿大多数专家在完全相同的情况下所做的。

难解未知

但有一个大问题。在十几步之后,我们只剩下原始10000场比赛中唯一一场匹配的比赛。事实证明,围棋比赛有点像雪花。没有两场比赛是完全相同的。所以记住之前的比赛对你没有帮助,除了最初的几步。

学习

学习已知

我们需要一种更好的方法来预测好的走法。让我们训练一个策略,它以棋盘的当前状态为输入,并输出361种可能动作的概率。每个动作对应于在棋盘上的某个位置放置一颗棋子。

AlphaGo使用了一个有13层的神经网络,并在人类专家的数百万步走法上进行训练。你可以使用这个神经网络来玩完整的比赛,而且它的表现相当不错。它已经可以击败大多数业余玩家。这很酷。

需要思考

但要击败专家,程序需要像专家一样思考。职业围棋选手可以规划未来几十步的走法。

强化

后手模式

考虑这个场景。如果你是白棋,你可能会认为你应该走这里以防止黑棋包围你,但接下来黑棋会走这里,然后你将不得不走这里来救你的两颗棋子。如果你继续这样走下去,最终你会失去所有这些领地。这种模式被称为“后手”,看起来不妙,对吧?

但到底有多糟糕呢?好吧,假设我们从这个状态开始模拟100场不同的比赛。白棋每一场都输了。我们说这个状态对白棋的价值是零。

评估好坏

专家可以提前规划以避免这样的糟糕结果。为了了解这是如何运作的,让我们回到“后手”开始时的这个时间点。这对白棋来说是一个好状态还是坏状态?好吧,如果你从这个状态开始模拟100场比赛,白棋赢了57场,价值为0.57。这相当不错。这个价值函数提供了一种给状态打分的方法,它对规划走法非常有用。

搜索树

像AlphaGo这样的程序使用搜索树来提前规划。这个节点代表棋盘的当前状态。白棋下一步走,从左上到右下,每个可能的走法都有一个分支。接下来黑棋走,引入更多分支,依此类推。树中的每条路径代表一种走法序列。我们只有时间探索其中的几条路径。我们应该选择哪些路径?

优化搜索

AlphaGo使用两种策略来优化搜索。

  • 首先,它使用专家策略。我们刚刚训练它优先考虑最有希望的分支。这些走法都有很高的概率。

  • 其次,它使用价值函数来限制搜索的深度。价值函数提供了在不模拟整个比赛的情况下获胜的可能性。

你可能会问,为什么要搜索所有路径?直接从根节点选择价值函数最高的走法不就好了?答案是,价值函数只是近似值。它可能并不准确,所以最好在比赛中尽可能多地进行搜索。

价值函数非常重要。它们越准确,你的程序获胜的概率就越高。在这些模拟中,我使用了gnugo,一个开源的围棋程序。

自我改进

AlphaGo使用了一种更先进的价值估计方法。AlphaGo从走法策略开始。我们从人类专家那里学习。它只为一方使用这种策略,这里是白棋,而为黑棋使用另一种固定的策略,其权重是固定的。

现在,我们通过强化学习来优化白棋的策略。这就像我们在第一部分中对乒乓球游戏所做的那样。使用当前策略进行一整局游戏。如果赢了,白棋的所有走法都会得到加强。如果输了,这些走法会受到惩罚。AlphaGo重复这种方法,通过与自己进行数千局游戏来改进策略。它还会尝试不同的对手策略,以积累与各种对手对弈的经验。

现在,我们模拟了许多胜利和失败。我们可以利用这些信息来计算价值函数。例如,这个状态有两局胜利和两局失败经过它。所以我们估计从这个状态获胜的概率是二分之一,而这个状态有三局中两局胜利。

模拟未知

但你会注意到,大多数状态根本没有被访问过。我们如何估计未见过状态的价值?嗯,我们可以进行更多的模拟。AlphaGo进行了3000万次模拟。这听起来很多,但19x19的围棋棋盘有10的170次方个有效状态。这是一个天文数字。这也是围棋如此具有挑战性的原因之一,为了估计未见过状态的价值,我们将使用我们的老朋友——神经网络。3000万次自我对弈为我们提供了大量训练数据来训练我们的价值网络。这非常酷。

超快学习

想想看,职业选手通过与他人对弈积累经验。你可能一生中会下几千盘棋。AlphaGo只需几天时间,通过不断与自己对弈,就能获得类似的经验。这就是强化学习的魔力。

AlphaGo总结

总结一下,AlphaGo的工作分为两个阶段。首先,它从人类专家的棋谱中自动学习。然后,它通过与自己进行数百万次对弈,利用强化学习不断提升水平。

AlphaZero

就像我们在第一部分中玩乒乓球游戏一样,完全可以完全跳过第一步,仅依赖强化学习。这就是AlphaZero,来自DeepMind的一种更新、更先进的方法。它的表现甚至更好。敬请期待第三部分,了解强化学习如何被用于训练ChatGPT。

讨论
随记
AI 助理