标签:多个 ted 文章 神经网络 网络学习 -o 运行 技能 desc
详细是将卷积神经网络和Q Learning结合在一起。卷积神经网络的输入是原始图像数据(作为状态)输出则为每一个动作相应的价值Value Function来预计未来的反馈Reward
在这篇文章中。还仅仅是測试7个游戏。到了Nature的文章则測试了很多其它的游戏。而且取得了更好的效果
(比方玩超级玛丽)
直接从高维的输入(比方视觉或听觉)来学习一个控制策略 是 RL增强学习的长期挑战。个人理解:这个问题是人工智能抽象出来的极其重要的子问题。由于人类都是通过视觉听觉触觉等感觉然后来学习一项技能,比方玩游戏,打篮球,洗碗等等。 解决问题的意义在于机器人不一定能够具有自我意识,可是却能够实现 机器人彻底取代反复性劳动 的愿景。
性能的好坏主要取决于特征提取的好坏
当前。深度学习已经在视觉,语音等领域取得突破性进展。根本的方法就是通过神经网络自己主动提取复杂特征。所以,非常自然的我们会考虑一个问题:
增强学习是否能收益于深度学习
答案当然是YES
而增强学习仅仅有一个reward返回值,而且这个值还经常带有噪声,延迟,而且是稀少的(sparse)。理解是不可能每一个state给个reward。特别是延迟Delay,经常是几千毫秒之后再返回。
从上面分析出增强学习要结合深度学习存在的三个问题:
确实。假设没有这篇文章的突破性创新,我们怎样知道怎么解决这三个问题。
这篇文章至少攻克了前两个问题及部分攻克了第三个问题。
使用Arcade Learning Environment 来训练Atari 2600 游戏。
- 目标:使用一个基于神经网络的agent来学习玩各种游戏。玩的越多越好。
- 输入:要求仅仅输入图像数据和得分。和人类基本一样
- 输出: 控制动作
- 要求:对于不同游戏。网络的结构及顶层參数设定一样
要理解这篇文章,没有背景知识是非常难的,尽管作者在这里介绍了一下RL的基本知识及Q-learning算法以及採用神经网络来取代Q矩阵的方法。但篇幅太短。没有基础非常难理解。
核心就是几个公式:Q-learning ,用neural network的loss function,梯度公式。
有了这几个公式支撑,整个算法也就理解一半了。
关于背景知识这一块这里不进行分析了,之后专门进行介绍。
看到这里才知道实际上并非Deepmind第一次将神经网络用于RL,TD-gammon使用了MLP(Multi-layer percetron)也就是一般的神经网络,一个隐藏层(hidden layer)来训练。
而且将其应用到了玩backgammon游戏上取得了人类水平。
可是非常可惜的是,当时人们把算法用到其它游戏象棋围棋并不成功,导致人们觉得TD-gammon算法仅仅适用于backgammon这个特殊的样例,不具备通用性。
本质上,使用神经网络是为了模拟一个非线性的函数(value或者policy都行,比方flappy bird,设定它上升到一个高度下降这就是一个分段函数)。人们发现。将model-free的算法比方Q-learning与非线性函数拟合的方法(神经网络是一种)非常easy导致Q-network发散。因此。大部分的工作就使用线性的函数拟合(linear function approximation),收敛性好。
显然不是Deepmind第一个想到把深度学习和增强学习结合在一起的。之前也有人尝试用深度神经网络来预计环境environment,估值函数value function或者policy策略。
这实际上是三个Deep Learning与Reinforcement Learning结合的思路
而且结合Q-learning发散的问题也被Gradient temporal-difference 方法部分解决。(这种方法详细是神马还有待学习)
这些方法用在使用非线性来预计固定策略或者使用线性来预计一个控制策略还是证明能够收敛的。
可是这些方法还没有拓展到非线性控制nonlinear control。
这就是研究点!。!!
採用相同的loss function,可是使用RPROP(不懂)来更新參数,问题是採用batch update而不是sgd 须要很多其它的计算开销而且取决于数据集的大小。
採用deep autoencoder,也是使用visual input。可是不同的是。NFQ是把特征提取和增强学习分开进行的。
先提取特征。再应用NFQ训练。
而Deepmind是End-to-End。
学习的特征和最后的动作价值是直接关联的。也就是学习什么特征也是网络决定
使用它做增强学习研究之前就有。但採用的是线性函数预计和获取的视觉特征(linear function approximation and generic visual features) 总之之前是人工提取特征,降维。
HyperNEAT使用神经网络来取代一个策略。但不同游戏用不同的网络。
当前深度学习的方式核心在于採用大量的数据集。然后使用SGD进行权值的更新。所以,这里的目标就是将增强学习的算法连接到深度神经网络中。然后能直接输入RGB的原始图像。并使用SGD进行处理。
实际上TD-gammon的思路就是上面的思路。仅仅是训练是直接获取experience样本进行训练。也就是on-policy。而关键是这个算法是20年前的了。所以。经过20年的硬件发展以及深度学习的发展,没有理由说无法在这上面取得突破。
相比于TD-gammon的在线学习方式。Deepmind使用了experience replay的技巧。
简单的说就是建立一个经验池。把每次的经验都存起来。要训练的时候就 随机 的拿出一个样本来训练。这样就能够解决状态state相关的问题。
以此同一时候。动作的选择採用常规的
就是小概率选择随机动作,大概率选择最优动作。
然后呢输入的历史数据不可能是随机长度,这里就採用固定长度的历史数据,比方deepmind使用的4帧图像作为一个状态输入。
整个算法就叫做Deep-Q-Learning。
算法就是例如以下了:
算法分析:
1. 训练分成M个episode,每一个episode训练T次。我的理解就是比方玩游戏,一局是一个episode,一局里面有非常多时间片,就训练多少次,次数不固定。重新启动新的episode主要是初始化state 作为新的第一个,而不是用上一局的最后的状态作为state输入。
2. 实际上每一个循环分成两部分:一部分是输出动作并存储。
一部分是随机从经验池里取出minibatch个transitions,然后计算target。依据loss function通过RMSProp更新參数。(minibatch是什么意思?)
3. 这里的算法我们能够看到,參数是一直更新的。而Nature的算法改进了,计算target用的是之前的參数。详细算法的变化等之后分析Nature的文章再说。
实际应用中。仅仅存储N个经验在经验池里(毕竟空间有限嘛)这种方法的局限性就是这个经验池并没有区分重要的转移transition,总是覆盖最新的transition。
所以,採用有优先级的使用memory是一个更好的方式。
这也就是阿蒙说的引导的经验池。
由于输入是RGB,像素也高,因此,对图像进行初步的图像处理,变成灰度矩形84*84的图像作为输入,有利于卷积。
接下来就是模型的构建问题,毕竟Q(s,a)包括s和a。一种方法就是输入s和a。输出q值。这样并不方便,每一个a都须要forward一遍网络。
Deepmind的做法是神经网络仅仅输入s,输出则是每一个a相应的q。这样的做法的长处就是仅仅要输入s。forward前向传播一遍就能够获取全部a的q值,毕竟a的数量有限。
详细的模型架构例如以下:
这样一開始的时候就很多其它的是随机搜索,之后慢慢使用最优的方法。
怎样在训练的过程中预计训练的效果在RL上是个Challenge。毕竟不像监督学习。能够有training 和validation set。那么仅仅能使用reward,或者说平均的reward来判定。也就是玩的好就是训练的好。
可是存在问题就是reward的噪声非常大,由于非常小的权值改变都将导致策略输出的巨大变化。从文章的途中能够看出:
以此同一时候。平均Q值的变化却是稳定的,这是必定的,由于每次的Target计算都是使用Q的最大值。
:
而且非常关键的是全部的实验都收敛了!!!
尽管没有理论支持为什么保证收敛。可是就是实现了。Deepmind的方法能够在一个稳定的状态下使用大规模的深度神经网络结合增强学习。
就是看一下每一帧的Q值变化,看了之后答案是惊人的:
在敌人出现时,Q值上升。快消灭敌人时,Q值到顶峰。敌人消失,Q值回到正常水平。这说明Q值确实代表了整个复杂的状态。实际上到后面发现,整个神经网络能够同一时候跟踪多个图上的目标:
算法对照了。
- Sarsa算法。使用Sarsa算法学习一个线性的policy,採用手工获取的特征。
- Contingency算法。 採用和Sarsa相同的方法。可是通过学习部分屏幕的表达增强了特征。
上面的方法的特征提取都採用传统的图像处理方法比方背景减除。
总之就是特征提取方式落后。Deepmind的算法是原始输入计算机须要自己去detect物体。(直接攻克了detection和tracking的问题)
以此同一时候。当然是对照人类的水平了。人类的得分是人类玩两小时的结果,反正是蛮高的。
但deepmind的方法有几个超过人类
对照的列表就不复制了,总而言之就是方法好,原始输入。而且在使用
这篇文章採用了一个全新的方法结合深度学习和增强学习,能够说是deep reinforcement learning的开山之作。
採用stochastic minibatch updates以及experience replay的技巧。 效果非常强,具有通用性。
Paper Reading 1 - Playing Atari with Deep Reinforcement Learning
标签:多个 ted 文章 神经网络 网络学习 -o 运行 技能 desc
原文地址:http://www.cnblogs.com/claireyuancy/p/7260099.html