围棋和对通用人工智能的挑战
已发表: 2018-02-15本文旨在探讨“围棋”游戏与人工智能之间的联系。 目标是回答问题——是什么让围棋游戏如此特别? 为什么计算机很难掌握围棋游戏? 为什么计算机程序能够在 1997 年击败国际象棋大师? 为什么破解围棋花了将近二十年的时间?
“先生们不应该把时间浪费在琐碎的游戏上——他们应该学习围棋”
——孔子
事实上,人工智能专家认为计算机只能在 2027 年之前击败世界围棋冠军。多亏了谷歌旗下的人工智能公司 DeepMind,这项艰巨的任务在十年前就完成了。 本文将讨论 DeepMind 用于击败世界围棋冠军的技术。 最后,这篇文章讨论了如何使用这项技术来解决一些复杂的现实问题。
目录
走——这是什么?
围棋是一款具有 3000 年历史的中国战略棋盘游戏,历久弥新。 围棋由全球数以千万计的人玩,是一款规则简单、策略直观的两人棋盘游戏。 玩这个游戏时使用了不同的棋盘尺寸; 专业人士使用 19×19 板。

游戏以空棋盘开始。 然后每个玩家轮流将黑色和白色的棋子(黑色先行)放在棋盘上的线交叉处(不像国际象棋,您将棋子放在方格中)。 玩家可以从四面八方包围对手的石头。 对于每块捕获的石头,玩家都会获得一些积分。 游戏的目标是占领棋盘上的最大领土,同时夺取对手的棋子。
围棋是关于创造的,不像国际象棋是关于毁灭的。 围棋需要自由、创造力、直觉、平衡、策略和智力深度来掌握游戏。 下围棋涉及大脑的两侧。 事实上,围棋选手的大脑扫描显示,围棋通过改善两个大脑半球之间的连接来帮助大脑发育。
傻瓜神经网络:综合指南
围棋和人工智能 (AI) 的挑战
计算机能够在1952 年掌握井字游戏。 深蓝在1997 年击败了国际象棋大师加里卡斯帕罗夫。 该计算机程序在2001 年的Jeopardy (美国流行游戏)中战胜了世界冠军。 DeepMind 的 AlphaGo 在2016 年击败了世界围棋冠军。 为什么认为计算机程序掌握围棋游戏具有挑战性?
国际象棋在 8×8 的棋盘上进行,而围棋使用 19×19 的棋盘。 在国际象棋游戏开始时,一名玩家将有 20 个可能的移动。 在围棋开局中,玩家可以有 361 种可能的走法。可能的围棋棋盘位置数等于 10 的 170 次方; 超过了我们宇宙中的原子数量! 棋盘位置的潜在数量使得 Go googol 次(10 的 100 次方)比国际象棋更复杂。
在国际象棋中,每走一步,玩家都面临着 35 步的选择。 平均而言,围棋玩家每一步将有 250 次可能的走法。 在国际象棋中,在任何给定的位置上,计算机都相对容易进行蛮力搜索并选择最大可能获胜的最佳棋步。 在围棋的情况下,暴力搜索是不可能的,因为每一步允许的合法移动的潜在数量是巨大的。
对于计算机掌握国际象棋,随着游戏的进行变得更容易,因为棋子已从棋盘上移开。 在围棋中,随着游戏的进行,棋子被添加到棋盘上,计算机程序变得更加困难。 通常,围棋游戏的持续时间是国际象棋游戏的 3 倍。
由于所有这些原因,在机器学习新技术大爆发之后,顶级计算机围棋程序只能在 2016 年赶上围棋世界冠军。 在 DeepMind 工作的科学家们能够想出一个名为AlphaGo的计算机程序,它击败了世界冠军李世石。 完成任务并不容易。 DeepMind 的研究人员在创建 AlphaGo 的过程中提出了许多新颖的创新。
“围棋规则如此优雅、有机且逻辑严密,以至于如果宇宙其他地方存在智慧生命形式,他们几乎肯定会下围棋。”
——爱德华·拉斯卡
神经网络:现实世界中的应用
AlphaGo 的工作原理
AlphaGo 是一种通用算法,这意味着它也可以用于解决其他任务。 例如,IBM 的 Deep Blue 专为下棋而设计。 国际象棋规则以及数百年来积累的知识被编程到程序的大脑中。 Deep Blue 甚至不能用于玩 Tic-Tac-Toe 之类的琐碎游戏。 它只能做一件它非常擅长的特定事情,即下棋。 除了围棋,AlphaGo 还可以学习玩其他游戏。 这些通用算法构成了一个新的研究领域,称为通用人工智能。
AlphaGo 使用最先进的方法——深度神经网络 (DNN)、强化学习 (RL)、蒙特卡洛树搜索 (MCTS)、深度 Q 网络 (DQN)(DeepMind 引入和推广的一种新技术,它结合了神经网络具有强化学习的网络),仅举几例。 然后将所有这些方法创新地结合起来,在围棋游戏中达到超人的水平。
让我们先看看这个拼图的每一部分,然后再了解这些部分是如何联系在一起来完成手头的任务的。
深度神经网络
DNN 是一种执行机器学习的技术,大致受到人脑功能的启发。 DNN 的架构由神经元层组成。 DNN 可以识别数据中的模式,而无需对其进行显式编程。
它将输入映射到输出,无需任何人专门对其进行编程。 作为一个例子,让我们假设我们已经为网络提供了很多猫狗照片。 同时,我们还通过告诉系统(以标签的形式)特定图像是猫还是狗来训练系统(这称为监督学习)。 DNN 将学习识别照片中的模式,以成功区分猫和狗。 训练的主要目标是当 DNN 看到一张狗或猫的新图片时,它应该能够正确地对其进行分类,即预测它是猫还是狗。

让我们了解一个简单 DNN 的架构。 输入层中神经元的数量对应于输入的大小。 让我们假设我们的猫和狗照片是 28×28 的图像。 每行和每列将由 28 个像素组成,这使得每张图片总共有 784 个像素。 在这种情况下,输入层将包含 784 个神经元,每个像素一个。 输出层中神经元的数量将取决于输出需要分类的类的数量。 在这种情况下,输出层将由两个神经元组成——一个对应于“cat”,另一个对应于“dog”。
密切关注下一件大事:机器学习
在输入层和输出层之间会有许多神经元层(这是在“深度神经网络”中使用“深度”一词的由来)。 这些被称为“隐藏层”。 隐藏层的数量和每层的神经元数量是不固定的。 事实上,改变这些值正是导致性能优化的原因。 这些值称为超参数,需要根据手头的问题进行调整。 围绕神经网络的实验主要涉及找出超参数的最佳数量。
DNN 的训练阶段将包括前向传播和后向传播。 首先,神经元之间的所有连接都用随机权重初始化。 在前向传递过程中,网络被馈入单个图像。 输入(来自图像的像素数据)与网络的参数(权重、偏差和激活函数)相结合,并通过隐藏层前馈,一直到输出,它返回一张照片属于每个人的概率的类。
然后,将该概率与实际的类标签进行比较,并计算出一个“错误”。 在这一点上,执行反向传播——这个错误信息通过一种称为“反向传播”的技术通过网络传回。 在训练的初始阶段,这个误差会很高,一个好的训练机制会逐渐减少这个误差。
以这种方式对 DNN 进行前向和后向训练,直到权重停止变化(这称为收敛)。 然后,DNN 将能够以高精度预测和分类图像,即图片中是否有猫或狗。

研究为我们提供了许多不同的深度神经网络架构。 对于计算机视觉问题(即涉及图像的问题),卷积神经网络(CNN)传统上已经给出了很好的结果。 对于涉及序列的问题——语音识别或语言翻译——循环神经网络 (RNN) 提供了出色的结果。
自然语言理解初学者指南
在 AlphaGo 的案例中,过程如下:首先,卷积神经网络 (CNN) 在数百万张棋盘位置图像上进行训练。 接下来,在网络的训练阶段,网络被告知人类专家在每种情况下所采取的后续行动。 以与前面提到的相同方式,将实际值与输出进行比较,并找到某种“错误”指标。

在训练结束时,DNN 将输出下一步动作以及专家玩家可能玩的概率。 这种网络只能想出一个由人类专家玩家玩的步骤。 DeepMind 能够达到 60% 的准确率来预测人类的动作。 然而,要击败围棋专家,这还不够。 DNN 的输出由深度强化网络进一步处理,深度强化网络是 DeepMind 构想的一种方法,它结合了深度神经网络和强化学习。

深度强化学习
强化学习(RL)并不是一个新概念。 诺贝尔奖获得者 Ivan Pavlov 对狗进行了经典条件反射实验,并于 1902 年发现了强化学习的原理。强化学习也是人类学习新技能的方法之一。 有没有想过表演中的海豚是如何被训练从水中跳到如此高的高度的? 它在 RL 的帮助下。 首先,将用于准备海豚的绳索浸入水池中。 每当海豚从顶部越过电缆时,它就会得到食物奖励。 当它没有越过绳索时,奖励就会被撤回。 海豚会慢慢地知道,只要它从上面通过绳索,它就会得到报酬。 逐渐增加绳索的高度来训练海豚。 
自然语言生成:你需要知道的最重要的事情
强化学习中的代理也使用相同的原理进行训练。 代理将采取行动并与环境交互。 代理采取的行动会导致环境发生变化。 此外,代理收到有关环境的反馈。 代理人是否获得奖励,取决于其行动和手头的目标。 重要的一点是,手头的这个目标没有为代理明确说明。 如果有足够的时间,代理将学习如何最大化未来的奖励。
将其与 DNN 相结合,DeepMind 发明了深度强化学习 (DRL) 或深度 Q 网络 (DQN),其中 Q 代表获得的最大未来奖励。 DQN 最早应用于Atari游戏。 DQN 学会了如何开箱即玩不同类型的 Atari 游戏。 突破是不需要显式编程来表示不同类型的 Atari 游戏。 一个程序足够聪明,可以了解游戏的所有不同环境,并通过自我对战,能够掌握其中的许多环境。

2014 年,DQN 在 49 款游戏中的 43 款中优于之前的机器学习方法(现在已经在 70 多款游戏上进行了测试)。 事实上,在超过一半的比赛中,它的表现达到了职业人类玩家水平的 75% 以上。 在某些游戏中,DQN 甚至提出了令人惊讶的高瞻远瞩的策略,使其能够达到可达到的最高分数——例如,在Breakout中,它学会了先在砖墙的一端挖一条隧道,这样球就会反弹绕在后面并从后面敲出砖块。
政策和价值网络
AlphaGo 内部有两种主要的网络类型:
AlphaGo 的 DQN 的目标之一是超越人类专家的游戏并模仿新的创新动作,通过与自己对战数百万次,从而逐步提高权重。 这个 DQN 对常见 DNN 的胜率是 80%。 DeepMind 决定将这两个神经网络(DNN 和 DQN)结合起来形成第一种网络——“策略网络”。 简而言之,政策网络的工作是减少寻找下一步行动的广度,并提出一些值得进一步探索的好行动。
一旦策略网络被冻结,它就会与自己对抗数百万次。 这些游戏生成一个新的围棋数据集,包括各种棋盘位置和游戏结果。 该数据集用于创建评估函数。 第二种功能——“价值网络”用于预测游戏的结果。 它学会将各种棋盘位置作为输入,并预测游戏的结果和衡量标准。
结合政策和价值网络
经过所有这些训练,DeepMind 最终得到了两个神经网络——策略网络和价值网络。 策略网络将棋盘位置作为输入,并将概率分布作为该位置中每个动作的可能性输出。 价值网络再次将棋盘的位置作为输入,输出一个介于 0 和 1 之间的单个实数。如果网络的输出为零,则表示白方完全获胜,而 1 表示黑方玩家完全获胜石头。
政策网络评估当前位置,价值网络评估未来走势。 DeepMind 将任务划分到这两个网络中是 AlphaGo 成功的主要原因之一。
将策略和价值网络与蒙特卡洛树搜索 (MCTS) 和推出相结合
仅靠神经网络是不够的。 为了赢得围棋比赛,需要更多的策略。 该计划是在 MCTS 的帮助下实现的。 蒙特卡洛树搜索还有助于以创新的方式将两个神经网络缝合在一起。 神经网络有助于有效搜索下一个最佳移动。

让我们尝试构建一个示例,它可以帮助您更好地可视化所有这些。 想象一下游戏处于一个新的位置,一个以前没有遇到过的位置。 在这种情况下,需要一个政策网络来评估当前情况和未来可能的路径; 以及价值网络的路径的可取性和每一步的价值,由蒙特卡洛推出支持。
政策网络发现所有可能的“好”动作,价值网络评估它们的每一个结果。 在 Monte Carlo 部署中,从策略网络识别的位置开始玩几千场随机游戏。 进行了实验以确定价值网络相对于蒙特卡洛推出的相对重要性。 作为该实验的结果,DeepMind 将 80% 的权重分配给了价值网络,并将 20% 的权重分配给了 Monte Carlo 推出评估函数。
策略网络将搜索的宽度从 200 多个可能的移动减少到 4 或 5 个最佳移动。 策略网络从需要考虑的这 4 或 5 个步骤扩展树。 价值网络通过立即从该位置返回游戏结果来帮助减少树搜索的深度。 最后选择Q值最高的走法,即收益最大的一步。
“这个游戏主要是通过直觉和感觉来玩的,由于它的美丽、微妙和智慧的深度,它在几个世纪以来一直吸引着人类的想象力。”
——德米斯·哈萨比斯
AlphaGo 在现实问题中的应用
DeepMind 的愿景,在他们的网站上,非常有说服力——“解决智能问题。 利用这些知识让世界变得更美好”。 该算法的最终目标是使其具有通用性,以便用于解决复杂的现实问题。 DeepMind 的 AlphaGo 是寻求 AGI 的重要一步。 DeepMind 已经成功地利用其技术解决了现实世界的问题——让我们看一些例子:
减少能源消耗
DeepMind 的 AI 成功用于将 Google 的数据中心冷却成本降低 40%。 在任何大规模的能源消耗环境中,这种改进都是向前迈出的惊人一步。 数据中心的主要能耗来源之一是冷却。 需要消除运行服务器产生的大量热量以保持其运行。 这是通过泵、冷却器和冷却塔等大型工业设备实现的。 由于数据中心的环境非常动态,因此以最佳能源效率运行具有挑战性。 DeepMind 的 AI 被用来解决这个问题。
首先,他们继续使用由数据中心内数千个传感器收集的历史数据。 使用这些数据,他们训练了一组 DNN 的平均未来电力使用效率 (PUE)。 由于这是一种通用算法,因此计划将其应用于数据中心环境中的其他挑战。
该技术的可能应用包括从相同的输入单位获得更多的能源、减少半导体制造能源和用水等。DeepMind 在其博客文章中宣布,这些知识将在未来的出版物中共享,以便其他数据中心、工业运营商和最终的环境可以从这一重要步骤中受益匪浅。
头颈癌的放射治疗计划
DeepMind 与伦敦大学学院医院 NHS 基金会信托的放射治疗部门合作,后者是癌症治疗的世界领导者。
大数据和机器学习如何联合对抗癌症
每 75 名男性中就有 1 名和 150 名女性中有 1 名在其一生中被诊断出患有口腔癌。 由于头部和颈部区域的结构和器官的敏感性,放射科医生在治疗它们时需要格外小心。
在进行放射治疗之前,需要准备一张详细的地图,其中包含要治疗的区域和要避开的区域。 这称为分段。 这张分割的地图被输入放射线照相机器,然后它会在不伤害健康细胞的情况下瞄准癌细胞。
对于头部或颈部区域的癌症,这对放射科医生来说是一项艰巨的工作,因为它涉及非常敏感的器官。 放射科医生大约需要四个小时才能为该区域创建分段地图。 DeepMind 通过其算法旨在将生成分割地图所需的时间从 4 小时减少到 1 小时。 这将大大节省放射科医生的时间。 更重要的是,这种分割算法可以用于身体的其他部位。
总而言之,AlphaGo 在 2016 年的五强赛中四次成功击败了 18 次世界围棋冠军李世石。2017 年,它甚至击败了一支世界上最好的棋手。 它使用 DNN 和 DQN 的组合作为提出下一个最佳举措的策略网络,并使用一个 DNN 作为价值网络来评估游戏的结果。 蒙特卡洛树搜索与策略和价值网络一起使用,以减少搜索的宽度和深度——它们用于改进评估功能。 该算法的最终目的不是解决棋盘游戏,而是发明一种通用人工智能算法。 AlphaGo 无疑是朝着这个方向迈出了一大步。
数据科学、机器学习和大数据之间的区别!
当然,还有其他影响。 随着 AlphaGo Vs Lee Seedol 的消息在网上疯传,对围棋棋盘的需求猛增了十倍。 许多商店报告了围棋板缺货的情况,购买围棋板变得具有挑战性。
幸运的是,我刚刚找到一个并为我自己和我的孩子订购了它。 你打算买板子学围棋吗?
从世界顶级大学学习 ML 课程。 获得硕士、Executive PGP 或高级证书课程以加快您的职业生涯。
深度强化学习的局限性是什么?
当引入新数据或信息时,DL 会忘记先前获得的知识,因此它不会挑战它。 过多的强化有时会导致状态过多,从而降低有效性。 由于数据模型的复杂性,训练成本非常高。 深度学习还需要使用昂贵的 GPU 和数百个工作站。 结果,它的使用变得不那么经济。
使用蒙特卡洛树搜索有什么缺点?
虽然 MCTS 是一种简单的执行算法,但它确实有一些缺点。 当树在几次迭代后变大时,需要大量内存。 当应用于回合制游戏时,可能有一个分支或路径会导致在特定条件下输给对手。 结果,它不太可靠。 经过多次迭代,蒙特卡洛树搜索需要很长时间才能确定最有效的路径。

AlphaZero 与 AlphaGo Zero 有何不同?
早期版本的 AlphaGo 包含少量手工设计的功能,但 AlphaGo Zero 仅使用围棋板上的黑白棋子作为输入。 早期版本的 AlphaGo 依靠策略网络来选择下一步行动,并依靠价值网络从每个位置估计游戏的获胜者。 这些被合并到 AlphaGo Zero 中,允许更有效的训练和评估。 所有这些差异都有助于系统提高性能和泛化能力。 另一方面,算法调整使系统更加强大和高效。
