我是靠谱客的博主 风中老鼠,最近开发中收集的这篇文章主要介绍dpg learning 和q_深度学习和强化学习之间的差别有多大?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我是做深度强化学习的(Deep Reinforcement Learning)的,这个问题有趣。我对@张馨宇他在此问题下的简洁回答非常认同:“可以用深度学习这个工具来做强化学习这个任务,也可以不用”。以下是对他回答的一些补充:

我奶奶也看得懂的简短回答(或者说这是目录):有深度神经网络的机器学习是深度学习

估计未来的收益,并根据这些收益对当前动作进行强化的算法设计思想是强化学习

直接讨论它们的差别并不合适,因为它们不是互斥的(可以用深度神经网络去做强化学习)

若上面简短的两句话就能准确地说清楚二者的差别,那么下面这些我也不用写了。(英文注释是为了方便 google搜索)

1. 深度学习(Deep Learning)为何叫深度学习?

以前没有深度学习时,我们可以用中学的“最小二乘法”去拟合数据,它直接用公式算出 模型y=kx+b 中的两个变量 k与b。最小二乘法的本质是什么? - 马同学马同学答案里的截图,假设拟合结果是一条直线,使用最小二乘法进行拟合

有了深度学习后,我们可以用一个由多层神经元组成的神经网络对这些数据进行拟合。深度学习的深度就是指它使用了层数更深的神经网络。当层数加深后,这个神经网络可以借助成熟的反向传播算法(如SDG+动量、Adam)对参数进行迭代更新。粗体部分就是深度学习名称的一个由来。

想详细了解深度学习,需要入门:线性袋鼠 (Linear Algebra) ,反向传播 (Backpropagation) 以及机器学习 (Machine Learning)。为了上文不出现我奶奶看不懂的术语,我已尽力。

(过渡段)深度学习一般是有监督的 (Supervised learning):人类为深度神经网络准备数据集(输入和标签、或者说题目和答案),然后训练神经网络做题,希望它在刷题后碰到相似的题目也能答对。如:我拿几万人的体检数据 去训练深度神经网络 根据年龄、体重等输入 去预测身高。

2. 强化学习 (Reinforcement Learning) 为何叫强化学习?

也叫「增强学习」。把强化学习和深度学习对比:训练一个机器人走路(下方GIF动图完整版见B站视频)。我没法给机器人准备训练用的数据集,因为我也不清楚什么动作比较好,我只能告诉机器人:“无论你做什么动作,能让你越快达到终点的动作越好”。

训练时,机器人(智能体 agent)会自行探索各种动作组合(策略 policy)。强化学习算法需要对动作未来的收益(Q值 Q value)进行预测,然后根据预测结果「对高收益的动作进行强化」,并验证那些有高预期收益的算法。从而机器人(智能体 agent)会在人类的引导下自学(越好的强化学习算法越不用人类操心)。粗体部分就是强化学习名称的一个由来。

想详细了解深度学习,需要先入门动态规划 (Dynamic Programming) 以及马尔科夫决策过程 (Markov Decision Processes MDPs)。「根据预测结果对高收益的动作进行强化」是通过贝尔曼公式(Bellman equation) 做到的(

←极致简约版,详细请看:有阅读门槛的 无模型强化学习算法合计-策略梯度)。我们还需要先入门深度学习(Deep Learning) 才能开始做 深度强化学习(Deep Reinforcement Learning)。为了上文不出现我奶奶看不懂的术语,我已尽力。我训练的 BipedalWalkerHardcore,健步如飞呀

3. 深度学习和强化学习不是互斥的,可以用深度神经网络去做强化学习

深度强化学习是使用了深度学习神经网络的强化学习(我最近在做这个)。上世纪的强化学习算法不用深度神经网络,如:一种叫Q-learning (QL)强化学习算法使用一个表格(Q-table)去记录每种状态下做出每个动作的分数(Q值,Quality of an action),通过迭代去更新这个表格,让动作的Q值变准确。

后来一种发了《Nature》 的方法:Deep Q-learning (Deep Q Network, DQN)用一个深度神经网络取代了表格(Q-table),它结合了强化学习和深度学习。表格能记录的东西是有限的,替换成神经网络后终于突破了状态(state) 数量的限制。后来又有一种深度强化学习算法叫Deep DPG (DDPG),它又加了一个深度神经网络,突破了动作(action)数量的限制。(了解被我省略的细节→有阅读门槛的 无模型强化学习算法合计-策略梯度)

提问者看完我的回答后应该意识到:直接讨论深度学习与强化学习的差别不合适,它们并非互斥的概念。可以用深度神经网络去做强化学习。

4. 备忘录(记录于 2020-9-24):

本问题为:深度学习和强化学习之间的差别有多大?@李子牛 10 人赞同了该回答(回答内容如下:)

深度学习本质上是监督学习,即训练分布和测试分布是一样的。

强化学习本质上是决策问题。经常地,要从固定的数据集里推测出最优的分布是哪一个。

一个很好的例子是Behavioral Cloning(模仿学习的一种方法)和Generative Adversarail Imitation Learning(强化学习的一种方法)在恢复专家策略时的差别;可以参考俞扬老师最近的talk:https://www.bilibili.com/video/BV1E

他的回答↑ 对深度学习和强化学习「本质」的观点是我不认同的:「深度学习本质上是监督学习」是错误的。我认为监督学习不是深度学习的本质,如对抗网络是深度学习,它可以不是监督学习,

「深度学习训练分布和测试分布是一样的」是错误的。训练分布与测试分布越接近,深度学习表现越好。正是由于训练分布于测试分布不一样,因此才会有大量讨论深度学习泛化性的话题。

「强化学习本质上是决策问题」我不认同这种看法,但是也不反对。

「强化学习... ... 经常地,要从固定的数据集里推测出最优的分布是哪一个」。这是完全外行的看法。经常地,我们不说“强化学习使用数据集进行训练”,我们说“强化学习在环境里面进行训练,它可以与环境交互并产生训练数据”。强化学习当然可以使用人类准备好的数据集进行学习(模仿学习),强化学习也靠自己在环境中主动探索去产生训练数据。如果经常地有固定的数据集,那么强化学习还需要 experiment replay、soft target update等 这些做什么?

我认为 @李子牛 回答的只是「强化学习中使用了模仿学习的一小部分内容」,他并没有足够广度的知识去回答「深度学习与强化学习的本质」。希望回答中错误的地方能得到修改。@张馨宇 他在此问题下的优质答案

所以可以用深度学习这个工具来做强化学习这个任务,也可以不用。

我的回答只是补充了他的回答 ↑。请提问者重视他简洁准确的回答。@张兴远 他的回答 里面有出现数学公式

我认可他的回答,但我认为提出“深度学习和强化学习之间的差别有多大?”这个问题的提问者大概率没有能力读懂他的回答,典型的「看得懂的不用看,看不懂的看不懂」。若想了解更多,可以看 有阅读门槛的 无模型强化学习算法合计-策略梯度。

分割线下是私货,我自己写了一个深度强化学习的算法库,目前多智能体的已经写好了,没有BUG后就会更新→ 用于入门的强化学习库 model-free RL in PyTorch,目前中文名打算叫 「强化学习小雅 ElegantRL」。我只希望能多吸引几个人做深度强化学习,这样我有生之年看到通用人工智能的概率会提高。

我建了QQ群1163106809“深度强化学习ElegantRL”,可以讨论「深度强化学习」,甚至可以用来汇报Github代码的bug。这个群在@弯矩图 等人的提议下在2020-10-26建立,预计人会很少,正因如此,我可以尽可能地回答群成员的问题。这个群可以讨论任何与「深度强化学习」相关的东西,比如问问题:强化学习需要批归一化(Batch Norm)吗?DDPG算法参数如何调节? 之类。也可以直接到这个群汇报 Github项目ElegantRL的Bug、或其他改进建议。群文件是与深度强化学习有关的论文,它们在网上其他地方也可以下载到。

先写到这里,如果提问者是「上了实体清单的学校」或「广东学校」的学生(如哈工大、华南XX),我可能会更乐于写出详细的回答(不是也没关系)

最后

以上就是风中老鼠为你收集整理的dpg learning 和q_深度学习和强化学习之间的差别有多大?的全部内容,希望文章能够帮你解决dpg learning 和q_深度学习和强化学习之间的差别有多大?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部