【深度学习基础】Gated CNN 门控CNN原理篇

论文:Language Modeling with Gated Convolutional Networks

思想:模拟lstm的是否遗忘门,或者说判断权重的思想。再做一个和CNN卷积一样参数的filter, 取值0-1,判断这个序列的特征哪些应该被关注,哪些应该被忽略。

疑问:总感觉一个应该也可以学好,因为归根结底,就是两个filter相乘而已。所以效果好是因为好训练吗?

【深度学习基础】Gated CNN 门控CNN原理篇_第1张图片
Input sentence

没的说,注意一点,有最大seq长度。

Lookup Table

E = [batch_size, max_seq, embedding_size, 1]

Convolution

W, V 均为卷积核,参数为 [h,w, filter_depth, filter_nums]

X即为上一步的E
l可以理解为第几个conv, 相当于conv->conv->…->conv,输入均为h,padding模式为same,
需要注意的点是,利用resnet思想,最后一个filter_num 是1

它的图太有迷惑性,Stack L-1那边一直看不懂,后边讲。

Gating

这个就是两个相乘,论文用这个思想会将它和resnet结合起来。比如Convolution 和Gating结合组成一个block, 内部使用resnet,最后叠加几个block使用。

所以Stack L-1 这边我理解的是Convolution+Gating组合为一个block,叠加的是这个。

SoftMax

最后作者使用的是adaptive softmax, hinton大神提的。
最后的H [bz, max_seq, embedding, 1] 然后reshape 成 [bz*max_seq, embedding],所以W为[embedding, vocab_size]

你可能感兴趣的:(机器学习)