这里介绍三种特殊的结构:spatial transformer layer,highway network & grid LSTM,还有recursive network。
本节介绍:spatial transformer layer.
那么我们要怎么对一个image/feature map做transform呢?我们假设以下图左边这个image是transform前的结果 ,右边这个image是transform后的结果 ,很明显,这次转换是把image由上往下做了平移。
一般而言,一个全连接层的式子我们可以写成:,第层里面的每一个神经元的输出是。如果我们想做到以上的这个平移的转换,我们只要适当的调整权重。那么什么样的weight可以让我们做到平移这件事呢?即:,如果的话,,否则,,这样子就可以做到平移。
接下来,我们来做放缩:
如果我们想要控制两张image之间的关系,我们要怎么做呢?如果只是旋转平移缩放的话,即 ,我们其实只需要个参数,也就是这6个参数,我们就可以把一张image变成另外一张image。即:神经网络的输入是一整张image,输出是一个六维的vector:
那我们现在举一个实际的例子:
那么如果参数是小数的情况呢?如下图所示,我们计算出来结果是
上面这个近似有没有问题呢?
实际上,我们在做这个的时候,我们需要做interpolation。
我们不要把对应的值直接设成离它距离最近的那个点,如果直接设成,可能导致没有办法微分。所以,我们的做法应该是,
取那四个点做插值,如下图所示做法:
现在我们就可以用梯度下降解了,为什么呢?因为我们发现,当
动画演示