[论文总结]An Empirical Evaluation of Generic Convolution and Recurrent Networks For Sequence Modeling

Q:对于大多数深度学习从业者来说,序列建模是循环网络的同义词。 然而,最近的研究结果表明,在音频合成和机器翻译等任务中,卷积结构可以胜过循环网络。 给定一个新的序列建模任务或数据集,应该使用哪种架构?

A:作者系统地评估了序列建模的一般卷积和循环架构。 实验表明,简单的卷积结构在不同的任务和数据集范围内都优于典型的循环网络(如 LSTM),并显示出更长的有效记忆。

TCN的特点


使用了因果卷积,这意味着没有信息从未来泄漏到过去
该结构将任意长度的输入序列映射到相同长度的输出序列(与 RNN 相同)
结合使用残差网络和扩展卷积来增强网络记忆。

Causal Convolutions

TCN的两个原则

第一个是输入输出长度相等;

第二个是不泄露未来信息


第一个解决方案是一维全卷积网络和零填充(内核大小 - 1)。 前者保证隐藏层的长度与输入层的长度相同,后者保证特征图的每一层大小相同。

第二个是使用因果卷积的输出只与前层中的时间和更早的元素有关。


如果我要考虑很久以前的变量x,那么卷积层数必须增加,卷积层数的增加会带来:梯度消失,训练复杂,拟合效果不好

Dilate Convolutions

为了解决这个问题,Dilated convolution 就是通过跳过一些输入,使滤波器可以应用于大于滤波器本身长度的区域。 这个效果可以从下图看出。 蓝色矩形代表视野。 红点代表内核。 Fig.a中,kernel为3 * 3,视野为3 * 3,dilated = 1; 在图b中,内核是3 * 3,但视野是7 * 7,dilated = 2; 在图c中,核是3*3,但是视野是15*15,dilated=4。可以看出dilated时,视野也扩大了。

 

使用扩展卷积可以成倍增加卷积感受野。

 

d 是膨胀系数。 当 d = 1 时,扩展卷积退化为普通卷积。 使用较大的扩展因子,顶层输出可以代表更宽的输入范围。


TCN 给出了两种扩展感受野的方法:
选择更大的过滤器尺寸 k
通过增加扩展因子 d 获得的有效感受野大小为 ( k-1 ) *d。

ResNet

2015年,微软亚洲研究院(MSRA)公布了一个152层的残差网络ResNet。经过实际测试,每次跳过2层网络可能会获得更好的性能。 左边是残差网络的基本块。 实际做法如左二所示。 右边是添加到bottleneck层的残差网络。

Residual Convolutions

 e的效果最好,错误率最低,左通道没有ReLU层,实现了信息的完整流动。 C 架构的问题在于它将 ReLU 置于通道的末端。 由于ReLU的输出总是大于等于0,对网络的表达能力是有害的。 d和e的区别在于BN层的位置。 事实上,BN层最好放在非线性激活函数的前面。 E无疑满足了许多要求。

为了使我们的 TCN 不仅仅是一个过于复杂的线性回归模型,需要在卷积层的顶部添加一个激活函数来引入非线性。 ReLU 激活被添加到两个卷积层之后的残差块中。
为了标准化隐藏层的输入(抵消梯度爆炸的问题),对每个卷积层进行权重归一化。
为了防止过度拟合,在每个剩余块的每个卷积层之后通过 dropout 引入正则化。

优点:

1.在 RNN 中,后续时间步的预测必须等待其前任完成,并且卷积可以并行执行,因为在每一层中使用相同的过滤器。 因此,在训练和评估中,长输入序列可以在 TCN 中作为一个整体进行处理,而不是像在 RNN 中那样按顺序处理。 灵活的接收区域大小。

2.TCN 可以通过多种方式改变其接收字段的大小。 例如,使用更大的膨胀系数或增加滤波器的尺寸以叠加更多的膨胀卷积层是一个可行的选择(可能有不同的解释)。 因此,TCN 可以更好地控制模型的内存大小,轻松适应不同的域。

3.稳定的坡度。 与循环架构不同,TCN 的反向传播路径与序列的时间方向不同。 因此,TCN 避免了梯度爆炸/消失的问题,这是 RNN 的主要问题

4.训练内存不足。 尤其是在长输入序列的情况下,LSTM 和 GRU 可以很容易地使用大量内存来存储它们的多个单元门的部分结果。 然而,在 TCN 中,过滤器是跨层共享的,反向传播路径仅取决于网络深度。 因此,在实践中,我们发现门控 RNN 可能比 TCN 消耗更多的内存。

5.可变长度输入。 与RNN一样,TCN也可以通过滑动一维卷积核获得任意长度的输入,而RNN以循环的方式对可变长度的输入进行建模。 这意味着对于任意长度的序列数据,TCN 可以替代 RNN。

缺点:

1.推理需要更多内存:RNN只需要保持一个隐藏状态,每次接受一个输入; TCN 应该保持足够长的序列来保留历史状态。
2.迁移难度:不同领域的任务具有不同大小的感受野,用小 k 和 d 学习的模型很难应用于需要大 k 和 d 的任务。

序列建模任务

1.添加的问题

在这个任务中,每个输入由一个长度为n,深度为2的序列组成,所有值都在[0,1]中随机选择,第二维除了两个标记为1的元素外全为零。目标是 将第二维中标记为 1 的两个随机值相加。 简单预测 为 1,MSE 约为 0.1767。

 

2.顺序 MNIST 和 P-MNIST

序列 MNIST 通常用于测试循环网络保留来自遥远过去的信息的能力。 在此任务中,MNIST 图像作为 784 × 1 的数字分类序列呈现给模型。 在更具挑战性的 P-MNIST 设置中,序列顺序是随机的

3.复制内存

 在此任务中,每个输入序列的长度为 T + 20。前 10 个值是在数字 1 到 8 中随机选择的,其余的全为零,除了最后 11 个用数字“9”填充的条目( 第一个 '9' 是分隔符)。 目标是生成一个长度相同的输出,除定界符之后的最后 10 个值外,其他所有位置都为零,其中模型预计会重复它在输入开始时遇到的 10 个值。

 

4.JSB 合唱团和Nottingham

JSB Chorales (Allan & Williams, 2005) 是一个复调音乐数据集,由 J. S. Bach 的 382 个四声部和声合唱的整个语料库组成。 每个输入都是一个元素序列。 每个元素是一个 88 位二进制代码,对应于钢琴上的 88 个键,其中 1 表示在给定时间按下的键。 Nottingham 是一个复调音乐数据集,基于 1200 首英美民谣的合集,比 JSB Chorales 大得多

5.PennTreebank

我们将 PennTreebank (PTB) 用于字符级和单词级语言建模。 用作字符级语言语料库时,PTB包含5,059K字符用于训练,396K用于验证,446K用于测试,字母大小为50。当用作单词级语言语料库时,PTB包含888K单词用于训练 , 70K 用于验证,79K 用于测试,词汇量为 10K。

6.Wikitext-103

Wikitext-103 比 PTB 大 110 倍,词汇量约为 268K。 该数据集包含 28K 维基百科文章(约 1.03 亿词)用于训练,60 篇文章(约 218K 词)用于验证,60 篇文章(约 246K 词)用于测试。 这是一个比 PTB 更具代表性和真实性的数据集,词汇量更大,包括很多生僻词。

7.LAMBADA

LAMBADA 是一个常用的阅读理解数据集,包括从小说中提取的 10K 片段,平均 4.6 个句子作为上下文,一个目标句子,其最后一个词是要预测的。 LAMBADA 的训练数据包括 2662 部小说的全文,超过 2 亿字,词汇量约 93K。 该数据集旨在让人们在给出上下文句子时轻松猜测丢失的单词。 结果表明,模型可以更好地从更长和更广泛的上下文中捕获信息。

评估

1.添加的问题

T = 200和600,收敛结果如图所示。所有模型的参数都在70K左右。 TCN 很快收敛到一个几乎完美的解决方案(即 MSE 接近 0)。 GRUS 也表现不错,虽然它的收敛速度比 TCN 慢。 LSTM 和 Vanilla RNN 的表现明显更差。

2. 顺序 MNIST 和 P-MNIST

MNIST 序列任务上的收敛结果运行了 10 多个 epoch,如图所示。 所有模型都有大约 70k 个参数。 对于这两个问题,TCN 在收敛性和任务的最终精度方面明显优于循环架构。

3.复制内存

Copy memory任务的收敛结果如图所示。 TCN 快速收敛到正确答案,而 LSTMS 和 GRU 几乎与预测的全零损失相同。 TCN 在 T=1000 和更长的时间内在损失和收敛速度方面具有明显优势。

4. 复调音乐和语言建模

我们讨论了复调音乐建模、字符级语言建模和单词级语言建模的结果。 几乎没有调优的 TCN 在很大程度上优于循环网络模型,甚至优于一些增强循环架构

5.词级语言建模

语言建模仍然是循环网络的主要应用之一。 我们的实现遵循标准做法,将 TCN 和 RNN 的编码器和解码器层的权重联系起来,这显着减少了模型中的参数数量。

 

6.字符级语言建模

在字符级语言建模方面,通用 TCN 优于常规 LSTM 和 GRU 以及标准化的稳定 LSTM。

结论

 

1. 提出的 Causal Dilated Conv + Residual Block 比基本的 LSTM、GRU 和 Vanilla RNN 的性能要好得多。

2.确认TCN比RNN家族表现出更长的记忆保留,确认RNN的“无限记忆”几乎没有实验结果。

3、在检查SOTA性能时,对LSTM系列进行了很多优化研究,可以确认根据具体数据计算出好的性能。

4.不过TCN系列还没有研究这么多,所以作者公开了这个过程的代码。

5. 他们对基本模型的实验结果得出结论,TCN 应该被认为是序列建模中的一种强大方法

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值