《强化学习理论与应用》深度学习_第1页
《强化学习理论与应用》深度学习_第2页
《强化学习理论与应用》深度学习_第3页
《强化学习理论与应用》深度学习_第4页
《强化学习理论与应用》深度学习_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录12026/9/8预备知识7.17.3模型架构7.2核心思想7.4

DQN算法7.5实验结果与分析引言(1)

深度强化学习将深度学习的感知能力与强化学习的决策能力相结合,利用深度神经网络有效识别高维数据的能力,使得强化学习算法在处理高维度状态空间任务中更加有效。2013年DeepMind团队首次提出了将强化学习中的Q学习与深度神经网络中的卷积神经网络相结合的深度Q网络算法。2015年该团队对DQN算法进一步完善,使得DQN模型在Atari2600的大部分游戏中能够取得超越人类玩家水平的成绩。

2026/9/82自DQN算法提出以来,深度强化学习逐步成为机器学习的研究热点,相关技术也广泛应用于游戏、机器人控制、自动驾驶、自然语言处理、计算机视觉等领域。在网络结构和算法理论方面也出现了大量的研究成果。为了说明问题,选取4种典型的基于值函数的深度强化学习算法——DQN、DDQN、PrioritizedDQN和DuelingDQN进行阐述。

2026/9/83引言(2)9.1传统神经网络(1)

神经网络是通过不同层神经元首尾相连的方式进行数据传递的。一个神经元接收数据,经过处理,输出给后一层中相应的1个或多个神经元。通过前向传播和后向反馈来实现参数的调整,整个过程都被清楚地记录和保存下来,以备后用。

2026/9/849.1.1搭建网络(1)torch.nn.Squentialtorch.nn.Squential类是torch.nn的一种序列容器,提供了构建序列化模型的方法。在神经网络的搭建过程中,参数将按照事先定义的顺序被依次添加到计算图中执行。

seq_net=nn.Sequential(nn.Linear(2,4),nn.ReLU(),nn.Linear(4,1))输出权重参数:seq_net[0]#输出第一层seq_net[0].weight#输出第一层权重参数

2026/9/859.1传统神经网络(2)(2)torch.nn.Module

该类至少需要重写两个函数:__init__和forward。与Squential方法相比,Module方法更加灵活,具体体现在forward函数中,通过重写forward可以实现更为复杂的操作。

classmodule_net(nn.Module):def__init__(self,num_input,num_hidden,num_output):

super(module_net,self).__init__()

self.layer1=nn.Linear(num_input,num_hidden)

self.layer2=nn.ReLU()

self.layer3=nn.Linear(num_hidden,num_output)defforward(self,x):

x=self.layer1(x)

x=self.layer2(x)

x=self.layer3(x)

returnxm_net=module_net(2,4,1)print(m_net)2026/9/869.1传统神经网络(3)9.1.2激活函数

(1)torch.nn.Sigmoid

(2)torch.nn.Tanh

(3)torch.nn.ReLU

(4)torch.nn.LeakyLU2026/9/879.1传统神经网络(4)9.1.3常用的损失函数

(1)torch.nn.BCELosstorch.nn.BCELoss类使用二分类函数计算损失值。

input=torch.FloatTensor([[-0.4089,-1.2471,0.5907],[-0.4897,-0.8267,-0.7349],[0.5241,-0.1246,-0.4751]])m=nn.Sigmoid()n=m(input)target=torch.FloatTensor([[0,1,1],[0,0,1],[1,0,1]])loss_fn=nn.BCELoss()loss=loss_fn(n,target)loss

2026/9/889.1传统神经网络(5)9.1.3常用的损失函数

(2)torch.nn.MSELoss

该函数计算的是预测值与真实值之差的平方的期望值,用于评价数据的变化程度,得到的值越小,则说明模型的预测值具有越好的精确度。

loss_fn=nn.

MSELoss()loss=loss_fn(n,target)loss2026/9/899.1传统神经网络(6)9.1.3常用的损失函数

(3)torch.nn.CrossEntropLosstorch.nn.CrossEntropLoss类使用交叉熵计算损失值。在使用实例时需要输入两个满足交叉熵计算条件的参数。

loss_fn=nn.

L1Loss()loss_fn=nn.CrossEntropyLoss()x=Variable(torch.randn(3,5))y=Variable(torch.LongTensor(3).random_(5))loss=loss_fn(x,y)loss.data

2026/9/8109.1传统神经网络(7)9.1.4常用的优化器

(1)optimizer=optim.SGD(model.parameters(),lr=1e-3)

随机梯度下降优化器。

(2)optimizer=optim.Momentum(model.parameters(),lr=1e-3)

在随机梯度下降的同时,增加动量。

(3)optimizer=optim.Adagrad(model.parameters(),lr=1e-3)

自适应学习率的方法。

(4)optimizer=optim.RMSprop(model.parameters(),lr=1e-3)

自适应学习率的改进方法。2026/9/8119.1传统神经网络(8)9.3卷积神经网络(1)9.3.1卷积神经网络核心思想

12局部感知每次只针对图像的局部信息进行感知,得到特征图;在更深层次的网络中继续对所得特征图的局部信息进行高维感知;从局部到整体来获取图像信息。

9.3卷积神经网络(2)(2)局部感知大大降低了网络的参数

假设用一个像素值(pixel)表示一个神经元,考虑一个

像素的图像:

13使用全连接网络时,当下一隐藏层有1000个神经元时,从输入层到隐藏层,共有

个权重参数使用局部感知,设定感知区域为,当下一隐藏层有1000个神经元时,从输入层到隐藏层共有

个权重参数9.3卷积神经网络(3)像素相关性一层像素和多层像素共享一个卷积核;像素相关性高的局部区域往往具有相同的纹理特征,可以用同一个卷积核来学习这部分特征。参数缩减将该卷积核学习到的特征作为探测器,应用到输入图像的其他类似区域,从而减少网络参数(减少重复的卷积核)。

14权值共享9.3卷积神经网络(4)下采样:

在实际工作中,通常需要通过下采样技术对各层特征图进行压缩处理,减少后续网络的权重参数,减少过拟合问题,便于提取图像的高维特征。CNN的优缺点:

优点:深层次的CNN抽取到的信息更为丰富,效果更好。

缺点:CNN的缺陷在于需要大量调参,样本需求量大,训练时间长;网络物理含义不明确,中间层的输出无实际意义。

15图像深度为1卷积层输出值的计算

依次计算出FeatureMap中所有元素的值。计算过程:

9.3卷积神经网络(5)2026/9/816

以上的计算过程中,步幅(stride)为1。步幅可以设为大于1的数。例如,当步幅为2时,FeatureMap计算如下:

2026/9/8179.3卷积神经网络(6)图像深度为D卷积层输出值的计算

2026/9/8189.3卷积神经网络(7)Pooling层输出值的计算

Pooling层主要的作用是下采样,通过去掉FeatureMap中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是MaxPooling和MeanPooling。MaxPooling实际上就是在n*n的样本中取最大值,作为采样后的样本值。下图是2*2maxpooling:2026/9/8199.3卷积神经网络(8)卷积池化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论