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 层激活函数的导数相乘得到的。

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

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

相关文章

探索 AIGC 的基础知识:人工智能生成内容的全景视图

在数字化时代,人工智能生成内容(AIGC)正以前所未有的速度改变着我们的创作方式。本文将深入探讨 AIGC 的定义、构成要素、应用场景以及其带来的优势,帮助读者全面理解这一前沿技术。 1. AIGC 的定义与范围 人工智能生成内容&…

【办公类-47-02】20250103 课题资料快速打印(单个docx转PDF,多个pdf合并一个PDF 打印)

背景需求: 2023区级大课题《运用Python优化3-6岁幼儿学习活动材料的实践研究》需要做阶段资料 本来应该2024年6月就提交电子稿和打印稿。可是python学具的教学实验实在太多了,不断生成,我忙着做教学,都没有精力去整理。 2025年…

Android布局layout的draw简洁clipPath实现圆角矩形布局,Kotlin

Android布局layout的draw简洁clipPath实现圆角矩形布局,Kotlin 通常,如果要把一个相对布局,FrameLayout,或者线性布局等这样的布局变成具有圆角或者圆形的布局,需要增加一个style,给它设置圆角,…

Uniapp中使用`wxml-to-canvas`开发DOM生成图片功能

Uniapp中使用wxml-to-canvas开发DOM生成图片功能 在移动端开发中,生成图片是一个常见需求,例如用于分享海报、生成动态二维码等。在Uniapp框架中,我们可以通过wxml-to-canvas插件轻松实现将DOM转化为图片的功能。本文将详细介绍如何在Uniapp…

深入Android架构(从线程到AIDL)_08 认识Android的主线程

目录 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程​编辑 UI线程的责任: 迅速处理UI事件 举例 3、 认识Android的主线程(又称UI线程) 复习: 各进程(Process)里的主线程 UI线程的责任: 迅速处理UI事…

基于PHP的智能健康管理系统设计与实现

基于PHP的智能健康管理系统设计与实现 一、引言 随着人们生活水平的提高和健康意识的增强,健康管理逐渐成为人们关注的焦点。传统的健康管理方式已经无法满足人们对个性化、智能化健康管理的需求。因此,基于PHP的智能健康管理系统应运而生。本文将介绍基…

[微服务]分布式搜索Java客户端

快速入门 使用RestClient客户端进行数据搜索可以分为两步 构建并发起请求 代码解读: 第一步,创建SearchRequest对象,指定索引库名第二步,利用request.source()构建DSL,DSL中可以包含查询、分页、排序、高亮等 query…

LeetCode430周赛T3

题目描述 给定一个只包含正整数的数组 nums&#xff0c;我们需要找到其中的特殊子序列。特殊子序列是一个长度为4的子序列&#xff0c;用下标 (p, q, r, s) 表示&#xff0c;它们满足以下条件&#xff1a; 索引顺序&#xff1a;p < q < r < s&#xff0c;且相邻坐标…

网页的语义结构

1.含义 HTML 标签的一个重要作用&#xff0c;就是声明网页元素的性质&#xff0c;使得用户只看标签&#xff0c;就能了解这个元素的意义&#xff0c;阅读 HTML 源码就能了解网页的大致结构。这被称为 HTML 的语义原则。 下面就是一个典型的语义结构的网页。 <body><…

RabbitMQ基础篇之Java客户端快速入门

文章目录 需求 项目设置与依赖管理 配置RabbitMQ的连接信息创建队列与消息发送创建消费者&#xff08;消息接收&#xff09;环境准备与操作 需求 利用控制台创建队列 simple.queue在 publisher 服务中&#xff0c;利用 SpringAMQP 直接向 simple.queue 发送消息在 consumer 服…

学技术学英文:Tomcat的线程模型调优

导读&#xff1a; tomcat 线程调优关键需要理解下面这几个参数&#xff1a; 1. maxConnections 描述&#xff1a;指定服务器能够同时接受和处理的最大连接数。也就是说&#xff0c;服务器在任何时候都能处理的最大并发连接数。作用&#xff1a;限制服务器在任何给定时间点能…

【微信小程序获取用户手机号

微信小程序获取用户手机号有2种,一种是前端自己解密,一种是获取后发给后端,后端去解密 重点:要在微信公众平台设置里面绑定微信开放平台账号,不然反解不出来用户手机号上代码: <button style"font-size: 16px;" open-type"getPhoneNumber" getphonenumb…

单片机-静动态数码管实验

P0控制数码管 &#xff0c;P0低电平 P1,P2,P3高电平 1、静态数码管 需求&#xff1a;数码管显示0&#xff0c;即让p0端口输出数字0的段码0x3f(共阴) #include "reg52.h" typedef unsigned int u16; typedef unsigned char u8; //数码管显示数字的数组 共阴极 …

创龙3588——debian根文件系统制作

文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…

管理者管理上班摸鱼

管理者管理上班摸鱼的问题,实际上涉及到员工工作态度、时间管理、团队文化等方面。以下是一些有效的管理策略: 明确期望与目标 确保每个员工了解他们的工作职责、目标以及衡量工作表现的标准。明确的期望有助于避免模糊空间,让员工知道自己的任务和责任,不容易找到摸鱼的借…

聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载

聆听音乐手机版是面向广大音乐爱好者的移动应用程序&#xff0c;用户可以随时随地通过手机享受丰富的音乐资源。它提供了多种魅力功能&#xff0c;让用户在手机上畅享更舒适的音乐体验&#xff0c;每位用户都能享受精彩纷呈的收听体验。此外&#xff0c;软件还支持无损音质音乐…

day-104 组合总和 Ⅳ

思路 动态规划 解题过程 假设dfs(target)表示组成target的组合数&#xff0c;可得转换方程dfs(target)dfs(target-nums[0])dfs(target-nums[1])…以此类推 注意&#xff1a;nums[i]需要小于等于当前的target Code class Solution {public int combinationSum4(int[] nums, i…

汽车燃油软件标定测试

油箱测试 确定油箱的参数&#xff1a; 总容积&#xff0c;额定容积&#xff0c;不可用容积等。油泵测试&#xff08;静态&#xff09; 分为加油测试&#xff0c;减油测试&#xff0c;1L或者500ml增减&#xff1b; 分别测试油泵的阻值输出&#xff0c;类似&#xff1a; 油量 阻…

MATLAB中binopdf函数用法

目录 语法 说明 示例 计算并绘制二项概率密度函数 binopdf函数的功能是计算二项概率密度函数。 语法 y binopdf(x,n,p) 说明 y binopdf(x,n,p) 使用 n 中对应的试验次数和 p 中每次试验的成功概率&#xff0c;计算 x 中每个值处的二项概率密度函数。 x、n 和 p 可以是…

linux tar 文件解压压缩

文件压缩和解压 tar -c: 建立压缩档案 -x&#xff1a;解压 -t&#xff1a;查看内容 -r&#xff1a;向压缩归档文件末尾追加文件 -u&#xff1a;更新原压缩包中的文件 -z&#xff1a;有gzip属性的 -j&#xff1a;有bz2属性的 -v&#xff1a;显示所有过程 -O&#xff1a;…