[数据分析]AlphaGo眼中的李世乭李世乭最后的机会

2024-01-26 20:10

本文主要是介绍[数据分析]AlphaGo眼中的李世乭李世乭最后的机会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

推荐语:此文写于AlphaGo与李世乭大赛的第二局结束后,作者对双方水平及棋局的走向预测都很准确,不过相对于结果,分析过程更值得学习


用自己的DCNN把李世乭过去曾下的295盘棋,30366步分析了一下,然后再过去的两局中验证了一下,得到很多有意思的数据。因为我的围棋水平实在太差,所以把所有提取的数据发上来跟大家分享一下,供围棋高手们分析,欢迎批评指正。


第一部分 AlphaGo眼中的李世乭

先上两个图大家感受一下:

图1

0?wx_fmt=jpeg

第一局李世乭落子93步,横轴是时间轴(93步),纵轴暂时可以理解成李世乭在落子时所面对的难度,难度越大蓝色条越矮。红色是李世乭的历史水平,中间的线是平均值,上下的小棒是方差,你可以理解为” 李世乭在以前下到这个时候所遇到的局面是否相似,越相似越短“

图2

0?wx_fmt=jpeg

第二局李世乭落子105步,这里请大家注意,横轴只是李世乭落子的次数,并非对应棋盘上的步数,因为上图缺了AlphaGo的落子。


可以看到,李世乭在第一局开始的优势明显没有第二局开局明显,而终局时基本是完全被AlphaGo压制。


那么这个蓝条到底是什么,它是怎么得出的。

如下图:

图3

0?wx_fmt=jpeg
这是AlphaGo所使用的卷积神经网络CNN在分析棋盘后得到结果的示意图。经过分析,得到了一个围棋棋盘19*19=361个位置的预测概率。概率越大代表棋手下一步越有可能在这里走子。图1图2的分析中,蓝条的高低,就是这里图3中361个概率的最大值。

(如果你懂卷积神经网络,下一段不用看,直接跳到下一个分割线)

=======================================

#  但是最好玩的地方来了!

#  因为这是一个概率分布,所以361个点的概率总和一定为1

#  也就是说:

#  361个点中最大值越大,其他360个点就越小(请记住这句话,后面有用)

#  这里给这个最大值起个名字:预测最大概率。不行,6个字太多了,我懒,叫它P好了。

#  AlphaGo在开始思考时,第一件事就是去算这个P。

#  P有如下含义:

#  P越大(蓝条越高),其它值就越小,说明棋手可以不用纠结,直接在最大值落子就好

#  P越小(蓝条越低),其它值就越大,很有可能出来一个0.5 和一个0.4 两个概率,然后棋手就要在这两个地方纠结了。

#  请回头看看图1图2,你就知道李世乭这两盘棋有多纠结了。

#  然后第二个问题,AlphaGo是怎么得到图3样式的概率分布呢?

#图4


0?wx_fmt=jpeg

#  大概就是这个样子,先将围棋棋盘分解成三部分,1黑棋,2白棋,3不允许落子的地方。然后的原理打个比方是这样的:第一层有64个卷积核,每个卷积核负责在期盼上搜索特定的目标,比如1号卷积核在左上角发现一个眼,2号卷积核在旁边也发现一个眼。然后第二层发现在第一层找到了两个挨着的眼,然后判断左上角已经被两个假眼占领。第三层判断这两个假眼有威胁,但是可以试着吃一下。以此类推,一层层抽象化,概念化,直到判断出最终的概率分布图。

#  当然,现实总是残忍的。

#  因为没人知道到底这些卷积核真实是干什么的,再放个图大家感受下

图5

0?wx_fmt=jpeg

#  这是第一层的卷积核

#  除了第五行前两个卷积核(其实是一个卷积核的两个特征),是在找最普通的眼,你能看出来

#  其它的完全不知道它在找什么……(所以将来我要把没用的都剪枝掉)

#  然而它就是找到了。

#  还给出了正确的预测。

#  如果只考虑最大的概率P,这个模型在17,427,622 次预测中准确预测了33%

#  但是如果考虑前10个最大的概率作为备选,准确率可以达到76%以上。

#  这是我用的模型,跟AlphaGo比块头小了很多。跟@田渊栋 老师在Facebook用的模型同样没法比。田老师的模型横着有12层,我只有8层,田老师的模型竖着最少有92个卷积核,我的最多只有64个。我只把棋盘拆成了3个二进制特征,而田老师拆了25个,而且还是连续值特征。没办法,GPU不够用,田老师在FACEBOOK用四个GPU同时训练,而我们整个研究所只有一个,还要大伙一块用,穷鳖哭晕在厕所。

#  但是这样已经足够了,因为:

#  卷积神经网络只负责减少搜索的难度

#  从原来的361选一,现在变成了10选一

#  至于后面的10选一怎么选,大家去看田老师的专栏就好。

=======================================


现在你知道了蓝条是怎么来的了,也就是我在前文所说的,AlphaGo眼中的李世乭表现如何,因为蓝条是CNN得到的。


好了,那我们看一下李世乭的历史纪录。我抓取了李世乭过去下过的295盘棋,共30366步

图6

0?wx_fmt=jpeg

这是李世乭在下这3万手棋之前所面对的概率P的直方图,在50%~100%这一概率范围依然有6693手,为23%


也就是说每五手棋中李世乭是有一手是面临着并不那么纠结的决定。


然而这个数字在这两场比赛中分别为多少呢?

第一场:  15手,16%

第二场:22手,20%

那么在他真正落子的棋,在CNN看来是概率为多少的棋呢?

图7

0?wx_fmt=jpeg

右侧为放大了50%~100%的部分。


这里注意下图6和图7的区别:图6是在李世乭落子之前CNN判断其落子的最大概率,而图7是李世乭真正落子位置在CNN看来出现的概率。


注意这里的纵轴是历史中出现的次数,不是概率,这里是直方图。

下面是李世乭在与AlphaGo第一场比赛中各落子的CNN预测概率,右侧为大于50%的次数(对应图7):

图8

0?wx_fmt=jpeg

然后是第二场的:

图9

0?wx_fmt=jpeg

第二局中李世乭的行动明显更加符合模型预测。


至于开始的图1与图2:

0?wx_fmt=jpeg0?wx_fmt=jpeg分别是将过去李世乭的295盘棋全盘的预测概率拉伸到和AlphaGo的两次对局相同的长度并计算出的均值与方差。红线反应了在李世乭以往的棋局中所面临的棋局被CNN判定的情况。在第一局中,除了少数几手,李世乭的盘面几乎完全在平均值以下,而第二局在开局则明显在平均值以上,而过了30手(全局60手)便急转直下。



再来看看比赛的时间线:

在第一局比赛186步中(各93步),我的CNN预测到了AlphaGo的61步,预测到了李世乭70步,如下:

图10

0?wx_fmt=jpeg

(李世乭黑先)这里的横轴已经调整为正常的步数,李世乭为奇数,AlphaGo为偶数,红点的地方是预测正确的地方。


第二局比赛186步中,预测到AlphaGo的76步,预测到李世乭67步,如下:

图11
0?wx_fmt=jpeg

(ALphaGo黑先)如上两图我将纵坐标从最大概率P换成了概率分布的方差,因为方差更能反应CNN预测结果各个结果间的差距,当然后来发现用最大概率P和方差得到的结果是一样的……


关于用概率去分析局势的想法只是我的一个很不成熟的猜测,所以我按照网上的评论选取了有争议的几个点进行了验证。


从第一局开始:

图12

0?wx_fmt=jpeg

李世石第7手,没有按常规布局在上边连片,而选择走在右边。李世石自己在职业比赛中从未使用过这一开局,甚至整个职业围棋界,没有人见过这一开局。


图13

0?wx_fmt=jpeg

图14可以看出,李世乭的第七手的确出乎了CNN的预测,而一般开局相对固定,应该是比较好预测的。而第二局李世乭在前50手都是在预测范围内的。


引用自@高飞龙

实战白A一步的“自创新招”,最终下成了局部这样的变化,大家可以看到黑棋在棋盘的左下中部形成了一块大空,而这空凭空出现,可以说是白棋白送给黑棋的,所以可以说局部大损。
从前面白80的“缓手”,到这里的大损,AlphaGo始终判断自己全局的胜率较高,即全局占优。

而当时大多数人都认为白棋不好。

图14

0?wx_fmt=jpeg

我们看到Alpha第80手棋实际上是在预测之外的一步棋(无红圈),应该是其他的评估网络得出的结果。但是这之后概率明显开始上升。


下一个焦点在第86手。

白86断,又是棋谱里没有的下法。不过对局至此,我们对此已经并不惊讶。这步断的意图对人而言很好理解,由于黑棋右边很厚,白棋想通过弃子整形,使黑棋的厚势变得重复、效率低下。从人的角度来看,这是白棋最明显的意图。

而在CNN的预测中,86手却是概率非常高的一手棋


再看第二局

图15
0?wx_fmt=jpeg

(以下评论指的是第60手,原文是配图说明,我查询了图中说的棋谱是在60)

这很可能是两盘棋中,李世石真正的唯一占优的时刻。
虽然这优势可能也很小。

但好景不长,不知道李世石是因为第一局输了过于谨慎,还是认为此处占了便宜而马上变的保守,他立刻下出了一系列的缓手,而AlphaGo立刻抓住机会反超局面并且拉开了差距。
短暂的一瞬间的微弱领先之后,李世石再也没有了机会,后面的局势完全是AlphaGo碾压。

如何评价第二局比赛 AlphaGo 又一次战胜李世石? - 高飞龙的回答

图160?wx_fmt=jpeg

但实际第60手也是在预测之中的


当然以上这些还是我的猜测,希望和大家共同讨论。

=======================================


第二部分 李世乭最后的机会

目前看来李世乭的棋力的确在AlphaGo以下,但是有一点是我今天想到的。在训练AlphaGo的数据中,平均一盘棋要下200手左右。然而围棋棋盘有361个点,也就是说:

所有的训练数据都不包含大家硬着头皮把棋盘下满的情况!


在我自己的模型中,当CNN硬着头皮下到200手左右的时候已经开始犯弱智的错误了,诸如把自己的眼添死,或者在双活情况下自杀。因为在训练数据中根本不存在这样的情况。


不知道AlphaGo能否避免这样的情况,因为如果我的预测是对的,那么到了最后,还能支撑AlphaGo下棋的就只剩下蒙特卡洛搜索了。因为状态评估网络应该也没有在大于200目地情况下训练的可能。也就是说过了200目,AlphaGo就回到了GnuGo的6-8段水平了。凭李世乭的水平也许还有一拼,毕竟安西教练说过:

0?wx_fmt=png

水平有限,衷心希望大家热心指正。


结语:

其实我接触机器学习也只有一年半的时间,而接触深度学习则是近半年多的事情,现在即将毕业,离开德国,所以在文末想写一些话,说给所有刚刚接触机器学习的人。

 

作为EE出身的我,在向机器学习转型的过程中其实很是艰辛。毕竟相对于其他领域,机器学习还是很年轻的,很多人都是边做边学,一边充电一边摸索,这无疑是个很大的挑战。但是,DL的实践是一个激动人心的过程。除了DL本身,还要结合具体的问题掌握其他领域的基础知识才能做出相对满意的结果,而不是简单的套模型试参数。但是在这个过程中,最后模型训练的结果往往会带来出人意料的惊喜,出现未曾预期的效果,很多问题上的解决效率和结果都远远超过了传统方法。不过我相信,现在只是深度学习的起点,如果类比工业革命,我们也许刚刚发现了蒸汽机,在未来这个领域还会有更多发现和应用空间。所以无论我以后从事何种工作,我都会为这个领域留出时间去关注。后面等到没那么忙了,我会认真总结之前自己的收获,尽快转换成文字分享给其他人,最后祝所有刚刚进入深度学习领域的人一切顺利!


原文发布时间为:2016-04-14

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

这篇关于[数据分析]AlphaGo眼中的李世乭李世乭最后的机会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647931

相关文章

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

win7下安装Canopy(EPD) 及 Pandas进行python数据分析

先安装好canopy,具体安装版本看自己需要那种,我本来是打算安装win764位的,却发现下载总是出现错误,无奈只能下载了32位的! https://store.enthought.com/downloads/#default 安装好之后,参考如下连接,进行检验: 之后再根据下面提供的连接进行操作,一般是没问题的! http://jingyan.baidu.com/article/5d6

「大数据分析」图形可视化,如何选择大数据可视化图形?

​图形可视化技术,在大数据分析中,是一个非常重要的关键部分。我们前期通过数据获取,数据处理,数据分析,得出结果,这些过程都是比较抽象的。如果是非数据分析专业人员,很难清楚我们这些工作,到底做了些什么事情。即使是专业人员,在不清楚项目,不了解业务规则,不熟悉技术细节的情况下。要搞清楚我们的大数据分析,这一系列过程,也是比较困难的。 我们在数据处理和分析完成后,一般来说,都需要形成结论报告。怎样让大

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计

使用AI大模型进行企业数据分析与决策支持

使用AI大模型进行企业数据分析与决策支持已成为现代企业管理的重要趋势。AI大模型凭借其强大的数据处理能力和智能分析功能,能够为企业提供精准、高效的数据分析服务,进而支持企业的决策过程。以下是使用AI大模型进行企业数据分析与决策支持的具体方式和优势: 一、AI大模型在数据分析中的应用 超级数据处理能力 海量数据处理:AI大模型能够同时处理海量数据,包括结构化数据、非结构化数据等,满足企业大规模

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践)

AIGC与数据分析融合,引领商业智能新变革(TOP企业实践) 前言AIGC与数据分析融合 前言 在当今数字化时代,数据已成为企业发展的核心资产,而如何从海量数据中挖掘出有价值的信息,成为了企业面临的重要挑战。随着人工智能技术的飞速发展,AIGC(人工智能生成内容)与数据分析的融合为企业提供了新的解决方案。 阿里巴巴作为全球领先的科技公司,一直致力于探索和应用前沿技术,以提升企业

技术培训 | 大数据分析处理与用户画像实践|预告

主题: 大数据分析处理与用户画像实践 时间: 5 月 11 日 20:00 —— 21:30 地点: QingCloud 技术分享群,文末有二维码。 讲师: 孔淼 诸葛io 创始人 & CEO 90 后连续创业者,曾任 37degree CTO ,在任 37degree CTO 期间,孔淼曾带领团队服务 CCTV 、海尔、聚美优品、宝马等知名企业,对大数据分析的技术与行业有深厚的理解

用ACF和PACF计算出一堆数据的周期个数以及周期时长,数据分析python

具体步骤 1使用ACF和PACF:可以通过查看ACF图中的周期性峰值,找到数据中的周期性。如果ACF图在某个滞后期处出现显著的正相关峰值,并且这种模式在多个滞后周期中重复出现,这就是周期性信号的特征。而PACF则可以帮助确定延迟的直接影响。 2找周期数和周期长度:周期的时长可以通过ACF中第一个显著的峰值(排除滞后期为0时的峰值)来确定,而周期的个数则可以通过分析整个序列中的周期性重复次数来估计

python 数据分析 高效的学习路径

一、数据分析师应该具备哪些技能 数据分析人才热度也是高居不下,一方面企业的数据量在大规模的增长,对于数据分析的需求与日俱增;另一方面,相比起其他的技术职位,数据分析师的候选者要少得多。 要明确学习的路径,最有效的方式就是看具体的职业、工作岗位对于技能的具体需求。 我们从拉勾上找了一些最具有代表性的数据分析师职位信息,来看看薪资不菲的数据分析师,到底需要哪些技能。 其实企业对数据

Tushare库:Python金融数据分析的利器

文章目录 Tushare库:Python金融数据分析的利器一、引言二、Tushare库的安装与基础应用1、安装Tushare2、基础用法1.1 导入Tushare库1.2 获取数据 三、深入应用:案例分析1、股票收益策略模拟1.1 数据获取与处理1.2 策略模拟 四、总结 Tushare库:Python金融数据分析的利器 一、引言 在金融数据分析领域,Python因其强大