DCNN论文解读


Introduction

DCNN(Dynamic ConvolutionalNeural Network)是一种sentence mode,它的目的是分析和表示句子的语义内容,方便NLP中分类或生成任务。

作者通过四个实验对DCNN进行了测试:小尺度二进制和多类情感预测、六向问题分类和远程监控推特情感预测。该网络在前三个任务中取得了优异的性能,在最后一个任务中,相对于最强基线,错误减少了25%以上。

Background

下面这些概念是DCNN的核心,我们接下来将对其进行描述。

Time-Delay Neural Networks

CNN的发明是受语音信号处理中时延神经网络(TDNN)影响。TDNN在识别”B”, “D”, “G”三个浊音中得到98.5%的准确率,高于HMM的93.7%。是CNN的先驱。下图就是TDNN的网络结构。

其中input是一段语音的频谱,也就是声谱图,它是由下雨这些过程得到的,相应频率的幅度值越大,对应的区域就越黑。

假如把input layer和hidden layer拿出来,如下图所示, 就是一个包含多帧的神经网络,考虑延时为2,则连续的3帧都会被考虑。其中隐含层起到特征抽取的作用,输入层每一个矩形内共有13个小黑点,代表该帧的13维MFCC特征(连续语音 → 预加重 → 分帧 → 加窗 → FFT → Mel滤波器组 → 对数运算 → DCT)。假设有10个隐含层,那么连接的权重数目为

随着时间向前,我们不断地对语音帧使用上图所示的滤波器,我们可以得到下图的结构。

以上就是延时神经网络的精髓了,其中绿色的线权值相同,红色的线权值相同,蓝色的线权值相同。相当于把滤波器延时。输入与隐层共390个权值变量待确定。

假如每个隐层矩形内包含10个节点,那么每条棕色的线包含10个权值,假设输出层与隐层的延时为4,则接收5个隐层矩形内的数据,那么隐层与输出层合计权值为。所以TDNN权值非常少,便于训练。

但是上面的模型在处理语音问题时,输入的窗口都是固定的,因此无法解决不定长序列的输入。为了解决句子变长的问题,Max-TDNN在获取到的矩阵中在sequence的维度取的最大值,产生新的输入向量。例如,输入矩阵的大小为,通过max操作后形状变为了。如下图所示:

Convolution

首先定义一个一维卷积核长度为的向量为,输入的sequences表示为

卷积的公式表示为:

卷积的种类也分为图下两种,narrow types和wide types。其中narrow types需要,wide types则对长度无特别要求。narrow types产生的向量,wide types产生的向量

Convolution操作的意义在于捕获n-grams的语义。

Architecture

DCNN创新的点在于使用了Dynamic k-Max Pooling这种pooling技术,Dynamic k-Max Pooling技术的核心就是先确定最上层的feature map上每个feature上的max k的个数,然后通过一个公式计算中间层的max k的个数。论文中使用的公式如下所示,L为总层数,l为当前层数。

import torch


def dynamic_k_max_pooling(x, layers_nums, layer_index, s_dim, k_top):
    temp_num = int((layers_nums - layer_index) / layers_nums * x.size()[s_dim])
    k = temp_num if temp_num > k_top else k_top
    return x.topk(k, dim=s_dim)[0]

Folding层进行折叠操作,该层不会增加参数数量,简单的将两个维度进行求和,使输入在embed_size维度上减半,论文中还提到这样做的好处是可以再全连接层之前就考虑输入的行与行之间的关联。

Conclusion

总体论文读下来,感觉和text-cnn差不多原理,甚至不如text-cnn的操作简单。不同于DCNN的输入,text-cnn的输入形状为。此外,text-cnn不用k top的池化层,直接进行max pooling就可以,最后连接所有卷积后的一维feature map池化后的元素送入全连接层。个人感觉来说,text-cnn和DCNN基本属于一个模型。

References

Phoneme recognition using time-delay neural networks

语音信号处理之(四)梅尔频率倒谱系数(MFCC)

A Convolutional Neural Network for Modelling Sentences

Convolutional Neural Networks for Sentence Classification


文章作者: Passerby-W
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Passerby-W !
评论
  目录