目录
用于处理序列的两种基本的深度学习算法分别是循环神经网络(recurrent neural network)和一维卷积神经网络
6.1 处理文本序列
文本向量化(vectorize)是指将文本转换为数值张量的过程。
(1)将文本分割为单词,并将每个单词转换为一个向量
(2)将文本分割为字符,并将每个字符转换为一个向量。
(3)提取单词或字符的 n-gram,并将每个 n-gram 转换为一个向量。n-gram 是多个连续单词或字符的集合(n-gram 之间可重叠)。
1.one-hot编码
可以使用单词级和字符级的编码
2.词嵌入
(1)Embedding层学习词嵌入
(2)使用预训练的词嵌入
从预计算的嵌入空间中加载嵌入向量
3.结论
(1)将原始文本转换为神经网络能够处理的格式。
(2)使用 Keras 模型的 Embedding层来学习针对特定任务的标记嵌入。
(3)使用预训练词嵌入在小型自然语言处理问题上获得额外的性能提升。
6.2 循环神经网络
CNN网络没有记忆,即前馈网络。循环神经网络:遍历所有序列元素,并保存一个状态(state),其中包含与已查看内容相关的信息
1.Keras循环层
from keras.layers import SimpleRNN
处理序列批量
2.高级循环层
由于存在梯度消失问题,simpleRNN并不实用.
LSTM:它保存信息以便后面使用,从而防止较早期的信号在处理过程中逐渐消失。
6.3 RNN高级用法
见资料
6.4 用卷积神经网络处理序列
1.一维卷积
2.一维池化
从输入中提取一维序列段(即子序列),然后输出其最大值(最大池化)或平均值(平均池化)。
3.实现
见资料
4.CNN与RNN结合处理长序列
要想结合卷积神经网络的速度和轻量与RNN 的顺序敏感性,一种方法是在RNN 前面使用一维卷积神经网络作为预处理步骤
5.结论
(1)二维卷积神经网络在二维空间中处理视觉模式时表现很好,与此相同,一维卷积神经网络在处理时间模式时表现也很好。
(2)通常情况下,一维卷积神经网络的架构与计算机视觉领域的二维卷积神经网络很相似,它将Conv1D 层和MaxPooling1D 层堆叠在一起,最后是一个全局池化运算或展平操作。
(3)因为 RNN 在处理非常长的序列时计算代价很大,但一维卷积神经网络的计算代价很小,所以在RNN 之前使用一维卷积神经网络作为预处理步骤是一个好主意,这样可以使序列变短,并提取出有用的表示交给RNN 来处理