20240331-1-基于深度学习的模型

基于深度学习的模型

知识体系

主要包括深度学习相关的特征抽取模型,包括卷积网络、循环网络、注意力机制、预训练模型等。

CNN

TextCNN 是 CNN 的 NLP 版本,来自 Kim 的 [1408.5882] Convolutional Neural Networks for Sentence Classification

结构如下:

大致原理是使用多个不同大小的 filter(也叫 kernel) 对文本进行特征提取,如上图所示:

  • 首先通过 Embedding 将输入的句子映射为一个 n_seq * embed_size 大小的张量(实际中一般还会有 batch_size)
  • 使用 (filter_size, embed_size) 大小的 filter 在输入句子序列上平滑移动,这里使用不同的 padding 策略,会得到不同 size 的输出
  • 由于有 num_filters 个输出通道,所以上面的输出会有 num_filters
  • 使用 Max PoolingAverage Pooling,沿着序列方向得到结果,最终每个 filter 的输出 size 为 num_filters
  • 将不同 filter 的输出拼接后展开,作为句子的表征

RNN

RNN 的历史比 CNN 要悠久的多,常见的类型包括:

  • 一对一(单个 Cell):给定单个 Token 输出单个结果
  • 一对多:给定单个字符,在时间步向前时同时输出结果序列
  • 多对一:给定文本序列,在时间步向前执行完后输出单个结果
  • 多对多1:给定文本序列,在时间步向前时同时输出结果序列
  • 多对多2:给定文本序列,在时间步向前执行完后才开始输出结果序列

由于 RNN 在长文本上有梯度消失和梯度爆炸的问题,它的两个变种在实际中使用的更多。当然,它们本身也是有一些变种的,这里我们只介绍主要的模型。

  • LSTM:全称 Long Short-Term Memory,一篇 Sepp Hochreiter 等早在 1997 年的论文《LONG SHORT-TERM MEMORY》中被提出。主要通过对原始的 RNN 添加三个门(遗忘门、更新门、输出门)和一个记忆层使其在长文本上表现更佳。

    [外链图片转存中…(img-jNNwraHK-1713793228695)]

  • GRU:全称 Gated Recurrent Units,由 Kyunghyun Cho 等人 2014 年在论文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》 中首次被提出。主要将 LSTM 的三个门调整为两个门(更新门和重置门),同时将记忆状态和输出状态合二为一,在效果没有明显下降的同时,极大地提升了计算效率。

    [外链图片转存中…(img-vxmAzwM8-1713793228695)]

Questions

CNN相关

CNN 有什么好处?
  • 稀疏(局部)连接:卷积核尺寸远小于输入特征尺寸,输出层的每个节点都只与部分输入层连接
  • 参数共享:卷积核的滑动窗在不同位置的权值是一样的
  • 等价表示(输入/输出数据的结构化):输入和输出在结构上保持对应关系(长文本处理容易)
CNN 有什么不足?
  • 只有局部语义,无法从整体获取句子语义
  • 没有位置信息,丢失了前后顺序信息
卷积层输出 size?

给定 n×n 输入,f×f 卷积核,padding p,stride s,输出的尺寸为:

⌊ n + 2 p − f s + 1 ⌋ × ⌊ n + 2 p − f s + 1 ⌋ \lfloor \frac{n+2p-f}{s} + 1 \rfloor \times \lfloor \frac{n+2p-f}{s} + 1 \rfloor sn+2pf+1×sn+2pf+1

RNN

LSTM 网络结构?

LSTM 即长短时记忆网络,包括三个门:更新门(输入门)、遗忘门和输出门。公式如下:

c ^ < t > = tanh ⁡ ( W c [ a < t − 1 > , x < t > ] + b c ) Γ u = σ ( W u [ a < t − 1 > , x < t > ] + b u ) Γ f = σ ( W f [ a < t − 1 > , x < t > ] + b f ) Γ o = σ ( W o [ a < t − 1 > , x < t > ] + b o ) c < t > = Γ u ∗ c ^ < t > + Γ f ∗ c < t − 1 > a < t > = Γ o ∗ c < t > \hat{c}^{<t>} = \tanh (W_c [a^{<t-1}>, x^{<t>}] + b_c) \\ \Gamma_u = \sigma(W_u [a^{<t-1}>, x^{<t>}] + b_u) \\ \Gamma_f = \sigma(W_f [a^{<t-1}>, x^{<t>}] + b_f) \\ \Gamma_o = \sigma(W_o [a^{<t-1}>, x^{<t>}] + b_o) \\ c^{<t>} = \Gamma_u * \hat{c}^{<t>} + \Gamma_f*c^{<t-1>} \\ a^{<t>} = \Gamma_o * c^{<t>} c^<t>=tanh(Wc[a<t1>,x<t>]+bc)Γu=σ(Wu[a<t1>,x<t>]+bu)Γf=σ(Wf[a<t1>,x<t>]+bf)Γo=σ(Wo[a<t1>,x<t>]+bo)c<t>=Γuc^<t>+Γfc<t1>a<t>=Γoc<t>

如何解决 RNN 中的梯度消失或梯度爆炸问题?
  • 梯度截断
  • ReLU、LeakReLU、Elu 等激活函数
  • Batch Normalization
  • 残差连接
  • LSTM、GRU 等架构
假设输入维度为 m,输出为 n,求 GRU 参数?

输入 W:3nm,隐层 W:3nn,隐层 b:3n,合计共:3*(nn+nm+n)。当然,也有的实现会把前一时刻的隐层和当前时刻的输入分开,使用两个 bias,此时需要再增加 3n 个参数。

LSTM 和 GRU 的区别?
  • GRU 将 LSTM 的更新门、遗忘门和输出门替换为更新门和重置门
  • GRU 将记忆状态和输出状态合并为一个状态
  • GRU 参数更少,更容易收敛,但数据量大时,LSTM 效果更好

Attention

Attention 机制

Attention 核心是从输入中有选择地聚焦到特定重要信息上的一种机制。有三种不同用法:

  • 在 encoder-decoder attention 层,query 来自上一个 decoder layer,memory keys 和 values 来自 encoder 的 output
  • encoder 包含 self-attention,key value 和 query 来自相同的位置,即前一层的输出。encoder 的每个位置都可以注意到前一层的所有位置
  • decoder 与 encoder 类似,通过将所有不合法连接 mask 以防止信息溢出
自注意力中为何要缩放?

维度较大时,向量内积容易使得 SoftMax 将概率全部分配给最大值对应的 Label,其他 Label 的概率几乎为 0,反向传播时这些梯度会变得很小甚至为 0,导致无法更新参数。因此,一般会对其进行缩放,缩放值一般使用维度 dk 开根号,是因为点积的方差是 dk,缩放后点积的方差为常数 1,这样就可以避免梯度消失问题。

另外,Hinton 等人的研究发现,在知识蒸馏过程中,学生网络以一种略微不同的方式从教师模型中抽取知识,它使用大模型在现有标记数据上生成软标签,而不是硬的二分类。直觉是软标签捕获了不同类之间的关系,这是大模型所没有的。这里的软标签就是缩放的 SoftMax。

至于为啥最后一层为啥一般不需要缩放,因为最后输出的一般是分类结果,参数更新不需要继续传播,自然也就不会有梯度消失的问题。

Transformer

Transformer 中为什么用 Add 而不是 Concat?

在 Embedding 中,Add 等价于 Concat,三个 Embedding 相加与分别 One-Hot Concat 效果相同。

ELMO

简单介绍下ELMO

使用双向语言模型建模,两层 LSTM 分别学习语法和语义特征。首次使用两阶段训练方法,训练后可以在下游任务微调。

Feature-Based 微调,预训练模型作为纯粹的表征抽取器,表征依赖微调任务网络结构适配(任务缩放因子 γ)。

ELMO的缺点

ELMO 的缺点主要包括:不完全的双向预训练(Bi 是分开的,仅在 Loss 合并);需要进行任务相关的网络设计(每种下游任务都要特定的设计);仅有词向量无句向量(没有句向量任务)。

GPT

简单介绍下GPT

使用 Transformer 的 Decoder 替换 LSTM 作为特征提取器。

Model-Based 微调,预训练模型作为任务网络的一部分参与任务学习,简化了下游任务架构设计。

GPT的缺点

GPT 的缺点包括:单项预训练模型;仅有词向量无句向量(仅学习语言模型)。

BERT

简单介绍下BERT

使用 Transformer Encoder 作为特征提取器,交互式双向语言建模(MLM),Token 级别+句子级别任务(MLM+NSP),两阶段预训练。

Feature-Based 和 Model-Based,实际一般使用 Model-Based。

BERT缺点

BERT 的缺点是:字粒度难以学到词、短语、实体的完整语义。

ERNIE

ERNIE对BERT进行了哪些优化?

对 BERT 的缺点进行了优化,Mask 从字粒度的 Token 修改为完整的词或实体。ERNIE2.0 引入更多的预训练任务以捕捉更丰富的语义知识。

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

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

相关文章

网络安全数字孪生:一种新颖的汽车软件解决方案

摘要 随着汽车行业转变为数据驱动的业务&#xff0c;软件在车辆的开发和维护中发挥了核心作用。随着软件数量的增加&#xff0c;相应的网络安全风险、责任和监管也随之增加&#xff0c;传统方法变得不再适用于这类任务。相应的结果是整车厂和供应商都在努力应对汽车软件日益增加…

C++及QT的线程学习

目录 一. 线程学习 二. 学习线程当中&#xff0c;得到的未知。 1. 了解以下MainWindow和main的关系 2. []()匿名函数 有函数体&#xff0c;没有函数名. 3. join和detach都是用来管理线程的生命周期的&#xff0c;它们的区别在于线程结束和资源的回收。 4. operator()() 仿…

论文略读:OpenGraph: Towards Open Graph Foundation Models

arxiv 2023 1 intro Graph大模型希望OpenGraph能够捕捉通用的拓扑结构模式&#xff0c;对测试数据进行Zero-shot预测 仅通过前向传播过程&#xff0c;就可以对测试图数据进行高效的特征提取和准确预测模型的训练过程在完全不同的图数据上进行&#xff0c;在训练阶段不接触测试…

CSS3新增特性(一)

目录 一、CSS3 新增选择器 1. 子级选择器 2. 兄弟选择器 相邻兄弟选择器 其他兄弟选择器 3. 结构伪类选择器 ① E:first-child ② E:last-child ③ nth-child&#xff08;n&#xff09; n为数字&#xff1a; n为关键字&#xff1a; n为公式&#xff1a; ④ E: firs…

visionTransformer window平台下报错

错误&#xff1a; KeyError: Transformer/encoderblock_0/MlpBlock_3/Dense_0kernel is not a file in the archive解决方法&#xff1a; 修改这个函数即可&#xff0c;主要原因是Linux系统与window系统路径分隔符不一样导致 def load_from(self, weights, n_block):ROOT f&…

【RT-Thread应用笔记】FRDM-MCXN947上的RW007实践——WiFi延迟和带宽测试

【RT-Thread应用笔记】FRDM-MCXN947上的RW007实践——WiFi延迟和带宽测试 一、背景介绍1.1 RW007模组简介1.2 Arduino接口简介1.3 RW007软件包简介1.4 RT-Thread env工具简介 二、创建工程2.1 新建工程2.2 添加rw007软件包2.3 打开RW007配置项2.4 启用pin驱动2.5 禁用rw007的ST…

Cloud微服务:Ribbon负载均衡

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Ribbon负载均衡 一、Ribbon - 负载均衡原理、流…

探索 虚拟化技术+Docker部署与操作

目录 一、你知道哪些云 1.1国内云 1.2国外云 二、Iaas、 Paas、SaaS三种云服务区别 2.1第一层叫做IaaS 2.2第二层就是所谓的PaaS 2.3第三层也就是所谓SaaS 三、虚拟化架构 3.1寄居架构 3.2源生架构 3.3操作系统虚拟化架构 3.4混合虚拟化架构 四、虚拟化特点及优势…

jmeter5.4.1源码编译(IDEA)问题解决

问题现象&#xff1a;最近想更深入的研究下jmeter5.4.1的原理及功能具体实现&#xff0c;从官网down了个源码&#xff0c;在本地使用IDEA工具导入项目、编译时&#xff0c;报以下错误&#xff1a; class jdk.internal.loader.ClassLoaders$PlatformClassLoader cannot be cast…

vue整合Echarts

首先打开网址https://echarts.apache.org/examples/zh/index.html 进入Echars官网找到自己想要的图形我这里选择的是柱形图 点开完整代码直接cv大法 下载Echars的npm npm install echarts 在vue里面挂在个div 导入相关包 写个方法 就是cv过来的 然后改成后端传过来的值…

【STM32+HAL+Proteus】系列学习教程---RS485总线(收发仿真实现)

实现目标 1、掌握UART/USART/RS485等几个常见概念的区别 2、掌握RS485的逻辑电平、硬件接线等基础知识 3、具体实现目标&#xff1a;1、利用两个单片机组成RS485通信网络&#xff1b;2、两个单片机之间能实现正常收发数据。 一、串口、RS485等之间的关系 串口&#xff1a;是…

微机原理实验三、将AX寄存器中的16位数分成4组,每组4位,让后把这四组数分别放在AL,BL,CL,DL

微机原理实验三、将AX寄存器中的16位数分成4组&#xff0c;每组4位&#xff0c;让后把这四组数分别放在AL,BL,CL,DL 功能&#xff1a; 将AX寄存器中的16位数分成4组&#xff0c;每组4位&#xff0c;让后把这四组数分别放在AL,BL,CL,DL ; 调试结果&#xff1a; input&#xff1a…

ASP.NET集成客户关系管理的企业网站的设计与开发

摘 要 企业要在激烈的市场竞争中立于不败之地&#xff0c;就必须找一种全新的管理理念和管理手段&#xff0c;对其内部和外部资源进行有效的整合。新一代ERP产品正在向客户端和供应端延伸&#xff0c;客户端的延伸即是客户关系管理。对于每个企业来说客户管理的完善程度将直接…

计算机网络 --- WebSocket协议 和 Signalr

计算机网络 --- WebSocket协议 和 Signalr 什么是WebSocket什么是SignalrSignalr Example -- SimpleChat 什么是WebSocket HTTP是基于TCP协议的&#xff0c;同一时间里&#xff0c;客户端和服务器只能有一方主动发数据&#xff0c;是半双工通信。 通常&#xff0c;打开某个网页…

Qt笔记-解决子控制大小获取不正确(width和height)需要重制窗体后,才能获得正确的值

在Qt中&#xff0c;子控件的宽度和高度在构造后并不准确&#xff0c;而只有在调整窗口大小后才正确&#xff0c;这可能是因为子控件的布局或者约束尚未完全计算和应用。 为了解决这个问题&#xff0c;可以使用QTimer来延迟获取子控件的宽度和高度&#xff0c;以确保在布局和约…

ffmpeg初体验

一&#xff1a;安装 sudo yum install epel-release -y sudo yum update -ysudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpmyum -y install …

数据结构(邓俊辉)学习笔记——向量vector_02_动态空间管理

文章目录 1. 概述2. 静态空间管理缺点3. 动态空间管理3.1 扩容3.1.1 如何实现扩容3.1.2 扩容算法3.1.3 容量递增策略 VS 容量倍增策略3.1.3.1 容量倍增策略分摊分析3.1.3.2 容量递增策略分摊分析3.1.3.3 结果对比 3.2缩容3.2.1 动态缩容算法实现3.2.2 动态缩容算法时间复杂度 4…

Opencv_3_图像对象的创建与赋值

ColorInvert.h 如下&#xff1a; #include <opencv.hpp> using namespace std; #include <opencv.hpp> using namespace cv; using namespace std; class ColorInvert{ public : void mat_creation(); }; ColorInvert.cpp 文件如下&#xff1a; #include &q…

自动驾驶---OpenSpace之Hybrid A*规划算法

1 背景 笔者在上周发布的博客《自动驾驶---低速场景之记忆泊车》中&#xff0c;大体介绍了记忆泊车中的整体方案&#xff0c;其中详细阐述了planning模块的内容&#xff0c;全局规划及局部规划&#xff08;会车&#xff09;等内容&#xff0c;包括使用的算法&#xff0c;但是没…

3D Gaussian Splatting介绍

目录 一、概述二、基础介绍1. 多维高斯分布2. 将3D 高斯投影到2D像素平面3. 球谐函数4. Splatting and α \alpha α blending 三、整体流程四、 伪代码五、评价指标六、实验结果七、reference 一、概述 3D Gaussian Splatting和NeRF一样&#xff0c;主要用于新视图合成。 特…