我对CNN中的conv层有以下理论问题。想象一下带有6个滤波器的conv层(图中的conv1层及其6个滤波器)。
1)什么保证了conv层中学习过滤器的多样性? (我的意思是,学习(优化过程)如何确保它没有学习相同(相似)的过滤器?
2)转换层内滤波器的多样性是好事还是不好?对此有任何研究吗?
3)在学习(优化过程)期间,同一层的过滤器之间是否存在任何相互作用?如果有,怎么样?
答案 0 :(得分:1)
假设您使用SGD(或类似的反向变体)训练您的网络,权重在随机初始化的事实鼓励它们多样化,因为每个不同的随机过滤器的梯度损失通常不同的是,渐变会将权重“拉”到不同的方向,从而产生不同的过滤器。
然而,没有什么可以保证多样性。实际上,有时过滤器会彼此绑定(请参阅GrOWL及其中的参考文献)或降至零。
当然,您希望过滤器尽可能多样化,以捕获数据的各种不同方面。假设你的第一层只有过滤器响应垂直边缘,你的网络如何处理包含水平边缘(或其他类型的纹理)的类? 此外,如果你有几个相同的过滤器,为什么两次计算相同的响应?这是非常低效的。
使用“开箱即用”优化器,每层的学习过滤器彼此独立(梯度线性)。但是,人们可以使用更复杂的损失函数/正则化方法来使它们依赖 例如,使用Lasso正则化组,可以强制某些过滤器为零,同时保持其他过滤器的信息。