强化学习第四章和第五章


参考自 datawahale打卡活动

关键词

关键词索引关键词索引
Policy Gradient策略梯度
一场游戏episode(回合) 或者 trial(试验)
total rewardretun 回报
Trajectory状态和行为的集合
gradient ascent梯度上升
Discounted Return(折扣回报)
相对优势(relative advantage)
交叉熵(Cross Entropy)
on-policy(同策略)
off-policy(异策略)
Proximal Policy Optimization 近端策略优化(PPO)
TRPO(Trust Region Policy Optimization)
PPO-PenaltyPPO算法1
PPO-ClipPPO算法2
adaptive KL penalty动态KL惩罚
important sampling(重要性采样

reinforcement learning

三要素

component机器玩视频游戏围棋AlphaGo
actor去操控游戏的摇杆下哪一个位置
environment游戏的主机, 负责控制游戏的画面负责控制说,怪物要怎么移动, 你现在要看到什么画面对手
reward function你做什么事情,发生什么状况的时候,你可以得到多少分数, 比如说杀一只怪兽得到 20 分每走一步所得分数

期望奖励

在这里插入图片描述

最大化期望-策略梯度

在这里插入图片描述
更新参数
在这里插入图片描述
最大对数似然法和最小交叉熵法
在这里插入图片描述

实现细节

添加baseline
在这里插入图片描述
选择合适的评分指标
在这里插入图片描述
添加discount

Monte Carlo Policy Gradient 蒙特卡洛算法

在这里插入图片描述

PPO

我们可以把 on-policy 换成 off-policy,但 importance sampling 有一个 issue,如果 pθ和pθ’ 差太多的话,这两个 distribution 差太多的话,importance sampling 的结果就会不好。PPO避免两个差太多。

importance sampling

在这里插入图片描述

on-policy----off-policy

修改θ参数
在这里插入图片描述

PPO算法变种

PPO-Penalty

在这里插入图片描述
adaptive KL penalty —动态调整β
在这里插入图片描述

PPO-Clip

在这里插入图片描述

习题思考

  • 如果我们想让机器人自己玩video game, 那么强化学习中三个组成(actor、environment、reward function)部分具体分别是什么?

    actor 做的事情就是去操控游戏的摇杆, 比如说向左、向右、开火等操作;environment 就是游戏的主机, 负责控制游戏的画面负责控制说,怪物要怎么移动, 你现在要看到什么画面等等;reward function 就是当你做什么事情,发生什么状况的时候,你可以得到多少分数, 比如说杀一只怪兽得到 20 分等等。

  • 在一个process中,一个具体的trajectory s1,a 1,s2,a2出现的概率取决于什么?

    答:一部分是 environment 的行为, environment 的 function 它内部的参数或内部的规则长什么样子。 p(s_{t+1}|s_t,a_t)这一项代表的是 environment, environment 这一项通常你是无法控制它的,因为那个是人家写好的,或者已经客观存在的。

    另一部分是 agent 的行为,你能控制的是 p θ(at∣st)。给定一个 st , actor 要采取什么样的 at会取决于你 actor 的参数 \θ, 所以这部分是 actor 可以自己控制的。随着 actor 的行为不同,每个同样的 trajectory, 它就会有不同的出现的概率。

  • 当我们在计算 maximize expected reward时,应该使用什么方法?
    答: gradient ascent(梯度上升),因为要让它越大越好,所以是 gradient ascent。Gradient ascent 在 update 参数的时候要加。要进行 gradient ascent,我们先要计算 expected reward \bar{R} 的 gradient 。我们对 \bar{R} R 取一个 gradient,这里面只有 pθ(τ) 是跟θ 有关,所以 gradient 就放在 pθ(τ) 这个地方。

  • 我们可以使用哪些方法来进行gradient ascent的计算?
    用 gradient ascent 来 update 参数,对于原来的参数 \thetaθ ,可以将原始的 \thetaθ 加上更新的 gradient 这一项,再乘以一个 learning rate,learning rate 其实也是要调的,和神经网络一样,我们可以使用 Adam、RMSProp 等优化器对其进行调整。

  • 对于梯度策略的两种方法,蒙特卡洛(MC)强化学习和时序差分(TD)强化学习两个方法有什么联系和区别

  1. 两者的更新频率不同,蒙特卡洛强化学习方法是每一个episode更新一次,即需要经历完整的状态序列后再更新(比如我们的贪吃蛇游戏,贪吃蛇“死了”游戏结束后再更新),而对于时序差分强化学习方法是每一个step就更新一次 ,(比如我们的贪吃蛇游戏,贪吃蛇每移动一次(或几次)就进行更新)。相对来说,时序差分强化学习方法比蒙特卡洛强化学习方法更新的频率更快。

  2. 时序差分强化学习能够在知道一个小step后就进行学习,相比于蒙特卡洛强化学习,其更加快速、灵活
    具体举例来说:假如我们要优化开车去公司的通勤时间。对于此问题,每一次通勤,我们将会到达不同的路口。对于时序差分(TD)强化学习,其会对于每一个经过的路口都会计算时间,例如在路口 A 就开始更新预计到达路口 B、路口 C \cdots \cdots⋯⋯, 以及到达公司的时间;而对于蒙特卡洛(MC)强化学习,其不会每经过一个路口就更新时间,而是到达最终的目的地后,再修改每一个路口和公司对应的时间。

  • 请详细描述REINFORCE的计算过程。
    答:首先我们需要根据一个确定好的policy model来输出每一个可能的action的概率,对于所有的action的概率,我们使用sample方法(或者是随机的方法)去选择一个action与环境进行交互,同时环境就会给我们反馈一整个episode数据。对于此episode数据输入到learn函数中,并根据episode数据进行loss function的构造,通过adam等优化器的优化,再来更新我们的policy model。

  • 基于off-policy的importance sampling中的 data 是从 θ ’sample 出来的,从 θ 换成 θ ′,有什么优势?
    答:使用off-policy的importance sampling后,我们不用 θ 去跟环境做互动,假设有另外一个 policy θ ′,它就是另外一个actor。它的工作是他要去做demonstration,θ ′ 的工作是要去示范给θ 看。它去跟环境做互动,告诉 \thetaθ 说,它跟环境做互动会发生什么事。然后,借此来训练θ。我们要训练的是θ ,θ ′,只是负责做 demo,负责跟环境做互动,所以 sample 出来的东西跟θ 本身是没有关系的。所以你就可以让θ ′,做互动 sample 一大堆的data,θ 可以update 参数很多次。然后一直到θ train 到一定的程度,update 很多次以后,θ ′ 再重新去做 sample,这就是 on-policy 换成 off-policy 的妙用。

  • 在本节中PPO中的KL divergence指的是什么?

    答:本质来说,KL divergence是一个function,其度量的是两个action (对应的参数分别为θ 和 θ′ )间的行为上的差距,而不是参数上的差距。这里行为上的差距(behavior distance)可以理解为在相同的state的情况下,输出的action的差距(他们的概率分布上的差距),这里的概率分布即为KL divergence。

  • 基于on-policy的policy gradient有什么可改进之处?或者说其效率较低的原因在于?

    答:经典policy gradient的大部分时间花在sample data处,即当我们的agent与环境做了交互后,我们就要进行policy model的更新。但是对于一个回合我们仅能更新policy model一次,更新完后我们就要花时间去重新collect data,然后才能再次进行如上的更新。

    所以我们的可以自然而然地想到,使用off-policy方法使用另一个不同的policy和actor,与环境进行互动并用collect data进行原先的policy的更新。这样等价于使用同一组data,在同一个回合,我们对于整个的policy model更新了多次,这样会更加有效率。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 深度强化学习中,卷积神经网络(CNN)是一种常用的模型,广泛应用于图像和视频处理等领域。CNN模型采用了一种特殊的神经网络结构,利用卷积层和池化层来提取特征,具有高效、准确和自适应的特点。 卷积层是CNN模型的核心,通过一系列的卷积运算提取输入图像中的特征,并生成一组输出图像,每个输出图像对应一个特征。卷积运算是一种局部连接的运算方式,它根据预设的卷积核对输入数据进行卷积,得到卷积后的输出数据。卷积窗口大小和卷积核数量的设置,决定了卷积层能够提取的特征类型和数量。而池化层则是在卷积层后,通过降采样操作将卷积层得到的特征进行压缩,从而减少数据的规模,同时也能够提高模型的抗噪声能力。 CNN模型中,卷积层和池化层的替换、分组、重叠等操作形成了各种不同类型的网络结构,如LeNet、AlexNet、VGG、GoogLeNet等。这些网络结构在卷积层和池化层的设置、激活函数的选择、正则化等方面存在差异,适用于不同类型的任务和数据集。 总的来说,CNN模型是一种非常强大的图像和视频处理模型,它能够自动识别图像和视频中的多种特征,并学习出对应的特征表达方式。随着深度强化学习的不断发展,CNN模型的应用前景将会更加广泛和深入,为我们带来更多的惊喜和挑战。 ### 回答2: 卷积神经网络(CNN)是一种基于深度学习的神经网络,在计算机视觉和语音识别等领域表现出了很好的性能。它的核心是卷积层和池化层,以及全连接层和激活函数。本文将对CNN进行详细介绍,以揭示深度强化学习的原理及其数学基础。 卷积层是神经网络的核心组成部分,它通过对输入数据进行卷积运算,将其转化为更具有可解释性的特征向量。池化层可以用于减小特征向量的大小,从而进一步降低计算复杂度。全连接层借助于线性代数的矩阵乘法,将卷积层和池化层的输出转化为一个向量,以供后续的分类任务使用。激活函数是神经网络的非线性映射函数,可以引入非线性,从而使得神经网络能够处理更复杂的决策任务。 深度强化学习的核心在于通过多步决策来优化策略,而CNN作为一个强大的组件,可以用于处理决策任务中的视觉和语音信息。例如,在AlphaGo中,CNN网络用于对棋局进行图像分类,从而为RL算法提供更具可解释性的特征向量。在机器人控制中,CNN可以训练以将摄像头输入映射到动作空间中,从而完成类似人类视觉的场景理解和物体识别任务。 总之,CNN作为深度强化学习中不可或缺的一部分,为多种决策任务提供了强大的视觉处理能力,提高了决策精度,并为未来的深度强化学习研究提供了更加广阔的发展空间。 ### 回答3: 卷积神经网络是一种被广泛应用于图像、视频和语音等领域的深度学习技术,其主要特点是使用卷积层提取特征,加快了计算速度和模型的训练,同时避免了图像等长尾数据的问。 CNN中的卷积操作是一种优秀的特征提取方法,它采用固定大小、共享参数的卷积核进行特征提取。此外,卷积核还可以通过扩展至多通道、空洞卷积等方法提高模型的准确度。 在实际应用时,我们通常会使用多个卷积层进行特征提取,经过卷积和池化操作后再接上多个全连接层进行分类,这样可以大大提高模型的准确度和泛化能力。 CNN还有很多优化方式,如Batch Normalization、Dropout、Residual Network等,可以有效避免模型过拟合、提高训练速度和精度,对于一些具有高度噪声数据的场景,适当加入dropout或者BatchNorm批归一化对于模型的缩小过拟合的水平大都有帮助。 总之,CNN是一种非常强大实用的深度学习技术,在计算机视觉和语音识别领域有着广泛的应用和深远的影响,能够帮助人们更好地理解图像和声音中蕴含的信息,实现更加高效、精确和智能的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值