深度强化学习入门

1、概述

机器学习领域目前可以分为有监督学习,无监督学习,强化学习,迁移学习四个方向。本文将尽可能以通俗的语言带你入门深度强化学习DQN。

2、强化学习的定义

首先我们来了解一下什么是强化学习。目前来讲,机器学习领域可以分为有监督学习,无监督学习,强化学习,迁移学习四个方向。那么
强化学习就是能够使得我们训练的模型完全通过自学来掌握一门本领,能在一个特定场景下做出最优决策的一种算法模型。就好比是一个小孩在慢慢成长,当他做错的事情时家长给予惩罚,当他做对的事情时家长给他奖励。这样,随着小孩子慢慢长大,他自己也就学会了怎样去做正确的事情。那么强化学习就好比小孩,我们需要根据它做出的决策给予奖励或者惩罚,直到它完全学会了某种本领(在算法层面上,就是算法已经收敛)。在下图中给出了强化学习的一个框架,Agent就可以比作小孩,环境就好比家长。Agent根据环境的反馈r去做出动作a,做出动作之后,环境给予反应,给出Agent当前所在的状态与奖励或者惩罚。其原理结构图如下所示:

结构图

3、强化学习模型的结构

强化学习模型由五部分组成,分别是Agent,Action,State,Reward,Environment。Agent代表一个智能体,其根据其输入State来做出相应的Action,Environment接收Action并返回State和Reward。不断重复这个过程,直到Agent能在任意的State下做出最优的Action,即完成模型学习过程。

智能体(Agent):智能体的结构可以是一个神经网络,可以是一个简单的算法,智能体的输入通常是状态State,输出通常是策略Policy。

动作(Actions):动作空间。比如小人玩游戏,只有上下左右可移动,那Actions就是上、下、左、右。

状态(State):就是智能体的输入。

奖励(Reward):进入某个状态时,能带来正奖励或者负奖励。

环境(Environment):接收action,返回state和reward。

示意图

4、深度强化学习算法

强化学习的学习过程实质是在不断更新一张表的过程。这张表一般称之为Q_Table,此张表由State和Action作为横纵轴,每一个格就代表在当前State下执行当前Action能获得的价值回馈,用Q(s,a)表示,称为Q值。获得整个决策过程最优的价值回馈的决策链是唯一的,完善了此张表,也就完成了Agent的学习过程。但是试想一下,当State和Action的维度都很高时,此张表的维度也会相应非常高,我们不可能获得每一个State下执行Action能获得的Q值,这样在高纬度数据下每次去维护Q_Table的做法显然不可行。那么有没有办法来解决这个问题呢,答案肯定是有的!所谓的机器学习,深度学习不就是基于当前数据集去预测未知数据的一些规律嘛,那么我们的Q_Table也可以用机器学习或者深度学习来完善啊。一个显然的方法就是可以使用一种算法来拟合一个公式,输入是State和Action,输出是Q值。那么深度强化学习算法显然就是深度学习与强化学习的结合了,我们基于当前已有数据,训练神经网络从而拟合出一个函数f,即f(s,a)=Q(s,a)。使用有限的State_action集合去拟合函数从而可以获得整张表的Q值。此时的Q值是预测值,有一定的误差,不过通过不断的学习,我们可以无限减小这个误差。

5、训练策略

深度强化算法训练过程中,每一轮训练中的每一步,需要使用一个policy根据State选择一个action来执行,那么这个policy是怎么确定的呢。目前有两种做法

  1. 随机的生成一个动作
  2. 根据当前的Q值计算出一个最优的动作,这个policy称之为greedy policy贪婪策略。也就是

使用随机的动作称之为exploration,也就是探索未知的动作会产生的效果,有利于更新Q值,避免陷入局部最优解,获得更好的policy。而基于greedy policy则称为exploitation,即根据当前模型给出的最优动作去执行,这样便于模型训练,测试算法是否真正有效。将两者结合起来就称为EE policy。

6、DQN(Deep Qtable NetWork)

神经网络的训练是一个最优化问题,最优化一个损失函数loss function,也就是标签和网络输出的偏差,目标是让损失函数最小化。为此,我们需要有样本,有标签数据,然后通过反向传播使用梯度下降的方法来更新神经网络的参数。所以,要训练Q网络,我们要能够为Q网络提供有标签的样本。在DQN中,我们将目标Q值和当前Q值来作为loss function中的两项来求偏差平方

上式中的target中的s,a分别是下一个状态和动作。下一步来看看算法怎么训练。

6.1 NIPS 2013

算法流程

对上面的算法逻辑进行总结,直观来讲就是反复试验,然后存储数据。当数据存储到一定数量时,就在记忆池中采样数据,使用梯度下降训练神经网络。

6.2 NIPS 2015

在2015版的DQN中做了改进,使用另外一个神经网络target_Q来产生Q值,其网格参数是定期由MainNet中的参数复制而来的。这样,在一段时间里,目标Q值时保持不变的,一定程度降低了当前Q值和目标Q值的相关性,提高了算法稳定性。

image

6.3 算法流程图

image

6.4 Loss Function构造

image

7、参考

强化学习及Python代码示例
深度强化学习——DQN

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容