自然语言处理(DL)学习笔记

本篇是记录深度学习中自然语言处理的一些思想和实践,尚处于整理中

CNN网络

  • 参考李宏毅2020深度学习课程

引出问题

* Some patterns are much smaller than the whole image(可以用)



卷积运算

在这里插入图片描述

  • 卷积计算是通过将图像上与filter大小相同的部分(蓝框)与filter做内积后,再把每一个channel上都做同样的运算后相加即得到针对蓝框中部分做卷积的结果;这篇讲的比较详细



池化层

  • 池化层不包含参数,它的目的是下采样
    在这里插入图片描述



CNN网络整体概览

在这里插入图片描述
可以看到filter的size一般为(filter_size1, filter_size2, channel_size),这里的channel_size在最开始是初始图像的颜色通道数或是文本中的embedding_size,后续的则为上一步中filter的个数



在NLP中的应用

在这里插入图片描述

  • 想提的一点是,虽然CNN网络做并行有优势,但是在NLP领域由于词序的存在,如果使用Pooling层,将不可避免地丢掉词序信息,即下采样在NLP领域一般是不做这一步的,我看到的资料显示,一般CNN网络在NLP中将使用全卷积来在抓到长距离依赖的同时也不丢掉词序信息。(待实践)



RNN网络



SimpleRNN

在这里插入图片描述
由于store的a值的存在,网络有了记忆能力,从而能对同样的词Taipei作出符合语境的标记



LSTM

LSTM Cell

在这里插入图片描述

LSTM网络结构
  • 拿出一个Cell的一个状态来看

在这里插入图片描述

  • 简化版,在权重固定的情况下,由(x1,x2,x3)计算y的输出
    在这里插入图片描述
  • 多层概览
  • 注意这里可以看到每个状态除了x输入之外,还需要有上一个状态的记忆状态c和上一个状态的输出状态h作为输入,也就是之前在tensorflow中需要提前定义并初始化的两个状态
    在这里插入图片描述
LSTM网络误差分析

在这里插入图片描述
平坦的地方很平坦(梯度消失,LSTM可以依靠与RNN不同的门控机制避免这一问题),陡峭的地方很陡峭(梯度爆炸,使用梯度Clip)
关于梯度消失和梯度爆炸

Seq2Seq

在这里插入图片描述
Encoder编码一个句子的所有信息作为初始状态,输入到Decoder中,然后将输出的结果输入到下一个LSTM Cell的状态中,直到输出结束符为止
Encoder-Decoder结构

  • Encoder向量仅用作Decoder初始化状态
    在这里插入图片描述
  • Encoder向量在Decoder中均作为输入参与运算
    在这里插入图片描述



Attention-based Model

引出:比如人脑中在考虑一个问题时,总是关注某些重要的事情
在这里插入图片描述

思想1
  • 有一个读功能组件,能从Memory base中读取你想要的输入
    在这里插入图片描述
思想2
  • 有读写头,可以修改你的Memory base
    在这里插入图片描述
原理

Z 0 Z^0 Z0计算与 h 1 h^1 h1, h 2 h^2 h2, h 3 h^3 h3, h 4 h^4 h4的Match Score α 0 1 \alpha_0^1 α01, α 0 2 \alpha_0^2 α02, α 0 3 \alpha_0^3 α03, α 0 4 \alpha_0^4 α04,,然后经过Softmax层转化为概率值,然后分别与隐层向量做加权和,得到的 c 0 c^0 c0即作为模型的输入,和 Z 0 Z^0 Z0一起输入模型
在这里插入图片描述
第二个状态的输入为 Z 1 Z^1 Z1和由 Z 1 Z^1 Z1经过Attention计算得到的 c 1 c^1 c1和模型上一个状态的输出一起作为当前输入
在这里插入图片描述

应用

在这里插入图片描述
在这里插入图片描述



Transformer

CNN用作NLP,依靠层数学习长距离句子关系
在这里插入图片描述
Self-Attention Layer用作NLP,取代RNN
在这里插入图片描述
计算 q i , k i , v i q^i,k^i,v^i qi,ki,vi
在这里插入图片描述

计算 b 1 b^1 b1,同时也可以并行计算 b 2 b^2 b2
在这里插入图片描述
并行计算 α i , j \alpha_{i,j} αi,j
在这里插入图片描述
并行计算 b i b^i bi
在这里插入图片描述

模型总览,得到跟RNN一样的输出序列
在这里插入图片描述
Multi-head Self-attention
不同的head会捕捉到不同的信息(local/global)
在这里插入图片描述
由于模型中不包含词序信息,所以有一个Positional Encoding
解释了,为什么要相加,是将 x i x^i xi p i p^i pi(表示位置的one-hot vector)做concatenate后利用分块矩阵相乘,得到相加的逻辑
在这里插入图片描述
在Seq2Seq中代替其中的RNN部分
在这里插入图片描述
在这里插入图片描述
Transformer Model
在这里插入图片描述
Encoder部分自注意力机制可视化
不同的句子的it关注的部分不同
在这里插入图片描述
Application
在这里插入图片描述



Word Embedding

无监督的,基本思想是通过语境能够理解中心词的意思
在这里插入图片描述

Glove
  • 两个词如果经常在语料库中一起出现,则这两个词语义接近,相应的词向量也在空间上接近
    在这里插入图片描述
Prediction-based
  • 初级版,只用前一个词预测下一个词
    在这里插入图片描述
    语境对中心词的权重要相同,这样中心词才只有唯一的向量表示
    在这里插入图片描述
CBOW & Skip-gram

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值