7.1 循环神经网络RNN
7.2 LSTM
7.3 Transformer
7.4 U-Net
把上一时刻的输出作为下一时刻的输入之一.
现在的任务是要利用如下语料来给apple打标签:
第一个apple是一种水果,第二个apple是苹果公司。
全连接神经网络没有利用上下文来训练模型,模型在训练的过程中,预测的准确程度,取决于训练集中哪个标签多一些,如果水果多,就打上水果的标签,如果苹果公司多,就打上苹果公司;显然这样的模型不能对未知样本进行准确的预测。
循环神经网络 (Recurrent Neural Network, RNN) 用于处理序列数据.
序列数据中, 前后数据之间不是独立的, 而是会产生上下文影响. 如:
左图如果考虑 W W W,可以展开为右图:
RNN 把前一时刻 (简便起见, 前一个单词我也称为前一时刻) 的输出, 当作本阶段输入的一部分. 这里 x t − 1 x_{t−1} xt−1为前一时刻的输入, 而 s t − 1 s_{t-1} st−1 为前一时刻的输出. 这样, 就把数据的前后联系体现出来了.
每一时刻的隐藏状态都不仅由该时刻的输入决定,还取决于上一时刻的隐藏层的值,如果一个句子很长,到句子末尾时,它将记不住这个句子的开头的内容详细内容。
选择性的存储.
LSTM是高级的RNN,与RNN的主要区别在于:
遗忘也是一种功能吗? 当然是了.
所谓好了伤疤忘了痛, 如果一个人不会遗忘, 很快就精神失常了.
详细分析见:
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247535325&idx=1&sn=7d805b06916a3da299e20c0445f59a07&chksm=fb3aefd6cc4d66c06b0f2d5779c83861474d2442f9b3387a4b87f45f3218efc92c3335602678&scene=27
定位到感兴趣的信息, 抑制无用信息 (怎么有点像 PCA).
采用自注意力机制层取代RNN来处理序列,同时实现序列的并行处理。
自注意力机制具体内容见https://blog.csdn.net/search_129_hr/article/details/129522922
数据有重要的数据和不重要的数据。在模型处理数据的过程中,如果只关注较为重要的数据部分,忽略不重要的部分,那训练的速度、模型的精度就会变得更好。
如果给你一张这个图,你眼睛的重点会聚焦在红色区域:
在训练过程中,输入的权重也都是不同的,注意力机制就是学习到这些权重。
最开始attention机制在CV领域被提出来,后面广泛应用在NLP领域。
Transformer 主要分为两部分:Encoder编码器 和 Decoder解码器
先编码获得内部表示, 再解码获得目标数据 (怎么有点像矩阵分解).
U-Net 集编码-解码于一体, 是一种常见的网络架构.
如图所示, U-Net 就是 U 形状的网络, 前半部分 (左边) 进行编码, 后半部分 (右边) 进行解码.
编码部分, 将一个图像经过特征提取, 变成一个小矩阵(28 × 28). 前面说过: 深度学习本质上只做一件事情, 就是特征提取.
解码部分, 将压缩表示解压, 又变回大矩阵,完成图像分割任务.
从思想上, 压缩与解压, 这与矩阵分解有几分类似, 都是把数据进行某种形式的压缩表示.
输入的是原始图像,通过网络结构后得到的是分割后的图像。
最特殊的部分是结构的后半部分,该网络结构没有全连接层,只采用了卷积层,每个标准的卷积层后面都紧跟着一个Relu激活函数层。
自编码器. 直接将输入数据作为标签, 看编码导致的损失 (更像矩阵分解了).
风格迁移:从一种风格转换为另一种风格. 如将自然照片转换成卡通风格, 将地震数据转换成速度模型 (2010年如果你这么做会被业内人士笑话的).
图像分割, 或提取图片的边缘. 嗯, 这个和转成卡通风格也差不多.
机器翻译. 把句子编码成机器内部的表示 (一种新的世界语言?), 然后转成其它语言的句子.
输入一个头, 输出多个头, 就可以做多任务. 如在速度模型反演的同时, 进行边缘提取, 这样导致反演的结果更丝滑.