本文概述
循环网络更令人兴奋的主要原因是, 它们使我们可以对向量序列进行操作:输入, 输出中的序列, 或者在最一般的情况下, 两者都可以。一些示例可能更具体:
上图中的每个矩形代表矢量, 箭头代表函数。输入向量为红色, 输出向量为蓝色, 绿色保持RNN的状态。
一对一:
这也称为平原神经网络。它处理输入的固定大小到输出的固定大小, 它们与先前的信息/输出无关。
示例:图像分类。
一对多:
它处理固定大小的信息作为输入, 将一系列数据作为输出。
示例:图像字幕将图像作为输入并输出单词句子。
多对一:
它采用一系列信息作为输入, 并输出固定大小的输出。
示例:情感分析, 其中将任何句子归类为表达正面或负面情绪。
多对多:
它以信息序列作为输入, 并将递归输出作为数据序列进行处理。
示例:机器翻译, 其中RNN读取英语中的任何句子, 然后输出法语中的句子。
双向多对多:
同步的序列输入和输出。请注意, 在每种情况下, 长度序列都没有预先指定的约束, 因为循环变换(绿色)是固定的, 可以根据需要多次应用。
示例:视频分类, 我们希望标记视频的每一帧。
递归神经网络的优势
- RNN可以对数据序列进行建模, 因此可以假定每个样本都依赖于先前的样本。
- 循环神经网络甚至与卷积层一起使用以扩展有效像素邻域。
递归神经网络的缺点
- 渐变消失和爆炸问题。
- 训练RNN是一项复杂的任务。
- 如果它使用tanh或relu(如激活函数), 则无法处理很长的序列。
评论前必须登录!
注册