Deep Learning 读书笔记(十)

        这次读的这篇文章的题目是:“Learning hierarchical invariant spatio-temporal features for action recognition with independent subspace analysis”。

        原来在动作识别领域所使用的方法一般都是人工选取的特征。本篇文章的工作就是使用了一种无监督的学习方法自动地从视频中学习特征。所使用到的方法是Independent Subspace Analysis(ISA)。文章中对该算法进行了一些改进,主要是使用了stacking和卷积两种方法,使模型能够对分层特征进行更好的学习。

        ISA算法是Independent Component Analysis(ICA)算法的扩展,它们在natural image statistic领域内都是非常著名的。ISA算法的优点就是“robust to local translation while being selective to frequency, rotation and velocity”。而它的缺点则在于当输入数据的维度非常大时,算法的学习速度就会非常慢。所以文章使用了stacking和卷积的方法来加快学习的速度。具体的步骤为:先在small input patches上学习特征,再对学习到的特征进行卷积,将卷积的结果输入到下一层网络中去。

        ISA的网络结构如下图所示:

Deep Learning 读书笔记(十)_第1张图片

        在ISA网络中,只有第一层的权值是需要学习的,而第二层的权值则是固定的,用来表示第二层隐藏层对第一层隐藏层的下采样过程,可以理解为一个池化过程,图中池化区域的大小为2.

        ISA模型的目标函数为:

        其中,。模型的输入是经过了PCA白化处理的。正交的限制条件保证了features are diverse。

        ISA能学习到图片的边缘特征,并且还能够将相似的边缘特征给组合起来,以达到特征学习的不变性。为了去证明模型学习到特征的不变性,文章中描述了这样一个实验。首先,去寻找某一个神经元的最大激活值,然后改变输入图片的translation,rotation,frequency这三个因素,来观察神经元激活值的变化。可以观察到对于translation是有较好的不变性的,但对于frequency和rotation就要更加敏感了。

        文章中有提到这样一句话:“This combination of robustness and selectivity makes features learned by ISA highly invariant.”这个个人有个人的理解吧,我个人来说有点怀疑。

        文章中提出的ISA模型如下图所示:

Deep Learning 读书笔记(十)_第2张图片

        从图中可以看出,将ISA网络看作是一个单元,使其在input上进行滑动,产生的结果组合起来,再经过PCA白化处理之后送到上层的ISA模型中去。其实这里的卷积过程与传统意义上的卷积过程已经是不一样了。并没有出现一个卷积核函数,而是使用了ISA模型来充当这个函数。在图中,我们可以看出卷积的感受野是不交叉的,但在试验中却不是这样的。这一点我们稍后会看到。

        模型的学习过程还是使用的逐层学习的方法。首先调整第一层网络的权值,之后再调整第二层网络的权值。

        当我们使用ISA模型去处理视频数据时,这时输入的是3D video blocks而不是image patches。所以具体的做法是“take a sequence of image patchs and flatten them into a vector”。具体的处理方式如下图所示:

Deep Learning 读书笔记(十)_第3张图片

        从上图可以看出,ISA模型的输入也就是卷积过程的感受野其实是有重叠的。整个模型在做分类时是将第一层和第二层提取的特征共同输入到分类器中。从最后的实验结果来看,这样做能够得到更好的结果。

        对整个模型的学习算法,文章使用的是批投影梯度下降法,使用这个方法使得整个流程中不需要对学习率以及收敛条件再做任何的调整。使得整个训练过程更加简单。

        通过实验我们能够发现,第一层网络的激活值“have significantly higher norms at edge and motion locations than at static and feature-less location”。所以,就可以丢掉那些激活值在某一阈值以下的那些特征。这样做,可以加快模型的训练速度。

        文章通过实验发现,第一层网络学习到的特征是“a moving edge in time”。还发现其对速度非常敏感(这个实验方法与之前检测模型特征不变性的方法一样)。可以利用这一点来做运动的检测,比如说跑步是一个快速的运动,而吃饭则是一个慢速的运动,可以很好地将这两者区分开来。至于为什么对速度比较敏感,作者所猜测的原因是,因为ISA模型最上层的那个池化层。而且作者发现这一点还是非常重要的,如果一旦池化区域的大小扩大为10,模型的整体性能就会下降10%,这个影响还是非常大的。

     

       

你可能感兴趣的:(deep,learning,深度学习,神经网络,读书笔记)