AlphaGo 背后的人工智能:机器学习和神经网络

文章目录

  • 一、说明
  • 二、背景
  • 三、围棋游戏
  • 四、AlphaGo 算法
  • 五、神经网络
  • 六、AlphaGo 的未来
  • 七、人工智能的未来
  • 八、结论

在这里插入图片描述

一、说明

棋盘游戏围棋被视为人工智能最具挑战性的任务之一,因为它“复杂、基于模式且难以编程”。计算机程序 AlphaGo 战胜李世石成为人工智能和计算机工程史上的重要时刻。我们可以看到 AlphaGo 的巨大能力,但人们对它如何“思考”知之甚少。AlphaGo 的规则是学习而来的,而不是设计出来的,它运用机器学习以及多个神经网络来创建学习组件,使围棋水平更高。从与英国国家医疗服务体系的合作可以看出,AlphaGo 在其他领域也有着广阔的应用前景。

二、背景

2016 年 3 月 9 日至 3 月 15 日,世界排名第二的职业棋手李世石与谷歌 DeepMind 公司开发的计算机程序 AlphaGo 进行了一场围棋比赛。AlphaGo 以 4-1 战胜李世石,成为人工智能历史上的重要时刻。这是计算机首次在围棋比赛中击败人类专业棋手。韩国大多数主要电视网络都转播了这场比赛。在中国,有 6000 万人观看了比赛;美国围棋协会和 DeepMind 在 YouTube 上对比赛的英文直播吸引了 10 万观众。数百名媒体记者和专家评论员一起观看了比赛 [1]。是什么让这场比赛如此重要?要理解这一点,我们必须首先了解围棋的根源。

三、围棋游戏

围棋,在中国称为weiqi ,在日本称为igo,是一种抽象的双人棋盘游戏,已有 3000 年历史。它是一种在 19*19 的棋盘上进行的抽象策略棋盘游戏。围棋从空棋盘开始。每轮,玩家在棋盘上放置一块黑色或白色的棋子 [2]。游戏的总体目标是使用棋子围住比对手更多的领地。虽然规则非常简单,但它创造了一个有深度和细微差别的挑战。因此,棋盘游戏围棋因其复杂性和基于模式的状态而被视为人工智能最具挑战性的任务之一。

在常见的计算机游戏中,人工智能通常使用游戏树来根据对手可能采取的行动来确定游戏中的最佳下一步行动。游戏树是一个有向图,将游戏状态(位置)表示为节点,将可能的移动表示为边。树的根表示游戏开始时的状态。下一级表示后续移动后的可能状态 [3]。以简单的游戏井字游戏为例,可以在图 1 中直观地表示所有可能的游戏状态 [3]。

在这里插入图片描述

图 1:井字游戏的完整博弈树[3]。

然而,对于像围棋这样复杂的游戏,在游戏中找到最佳下一步很快就变得不可能了,因为围棋的游戏树将包含 10^761 个节点,这对于计算机来说是一个庞大的数字(宇宙中只有 10^80 个原子,仅供参考)[4]。这也解释了为什么围棋长期以来一直被视为人工智能面临的最大挑战之一。大多数棋盘游戏的人工智能都使用人工智能工程师手工创建的规则。由于这些规则可能不完整,它们通常会限制人工智能的智能。例如,对于围棋的某个阶段,设计者认为计算机应该选择十个选定步骤中的一个,但这些步骤对于专业玩家来说可能是愚蠢的。设计者的围棋游戏水平会影响人工智能的智能水平。

四、AlphaGo 算法

那么 AlphaGo 是如何解决围棋的复杂性以及设计者游戏水平所施加的限制的呢?之前所有的围棋人工智能方法都依赖于某种博弈树搜索,并结合手工制定的规则。然而,AlphaGo 大量使用机器学习来避免使用手工制定的规则并提高效率。机器学习是一种人工智能,它使计算机能够无需明确编程即可学习。机器学习专注于开发计算机程序,这些程序可以教会自己在接触新数据时成长和改变。机器学习系统搜索数据以寻找模式。但它不是像数据挖掘应用程序那样提取数据供人类理解,而是使用数据来检测模式并相应地调整程序操作 [4]。AlphaGo 还使用深度学习和神经网络来教自己下棋。就像iPhotos能够帮你把照片按照不同的角色分成不同的相册,是因为它存储了无数经过像素级处理的角色图像一样,AlphaGo的智能,也是建立在它已经学习了数百万个人类下过的围棋位置和走法的基础上的。

AlphaGo 的智能依赖于两个不同的组成部分:博弈树搜索程序和简化树搜索程序的神经网络。树搜索程序可以看作是一种蛮力方法,而卷积网络则为游戏玩法提供了一定程度的直觉 [5]。神经网络在概念上类似于其他人工智能中的评估函数,只是 AlphaGo 的评估函数是学习而并非设计的,从而解决了设计者的游戏水平影响人工智能智能水平的问题。

五、神经网络

一般来说,AlphaGo 内部主要训练两种神经网络:策略网络和价值网络。这两种网络都将当前游戏状态作为输入,通过不同的公式对每个可能的下一步动作进行评分,并输出获胜概率。一方面,价值网络提供了对当前游戏状态价值的估计:在当前状态下,黑方最终获胜的概率是多少?价值网络的输出是获胜概率。另一方面,在当前游戏状态下,策略网络提供了选择哪种动作的指导。输出是每个可能的合法动作的概率值(网络的输出与棋盘一样大)。概率值较高的动作(动作)对应于更有可能导致获胜的动作。AlphaGo 最重要的方面之一是学习能力。深度学习使 AlphaGo 能够通过与自己进行大量游戏来不断提高其智能。这训练了策略网络,以帮助 AlphaGo 预测下一步动作,这反过来又训练了价值网络来确定和评估这些位置 [5]。 AlphaGo 会展望可能的走法和排列,考虑各种可能发生的情况,然后选择它认为最有可能成功的走法。

总体而言,两个神经网络的结合让 AlphaGo 避免了过多的工作:策略网络关注当前并决定下一步,以节省搜索整个博弈树的时间;价值网络关注长远,分析整体情况以减少博弈树中可能出现的走法。然后,AlphaGo 会平均两个网络的建议以做出最终决定。AlphaGo 之所以如此重要,是因为它不仅遵循博弈论,还涉及学习部分。通过与自己对弈,AlphaGo 的围棋水平自然而然地越来越高。

六、AlphaGo 的未来

围棋比赛固然精彩,但更重要的是 AlphaGo 展示了人工智能算法将如何影响我们的生活;人工智能将使人类变得更好。在第二场比赛的第 37 步,AlphaGo 做出了一个非常令人惊讶的决定。一位欧洲围棋冠军说: “这不是人类的棋步。我从来没见过人类下出这步棋。太漂亮了。”这位通过与 AlphaGo 对弈帮助训练 AlphaGo 的欧洲围棋冠军说,虽然他几乎输掉了所有的比赛,但由于程序的不寻常的下法,他对围棋的理解得到了很大的提高。这也反映在他世界排名的跃升上 [6]。

据数据显示,在美国,每年有约40500名患者因误诊而死亡。医疗信息量巨大,医生不可能对每一件小事都进行梳理。像AlphaGo这样的人工智能能够收集系统中所有的医学文献历史以及医疗案例、医学图像和其他数据,并输出最佳解决方案来帮助医生。最近,AlphaGo与英国国家医疗服务体系(NHS)展开合作,以数字解决方案改善医疗服务流程。AlphaGo利用其计算能力分析健康数据和记录。[6]这将为患者开辟新的治疗机会,并协助医生治疗患者。效率的提高也将降低保险公司的成本[6]。

七、人工智能的未来

人们已经从最优秀的人类身上学到了很多东西,但现在从人工智能身上可以学到更多的知识。[6] 人工智能在某些情况下可以超越人类的能力,这可能会让一些人感到不舒服。人工智能除了以 AlphaGo 为代表的棋盘游戏人工智能外,还运用了许多技术,包括视觉识别和语音识别等多个技术领域。人工智能在某一专门领域超越人类并不奇怪。但在综合智能和学习能力方面,人类比人工智能要好得多。虽然深度学习取得了很大进展,但机器学习仍然依赖于人工设计的过程。而且,深度学习需要大量数据作为训练和学习的基础,学习过程不够灵活。

所谓全面人工智能将控制人类,对人类社会造成毁灭性影响的说法纯属虚构,人工智能超越人类并非不可能,但那一天还很遥远,而“超越”仍是在人类的控制之下。

八、结论

无论是 AlphaGo 还是李世石获胜,总体而言胜利属于人类。AlphaGo 背后的人工智能利用机器学习和神经网络,通过与自己对弈不断提高技能。这种人工智能技术也为我们的生活带来了改善的潜力。

人工智能赢得了围棋比赛,但人类赢得了未来。

参考
[1] “谷歌的 AlphaGo 如何击败围棋世界冠军” The Atlantic。网络。2016 年 3 月 28 日 < http://www.theatlantic.com/technology/archive/2016/03/the-invisible- opposite/475611/>

[2] “围棋”维基百科。网页。https://en.wikipedia.org/wiki/Go_(game)

[3] “游戏树”维基百科。网页。https://en.wikipedia.org/wiki/Game_tree

[4]“机器学习的定义” WhatIs.Web .2016年2月 <http://whatis.techtarget.com/definition/machine-learning?

[5] “Google DeepMind 的 AlphaGo:工作原理” The tastehit。网络。2016 年 3 月 16 日 https://www.tastehit.com/blog/google-deepmind-alphago-how-it-works/

[6] “AlphaGo 可以塑造医疗保健的未来” TMF。网站。2016 年 4 月 5 日 http://whatis.techtarget.com/definition/machine-learning

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

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

相关文章

C++后端开发--网络编程基础

目录 一、网络编程基础概念 1.1 网络协议 1.2 IP地址和端口号 1.3 Socket 1.4 TCP协议的三次握手和四次挥手 TCP的三次握手 TCP的四次挥手 整个流程更通俗易懂 TCP 三次握手流程图 TCP 四次挥手流程图 1.5 详细介绍一下http协议 HTTP协议的主要特点 HTTP请求 HTT…

Redis 五大数据类型底层原理

0、前言 本文涉及的主题&#xff1a; redis 对象存储 底层数据结构&#xff1a;int、embstr、raw、ziplist、listpack、quicklist、skiplist、intset、hashtable redis 数据类型&#xff1a;string、list、set、zset、hash 1、对象存储、底层编码、数据类型 1.1 对象存储…

14-23 深度神经网络的主要架构(RNN/LSTM/CNN)

神经网络架构 神经网络的架构决定了这些网络如何运行&#xff0c;这是执行各种任务和扩展神经网络应用的关键因素&#xff0c;主要有两种方法&#xff1a;前馈神经网络和反馈神经网络。在本文中&#xff0c;在彻底分析每种方法之后&#xff0c;我们将对这两种架构进行深入比较…

规则·理解·成长:与自闭症儿童共绘记忆蓝图

在星贝育园&#xff0c;作为专注于自闭症儿童康复的专业教育者&#xff0c;我们常常遇到家长的疑惑&#xff1a;“为什么我的孩子总是记不清楚规则&#xff1f;”这个问题触及了自闭症谱系障碍&#xff08;ASD&#xff09;儿童在理解与遵守规则方面面临的独特挑战。下面&#x…

每日一题——Python实现PAT乙级1005 继续(3n+1)猜想(举一反三+思想解读+逐步优化)五千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码逻辑概述 时间复杂度分析 空间复杂度分析 总结 我要更强 代码优化点…

【MySQL基础篇】函数及约束

1、函数 函数是指一段可以直接被另一段程序程序调用的程序或代码。 函数 - 字符串函数 MySQL中内置了很多字符串函数&#xff0c;常用的几个如下&#xff1a; 函数功能CONCAT(S1,S2,...,Sn)字符串拼接&#xff0c;将S1,S2,...,Sn拼接成一个字符串LOWER(str)将字符串str全部…

一文入门“机器学习-参数调整”实操

作者前言: 通过向身边的同事大佬请教之后&#xff0c;大佬指点我把本文的宗旨从“参数调优”改成了“参数调整”。实在惭愧&#xff0c;暂时还没到能“调优”的水平&#xff0c;本文只能通过实操演示“哪些操作会对数据训练产生影响”&#xff0c;后续加深学习之后&#xff0c;…

Python 学习中,什么是列表,如何操作列表?

什么是列表 在Python中&#xff0c;列表&#xff08;List&#xff09;是一种内置的数据结构&#xff0c;用于存储一系列有序的元素。列表中的元素可以是任意类型&#xff0c;比如整数、字符串、浮点数&#xff0c;甚至是另一个列表。列表是可变的&#xff08;mutable&#xff…

Android系统常见的crash分类error有那些?

Android系统常见的crash分类及其对应的error主要包括以下几类&#xff1a; 一、Java Application Crash Java Application Crash通常是由于Java层线程因未捕获异常而终止&#xff0c;由系统的void uncaughtException(Thread t, Throwable e)方法进行捕获和处理。这类crash常见…

【热部署】✈️Springboot 项目的热部署实现方式

目录 &#x1f378;前言 &#x1f37b;一、热部署和手动重启 &#x1f37a;二、热部署的实现 2.1 手动启动热部署 2.2 自动检测热部署 2.3 关闭热部署 &#x1f49e;️三、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;书接上文&#xff0c;通过Springboot 中的 actu…

git clone报错RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly

问题描述 git clone github上的项目报错: RPC failed; curl 92 HTTP/2 stream 7 was not closed cleanly: CANCEL (err 8) 4796 bytes of body are still expected fetch-pack: unexpected disconnect while reading sideband packet early EOF fetch-pack: invalid index-pac…

Selenium:原理与使用指南

文章目录 简介Selenium 的原理安装 Selenium基本使用示例代码说明 常用操作查找元素交互操作等待处理弹窗 高级功能截屏执行 JavaScript切换窗口 结论 简介 Selenium 是一个用于 Web 应用程序自动化测试的强大工具。它提供了一系列库和工具&#xff0c;支持多种浏览器和编程语…

提升TK直播体验:使用美国直播网络的六大优势

国内有许多公司想在TikTok上进行美国直播&#xff0c;但由于TikTok的政策限制&#xff0c;在国内直接访问存在困难。然而&#xff0c;通过使用Ogcloud的美国直播网络&#xff0c;这一问题得以解决。那么&#xff0c;TikTok海外直播使用美国直播网络具体有哪些优势呢&#xff1f…

【懒删除堆 优先队列】1172. 餐盘栈

本文涉及知识点 懒删除堆 优先队列 LeetCode1172. 餐盘栈 我们把无限数量 ∞ 的栈排成一行&#xff0c;按从左到右的次序从 0 开始编号。每个栈的的最大容量 capacity 都相同。 实现一个叫「餐盘」的类 DinnerPlates&#xff1a; DinnerPlates(int capacity) - 给出栈的最大…

封装方法实现表格合并

封装方法 const mergeTableRow (config:any)> {let data config.dataconst {mergeColNames, // 需要合并的列firstMergeColNames, // 受影响的列firstMerge // 以哪列为基础进行合并(基准列)} configif (!mergeColNames || mergeColNames.length 0) {return data}merge…

中位数贪心,3086. 拾起 K 个 1 需要的最少行动次数

一、题目 1、题目描述 给你一个下标从 0 开始的二进制数组 nums&#xff0c;其长度为 n &#xff1b;另给你一个 正整数 k 以及一个 非负整数 maxChanges 。 Alice 在玩一个游戏&#xff0c;游戏的目标是让 Alice 使用 最少 数量的 行动 次数从 nums 中拾起 k 个 1 。游戏开始…

Java基础(基于韩顺平老师的笔记)

Java基础 Java特点环境搭建Java 基础语法数据类型流程控制 数组面向对象方法重载封装多态继承 类类变量&#xff08;又叫静态变量&#xff09;类方法&#xff08;又叫静态方法&#xff09; 接口枚举常用类String日期时间 集合类泛型注解异常处理多线程IO 流反射经典面试题&…

谷歌GMS认证之安卓Android Auto认证,车机的Android Auto认证介绍,GAS跟Android Auto区别

一、Android Auto认证前言 Android Auto 是谷歌&#xff08;Google&#xff09;推出的一个车载平台&#xff0c;它允许驾驶者将他们的Android设备&#xff08;如智能手机&#xff09;连接到车辆的显示屏上&#xff0c;以便在驾驶时更安全和方便地使用某些应用程序和服务。 为…

stm32中IIC通讯协议

参考资料&#xff1a;大部分均引用b站江协科技课程、GPT及网络资料 什么是IIC&#xff08;i2C&#xff09;通讯协议&#xff1f; 关键字&#xff1a;SCL、SDA、半双工、同步、串行。 IIC&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;也称为I2C&#xff08;In…

不同的llm推理框架

vLLM适用于大批量Prompt输入&#xff0c;并对推理速度要求比较高的场景。 实际应用场景中&#xff0c;TensorRT-LLM通常与Triton Inference Server结合起来使用&#xff0c;NVIDIA官方能够提供更适合NVIDIA GPU运行的高效Kernel。 LightLLM比较轻量、易于扩展、易于上手&…