CNN的各种不变性的改进
参考https://zhuanlan.zhihu.com/p/113443895
一、什么是不变性、相等性
不变性:
相等性:
如上述公式,不变性是指输入x发生变化,输出不变;相等性是指输入x发生变化,输出发生同样的变化
二、什么时候需要不变性、相等性
目标检测需要相等性,分类需要不变性,而目标检测中就包含了分类,因此需要的相等性和不变性产生了矛盾
这可能也是分类和回归分支需要分开的原因吧
三、存在的问题
CNN其实不具有平移不变性、相等性
如图所示,这是经过平移后跟原图计算余弦距离,可以看到每次经过下采样pool,颜色深度就发生了比较大的变化(颜色深度代表与原始图的余弦距离,用余弦距离刻画平移相等性)
说明主要是下采样对平移相等性影响较大
解决方案
(1)在下采样之前加入模糊,类似抗锯齿的方案
抗锯齿原理:根据Nyquist采样理论,是给定采样频率,通过降低原始信号的频率来使得信号能够被重构出来
作者这里是自己设计的三种blur kernel,每个核都需要归一化,即除以核内所有元素之和,然后加入到降采样过程,即在降采样之前使用blur kernel进行卷积滤波。代码https://github.com/adobe/antialiased-cnns
(2)数据增强,随机裁剪、多尺度、颜色抖动。但只能部分学习到不变性
(3)减少pooling,用卷积来代替,不过会增加计算量(这也是空洞卷积的一种作用吧?
?)
CNN如何对位置进行估计
起主要作用的就是padding
深度估计的影响因素
(1)首先pitch角的影响就很大
(2)仅仅改变目标的颜色和纹理也会影响效果
结论:
CNN网络是通过目标纵坐标来估计深度的,所以说网络实际上是在过拟合训练集,从中学习到一些固定场景下的深度和相对位置的对应关系。