赞
踩
这篇文章有意思的地方在于它处理语义概念(semantic concept)的思路。在这之前看过一篇文章(Image Caption with Semantic Attention)和这一篇比较像,在encoder阶段都提取了图片的卷积特征以及语义概念特征两种特征用于decoder。而且,也是将卷积特征在解码器的初始状态进行输入,而语义概念则参与了解码的每一个步骤。不同的地方在于,之前的文章使用了soft attention机制,而这篇文章则通过作者提出的SCN-LSTM模型。
这篇文章相当于为每个语义概念提供了一层LSTM的参数,然后,通过每个语义概念的概率分布将每一层LSTM的结果进行加权,共同决策结果,从而让所有语义概念都参与了每一个time step上的解码,具体介绍如下。
如上图,首先,v是通过卷积神经网络直接提取的卷积特征(这篇文章针对图片和视频的处理不一样),然后
其中,f代表的是多层感知机(MLP)。
关于SCN-LSTM,由于这个模型比较复杂,所以,先由更一般的模型SCN-RNN进行介绍。
1.SCN-RNN
这个式子很像普通的RNN,但是这里的W(s)、U(s)与传统的RNN结构有所区别,传统的RNN在此处对应的分别是一个Rnh×nx 和Rnh×nh 的参数矩阵,在这篇文章里,这个结构的参数矩阵都有K层(K代表的是语义概念的维数),分别对应着每一个语义概念,所以WT 和UT 的结构分别为Rnh×nx×nk 和Rnh×nh×nk 。然后将每层的参数加权求和,构成了一个与传统RNN类似的参数结构W(s)和U(s)。
以W(s)为例,这个结构其实在进行W(s)x变换的时候,相当x要经过WT 的每一层参数都分别进行变换,然后将每一层的输出与语义概念的分布进行乘积后叠加;U(s)h同理。从这里来看,这其实相当于k个LSTM分别运作,其中每一个LSTM对应了一个语义概念。
这个模型有一个致命的缺陷,那就是参数过多,即使nk 只取1000,在训练时也需要巨大的矩阵运算成本,难以承受。因此这篇文章对此进行了处理,将W(s)和U(s)进行分解。
于是
整理形式如下:
和传统的RNN形式很像,最重要的是,不止形式好看,参数也大大减少。但是这样的一个式子和原来的K层有什么关系呢?这是个好问题。
将diag中的项拆开,就会发现,上述的因式分解,其实等价于将每个WT[k] 进行分解。
2.SCN-LSTM
类比SCN-RNN,可以很快得到如下式子,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。