2.2 深度学习(Deep Learning)

news/2025/10/12 19:42:34/文章来源:https://www.cnblogs.com/zzzxx/p/19137104

深度学习(Deep Learning)

深度强化学习(Deep RL)使用深度神经网络作为函数逼近器,从而能够学习状态–动作对的复杂表示。本节对深度学习进行简要概述,更多细节可参考 @Goodfellow2016。


前馈神经网络(Feedforward Neural Networks)

一个深度神经网络(DNN)多层感知机(MLP)由输入层 \(\mathbf{x}\)、一个或多个隐藏层 \(\mathbf{h_1}, \mathbf{h_2}, \ldots, \mathbf{h_n}\),以及输出层 \(\mathbf{y}\) 组成。

dnn

每一层(称为全连接层,FC层)将上一层的输出向量 \(\mathbf{h_{k-1}}\) 通过线性变换和非线性激活函数转换为新的表示:

\[\mathbf{h_{k}} = f(W_k \mathbf{h_{k-1}} + \mathbf{b_k}) \]

其中 \(W_k\) 为权重矩阵,\(\mathbf{b_k}\) 为偏置项,\(f\) 为激活函数。
现代网络常用的激活函数是 ReLU(Rectified Linear Unit)\(f(x)=\max(0, x)\),也可使用其变体。

学习的目标是找到参数集 \(\theta\)(包含所有权重和偏置),使定义在训练集 \(\mathcal{D}\) 上的损失函数最小化。

  • 回归问题中最小化均方误差(MSE):

    \[\mathcal{L}(\theta) = \mathbb{E}_{\mathbf{x}, \mathbf{t} \in \mathcal{D}} [||\mathbf{t} - \mathbf{y}||^2] \]

    其中 \(\mathbf{x}\) 为输入,\(\mathbf{t}\) 为真实输出,\(\mathbf{y}\) 为预测值。

  • 分类问题中最小化交叉熵(或负对数似然):

    \[\mathcal{L}(\theta) = - \mathbb{E}_{\mathbf{x}, \mathbf{t} \in \mathcal{D}} [\sum_i t_i \log y_i] \]

    分类任务中输出层通常采用 softmax 激活,与交叉熵函数配合良好。

定义损失函数后,通过梯度下降(Gradient Descent)优化参数:

\[\Delta \theta = -\eta \nabla_\theta \mathcal{L}(\theta) \]

其中 \(\eta\) 为学习率。若梯度为正,说明增加该参数会使损失变大,应减少它;反之则增加。

梯度的计算由反向传播(Backpropagation)算法实现,即链式法则在神经网络中的应用:

\[\frac{\partial \mathcal{L}}{\partial W_k} = \frac{\partial \mathcal{L}}{\partial \mathbf{y}} \frac{\partial \mathbf{y}}{\partial \mathbf{h_n}} \cdots \frac{\partial \mathbf{h_k}}{\partial W_k} \]

每一层在反向传播中对梯度都有贡献。
对于 @eq-fullyconnected 所示的全连接层:

\[\frac{\partial \mathbf{h_k}}{\partial \mathbf{h_{k-1}}} = f'(W_k \mathbf{h_{k-1}} + \mathbf{b_k}) W_k \]

\[\frac{\partial \mathbf{h_k}}{\partial W_k} = f'(W_k \mathbf{h_{k-1}} + \mathbf{b_k}) \mathbf{h_{k-1}} \]

\[\frac{\partial \mathbf{h_k}}{\partial \mathbf{b_k}} = f'(W_k \mathbf{h_{k-1}} + \mathbf{b_k}) \]

ReLU 的导数简单易算:

\[f'(x) = \begin{cases} 1, & x>0 \\ 0, & x \le 0 \end{cases} \]

现代框架(TensorFlow、PyTorch等)会自动计算这些梯度。

接下来需要选择一个优化器(Optimizer)来更新参数。
常用优化器包括:

  • SGD(随机梯度下降)
  • SGD + 动量(Momentum / Nesterov)
  • Adagrad
  • Adadelta
  • RMSprop
  • Adam

经验上,SGD + Nesterov 动量效果较好但需调参;Adam一般“开箱即用”,因此在深度强化学习中更常使用 Adam。

为防止过拟合,还可引入正则化机制:L1/L2 正则化、Dropout、Batch Normalization 等。


卷积神经网络(Convolutional Neural Networks, CNN)

卷积神经网络是为处理高维输入(如图像)而设计的 DNN 变体。
其核心思想是:隐藏层中的神经元在输入空间上共享权重,从而捕捉局部特征(如边缘)。

卷积层(Convolutional Layer)使用若干小矩阵(如 3×3 或 5×5)作为卷积核,在输入图像上滑动计算,生成特征图(Feature Maps)
如果输入为 \(N \times M \times 3\) 彩色图像,则卷积层输出为 \(N \times M \times F\) 的张量,\(F\) 为提取的特征数。

convlayer

卷积层保持空间尺寸,而最大池化层(Max-Pooling Layer)用于降低空间分辨率并增强平移不变性:
每个特征图被划分为 2×2 区块,仅保留每块中的最大激活值,从而使尺寸减半。

maxpooling

典型的 CNN 结构由若干卷积层和池化层交替组成,最后连接全连接层与 softmax 输出层。
下图展示了 2012 年 ImageNet 冠军模型 AlexNet 的结构:

AlexNet架构。来源:@Krizhevsky2012.

虽然自 2012 年以来已有许多改进(如 ResNet),但基本思想相同:
卷积层提取特征,池化层下采样,最后将小尺寸特征映射展平送入全连接层。

深度强化学习中,通常不使用池化层
因为位置信息至关重要(例如球的位置、人物的朝向等),去掉池化层可保留空间细节。
这会增加网络参数量与所需样本量,也是 CNN 在深度强化学习中最大的限制。


循环神经网络(Recurrent Neural Networks, RNN)

前馈网络只能处理静态输入 \(\mathbf{x}\),输出 \(\mathbf{y}\),无法捕捉时间依赖。
在处理序列任务(如视频分析)时,这会导致低效。

循环神经网络(RNN)通过引入时间递归解决此问题:当前输出依赖于当前输入和上一步输出。

RNN-unrolled

\[\mathbf{h}_t = f(W_x \mathbf{x}_t + W_h \mathbf{h}_{t-1} + \mathbf{b}) \]

RNN 通过“时间反向传播”(BPTT)更新参数。
但由于梯度在时间步间多次相乘,若 \(|W_h|<1\),梯度会消失;若 \(|W_h|>1\),梯度会爆炸。

为解决此问题,引入了长短期记忆网络(LSTM) [@Hochreiter1997]。
LSTM 在标准 RNN 的基础上加入了一个“记忆单元” \(\mathbf{C}_t\) 及三个门控:输入门、遗忘门和输出门。

LSTM

  1. 候选状态:

    \[\tilde{\mathbf{C}_t} = f(W_x \mathbf{x}_t + W_h \mathbf{h}_{t-1} + \mathbf{b}) \]

  2. 输入门:

    \[\mathbf{i}_t = \sigma(W^i_x \mathbf{x}_t + W^i_h \mathbf{h}_{t-1} + \mathbf{b}^i) \]

  3. 遗忘门:

    \[\mathbf{f}_t = \sigma(W^f_x \mathbf{x}_t + W^f_h \mathbf{h}_{t-1} + \mathbf{b}^f) \]

  4. 状态更新:

    \[\mathbf{C}_t = \mathbf{i}_t \odot \tilde{\mathbf{C}_t} + \mathbf{f}_t \odot \mathbf{C}_{t-1} \]

  5. 输出门与最终输出:

    \[\mathbf{o}_t = \sigma(W^o_x \mathbf{x}_t + W^o_h \mathbf{h}_{t-1} + \mathbf{b}^o) \]

    \[\mathbf{h}_t = \mathbf{o}_t \odot \tanh(\mathbf{C}_t) \]

LSTM 可避免梯度消失问题,并能在长时间跨度上保留关键信息。
其变体包括 GRU(门控循环单元)[@Cho2014] 和 Peephole LSTM [@Gers2001]。

在深度强化学习中,RNN 尤其适用于部分可观测马尔可夫决策过程(POMDP),例如:单帧图像中不包含速度信息,LSTM 可在时间上整合多帧输入,从而隐式地表示速度等状态信息。


Transformer

即将添加


扩散模型(Diffusion Models)

即将添加

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/935631.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第十二篇

今天是10月12日,今天睡了个好觉,中午送了外卖,下午背了单词。

详细介绍:【ROS2学习笔记】节点篇:节点概述

详细介绍:【ROS2学习笔记】节点篇:节点概述2025-10-12 19:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: b…

2.1 函数逼近(Function Approximation)

函数逼近(Function Approximation) 此前介绍的所有方法都是表格方法(tabular methods),即为每个状态–动作对存储一个值:要么是该动作的 Q 值,要么是该动作的偏好值。在大多数实际应用中,这样存储的值数量会迅…

VSCode code-snippets Note

VSCode code-snippets Note在使用 VSCode 作为 C++ 开发工具的时候,编写头文件的时候会有大量的冗余代码,使用 Code Snippets 中的 transform 可以大幅提高该过程的效率,于是这里总结一些 VSCode 中一些开发常用的 …

Elasticsearch 备份:snapshot 镜像使用篇

本文是 ES 备份的镜像使用篇,主要介绍了 snapshot 的备份恢复原理和使用细节。上一篇文章中,我们简要的列举了 Elasticsearch 备份 主要的几个方案,比对了一下各个方案的实现原理、优缺点和适用的场景。现在我们来看…

本次科研收获

不要害怕修改项目源代码,现在的AI Agent已经很强大了,可以直接把需求告诉他,让他改

2025.10.12 - 20243867孙堃2405

早上太阳照到窗台上,风轻轻的飘进来,把我没看完的书吹得翻了两页,感觉这会儿时间都变慢了。

git clone 克隆下载深度层级仓库最新源码而不是整个仓库

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版 git version 2.9.0.windows.1二、命令原型 usage: git clone [<options>] [--] <repo> [<dir>]--depth <depth> create a shallow cl…

九、可供选择的体系结构

九、可供选择的体系结构 之前发现大多数时间只有20%的指令会使用,所以不使用复杂的扩展指令集,而是使用RISC,目前大多数体系结构采用RISC内核实现CISC架构RISC设备 RISC是一种设计方法,比CISC指令集规模更小的指令…

Linux查看一个文件的时候发生了什么?

Linux查看一个文件的时候发生了什么?概念辨析 整体的关系是这样的:下面来逐个介绍图中的内容。 文件系统磁盘文件系统:按照指定的格式和规则直接将数据存在磁盘中,Ext 2/3/4等等拿到磁盘首先格式化为具体的磁盘文件…

2025 年 10 月金属门窗厂家加盟代理品牌推荐排行榜,行业权威盘点与品质红榜发布

在金属门窗加盟代理市场,品牌的生产实力与产品竞争力是创业者核心考量。2025 年,消费者对金属门窗的耐用性、安全性、节能性需求提升,兼具先进技术与完善扶持的品牌更具加盟价值。以下十大品牌经权威盘点,凭硬实力…

五、指令集架构深入分析

五、指令集架构深入分析 雇主不是需要汇编语言程序员,而是需要有理解计算机体系结构的人来写出各高效的程序 指令的格式 指令集设计的考虑因素? ISA设计考虑因素:指令占用内存空间大小; 指令系统复杂程度,主要指指…

ARC 208 Div.2

三天之期已到,这一次,我要夺回属于我的一切!

八、系统软件

八、系统软件 编译时绑定Compile time binding :给定明确的代码 装载时绑定Load time binding:装载到内存里面不可以再修改 运行时绑定Run time binding:模块不运行就不会加载 链接:不同的二进制文件形成一个单一的…

七、输入输出和存储系统

七、输入输出和存储系统 AMDAHL定律(阿姆达尔) 计算机系统整体性能的速度提升(加速比)取决于某个特定部件本身的加速率和该部件在系统中的使用率。公式表示为式中,S为系统整体性能的加速率,f表示待替换部件完成的…

那快把题端上来吧(五)

十月训练好题记录量子通信 将 \(256\) 分成 \(16\times 16\) ,因为 \(k\le 15\) ,所以合法的串至少有一个块是和询问串完全相同的。 记录每个块每一种可能的值对于的字典编号,扫描这些字典判断是否合法。 因为字典是…

机器学习学术研讨会柏林举办

某中心柏林办公室将举办StatML牛津帝国理工学院机器学习研讨会,旨在搭建学术界与工业界的桥梁,促进机器学习与计算统计领域的学术交流与合作,探讨方法论进展及实际应用解决方案。某中心将主办StatML牛津帝国理工学院…

构建易受攻击的AWS DevOps环境:CloudGoat攻防实战

本文详细介绍了如何在CloudGoat中构建易受攻击的AWS DevOps环境,包含完整的攻击路径分析、IAM权限绕过技巧、供应链安全漏洞利用,以及使用Terratest进行端到端自动化测试的方法。构建易受攻击的AWS DevOps环境作为Cl…

虚拟机和windows

一、虚拟机 1.1 虚拟机的概念 ​ 一台计算机可以运算多个操作系统 1.2 虚拟机的两种模式寄居架构:在物理硬件上的操作系统中安装虚拟机软件运行其他操作系统 原生架构:虚拟机本身就是操作系统,在虚拟机上运行多个操…

实用指南:二型最大似然(Type II Maximum Likelihood):概述与核心概念

实用指南:二型最大似然(Type II Maximum Likelihood):概述与核心概念pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family:…