李宏毅机器学习笔记第11周_Spatial Transformer

文章目录

  • 一、Spatial Transformer Layer
    • 1.CNN is not invariant to scaling and rotation
    • 2.How to transform an image/feature map
  • 二、Image Transformation
  • 三、Interpolation


一、Spatial Transformer Layer

1.CNN is not invariant to scaling and rotation

1) CNN并不能真正做到scaling和rotation。
2) 如下图所示,在通常情况下,左右两边的图片对于CNN来说是不一样的。
李宏毅机器学习笔记第11周_Spatial Transformer_第1张图片
3)如下图所示,Spatial Transformer Layer是Neuron Network,而它的作用是多学习一层layer,对左边的图片做scaling和rotation后,能够被CNN识别出来。
李宏毅机器学习笔记第11周_Spatial Transformer_第2张图片

2.How to transform an image/feature map

1) 平移其实是调整weight的过程。如下图所示,weight相同的颜色代表了权值相同,这里就是要将目标向下移动。
李宏毅机器学习笔记第11周_Spatial Transformer_第3张图片
2) 如下图所示,向下平移,把[a13]^ (l-1)移动到[a23]^ l的位置上,[a13]^ (l-1)与[a23]^ l对应,[a23]^ l与左图的其他位置连接为0;向右旋转,把[a13]^ (l-1)移动到[a33]^ l的位置上,[a13]^ (l-1)与[a33]^ l对应, [a33]^ l与左图的其他位置连接为0。
李宏毅机器学习笔记第11周_Spatial Transformer_第4张图片
3) 用NN来控制联系。
李宏毅机器学习笔记第11周_Spatial Transformer_第5张图片

二、Image Transformation

1. 将图片放大,把图片中的每一个像素坐标化,矩阵[■(2&0@0&2)]是将图片放大,矩阵[■(0@0)]是对图片进行平移操作。
李宏毅机器学习笔记第11周_Spatial Transformer_第6张图片
2. 将图片缩小,把图片中的每一个像素坐标化,矩阵[■(0.5&0@0&0.5)]是将图片缩小,矩阵[■([email protected])] 是对图片移动到右上方。
李宏毅机器学习笔记第11周_Spatial Transformer_第7张图片
3. 将图片逆时针旋转θ度。
李宏毅机器学习笔记第11周_Spatial Transformer_第8张图片
4. 综上所述,Spatial Transformer Layer只需要6个参数。但在实际计算中,当a、b、c、d、e、f的值为小数时,这个时候是不能进行Gradient Descent的,因为Gradient是一直为0的。
李宏毅机器学习笔记第11周_Spatial Transformer_第9张图片

三、Interpolation

对于上面的问题,我们可以用Interpolation来解决,[a22] ^l = (1-0.4)* (1-0.4)* [a22] ^(l-1) + (1-0.6)* (1-0.4)* [a12] ^(l-1) + (1-0.6)* (1-0.6)* [a13] ^(l-1) + (1-0.4)* (1-0.6)* [a23] ^(l-1)。
李宏毅机器学习笔记第11周_Spatial Transformer_第10张图片


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