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

CNN网络

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

引出问题

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



卷积运算

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

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



池化层

  • 池化层不包含参数,它的目的是下采样
    自然语言处理(DL)学习笔记



CNN网络整体概览

自然语言处理(DL)学习笔记
可以看到filter的size一般为(filter_size1, filter_size2, channel_size),这里的channel_size在最开始是初始图像的颜色通道数或是文本中的embedding_size,后续的则为上一步中filter的个数



在NLP中的应用

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

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



RNN网络



SimpleRNN

自然语言处理(DL)学习笔记
由于store的a值的存在,网络有了记忆能力,从而能对同样的词Taipei作出符合语境的标记



LSTM

LSTM Cell

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

LSTM网络结构

  • 拿出一个Cell的一个状态来看

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

  • 简化版,在权重固定的情况下,由(x1,x2,x3)计算y的输出
    自然语言处理(DL)学习笔记
  • 多层概览
  • 注意这里可以看到每个状态除了x输入之外,还需要有上一个状态的记忆状态c和上一个状态的输出状态h作为输入,也就是之前在tensorflow中需要提前定义并初始化的两个状态
    自然语言处理(DL)学习笔记

LSTM网络误差分析

自然语言处理(DL)学习笔记
平坦的地方很平坦(梯度消失,LSTM可以依靠与RNN不同的门控机制避免这一问题),陡峭的地方很陡峭(梯度爆炸,使用梯度Clip)
关于梯度消失和梯度爆炸

Seq2Seq

自然语言处理(DL)学习笔记
Encoder编码一个句子的所有信息作为初始状态,输入到Decoder中,然后将输出的结果输入到下一个LSTM Cell的状态中,直到输出结束符为止
Encoder-Decoder结构

  • Encoder向量仅用作Decoder初始化状态
    自然语言处理(DL)学习笔记
  • Encoder向量在Decoder中均作为输入参与运算
    自然语言处理(DL)学习笔记



Attention-based Model

引出:比如人脑中在考虑一个问题时,总是关注某些重要的事情
自然语言处理(DL)学习笔记

思想1

  • 有一个读功能组件,能从Memory base中读取你想要的输入
    自然语言处理(DL)学习笔记

思想2

  • 有读写头,可以修改你的Memory base
    自然语言处理(DL)学习笔记

原理

Z0Z^0计算与h1h^1,h2h^2,h3h^3,h4h^4的Match Score α01\alpha_0^1,α02\alpha_0^2,α03\alpha_0^3,α04\alpha_0^4,,然后经过Softmax层转化为概率值,然后分别与隐层向量做加权和,得到的c0c^0即作为模型的输入,和Z0Z^0一起输入模型
自然语言处理(DL)学习笔记
第二个状态的输入为Z1Z^1和由Z1Z^1经过Attention计算得到的c1c^1和模型上一个状态的输出一起作为当前输入
自然语言处理(DL)学习笔记

应用

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



Word Embedding

无监督的,基本思想是通过语境能够理解中心词的意思
自然语言处理(DL)学习笔记

Glove

  • 两个词如果经常在语料库中一起出现,则这两个词语义接近,相应的词向量也在空间上接近
    自然语言处理(DL)学习笔记

Prediction-based

  • 初级版,只用前一个词预测下一个词
    自然语言处理(DL)学习笔记
    语境对中心词的权重要相同,这样中心词才只有唯一的向量表示
    自然语言处理(DL)学习笔记

CBOW & Skip-gram

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

相关文章: