0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为什么AlphaGo调参用贝叶斯优化?手动调参需要8.3天

DPVg_AI_era 来源:lq 2018-12-22 09:57 次阅读

AlphaGo的开发和运行涉及海量数据的多次调参,由于数据规模和复杂度的要求,采用手动调参估计需要8.3天。研究人员使用贝叶斯优化作为自动调参解决方案,效果明显,自对弈测试中的胜率从50%提高至66.5%,这下人类更没法下了。

在AlphaGo的开发过程中,它的许多超参数都经过多次贝叶斯优化调整。这种自动调参过程使其棋力显著提高。在与李世乭的比赛之前,我们调整了最新的AlphaGo的参数,并在自弈对局测试中将胜率从50%提高到66.5%。

这个经过调整的版本在最后一局比赛中应用。当然,由于我们在开发周期中多次调整AlphaGo的参数,因此实际上的棋力提升效果更为明显。我们希望这个案例研究将引起围棋爱好者的兴趣,同时也为贝叶斯优化相关从业者提供一些见解和灵感。

为什么AlphaGo调参用贝叶斯优化?手动调参需要8.3天

在AlphaGo的设计和开发过程中,贝叶斯优化作为一项常规方式,经常对AlphaGo超参数进行调整,提升棋力。特别是,贝叶斯优化成为AlphaGo与李世乭引人注目比赛中的重要因素。

AlphaGo的运行可以用两个阶段来概括:神经网络训练和蒙特卡罗树搜索(MCTS)。其中每一个阶段都存在许多超参数。我们主要注意调整与游戏相关的超参数。

我们之所以这样做,是因为掌握了性能强大的神经网络的调节策略,但是在游戏过程中如何调整AlphaGo的人类知识较少。我们对AlphaGo的许多组件进行了元优化。

值得注意的是,我们调整了MCTS超参数,包括管理UCT勘探公式,节点扩展阈值,与MCTS分布式实施相关的几个超参数,以及快速推出和快速推出之间选择公式的超参数。每次移动的价值网络评估。我们还调整了与策略和价值网络评估相关的超参数。

最后,我们对一个公式进行了元优化,以确定游戏过程中每次行棋的搜索时间。根据调整任务属性不同,要调整的超参数的数量从3到10不等。

图1:在前6次迭代中使用高斯过程(GP)和预期改进获取(EI)函数的贝叶斯优化的一维化表示。上图所示为GP的均值(蓝色)和真正的未知函数(红色)。在查询点附近,不确定性降低。下图为EI采集函数及其建议的下一个查询点。

在应用贝叶斯优化之前,我们尝试使用网格搜索来调整AlphaGo的超参数。具体来说,对于每个超参数,我们构建了一个有效值网格,并在当前版本v和固定基线v0之间运行自对弈。对于每个值,我们运行了1000局对局。

这些对局中每次行棋的时间固定为5秒。进行一场对局大约需要20分钟。通过使用400个GPU将游戏与几个工作者并行化,大约需要6.7小时来估算单个超参数值的胜率p(θ)。

如果要进行6个超参数的优化,每个参数取5个可能的值,总共需要8.3天。如此高的调参成本是我们采用贝叶斯优化的重要原因。

图2:最左边三个图:估计三个单独超参数的胜率的后验均值和方差,同时修复剩余的超参数。垂直条所示为固定的参考参数值。最右边的图:两个超参数的后验均值,表示这些参数之间的相关性

我们使用改进版的Spearmint进行输入变形,进行贝叶斯优化。超参数调整过程可由算法1表示(下图)。

图3:作为优化步骤函数的观察值和最大预期胜率的典型值

实验方法和测试任务

任务1:调整MCTS超参数

我们优化了MCTS超参数,用于管理UCT勘探公式、网络输出回火以及快速输出值和网络输出值之间的混合比。要调整的超参数的数量从3到10不等。

AlphaGo的开发涉及许多设计迭代过程。在完成AlphaGo版本开发之后,我们通过贝叶斯优化和自我对弈对其进行了改进。在每次设计迭代开始时,胜率为50%。然而,通过调整MCTS超参数,在与李世乭比赛之前的两次设计迭代中,胜率增加到63.2%和64.4%(即Elo分数提高了94、103分)。

重要的是,每次我们调整版本时,所获得的知识(包括超参数值)都会传递给下一版本AlphaGo的开发团队。在与李世乭的比赛结束后,我们继续优化MCTS超参数,继续增强AlphaGo的棋力。

任务2:调整面向快棋的AlphaGo用于数据生成

我们运行了行棋时间很短的自弈对局,来生成策略和价值网络的训练数据集,与常规行棋时间对局不同,快速对局每步棋限时0.25秒。 AlphaGo在各种版本上的改进取决于这些数据集的质量。因此,快速的数据生成必须尽可能具备强大性能。在这个特殊的时间设置下,最佳的超参数值会发生很大变化,如果没有适当的先验知识,手动调参就会受到限制。在调整不同的快棋版本后,四个关键版本的Elo收益分别为300、285、145和129。

任务3:调整TPU

张量处理单元(TPU)可以提供比GPU更快的网络评估速度。

迁移到新硬件后,AlphaGo的性能大幅提升。然而,现有超参数的最佳值发生了改变,并且在分布式TPU实现中还出现了新的超参数。贝叶斯优化在早期的TPU实现中产生了更大幅度的Elo分数提升

任务4:开发并调整动态混合比例公式

早期版本的AlphaGo使用快速输出值和网络输出值评估之间的恒定混合比,无论对局的阶段和搜索时间如何变化,这个比例都是不变的。这显然是不是最优选择,但我们一直缺乏适当的技术来寻找最优的混合函数。通过引入贝叶斯优化,我们可以定义更灵活的公式,并寻找和调整最佳公式的参数。

图4b所示为对应于图b中的四个点的四个混合比对移动数曲线。这表明在150手附近找到混合比的良好值是很重要的。这一发现与AlphaGo自对弈中的关键手通常发生在150手至200手之间的观察结果相一致。

任务5:调整时间控制公式

MCTS是一种随时可用的算法,其树搜索可以在任何时候中断,返回当前的最佳选择。为了准备与李世乭的正式比赛,我们希望能够优化所有动作的搜索时间分配,比赛主时间为2小时,每个玩家有3个60秒的读秒时段。我们将时间分配也视为优化问题,以便最大化地提升胜率。

调整所有超参数后的最佳效果如图所示

AlphaGo在默认时间设置下获得66.5%的胜率,每步棋的行棋时间固定为30秒。

未来:继续开发具有MCTS的AI对弈智能

贝叶斯优化为AlphaGo的超参数调节提供了一种自动化的解决方案。因为传统的手动调参耗时过长,不具备实现的可能。贝叶斯优化对AlphaGo的胜率提升做出了重大贡献,并帮助我们获得了重要的见解,这些见解继续有助于开发具有MCTS的新版本的AI对弈智能体。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AlphaGo
    +关注

    关注

    3

    文章

    79

    浏览量

    27830
  • DeepMind
    +关注

    关注

    0

    文章

    131

    浏览量

    10927

原文标题:人类没法下了!DeepMind贝叶斯优化调参AlphaGo,自弈胜率大涨16.5%

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADRC的使用方法和大致的方向

    由于串级PID还没搞定,就转向了自抗扰控制,STM32控制无刷电机做了一个ADRC速度闭环,没静差是真的,但感觉也没想象中那么强,就写篇博文记录一下ADRC大概的使用方法和大致的方向。
    发表于 09-07 06:33

    教你怎样学会PID

    不会PID?这篇文章图文结合带你学会PID!让你成为PID大神!!!
    发表于 01-06 07:47

    PID的相关资料分享

    说明:本文章适用于STM32初学者,想完成一个好玩且有深度的项目但不知道从何下手的同学。PID是平衡车的精髓所在,参数整定的好坏直接影响到平衡车的平衡效果。有的车平衡时来回晃而参数选的好的车就能
    发表于 01-14 09:14

    针对PID进行详细的讲解

      大家好,我是小政。本篇文章我将针对PID进行详细的讲解,让每位小伙伴能够对比例、积分、微分三个参数如何调节有更加清晰的理解。一、步骤确立机械中值直立环(内环)——Kp极性、
    发表于 01-14 06:26

    WinGUI_2.3软件

    英文版软件,很好的软件,WinGUI_2.3软件
    发表于 12-08 14:28 3次下载

    NAZA_驱动软件及说明书

    NAZA 驱动软件,需要的可以看一看了
    发表于 02-15 15:10 0次下载

    CF飞控说明

    CF飞控说明
    发表于 10-09 14:56 15次下载

    深度学习的经验

    对于深度学习本人也是半路出家. 现在的工作内容主要就是使用CNN做CV任务. 干这种活也有两年时间了. 我的回答可能更多的还是侧重工业应用, 技术上只限制在CNN这块.
    的头像 发表于 06-08 14:41 2355次阅读

    详解优化方法

    数学是个奇妙的东西,可以把生活中的一切量化。人生也是个奇妙的东西,起起伏伏,好比一个高斯分布函数。今天就结合一些人生的感悟聊聊优化
    的头像 发表于 07-06 10:34 4468次阅读

    一文秒懂优化/Bayesian Optimization

    ,大神/优化专家们求轻喷,觉得不错的记得帮点赞/在看/转发帮扩散哦!谢谢。 梳理这个问题有这么两个原因: 1、在工业界,最近我看到不少同学在探索并使用
    的头像 发表于 04-09 11:26 1.7w次阅读
    一文秒懂<b class='flag-5'>贝</b><b class='flag-5'>叶</b><b class='flag-5'>斯</b><b class='flag-5'>优化</b>/Bayesian Optimization

    让车立起来!STM32平衡车入门PID —— 第三(PID

    说明:本文章适用于STM32初学者,想完成一个好玩且有深度的项目但不知道从何下手的同学。PID是平衡车的精髓所在,参数整定的好坏直接影响到平衡车的平衡效果。有的车平衡时来回晃而参数选的好的车就能
    发表于 01-14 11:11 16次下载
    三<b class='flag-5'>天</b>让车立起来!STM32平衡车入门PID —— 第三<b class='flag-5'>天</b>(PID<b class='flag-5'>调</b><b class='flag-5'>参</b>)

    模型:CANape与Simulink的强强联手

    CANape推出新功能Simulink XCP Server,针对Simulink模型以及ECU内部数据的参数化和可视化,让模型变得简单。
    的头像 发表于 08-01 15:00 1466次阅读
    模型<b class='flag-5'>调</b><b class='flag-5'>参</b>:CANape与Simulink的强强联手

    什么是 CCP协议的实现原理

    就是优化或调整控制算法中的某些参数以获得系统最佳效果的过程。我们通过校准工具(比如网络接口卡can盒子和canape)访问 ECU 中的校准变量并进行更改,注意我们要校准的那些参数都被分组到 ECU 内存的一个特殊部分,称为
    发表于 06-21 09:12 848次阅读
    什么是<b class='flag-5'>调</b><b class='flag-5'>参</b> CCP协议的实现原理

    机器学习8大技巧

    今天给大家一篇关于机器学习技巧的文章。超参数优是机器学习例程中的基本步骤之一。该方法也称为超参数优化需要搜索超参数的最佳配置以实现最
    的头像 发表于 03-23 08:26 688次阅读
    机器学习8大<b class='flag-5'>调</b><b class='flag-5'>参</b>技巧

    LSTM神经网络的技巧

    长短时记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络(RNN),它能够学习长期依赖信息。在实际应用中,LSTM网络的是一个复杂且关键的过程,直接影响
    的头像 发表于 11-13 10:01 788次阅读