AlphaGo 的传奇故事

文章目录

  • 一、说明
  • 二、AlphaGo 传奇(一):游戏规则
  • 三、AlphaGo 传奇(二):它是如何运作的?
  • 四、AlphaGo 传奇(三):史诗般的战斗和人工智能的未来

一、说明

1997 年,IBM 的“深蓝”系统击败了国际象棋世界冠军加里·卡斯帕罗夫。当时,这场胜利被广泛誉为人工智能的里程碑。但事实证明,“深蓝”技术只对国际象棋有用,其他方面则无用。计算机科学并未经历一场革命。AlphaGo 这个围棋系统最近击败了历史上最强大的围棋选手之一,它会有什么不同吗?

二、AlphaGo 传奇(一):游戏规则

2016 年,AlphaGo 成为少数获得最高排名的职业围棋选手之一,一举席卷全球。问题是?AlphaGo 不是一个人,而是一个由 Google DeepMind 研究人员设计的程序。超过 2 亿人观看了与李世石的比赛。具体来说,这大约是英国总人口的 3 倍。 随后,参与该项目的研究人员获得了马文·明斯基奖章,并登上了《自然》杂志的封面(这些只是他们取得的成就中的一小部分)。自原版 AlphaGo 问世以来,已经经历了几代,分别是 Master、AlphaGo Zero、AlphaZero 和 MuZero。

但这到底是怎么回事?为什么它如此重要?在这个由 3 部分组成的系列文章中,我们将介绍围棋游戏的规则,包括它为何具有挑战性、AlphaGo到底是什么、它是如何工作的,以及接下来会发生什么……

第一部分:什么是“Go”?
围棋是至今仍在玩的最古老的棋盘游戏之一。每局有 2 名玩家,每名玩家使用一组白色或黑色棋子。标准围棋棋盘有 19×19 条网格线,有 361 个交叉点。游戏的目标是比对手包围更多的领地,领地定义为被单一颜色的棋子包围的空点数量。每位玩家轮流将棋子放在交叉点上。

主要有 4 条规则。1
) 一旦玩家将棋子放到棋盘上,除非被吃掉,否则棋子不能从原位置移动。2
) 如果玩家的棋子被对方的棋子包围,则该棋子将被吃掉。3
) 玩家不能重复之前的玩法,以避免在吃掉对手的棋子时出现来回反复的情况。4
) 如果玩家不想移动,则允许其放弃,如果双方连续放弃,游戏结束。最终得分为玩家领地的数量减去其被吃掉的棋子的数量。

当玩家级别不同时,会使用让分制,即给级别较低的玩家某种形式的让步。这可以是游戏结束时的额外分数,或有更多可用棋子。

第 IB 部分:围棋难在何处?
编写计算机程序来下围棋非常困难,因为棋手的技能取决于位置判断和人类的模式识别。人类棋手很早就能识别出模式(黑棋和白棋),并根据棋盘位置决定自己的棋子是否会被吃掉。由于目前的程序还不够复杂,无法模拟棋手的视觉意识,因此算法解决方案是根据之前的合法打法对可能的走法进行详尽的搜索。具体来说,游戏位置有大约 10 170 种,游戏状态则有更多。每种状态都包含玩家独特的走法历史。

相反,国际象棋等游戏本质上是组合游戏,因此计算机更容易评估可能的走法和组合,因为有许多算法技术可以加快搜索过程。人类玩家在国际象棋游戏中处理所有可能的组合的能力较弱。您可以在此处了解有关可解游戏的更多信息。

IC部分:什么是AlphaGo?
AlphaGo 是一个计算机程序,它使用 人工智能、深度学习、强化学习和监督学习中的多种概念来下围棋。因此,您不是在线与人对战,而是与一个已经学会如何采取最佳动作来取胜的计算机程序对战。数据如何?AlphaGo 在与其他围棋程序对战的 495 场比赛中仅输掉 1 场,并击败了 2 名世界冠军。

AlphaGo 成功的关键概念之一是深度学习(DL)的使用。如上所述,计算机围棋的主要难点之一是模式识别。众所周知, DL擅长视觉领域的模式识别,因此产生了非常成功的图像分类器。例如,区分 1-10 范围内的手写数字,或识别照片中的动物类型(猫、狗、青蛙、松鼠等)。DL 的算法和表达能力被用于模拟人类围棋玩家,其中每个游戏玩法和位置都由二维图像表示。

好了,现在我们知道了规则和术语,下一篇文章将解释 AlphaGo 的实际工作原理。到时候见!

分享这个:

2024 年 4 月 16 日汤姆洛克斯数学

三、AlphaGo 传奇(二):它是如何运作的?

克莱尔·滕

在我们深入了解 AlphaGo 内部工作原理之前,让我们首先定义第一部分中提到的一些术语,即深度学习(DL)、强化学习(RL)和监督学习(SL)。

深度学习 (DL) 是一种使用许多堆叠和连接的神经元或层的模型。为了说明其工作原理,让我们看一个图像分类器试图区分狗和猫的例子。广义上讲,每一层都会学习不同的特征。例如,第一层学习耳朵形状,第二层学习脸部形状,第三层学习眼睛颜色。这些连接学习到的相关信息可能有助于区分狗和猫。更深的模型有更多的层,可以学习更多的特征。相反,浅层模型可能只有 1 或 2 层,其中用于分类的唯一信息是耳朵和脸部形状。在某些应用中,浅层模型就足够了,但 DL 模型更强大,表现力更强。

强化学习 (RL) 是 AI 的一个子领域,它创建了学习一系列动作以达到最佳解决方案的系统。一个简单的理解强化学习的方法就是一个孩子学习如何骑没有辅助轮的自行车。最初,孩子骑上车座后几乎立刻就失去了平衡。摔倒后,他们会站起来,再试一次。随着时间的推移,孩子会通过反复试验学会如何保持平衡。在这里,一系列最佳动作可能如下所示:握住车把,一只脚踩在地上,另一只脚踩在踏板上。每个单独的动作都会带来奖励,最终产生累积分数。效率较低的一系列动作可能会返回与平衡自行车相同的最终输出,但会返回较低的分数。例如,如果孩子被附近的遛狗者分散了注意力,并花了一些动作来和狗玩耍。

相比之下,监督学习 (SL) 看起来略有不同。现在想象一下,孩子不再没有任何经验,而是有一些写在抽认卡上的例子,如下图所示。孩子不是从头开始学习,而是已经知道一系列可以导致自行车平衡或不平衡的动作。由于输入(抽认卡)和输出(成功/失败)已经定义,孩子通过研究给定抽认卡中的模式来学习预期的标签(成功/失败)。当孩子得到一辆不同类型的自行车并且他们仍然知道如何保持平衡时,就会实现最终的输出。他们已经学会了如何概括和应用他们学到的技能在类似但新的场景中。

第一行有 3 张卡片,说明如何骑自行车,最后一张卡片根据操作标有成功或失败的标签。第一行给出成功的例子,而第二行给出失败的例子。
总而言之,RL 专注于通过反复试验来学习的最佳过程,而 SL 则通过使用训练示例进行学习。两者都达到了相同的最终目标,但 RL 关心实现目标的 过程,而 SL 则不关心。

好的,呼。现在我们已经完成了解决所有术语的艰苦工作,因此我们准备深入研究 AlphaGo 的不同组件,这些组件共同打造出一名围棋大师。

成为大师需要三个主要步骤:
i)学徒向大师学习如何在围棋中走获胜棋步;
ii)学徒在围棋桌上与自己对弈以提高自己的策略;
iii)学徒评估哪些棋步最有利于赢得最后的比赛。

简而言之,这份清单告诉我们学徒首先需要学习如何玩游戏(i);然后他们需要改进他们的策略(ii);最后,他们需要评估哪些策略会在真正的游戏中取得成功(iii)。

第一部分:向专家学习。
AlphaGo 的第一部分构建了一个 SL 模型,该模型从专家走法数据库(3000 万种走法)中学习。继续我们之前的 SL 示例,想象一个学徒收到了包含专家采取的一系列行动的抽认卡。但是,标签不是成功/失败(如我们的自行车示例),而是输出为专家根据他们之前的步骤将采取的下一步行动。

现在,这个学徒要学习和吸收很多很多的抽认卡。因此,为了减轻他们的负担,训练了两个不同的 SL 模型。这两个模型具有相同的架构,即层的设计。不同之处在于更新和调整的参数数量,这与所需的训练时间长度直接相关。参数越多,需要更多的计算能力和时间。第一个学徒预测结果的准确率为 55%,比之前的基准高出 10%。第二个学徒预测的准确率为 24%,但计算输出的速度比前者快 3 倍。

第二部分:学习如何成为一名更好的球员
现在学徒已经从第一部分学习了策略,是时候改进他们的游戏玩法了。最终目标是让玩家为自己创造新的动作,而不是仅仅模仿专家。因此,玩家使用不太准确但更高效的模型作为起点。我们不再需要第一个专家动作数据库。

为了提高水平,学徒现在要与自己对战,用随机选择的学习策略与另一个策略对战。这种自我对战的形式就是强化学习。每场新游戏都允许玩家根据哪些策略有效、哪些策略无效来迭代和更新他们之前的策略。请记住,在强化学习中,实现目标的过程与最终目标本身同样重要,这意味着玩家正在学习如何使用最佳解决方案赢得游戏,从而获得最高分。

第三部分:评估他们的游戏玩法
好吧,我们有一位玩家先从专家那里学习游戏,然后通过反复与自己比赛来提高水平。最后要解决的问题是评估他们玩得有多好——哪一系列动作可以获胜?

最基本的解决办法是建立一个模型,使用第一部分中的专家数据库来评估玩家的动作。由于数据库的位置高度相关(代表整个游戏玩法而不是单个动作),最终的评估模型将记住整个游戏而不是概括新的位置。这种现象被称为过度拟合。你可以把它想象成通过只记住过去的试卷来备考。如果期末考试与你的一次练习完全一样,你就会取得很好的成绩!但是,如果看起来不一样,你将无法回答问题,因为你一开始就不知道它 为什么有效。

相反,为了进行评估,该模型使用第二部分中进行的游戏作为新数据库。每场比赛仅使用 1 个位置进行训练以缓解相关性问题,返回 3000 万个独特的游戏位置。

就这样!第一、二和三部分——学习、改进和评估——不断重复、改进,直到我们最终拥有一位围棋大师。在本系列的第三部分也是最后一部分中,我们将首次看到 AlphaGo 与人类玩家进行对决,并探索接下来会发生什么……

关于人工智能的定义尚无统一意见 。广义上讲,人工智能程序是像人类一样思考和行动的系统。

分享这个:

2024 年 4 月 29 日汤姆洛克斯数学

四、AlphaGo 传奇(三):史诗般的战斗和人工智能的未来

在前两篇文章中,我们了解了什么是 AlphaGo(一种经过训练可以下围棋的人工智能)以及它的工作原理(深度学习),那么接下来是什么?敬请期待……

这可能并不明显,但训练这些模型需要大量的计算能力。在本系列的第 2 部分中,我们了解了 AlphaGo 如何利用 3000 万个数据点通过监督学习 (SL) 从专家游戏中学习。仅这个模型就花费了 50 个图形处理单元 (GPU) 和 3 周的时间进行训练。为了评估玩家在通过自我对弈学习和改进后的动作,又花了一周时间。作为参考,个人计算机 (PC) 通常有 1 个中央处理器 (CPU),并且可能还有 1 个 GPU(如果安装)。GPU 是功能更强大、速度更快的 CPU,因此 50 个 GPU 工作 4 周确实需要大量的计算能力!

经过 4 周的等待,AlphaGo终于准备好上场了。团队首先让 AlphaGo 与最先进的计算机围棋程序 — — Crazy Stone、Zen 和 Pachi — — 进行对弈,495 场比赛中,AlphaGo 只输了 1 场。胜率高达 99.8%。但它的胜率甚至更高。正如本系列第 1 部分所讨论的那样,游戏规则允许使用让子来解释玩家之间的技能水平差异。在与其他围棋程序的第二场比赛中,AlphaGo 给了对手 4 颗让子,即在棋盘上放置 4 颗额外的棋子。最终比分如何?AlphaGo 仍然赢得了 77% 以上的比赛。

好吧,那么人类选手呢?第一个对手是三届欧洲围棋冠军樊麾。在五盘比赛中,AlphaGo 以 5-0 不让分获胜。AlphaGo 随后与李世石对决,后者被认为是过去十年最伟大的围棋选手……

2016 年 3 月,AlphaGo 赢得了 100 万美元的大奖,在为期 6 天的比赛中,AlphaGo 以 4-1 获胜,全球观众超过 2 亿。AlphaGo 不仅赢得了比赛,还发明了全球围棋专家从未见过的新招式。哇哦。

那么,接下来会怎样?自 AlphaGo 以来,已经开发了许多其他迭代版本,包括 Master、AlphaGo Zero、AlphaZero 和 MuZero。每次迭代都在其前身的基础上不断改进,AlphaGo Zero 的训练完全不需要任何专家知识!

毫无疑问,发展将会继续,而 ChatGPT 等聊天引擎的引入只会加速增长,但潜在的限制和挑战是什么?

好吧,正如上面提到的——以及在本系列第 2 部分中讨论的——AI 模型需要大量的训练数据才能很好地概括。而且正如前面所讨论的,在非常强大的 GPU 上训练这些模型需要很长时间。与 AI 模型相比,在第 2 部分中学习如何骑自行车的孩子很可能花费更少的精力和时间学习!围棋的规则定义得非常明确(棋盘游戏通常如此),但现实生活环境却很混乱。这意味着建立一个涉及使用真实场景进行学习的强化学习 (RL) 模型极其困难。运行“学会下棋”模拟的成本与人类在复杂环境中的学习能力无法相比,它要大几个数量级。

AlphaGo 向我们展示了建立一个能够完全从环境线索中学习的模型是可能的,尽管它有明确的规则和运行数百万次模拟的能力。从那时起,强化学习取得了多项进展,尤其是在自动驾驶汽车领域。与预期的需要数百万次迭代才能达到合理的能力水平不同,最近的算法能够在短短 20 分钟内学会车道跟​​踪。这里的重点是能够通过智能反复试验来解决给定的任务,而不仅仅是查看数百万个看似随机的数据点。

在这个由 3 部分组成的 AlphaGo 系列文章中,我希望能够让您了解 AlphaGo 在人工智能领域的重要性,并简要概述算法的工作原理,以及将强化学习算法推广到当今研究人员面临的现实世界的挑战。感谢您的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/43739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络之ResNet50迁移学习

数据准备 下载狗与狼分类数据集,数据来自ImageNet,每个分类有大约120张训练图像与30张验证图像。使用download接口下载数据集,并自动解压到当前目录。 全是小狗的图片 另一边全是狼的图片 加载数据集 狼狗数据集提取自ImageNet分类数据集&a…

2-3个月的幼猫能吃主食冻干吗?第一次吃哪款主食冻干比较好

2-3个月的幼猫能吃冻干吗?一般来说,幼猫在2-3个月左右的离乳期就可以吃冻干了。需要注意的,一个是要认准主食冻干,零食冻干会让猫猫从小就挑食,以后就更不好纠正了。而且离乳期的猫猫没有了母乳的保护,免疫…

Open3D 点对面的ICP算法配准(精配准)

目录 一、概述 1.1核心思想 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 3.3计算数据 一、概述 基于点对面的ICP(Iterative Closest Point)配准算法是ICP的一种变体,它通过最小化源…

【Ty CLI】一个开箱即用的前端脚手架

目录 资源链接基础命令模板创建命令帮助选择模板开始创建开发模板 开发背景npm 发布流程问题记录模板创建超时 更新日志 资源链接 文档:https://ty.cli.vrteam.top/ 源码:https://github.com/bosombaby/ty-cli 基础命令 1. npm 全局安装 npm i ty-cli…

Zabbix Sia Zabbix 逻辑漏洞(CVE-2022-23134)

前言 CVE-2022-23134是一个中等严重度的漏洞,影响Zabbix Web前端。这个漏洞允许未经身份验证的用户访问setup.php文件的某些步骤,这些步骤通常只对超级管理员开放。利用这个漏洞,攻击者可以通过跳过某些步骤来重新配置Zabbix前端&#xff0c…

gazebo仿真环境中加入livox mid360

https://github.com/Livox-SDK/livox_laser_simulation 功能包适用于ubuntu18.04 gazebo9的可以直接编译运行。在ubutun20.04 的系统下gazebo是11版本,需要做一些修改 CMakeLists.txt文件中的 add_compile_options(-std=c++11) 改为 add_compile_options(-std=c++17)fatal er…

二一、搭建自已的语言大模型

1. 配置langchain环境 使用conda创建一个虚拟环境,基于 Python3.10,并在虚拟环境内安装项目的依赖。注意,大模型对gpu有一定的要求,否则速度会奇慢无比。 conda create -n langchain python=3.10 conda env list conda activate langchain # 拉取仓库 $ git clone ht…

Redis-Jedis连接池\RedisTemplate\StringRedisTemplate

Redis-Jedis连接池\RedisTemplate\StringRedisTemplate 1. Jedis连接池1.1 通过工具类1.1.1 连接池:JedisConnectionFactory:1.1.2 test:(代码其实只有连接池那里改变了) 2. SpringDataRedis(lettuce&#…

终于弄明白了什么是EI!

EI是Engineering Index的缩写,中文意为“工程索引”,是由美国工程信息公司(Engineering Information, Inc.)编辑出版的著名检索工具。它始创于1884年,拥有超过一个世纪的历史,是全球工程界最权威的文献检索系统之一。EI虽然名为“…

十五、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法

🌻🌻目录 一、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法 一、小型电脑没有数字键及insert,怎么解决IDEA快速插入getset构造这些方法 解决: 1.winR打开搜索 2.osk回车 屏幕就出现了这样的一…

CC7利用链分析

分析版本 Commons Collections 3.2.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 CC7,6,5都是在CC1 LazyMap利用链(引用)的基础上。 只是进入到LazyMap链的入口链不同。 CC7这个链有点绕,下面顺着分析一下利用链。 入口类是Hashtable&…

前端入门知识分享:如何在HTML或CSS文件中引用CSS文件。

阅读提示:本文仅仅仅适用于刚刚接触HTML和CSS的小白从业者,新人爱好者。自觉身份不符的老鸟们,尽快绕行吧! 什么是CSS?什么是CSS文件。 CSS,全称为Cascading Style Sheets(层叠样式表&#xff…

分布式IO模块软件配置

组态接口模块 1、打开网络视图 2、拖拽出ET200SP 3、双击ET200SP的图片,进入从站配置 总线适配器的组态更换 关于IO地址分配,需要建立好子网通信后,在主机上配置。 可以看到IP 和设备名 设备与控制器的Profinet连接 先找到设备名称再找…

HarmonyOS鸿蒙DevEco Studio无法连接本地模拟器

使用DevEcoStudio 5.0.3.403版本 发现无法选择模拟器 解决方法: 1、打开模拟器 2、关闭DevEco Studio,(不要关闭模拟器) 3、重新打开DevEco Studio。

EXCEL VBA发邮件,实现自动化批量发送

EXCEL VBA发邮件,实现自动化批量发送 以GET方式上传数据 Public Function uploadData_GET(ByVal url As String)Dim httpSet http CreateObject("Microsoft.XMLHTTP")http.Open "GET", url, Falsehttp.sendDebug.Print http.getAllResponseHea…

四道经典算法JAVA

1.爬楼地 爬20个台阶的爬法:f(19)f(18) 经典斐波拉契数列问题 public class demo4 {//爬楼梯问题public static void main(String[] args) {System.out.println(getSum(20));}public static int getSum(int n) {if (n 1)return 1;if (n 2)return 2;return getSum(n - 1) …

SpringBoot:SpringBoot中如何实现对Http接口进行监控

一、前言 Spring Boot Actuator是Spring Boot提供的一个模块,用于监控和管理Spring Boot应用程序的运行时信息。它提供了一组监控端点(endpoints),用于获取应用程序的健康状态、性能指标、配置信息等,并支持通过 HTTP …

jdk1.8 ConcurrentHashMap 源码分析

ConcurrentHashMap 1.8 使用synchronized 和CAS 实现 记住:1.8没有分段锁不要混淆了,分段锁是1.7中的 final V putVal(K key, V value, boolean onlyIfAbsent) {if (key null || value null) throw new NullPointerException();//计算hashint hash…

关于Python的类的一些理解

才发现python的类对象只能调用类方法 我想使用对类对象a使用系统调用的len方法就会报错 2.类对象a是什么? 答:是所有的带有self的成员变量 举例说明:红色的就是a里面的东西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

发表EI会议论文-对考研生和研究生都有好处!

EI论文对考研和保研的帮助主要体现在以下几个方面: 对考研的帮助 1.复试加分:在考研过程中,复试阶段是关键,拥有EI论文可以证明考生具备一定的科研能力,给考官留下深刻印象,有助于提高复试通过率。 2.学…