怎样三天训练出AI围棋大师?教你AlphaGo Zero的3个trick
原作 Seth Weidman
夏乙 问耕 编译自HackerNoon
量子位 出品 | 公众号 QbitAI
过去一年,AI领域最exciting的进展可能要数AlphaGo的不断进步。AlphaGo Zero不仅提出了新的网络架构,也带来了一些新的神经网络训练技巧。
虽然DeepMind发表了论文,并在Reddit论坛上进行了一次公开答疑,后来还有人将AlphaGo Zero的算法实现了出来,但如何训练?其中有哪些trick?
发表在HackerNoon上的一篇最新博客文章做出了直观的解读:
先从AlphaGo各个版本一脉相承的两种方法说起:一是前瞻的蒙特卡洛树搜索,二是凭“直觉”来对落子位置进行评估,也就是DeepMind所说的策略网络和价值网络。这两种方法结合起来,构成了每一版AlphaGo的核心。
从更高的层面讨论,AlphaGo Zero的工作方式和AlphaGo差不多,它们都使用了基于MCTS的前向搜索,并辅以神经网络的指导。然而,AlphaGo Zero的神经网络,或者说它的“直觉”,跟AlphaGo的训练方式完全不同。
以下是三个你需要知道的tricks。
Trick 1:如何训练AlphaGo Zero
所谓神经网络学会下围棋,就是能在当前的局面下,判断出下一步的最佳落子位置。DeepMind发现,无论神经网络智能程度如何,从一无所知到围棋大师,使用MTCS总是更好的评估判断方案。
从根本上来说,MCTS是一种前向搜索,如果有足够的时间,人类围棋大师也能完成。这个过程无非是不断脑补棋局未来的变化,评估哪些“套路”可能是最佳方案。
举个例子。第一种落子方案,最终可能导致平局,评估得分就是0.0。接着看第二种方案,神经网络推算出这么下可能会获胜,评估得分为0.5。
这个过程一直持续进行的话,前向搜索总是能够评估出更好的落子方案。
当然,这也要求神经网络能够判断如何下棋落子能带来胜利。基于MCTS的改进评估与神经网络的当前状态,智能体Agent不断地展开自我对局。
DeepMind用来训练AlphaGo Zero的数据,全部都是通过前向搜索和自我博弈产生的。
不使用人类下棋的数据,其实是一个trick。这样的话,对于每个给定的局面,神经网络都能通过执行基于MCTS的前向搜索,再用其提高智能体的棋力。
在这种方法的帮助下,AlphaGo Zero从一无所知成长为围棋大师。
Trick 2: 双头怪
AlphaGo Zero的神经网络,是一个“双头”架构。
这个网络的前20层左右,是常见的神经网络结构。然后跟着是两个“头”,一个头取走了前20层的输出,然后产生了下一步的落子概率,另一个头基于同样的数据,输出当前局面的获胜概率。
这是个不寻常的结构。几乎所有的应用中,神经网络都只给出一个固定的输出。如果有两个不同的输出结果,应该如何学习呢?
答案很简单。请记住,神经网络的本质只是一些数学函数,包括一系列影响决策的参数。所谓训练,就是反复向神经网络展示正确答案,让网络更新参数,使得输出更接近正确答案。
所以,当我们使用一个头进行预测时,只需要更新“身体”和“头1”中的参数。而使用另一个头时,更新“身体”和“头2”中的参数。
这就是DeepMind训练单一、双头神经网络的方法,并且用其来指导MCTS的搜索。有点像AlphaGo使用了两个单独的神经网络。这个trick在技术上被称为硬参数共享的多任务学习(Multi-Task Learning with Hard Parameter Sharing)。
Trick 3: 残差网络
AlphaGo Zero还用了比之前版本更前沿的神经网络架构:残差网络。
残差网络是2015年孙剑在微软亚洲研究院带领的团队开发的,当时AlphaGo第一版的工作已经快要接近尾声。
△ 残差网络和普通卷积神经网络的比较
这两种神经网络相关的技巧——用残差网络架构替代卷积架构、用“双头怪”神经网络替代各个单独的神经网络,都能让整个网络的性能增加一倍,两者结合起来,性能又有提升。如下图所示:
小结
上面三个tricks让AlphaGo Zero展现出令人难以置信的能力。
值得注意的是,AlphaGo没有使用任何经典或者前沿的强化学习概念,没有Deep Q Learning,也没有Asynchronous Actor-Critic Agents。
DeepMind只是使用了模拟的方法为神经网络产生数据,然后以监督的方式学习。
Denny Britz曾经总结说:具有讽刺意味的是,强化学习在过去几年里的主要发展,都让强化学习看起来不像强化学习,反而更像监督学习。
手把手训练AlphaGo Zero
1、初始化神经网络
2、让神经网络开始自我对弈,每一步进行1600次MCTS模拟,大概耗时0.4秒
3、随着对弈数量的增长,从最近的50万场比赛中,采样2048个落子决定,以及比赛对应的输赢情况。
4、使用MCTS前向搜索产生的落子评估,以及输赢结果,一起对神经网络进行训练。
5、步骤3、4每进行1000次迭代,评估当前神经网络与此前最佳版本。如果新版本胜率达到55%,就开始用其生成新的游戏,而不再用此前的版本。
重复3、4步70万次,自我对局不要停,三天后,你也能训练出一个AlphaGo Zero。
对AI未来的启示
DeepMind的成就,对于人工智能研究的未来有很多启示,以下是关键几点:
第一,通过模拟产生的自我对弈数据对于神经网络的训练来说,已经足够好了。这证明了模拟的自我对局数据能够训练AI智能体完成极其复杂的任务,超越人类表现,甚至能够完全从0开始,根本不需要人类专家提供的数据。
第二,为了让智能体在多个领域学习执行几个相关任务,“双头”的trick能提供很大帮助。这似乎可以防止智能体的行为在任何单个任务上过拟合。DeepMind似乎非常喜欢这个trick,还用它的高级版本构建了可以在多个不同领域学习多个任务的智能体。
△ DeepMind的AI用多任务强化学习框架学习走迷宫
很多机器人项目,特别是用模拟环境训练机器人使用四肢完成任务的领域里,用这两种技巧取得了不错的效果。Pieter Abbeel在NIPS上的最新演讲展示了很多令人印象深刻的新成果,这些成果用了很多前沿强化学习技术加上了这些trick。
实际上,机器人的运动对于“双头”来说是一个完美的使用场景,比如说,要教机器人打棒球,其实包含两类动作,一是握住、挥动球棒,二是击打一个运动中的物体。用“双头”,两种动作的训练就可以同时完成,因为这二者包含一些共同技能,比如平衡、转体等等。
△ DeepMind将训练AlphaGo Zero的技巧用到了机器人运动上
— 完 —
加入社群
量子位AI社群13群开始招募啦,欢迎对AI感兴趣的同学,加小助手微信qbitbot5入群;
此外,量子位专业细分群(自动驾驶、CV、NLP、机器学习等)正在招募,面向正在从事相关领域的工程师及研究人员。
进群请加小助手微信号qbitbot5,并务必备注相应群的关键词~通过审核后我们将邀请进群。(专业群审核较严,敬请谅解)
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
怎样三天训练出AI围棋大师?教你AlphaGo Zero的3个trick相关推荐
- 谷歌人工智能打败围棋大师,到底什么是智能?
为什么80%的码农都做不了架构师?>>> 谷歌人工智能打败围棋大师,到底什么是智能? 近日,谷歌旗下DeepMind公司开发的AlphaGo程序击败了欧洲围棋顶尖高手,科技界不 ...
- 使用Sabaki和Leela Zero配置AI围棋对弈环境
使用Sabaki和Leela Zero配置AI围棋对弈环境 一.下载Sabaki和Leela Zero最新版本 二.安装Sabaki 三.安装leela zero 四.Sabaki配置leela ze ...
- 柯洁:我受够了AI围棋
鱼羊 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI "我受够了AI围棋." 中日韩三国围棋擂台赛赛后,完败于韩国棋手申真谞的柯洁,在社交媒体上留下了这样的字句. 这场比赛中 ...
- 柯洁:我受够了AI围棋;联发科校园招聘,应届生年薪约45万元;Chrome 100发布 | 极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 苏宓 出品 | CSDN(ID:CSDNnews) ...
- 【人工智能简史】第三章 第一个AI研究的黄金时代
目录 编辑 第三章 第一个 AI 研究的黄金时代 第一节:早期 AI 研究的背景与突破
- AI图像大师(安卓)
AI图像大师处理图片的能力确实非常的强大,支持包括:人像动漫化,AI图像去水印,黑白图像上色,图片清晰度增强,图像风格转换,图像色彩增强,图片无损放大,图像去雾,图像对比度增强,人像分割,AI魔术橡皮 ...
- 围棋大师吴清源在其《自选百局》之《后记》中有首诗“漫漫长途独自行,沧桑历尽到如今。回头百战感无量,棋局俱含人世情。”...
摘自:火山的日志 围棋大师吴清源在其<自选百局>之<后记>中有首诗"漫漫长途独自行,沧桑历尽到如今.回头百战感无量,棋局俱含人世情." 围棋如人生,人生亦如 ...
- 蓝牙、WiFi 版树莓派发布;日韩三巨头联手推出 AI 语音助手 Clova | AI 开发者头条...
▲ 内容预览: 树莓派也有蓝牙和 Wifi 啦! 日韩三巨头联手,推出 AI 语音助手 Clova 微软发布 Azure Stack 第三技术预览版本 每日推荐阅读 14 步教会你用 Python ...
- web前端大三实训网页设计:餐饮网站设计——烧烤美食山庄(7个页面) HTML+CSS+JavaScript
web前端大三实训网页设计:餐饮网站设计--烧烤美食山庄(7个页面) HTML+CSS+JavaScript 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...
最新文章
- PDAL点云处理库介绍
- 通俗易懂的讲解区块链
- 启动MySQL数据库时找不到mysqld.sock的解决办法!
- apache日志记录格式LogFormat参数说明
- 在收购 Sun 的六年后,Oracle 终于瞄准了 Java 的非付费用户
- HashMap和ConcurrentHashMap
- mysql行转列函数_一个小知识点-Hive行转列实现Pivot
- 5-7Linux 起源,与Unix的联系,与Windows的不同
- maven ojdbc6和ojdbc8 jar包下载地址
- 15-基于51单片机的篮球计时器
- windows服务器防勒索病毒
- Mybatis入门学习
- [c++]平均成绩、从尾到头打印链表、整数从大到小排序、二分法查找、斐波那契数列
- 关于ICP和EDI许可证,你了解多少?
- NLP是什么,百度的NLP技术有有哪些?
- 使用winfrom制作KTV排行榜点歌
- spring编程式和声明式事务控制
- 记录一个被自己蠢到的事——解决Potplay等播放器播放视频异常打不开故障
- Xilinx不再是以前的Xilinx
- 511遇见易语言封装免注册免查杀大漠模块命令
热门文章
- iOS 11.3 显示:Apple ID 或将实现微信式扫码登陆
- sp烘焙流程_烘焙工作流程图
- android软件欢迎界面,Android应用中实现一个软件启动的欢迎界面
- java连接mysql数据库时出现乱码_java连接mysql数据库中文乱码问题
- 服务器虚拟化 远程,服务器虚拟化 远程
- mysql数据库分析结果与结论_mysql数据库show processlist结果分析
- python异步调用shell_Jenkins pipeline中优雅的执行shell/python/groovy脚本
- 介绍全新的 JSX 转换
- java jsch shell_如何在字符串中获取jsch shell命令输出
- canvas 封装一个自己的 icon 库