首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习算法(第32期)----强化学习入门必读

深度学习算法(第32期)----强化学习入门必读

作者头像
智能算法
发布2019-10-24 10:09:47
4650
发布2019-10-24 10:09:47
举报
文章被收录于专栏:智能算法智能算法

上期我们一起学习了变分自编码器及其实现的相关知识, 深度学习算法(第31期)----变分自编码器及其实现

今天开始以及后面几期我们一起学一下强化学习方面的知识。

强化学习的前世今生

如今强化学习在机器学习领域可谓是热的烫手烫脚,虽然比较热门,但是却是在1950左右提出来的,提出之后,也出现了很多有意思的应用,特别是在游戏和机器控制方面,但是很少有爆炸性的新闻出来。

直到2013年,一个来自英国研究者发起的DeepMind项目,强化学习才有了一个革命性的发展。那么这个项目是做什么的呢?DeepMind可以学习去玩任何从头开始的Atari游戏,而且在很多游戏中,都超越了人类。然而,它仅仅使用像素作为输入,而没有使用游戏规则的任何先验知识。这是一个不得了的发现。并且在2016年3月这个系统击败了世界围棋冠军李世石。之前从未有程序能勉强打败这个游戏大师,更不用说是世界冠军了。今天, 整个强化学习领域都充满了新的想法,都具有广泛的应用范围,DeepMind在2014年被谷歌以超过5亿美元收购。

那么他们是怎么做到的呢?事后看来,原理似乎相当简单:他们将深度学习运用到强化学习领域,结果却超越了他们最疯狂的设想。接下来几期,我们将首先解释强化学习是什么,以及它擅长于什么,然后我们将介绍两个在深度强化学习领域最重要的技术:策略梯度和深度Q网络(DQN),包括讨论马尔可夫决策过程(MDP)。我们将使用这些技术来训练一个模型来平衡移动车上的杆子,另外玩一个Atari游戏。同样的技术可以用于各种各样的任务,从步行机器人到自动驾驶汽车。

强化学习是干什么的?

在强化学习中,我们的目标是训练一个智能体,该智能体(agent)在环境(environment)中观察(observation)并且做出决策(action),随后它会得到奖励(reward)。智能体的目标是去学习如何行动能才能最大化期望奖励。如果可以拟人化的话,我们可以认为正奖励是愉快,负奖励是痛苦(这样的话奖励一词就有点误导了)。简单来说,智能体在环境中行动,并且在实验和错误中去学习最大化它的愉快,最小化它的痛苦。

这是一个相当广泛的设置,可以适用于各种各样的任务。下图是几个例子:

  • a. 智能体可以是一个控制机械狗的程序。在这个例子中,环境就是真实的世界,智能体通过许多的传感器,例如摄像机或者激光传感器来观察,它可以通过给电机发送信号来行动。它可以被编程设置为如果到达了目的地就得到正奖励,如果浪费时间,或者走错方向,或摔倒了就得到负奖励。
  • b. 智能体可以是控制 MS.Pac-Man 游戏的程序。在此例中,环境是 Atari 游戏的仿真,行为是9个操纵杆位(上下左右中间等等),观察是屏幕,回报就是游戏得分点数。
  • c. 智能体也可以是棋盘游戏的程序例如:围棋。
  • d. 智能体也可以不用去控制一个实体(或虚拟的)去移动。例如它可以是一个智能程序,当它调整到目标温度以节能时会得到正奖励,当人们需要自己去调节温度时它会得到负奖励,所以智能体必须学会预测人们的需要。
  • e. 智能体也可以去观测股票市场价格以实时决定买卖。当然奖励的依据为挣钱或者赔钱。

需要注意的是,没有正奖励也可以,比方说让智能体走迷宫,迷宫中分分秒秒的时间就是负奖励,所以,智能体要尽快的找到出口。在强化学习的领域,还有很多合适的应用,例如自动驾驶汽车,在网页上放广告,或者控制一个图像分类系统让它明白它应该关注于什么。

好了,我们知道强化学习就是去训练一个智能体,让该智能体尽可能的在所处环境中得到最大化奖励。说白了就是让智能体找到一个最好的算法,去适应当下的环境。

策略搜索的概念

智能体通过算法去决定如何行动称为智能体的策略,比如策略可以是一个观测为输入,行动为输出的神经网络,如下图:

策略可以是你能想到的任何算法,甚至可以不确定。比方说,一个真空吸尘器机器人,它的奖励就是30分钟内吸起灰尘的数量。它的策略可以是每秒钟以p的概率向前移动,或者以1-p的概率随机左右转,旋转角度是[-r, r]之间的随机角度。由于该策略有一定的随机性,因此被称为随机策略,机器人的轨迹不确定,并保证能达到任何地方捡起所有灰尘。那么问题是30分钟内,它将捡起多少灰尘?

那么,如何去训练这样一个智能体呢?有两个策略参数可以调节,概率p和角度范围r。一种方法就是暴力搜索,尝试很多种参数组合,最终找到最佳的策略如下图,这种方法比较野蛮,当策略空间比较大的时候,用这种方法去搜索最佳策略,简直就是大海捞针。

另一个搜索策略的方法是遗传进化算法,比方说,第一次迭代我们可以随机创建100个策略并尝试下,根据策略适应环境的适应度进行抛弃80个适应度低的策略,让剩余20个策略进行交叉变异繁衍4代,幸存的加上子代共同构成第二次迭代,如此迭代寻优。

还有一种方法使用一些优化技术。通过评估关于策略参数的奖励梯度,然后通过跟随梯度向更高的奖励(梯度上升)调整这些参数。这种方法被称为策略梯度(policy gradient,PG),我们将在后面几期详细讨论。例如,回到真空吸尘器机器人,你可以稍微增加概率P并评估这是否增加了机器人在 30 分钟内拾起的灰尘的量;如果确实增加了,就相对应增加P,否则减少P。

至此,我们已经基本了解强化学习是用来做什么的了,下期我们将使用Tensorflow来实现梯度策略算法,但是在这之前我们需要为智能体创造一个生存的环境,所以下期我们会先介绍下OpenAI工具包。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 强化学习的前世今生
  • 强化学习是干什么的?
  • 策略搜索的概念
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档