Python 深度学习 Class 6:深度学习用于文本和序列

目录

6.1 处理文本序列

1.one-hot编码

2.词嵌入

3.结论

6.2 循环神经网络

1.Keras循环层

2.高级循环层

6.3 RNN高级用法

6.4 用卷积神经网络处理序列

1.一维卷积

2.一维池化

3.实现

4.CNN与RNN结合处理长序列

5.结论


用于处理序列的两种基本的深度学习算法分别是循环神经网络(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 来处理 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值