深度学习之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

相关文章

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree