Spatial Transformer Network学习笔记

学习了MatConvNet的STN的代码,

网络结构是这样的:

Spatial Transformer Network学习笔记_第1张图片

Spatial Transformer Network学习笔记_第2张图片

affinegrid和sampler都是没有要更新的weight的,

有ST的训练结果是这样:

Spatial Transformer Network学习笔记_第3张图片

Spatial Transformer Network学习笔记_第4张图片

没有ST的训练结果是这样:

Spatial Transformer Network学习笔记_第5张图片

Spatial Transformer Network学习笔记_第6张图片

下面是STN的U和V的对比:

Spatial Transformer Network学习笔记_第7张图片

Spatial Transformer Network学习笔记_第8张图片

网上有博客说误差流传到locNet就断了,我觉得不对,

我觉得,误差流从后面层流到前面层是说前面层的权值更新需要后面层的权值参与计算。求导就能看出来STN是两个流在反向传播的时候到U合并了:

Spatial Transformer Network学习笔记_第9张图片

V对Z的求导是需要LocNet里的权值参与计算的。

最后,我觉得STN和ResNet很像,网络在一个节点分叉,一条路保留前一层结果,一条路做变换,然后汇合。这个就像是memory把前一层结果原封不动记住,前一层经过变换得到新的结果,再和memory里的前一层结果做运算。

感觉STN真的很诡异,想让它是什么变换就是什么变换,就像真的猜对了神经网络是怎么想的、、、








你可能感兴趣的:(图像)