深度学习之google deepmind的alphago AI人工智能算法技术演变历程

本文主要是介绍深度学习之google deepmind的alphago AI人工智能算法技术演变历程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、简介


        最近大家比较关心的围棋人机大战(alphago vs 李世石)中,deep mind基于Nature2016文章的alphago在5局制的比赛中已经取得了3-1的成绩提前锁定了胜局。2016年google与facebook两个大拿在围棋领域基于深度学习都发表了文章,其中facebook文章如下:《BETTER COMPUTER GO PLAYER WITH NEURAL NET- WORKAND LONG-TERM PREDICTION》 ;Google文章如下:《Mastering the game of Go with deep neural networks and tree search》。这两篇文章都是蒙特卡洛搜索树+DCNN,效果google的alphago优于facebook的方法,刚好借此机会将之前看到的deep mind该领域的文章捋了一下。


       google在alphago之前就已经发表了相当多这方面的demo(https://www.youtube.com/channel/UCP7jMXSY2xbc3KCAE0MHQ-A)与文章,从其最早的NIPS2013文章《Playing Atari with Deep ReinforcementLearning》到现在的Nature2016 《Mastering the game of Go with Deep Neural Networks & Tree Search》。deep mind在此期间做了很多扎实的研究工作,本文将进行简单的描述。本文接下去会按如下几点内容进行叙述:1.Q-learning 2. Reinforcement learning 3. deep Q-Networks 4. alphago

 

二、Q-learning与Reinforcement learning


        增强学习Reinforcement learning的场景大部分有一个共同的特点,那就是这些场景有序列决策或者控制的问题,对于当前的任何一个state不能明确的对不同的action给出一个事先well defined的score值。它大多应用于如下的领域:机器人控制,市场决策,工业控制等。


        Q-learning是用于解决Reinforcement learning问题的一种常见方法,其经典的公式如下:

 

三、deep Q-Networks(DQN)


        2013发表NIPS文章《Playing Atari with Deep ReinforcementLearning》是deep mind公开的最早使用raw pixels作为输入的,用于解决reinforcement learning的深度学习网络DQN。在该文章中,作者在atari一系列的游戏上做了各种算法的比较,如下图所示:


在总共7个游戏中,有6个做到了算法中最好,其中还有3个做到了比人类专家还要好。该文章中提到的DQN有两个特点:1. 用来更新参数的minibatch是是从replay memory(回放记忆)中采样出来的,而不是仅仅的用当前一个片段或者session,这样能使得模型收敛性更好,否则会很容易训飞。2. value函数是一个多层网络。


        在上述文章提出后,deep mind在该问题上不停的打磨,不断的优化其工程与算法:


1. 2015发表ICML文章《MassivelyParallel Methods for Deep Reinforcement Learning》,该文章从工程上了做了4个方面的分布式:学习、决策、价值、经验,第1个属于学习,第2、3个属于网络方面,第4个偏存储方面。DQN的全面分布式将DQN的学习时间成本与模型效果都提升了一个档次。DQN分布式结构简要如下:


2. 2016发表ICLR文章《PRIORITIZEDEXPERIENCE REPLAY》,该文章指出了原DQN中经验均匀采样的问题,并从防过拟合、防局部最优这些点上,设计了介于均匀采样与纯优先级贪心之间的经验采样方法,提出的这个改进再次将DQN的模型效果提升了一个档次。


3. 2016发表ICLR文章《PolicyDistillation》,该篇文章实际上是做了DQN的transfer learning的实验,有很多思想与hinton的dark knowledge里面的东西都很相似,其方法示意图如下所示:

 

四、alphago


训练阶段:


alphago训练如下图a中展示了alphago相应的4个neural network,b中主要展示了policy network与value network及其输出形式。


           

 


1. policy network(14层,输出棋盘每步move概率值),它首先采用supervisedlearning训练方法在KGS数据集上达到了55.7%的专家moves预测准确率,然后由reinforcement learning训练方法进行自我训练(每一次训练都在前几次迭代完的模型中随机一个模型做决策),自我训练的policy network在80%的情况下打败了supervised learning训练出来的policy network。


2. value network(15层,预测棋盘下一步move),该网络由pair训练数据做regressionloss反馈更新得到。在KGS的数据集上,该训练方法出现了过拟合的现象(训练MSE0.19,测试MSE0.37),但若在reinforcement learning学出来的policy network基础上产生出的自我训练集里进行采样学习的话,就可以有效的避免该问题(训练MSE0.226,测试MSE0.234)。

 

预测阶段:


        在alphago系统模拟的时候,每一个action由如下三个因素决定:s状态下a的访问次数,RL policy network for action value,SL policy networkfor prior probability;在alphago系统模拟的时候,每一个叶子节点价值由如下两个因素决定:value network,rollout network;在alphago系统所有模拟都结束后,由上述两点计算得到s状态下a的value值。综上RL与SL学习出来的两个policy network共同决定了蒙特卡洛搜索树节点的选择,value network与rollout network决定了模拟出来的叶子节点的价值,最终s状态下a的value由上述两部分共同影响得到。最后alphago系统选择s状态下最优的action作为围棋当前的move。

            

这篇关于深度学习之google deepmind的alphago AI人工智能算法技术演变历程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.