关于CNN中的conv层,我有以下理论问题。想象一下带有6个滤波器的conv层(图中的conv1层及其6个滤波器)。
1)什么保证了……的多样性
假设您正在使用SGD(或类似的反向变体)训练您的网络,权重被初始化为 的 随机 强> 鼓励它们变得多样化,因为每个不同随机滤波器的梯度损失通常是不同的,梯度将在不同方向上“拉”权重,从而产生不同的滤波器。
但是,没有什么可以保证多样性。实际上,有时过滤器会彼此联系在一起(参见 吠声 和其中的参考文献)或降至零。
当然,您希望过滤器尽可能多样化,以捕获数据的各种不同方面。假设你的第一层只有过滤器响应垂直边缘,你的网络如何处理包含水平边(或其他类型的纹理)的类? 此外,如果你有几个相同的过滤器,为什么两次计算相同的响应?这是非常低效的。
使用“开箱即用”优化器,每层的学习过滤器彼此独立(梯度线性)。但是,可以使用更复杂的损失函数/正则化方法来使它们依赖。 例如,使用Lasso正则化组,可以强制某些过滤器为零,同时保持其他过滤器的信息。