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


一、Spatial Transformer Layer

1.CNN is not invariant to scaling and rotation

1) CNN并不能真正做到scaling和rotation。
2) 如下图所示,在通常情况下,左右两边的图片对于CNN来说是不一样的。
在这里插入图片描述
3)如下图所示,Spatial Transformer Layer是Neuron Network,而它的作用是多学习一层layer,对左边的图片做scaling和rotation后,能够被CNN识别出来。
在这里插入图片描述

2.How to transform an image/feature map

1) 平移其实是调整weight的过程。如下图所示,weight相同的颜色代表了权值相同,这里就是要将目标向下移动。
在这里插入图片描述
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。
在这里插入图片描述
3) 用NN来控制联系。
在这里插入图片描述

二、Image Transformation

1. 将图片放大,把图片中的每一个像素坐标化,矩阵[■(2&0@0&2)]是将图片放大,矩阵[■(0@0)]是对图片进行平移操作。
在这里插入图片描述
2. 将图片缩小,把图片中的每一个像素坐标化,矩阵[■(0.5&0@0&0.5)]是将图片缩小,矩阵[■(0.5@0.5)] 是对图片移动到右上方。
在这里插入图片描述
3. 将图片逆时针旋转θ度。
在这里插入图片描述
4. 综上所述,Spatial Transformer Layer只需要6个参数。但在实际计算中,当a、b、c、d、e、f的值为小数时,这个时候是不能进行Gradient Descent的,因为Gradient是一直为0的。
在这里插入图片描述

三、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)。
在这里插入图片描述


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值