深度学习之Google Deepmind的alphago人工智能算法技术演变历程

简介: 强化学习的典型应用。

32b10185549cc9a4c77a7a7c436c658ee13bc2ec

 

一、简介

 

有些人会有如下质疑“alphago都用了蒙特卡洛搜索树了,这变成了一部分搜索问题了并不是人工智能算法了或者说不够智能了,但我的拙见是人在思考问题的时候除了直觉、经验判断、逻辑推理之外也会去枚举、搜索,所以我觉得算法包含一部分搜索并不能直接说该算法这不够智能或者这不是智能算法了,我觉得更多的是要考虑该算法在该类问题上如何去刻画出人类的直觉、经验判断、逻辑推理等。

 

最近大家比较关心的围棋人机大战(alphago vs 李世石)中,deep mind基于Nature2016文章的alphago5局制的比赛中已经取得了4-1的获胜。2016googlefacebook两个大拿在围棋领域基于深度学习都发表了文章,其中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,效果googlealphago优于facebook的方法,刚好借此机会将之前看到的deep mind该领域的文章捋了一下。

 

googlealphago之前就已经发表了相当多这方面的demo与文章,从其最早的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-learningReinforcement learning 

 

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

 

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


97b85a16aed19c067cdd0fe9558aa5a6e89346f3 

 

三、deep Q-Networks(DQN)

 

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

 

 5ffb521cf066113d62988971533e9bb90ef403b4

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

 

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

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


e8bee422b157c0ed1069d66d73d6ccbe28296f26

 

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

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

 

4f198d8f4c2dfea83e2e3092751c7b24d3f6772d

 

四、alphago

 

训练阶段:

 

alphago训练如下图a中展示了alphago相应的4neural networkb中主要展示了policy networkvalue network及其输出形式。 

          

 f09c0418070d09bb2e9895a25dc9db2fbe03f168

 

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


2. value network15层,预测棋盘下一步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 valueSL policy networkfor prior probability;在alphago系统模拟的时候,每一个叶子节点价值由如下两个因素决定:value networkrollout network;在alphago系统所有模拟都结束后,由上述两点计算得到s状态下avalue值。综上RLSL学习出来的两个policy network共同决定了蒙特卡洛搜索树节点的选择,value networkrollout network决定了模拟出来的叶子节点的价值,最终s状态下avalue由上述两部分以及所有模拟中s状态下a的访问次数共同影响得到。最后alphago系统选择s状态下最优的action作为围棋当前的move


本文作者:阿里-记忆


关注了解更多人工智能干货:


c11cc5170044874d79421286cd310b6aa34b4292

目录
相关文章
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的编程实践:从Python到深度学习的探索之旅
【9月更文挑战第6天】 在人工智能的黄金时代,编程不仅仅是一种技术操作,它成为了连接人类思维与机器智能的桥梁。本文将通过一次从Python基础入门到构建深度学习模型的实践之旅,揭示编程在AI领域的魅力和重要性。我们将探索如何通过代码示例简化复杂概念,以及如何利用编程技能解决实际问题。这不仅是一次技术的学习过程,更是对人工智能未来趋势的思考和预见。
|
6天前
|
机器学习/深度学习 人工智能 搜索推荐
揭秘AI的魔法:深度学习如何改变世界
在这篇文章中,我们将一起探索深度学习——一种强大的人工智能技术。我们将从基础开始,了解什么是深度学习以及它如何工作。然后,我们会看到深度学习是如何影响我们日常生活的各个方面,从医疗到自动驾驶汽车,再到个性化推荐系统。最后,我们将讨论深度学习面临的挑战和未来的可能性。让我们一起揭开深度学习的神秘面纱,看看这个“魔法”是如何改变我们的世界的。
|
16天前
|
机器学习/深度学习 人工智能 算法
探索AI的魔法:机器学习与深度学习的奥秘
【8月更文挑战第27天】在这篇文章中,我们将深入探讨人工智能的两个重要分支:机器学习和深度学习。我们将首先理解它们的基本概念,然后通过Python代码示例,展示如何应用这些技术解决实际问题。无论你是AI新手,还是有经验的开发者,这篇文章都将为你提供新的知识和启示。让我们一起开启这场AI的魔法之旅吧!
|
15天前
|
数据采集 机器学习/深度学习 人工智能
Python爬虫入门指南探索AI的无限可能:深度学习与神经网络的魅力
【8月更文挑战第27天】本文将带你走进Python爬虫的世界,从基础的爬虫概念到实战操作,你将学会如何利用Python进行网页数据的抓取。我们将一起探索requests库和BeautifulSoup库的使用,以及反爬策略的应对方法。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往数据抓取世界的大门。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:深度学习与我们的生活
【8月更文挑战第22天】在本文中,我们将深入探讨人工智能(AI)的未来发展趋势,特别是深度学习如何影响我们的生活。我们将从AI的基本概念出发,逐步解析深度学习的原理和应用,最后探讨AI在未来可能带来的改变。
|
24天前
|
机器学习/深度学习 自然语言处理 负载均衡
揭秘混合专家(MoE)模型的神秘面纱:算法、系统和应用三大视角全面解析,带你领略深度学习领域的前沿技术!
【8月更文挑战第19天】在深度学习领域,混合专家(Mixture of Experts, MoE)模型通过整合多个小型专家网络的输出以实现高性能。从算法视角,MoE利用门控网络分配输入至专家网络,并通过组合机制集成输出。系统视角下,MoE需考虑并行化、通信开销及负载均衡等优化策略。在应用层面,MoE已成功应用于Google的BERT模型、Facebook的推荐系统及Microsoft的语音识别系统等多个场景。这是一种强有力的工具,能够解决复杂问题并提升效率。
40 2
|
2天前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
10 0
|
3天前
|
机器学习/深度学习 人工智能 自动驾驶
探索人工智能的未来:机器学习和深度学习的融合之旅
本文将带你进入人工智能的奇妙世界,一起探索机器学习和深度学习的融合如何引领我们走向更加智能化的未来。我们将从基础概念出发,逐步深入到技术细节和应用实例,揭示这一技术革新如何改变我们的生活和工作方式。通过深入浅出的解释和生动的例子,本文旨在为读者提供一次内容丰富、启发思考的技术之旅。
|
14天前
|
机器学习/深度学习 人工智能 监控
探索AI的无限可能:深度学习与图像识别
【8月更文挑战第29天】在这篇文章中,我们将深入探讨人工智能(AI)的一个关键领域——深度学习和图像识别。我们将通过一个简单的Python代码示例,展示如何使用深度学习模型进行图像分类。无论你是AI初学者,还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和知识。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:深度学习的新篇章
【8月更文挑战第23天】在人工智能的宏伟蓝图中,深度学习技术如同一颗璀璨的星辰,引领着科技的潮流。本文旨在揭示深度学习的发展趋势,探讨其在各行各业中的应用前景,并分析面临的挑战与机遇。我们将一同见证这一技术如何塑造未来世界,开启智能时代的新篇章。