NLP CH3复习

CH3

3.1 几种损失函数

image.png

3.2 激活函数性质

image.png

3.3 哪几种激活函数会发生梯度消失

image.png

3.4 为什么会梯度消失

image.png
image.png

image.png

3.5 如何解决梯度消失和过拟合

image.png

3.6 梯度下降的区别

3.6.1 梯度下降(GD)
  • 全批量:在每次迭代中使用全部数据来计算损失函数的梯度。
  • 计算成本高:对于大数据集来说,每次迭代的计算成本非常高。
  • 稳定收敛:由于每次都利用全部数据,因此梯度的估计非常准确,收敛路径平滑。
3.6.2 随机梯度下降(SGD)
  • 单个样本:在每次迭代中随机选择一个数据样本来计算梯度。
  • 计算成本低:每次只处理一个样本,大大减少了计算量。
  • 收敛波动大:由于每次只用一个样本更新,梯度估计的方差较大,导致收敛过程中有较多波动。
3.6.3 Mini-batch梯度下降
  • 小批量样本:在每次迭代中使用一小部分数据样本(例如32或64个样本)来计算梯度。
  • 计算成本适中:平衡了全批量的计算效率和随机梯度的更新速度。
  • 收敛相对稳定:小批量的使用减少了梯度估计的方差,使得收敛过程比随机梯度下降更稳定,但又比全批量梯度下降更灵活。

3.7 DNN

3.7.1 反向传播算法过程

将输出误差以某种形式反传给各层所有的单元,各层按本层误差修正各单元连接权值。
image.png
image.png

3.7.2 训练步骤

image.png

3.8 CNN

3.8.1 CNN的组成

由卷积层、子采样层、全连接层交叉堆叠而成

3.8.2 对比DNN

3.9 GNN

image.png

3.9.1 基本GNN和GCN的公式对比
3.9.1.1 基本GNN的公式

h v k = σ ( W k ∑ u ∈ N ( v ) h u k − 1 ∣ N ( v ) ∣ + B k h v k − 1 ) h_v^k = \sigma \left( W_k \sum_{u \in \mathcal{N}(v)} \frac{h_u^{k-1}}{|\mathcal{N}(v)|} + B_k h_v^{k-1} \right) hvk=σ WkuN(v)N(v)huk1+Bkhvk1

  • 核心思想
    • 聚合节点 v v v 的邻居节点特征 h u k − 1 h_u^{k-1} huk1 的平均值。
    • 使用两个不同的权重矩阵 W k W_k Wk B k B_k Bk 分别对邻居特征和节点自身特征进行线性变换。
    • 通过激活函数 σ \sigma σ(例如 ReLU 或 tanh)引入非线性。
  • 特点
    • 对所有邻居进行简单的平均(即 1 ∣ N ( v ) ∣ \frac{1}{|\mathcal{N}(v)|} N(v)1),没有对邻居节点的重要性加权。
    • 参数共享较少,特征变换对邻居和节点自身分开处理。

3.9.1.2 GCN的公式

h v k = σ ( W k ∑ u ∈ N ( v ) ∪ { v } h u k − 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ ) h_v^k = \sigma \left( W_k \sum_{u \in \mathcal{N}(v) \cup \{v\}} \frac{h_u^{k-1}}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} \right) hvk=σ WkuN(v){v}N(u)∣∣N(v) huk1

  • 改进点
    1. 归一化
      • 替代简单的平均聚合,GCN引入对称归一化因子 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ \frac{1}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} N(u)∣∣N(v) 1,减小高度节点(高度数节点)对结果的影响。
    2. 参数共享
      • 同一权重矩阵 W k W_k Wk 用于邻居特征和节点自身特征变换,减少参数数量,提高模型泛化能力。
    3. 自环(Self-loop)
      • 邻域中加入节点自身(即 N ( v ) ∪ { v } \mathcal{N}(v) \cup \{v\} N(v){v}),保证每层节点都能保留自身信息。
  • 特点
    • 更好的参数共享,减少了过拟合的风险。
    • 归一化权重避免了高度数节点的特征主导问题。

3.9.2 GNN池化的概念

池化可以理解为图卷积过程中特征和节点的降维操作。以下是两种池化方式的相关描述:

3.9.2.1 全局池化
  • 汇总整个图的节点特征,用于生成固定维度的图表示。
  • 常见方式:
    • 平均池化:取所有节点特征的平均值。
    • 最大池化:取节点特征的最大值。
    • 加权池化:根据任务需求对节点特征加权后聚合。
3.9.2.2 局部池化
  • 在每一层中,通过选择部分重要节点,逐层减少图中节点的数量,同时保留主要的结构信息。
  • 常见方式:
    • Top- k k k池化:根据节点重要性评分选择得分最高的节点。
    • 可微分池化(DiffPool):通过学习分配矩阵动态生成池化结果。

3.9.3 GCN的改进特点
  1. 参数共享(More parameter sharing)

    • GCN使用相同的权重矩阵 W k W_k Wk 对邻居节点和自身节点的特征进行线性变换。
    • 减少参数数量,提升模型训练稳定性。
  2. 削弱高度节点的影响(Down-weights high degree neighbors)

    • 通过对称归一化因子 1 ∣ N ( u ) ∣ ∣ N ( v ) ∣ \frac{1}{\sqrt{|\mathcal{N}(u)||\mathcal{N}(v)|}} N(u)∣∣N(v) 1,减小度数大的节点对目标节点的特征贡献。
    • 防止高度数节点主导聚合特征,造成模型偏差。
3.9.4 总结
  • 基本GNN:通过简单平均的方式聚合邻居特征,参数较多,但未对邻居节点的贡献权重进行优化。
  • GCN:引入对称归一化和参数共享机制,使模型更稳定、高效,同时减少过拟合。
  • GNN池化:可以进一步通过全局或局部池化操作提取图或节点的高层次特征,适应更复杂的任务需求。
3.9.5 邻接节点个数不确定如何解决?
  • 邻居信息聚合
    • 核心思想:将目标节点的特征更新为其自身特征和邻居特征的组合。
  • 参数共享
    • GNN采用共享的权重矩阵(如图中的 W k W_k Wk B k B_k Bk),即在同一层中所有节点使用相同的参数。
  • 邻接节点特征聚合
    • 对每个节点的邻域进行聚合,生成一个固定维度的邻域表示(如 W k h k − 1 W_kh^{k-1} Wkhk1)。

image.png

实心节点(蓝色圆点)代表的是实心结点(实际节点),它们是对应的实心结点的邻接结点聚集。

  • 在原始图结构(左图)中,每个节点都有其自然的邻接关系(通过灰色线连接)
  • 对于层次 h k h^k hk h k − 1 h^{k-1} hk1 之间的信息传递:
    • 设定了锚点(实心节点)
    • 使用注意力机制或聚合函数(图中通过 W k W_k Wk B k B_k Bk 表示)来学习和聚集信息
    • 将相邻节点的信息聚集到这些锚点上
  • 具体的聚集过程:
    • 通过权重矩阵 W k W_k Wk 来计算注意力分数或重要性权重
    • 使用 B k B_k Bk 来转换或投影特征
    • 最终将邻域节点的信息加权聚合到固定数量的锚点上
3.9.6 GNN训练,卷积步骤

在最后一层(K层)得到每个结点的表示后,可以根据任务将其代入任何损失函数,然后用梯度下降法训练参数。
image.png

3.10 RNN

  • DNN、CNN 输入、输出定长;处理输入、输出变长问题效率不高。而自然语言处理中的语句通常其长度不固定。
  • 单一DNN、CNN 无法处理时序相关序列问题

RNN核心思想

  • 将处理问题在时序上分解为一系列相同的“单元”,单元的神经网络可以在时序上展开,且能将上一时刻的结果传递给下一时刻,整个网络按时间轴展开。即可变长。
    image.png
3.10.1 训练中的问题以及解决方式

image.png

会出现和深度前馈神经网络类似的梯度消失问题。在训练循环神经网络时,更经常出现的是梯度消失问题,训练较难
image.png

距当前节点越远的节点对当前节点处理影响越小,无法建模长时间的依赖

3.10.2 BPTT和BP的区别

参考链接

3.10.3 LSTM, GRU

image.png

image.png

image.png
image.png

3.10.4 设计题参考结构

image.png

image.png

image.png

image.png

补充

反向传播算法中第 L-1 层的误差项表达式:

δ ( L − 1 ) = σ ′ ( Z ( L − 1 ) ) ⋅ ( W ( L ) ) ⊤ δ ( L ) \delta^{(L-1)} = \sigma'(Z^{(L-1)}) \cdot (W^{(L)})^{\top} \delta^{(L)} δ(L1)=σ(Z(L1))(W(L))δ(L)

其中:

  • σ ′ \sigma' σ 表示激活函数的导数
  • Z ( l ) Z^{(l)} Z(l) 是第 l 层的加权输入
  • W ( l ) W^{(l)} W(l) 是第 l 层的权重矩阵
  • δ ( l ) \delta^{(l)} δ(l) 是第 l 层的误差项

推导步骤:

  1. 前向传播定义
    第 l 层的输出 A ( l ) A^{(l)} A(l) 表示为:
    A ( l ) = σ ( Z ( l ) ) = σ ( W ( l ) A ( l − 1 ) + b ( l ) ) A^{(l)} = \sigma(Z^{(l)}) = \sigma(W^{(l)}A^{(l-1)} + b^{(l)}) A(l)=σ(Z(l))=σ(W(l)A(l1)+b(l))

  2. 损失函数定义
    使用均方误差(MSE)作为损失函数 J:
    J = 1 2 ∥ A ( L ) − Y ∥ 2 J = \frac{1}{2} \|A^{(L)} - Y\|^2 J=21A(L)Y2

  3. 计算输出层误差项 δ ( L ) \delta^{(L)} δ(L)
    δ ( L ) = ∂ J ∂ Z ( L ) = ( A ( L ) − Y ) ⋅ σ ′ ( Z ( L ) ) \delta^{(L)} = \frac{\partial J}{\partial Z^{(L)}} = (A^{(L)} - Y) \cdot \sigma'(Z^{(L)}) δ(L)=Z(L)J=(A(L)Y)σ(Z(L))

  4. 递推计算隐藏层误差项
    对于第 l 层 (l = L-1, L-2, …, 1):
    δ ( l ) = ∂ J ∂ Z ( l ) = ( W ( l + 1 ) ) ⊤ δ ( l + 1 ) ⋅ σ ′ ( Z ( l ) ) \delta^{(l)} = \frac{\partial J}{\partial Z^{(l)}} = (W^{(l+1)})^{\top} \delta^{(l+1)} \cdot \sigma'(Z^{(l)}) δ(l)=Z(l)J=(W(l+1))δ(l+1)σ(Z(l))

具体到 l = L-1:
δ ( L − 1 ) = ( W ( L ) ) ⊤ δ ( L ) ⋅ σ ′ ( Z ( L − 1 ) ) \delta^{(L-1)} = (W^{(L)})^{\top} \delta^{(L)} \cdot \sigma'(Z^{(L-1)}) δ(L1)=(W(L))δ(L)σ(Z(L1))

通过链式法则详细推导:

  1. 误差项 δ ( l ) \delta^{(l)} δ(l) 可表示为:
    δ ( l ) = ∂ J ∂ Z ( l ) = ∂ J ∂ A ( l ) ⋅ ∂ A ( l ) ∂ Z ( l ) \delta^{(l)} = \frac{\partial J}{\partial Z^{(l)}} = \frac{\partial J}{\partial A^{(l)}} \cdot \frac{\partial A^{(l)}}{\partial Z^{(l)}} δ(l)=Z(l)J=A(l)JZ(l)A(l)

  2. 其中:

    • ∂ A ( l ) ∂ Z ( l ) = σ ′ ( Z ( l ) ) \frac{\partial A^{(l)}}{\partial Z^{(l)}} = \sigma'(Z^{(l)}) Z(l)A(l)=σ(Z(l))
    • ∂ J ∂ A ( l ) = ( W ( l + 1 ) ) ⊤ δ ( l + 1 ) \frac{\partial J}{\partial A^{(l)}} = (W^{(l+1)})^{\top} \delta^{(l+1)} A(l)J=(W(l+1))δ(l+1)
  3. 最终得到第 L-1 层的误差项:
    δ ( L − 1 ) = σ ′ ( Z ( L − 1 ) ) ⋅ ( W ( L ) ) ⊤ δ ( L ) \delta^{(L-1)} = \sigma'(Z^{(L-1)}) \cdot (W^{(L)})^{\top} \delta^{(L)} δ(L1)=σ(Z(L1))(W(L))δ(L)

第 L-1 层的误差是由第 L 层的权重矩阵和误差项传递,并与第 L-1 层激活函数的导数相乘得到的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于蔬菜商品的预测定价计算【数值计算课设】

源码+报告 下载链接在文章末尾。 文章目录 源码+报告蔬菜类商品的自动定价与补货决策1 引 言2 题目描述3 问题解决3.1 模型的建立与求解3.2 算法3.2.1 非线性算法3.2.2 ARMA算法3.2.3 粒子群算法4 结论参考文献下载链接蔬菜类商品的自动定价与补货决策 [摘 要] 蔬菜商品的补货…

adb使用及常用命令

目录 介绍 组成 启用adb调试 常用命令 连接设备 版本信息 安装应用 卸载应用 文件操作 日志查看 屏幕截图和录制 设备重启 端口转发 调试相关 设置属性 设备信息查询 获取帮助 模拟输入 介绍 adb全称为 Android Debug Bridge(Android调试桥),是 A…

y7000p2023AX211ubuntu20无线网卡驱动

网卡检测 查看无线网卡驱动,本教程适用的网卡为Intel Corporation Device[8086:51f1],即AX211 lspci -nn | grep Net这里的Ethernet controller是有线网卡,Network controller是无线网卡,Intel corporation Device指英伟达网卡对应的设备号是[8086:51f1]…

链表OJ题(一)

(一)轮转数组 . - 力扣(LeetCode) 题目描述:给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例一: 方法一:暴力求解 先用一个变量存储数组中的最后…

Python如何精准定位并修改MP4文件的mvhd原子

深入了解MP4文件的结构对于安全地修改元数据非常重要。MP4文件采用基于原子(atom)的结构组织数据,每个原子代表一种特定的信息或数据块。例如,moov原子包含了视频的元数据信息,mvhd原子包含了视频的头信息,…

[SMARTFORMS] 系统变量的使用

在PAGE1页面节点下创建WINDOW5窗口 填写WINDOW5窗口描述以及位置,大小等相关信息 在WINDOW5窗口节点下新建TEMPLATE模板 为TEMPLATE模板设置行列相关信息 在TEMPLATE模板节点下面新增3个TEXT文本 每个TEXT文本的内容如下所示: %TEXT25 打印日期文本内容 …

C盘清理方法大全

目录 方法1:系统磁盘清理 方法2:找到存储删除 方法3:使用第三方软件Dism 方法4:关闭虚拟内存功能 方法5:磁盘分区扩展 方法1:系统磁盘清理 第一步:「此电脑 」- 「本地磁盘C」&#xff0c…

计算机的错误计算(二百零三)

摘要 利用两个大模型化简计算 其中一个大模型是数学解题器,它通过化简得出了正确结果;另外一个大模型给出了 Python代码。 例1. 化简计算摘要中算式。 下面是一个数学解题器大模型给的回答。 以上是数学解题器大模型给的回答。 下面是与另外一个大模型…

【JVM】总结篇之GC日志分析 和 案例

文章目录 GC日志参数GC日志格式GC日志分类MinorGCFullGC 文件概念 OOMOOM案例1:堆溢出OOM案例2:元空间溢出OOM案例3:GC overhead limit exceededOOM案例4:线程溢出 GC日志参数 GC日志格式 GC日志分类 MinorGC MinorGC(或young …

ASP.NET Core 中服务生命周期详解:Scoped、Transient 和 Singleton 的业务场景分析

前言 在 ASP.NET Core 中,服务的生命周期直接影响应用的性能和行为。通过依赖注入容器 (Dependency Injection, DI),我们可以为服务定义其生命周期:Scoped、Transient 和 Singleton。本文将详细阐述这些生命周期的区别及其在实际业务中的应用…

Redis中字符串和列表的区别

在 Redis 中,字符串(String)和列表(List)是两种截然不同的数据类型,它们各自有着独特的特点和适用场景。 数据结构 • 字符串(String): • 在 Redis 中,字符串…

正则表达式{}和(),pyhton里的正则表达式,函数findall解析

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 正则…

Angular由一个bug说起之十三:Cross Origin

跨域 想要了解跨域,首要要了解源 什么是源,源等于协议加域名加端口号 只有这三个都相同,才是同源,反之则是非同源。 比如下面这四个里,只有第4个是同源 而浏览器给服务器发送请求时,他们的源一样&#xff0…

x86霸权难动摇!

快科技1月6日消息,根据市场研究机构ABI Research的最新报告,尽管2025年被视为Arm PC市场扩张的关键一年,但搭载Arm架构处理器的PC预计仅占PC总出货量的13%。 ABI Research的分析师指出,尽管高通最新的PC处理器在性能和AI功能上有…

STM32的LED点亮教程:使用HAL库与Proteus仿真

学习目标:掌握使用STM32 HAL库点亮LED灯,并通过Proteus进行仿真验证! 建立HAL库标准工程 1.新建工程文件夹 新建工程文件夹建议路径尽量为中文。建立文件夹的目的为了更好分类去管理项目工程中需要的各类工程文件。 首先需要在某个位置建立工…

mongodb==安装prisma连接

官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…

前端工程化之手搓webpack5 --【elpis全栈项目】

前端工程化之手搓webpack5 --【elpis全栈项目】 导读 基本流程:输入 – 编译 – 输出 #mermaid-svg-V8Gi7RFNikCuEhax {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-V8Gi7RFNikCuEhax .error-icon{fil…

云备份项目--服务端编写

文章目录 7. 数据管理模块7.1 如何设计7.2 完整的类 8. 热点管理8.1 如何设计8.2 完整的类 9. 业务处理模块9.1 如何设计9.2 完整的类9.3 测试9.3.1 测试展示功能 完整的代码–gitee链接 7. 数据管理模块 TODO: 读写锁?普通锁? 7.1 如何设计 需要管理…

深入了解 ES6 Map:用法与实践

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

大润发易主,被阿里割肉卖了

文丨白念云 零售行业2025年伊始便迎来一则重磅消息:大润发被卖了。 1月1日晚,阿里巴巴集团发布公告,宣布子公司及NewRetail与德弘资本达成交易,以最高约131.38亿港元出售所持高鑫零售(大润发母公司)全部股…