显然,为神经网络找到合适的超参数是一项复杂的任务和问题或特定领域。但是,对于过滤器(或内核)的大小,至少应该有一些“规则”适用于大多数时间!
在大多数情况下,直觉应该是用小滤波器来检测高频特征,用大内核来检测低频特征,对吧?例如,用于边缘检测、颜色对比度等的内核过滤器,也许还有用于检测完整对象,当对象占据大致的区域时像素。
这种“直觉”或多或少普遍正确吗?我们如何决定应该为特定问题选择哪个内核的大小 - 甚至对于一个特定的卷积层?
显然,为神经网络找到合适的超参数是一项复杂的任务和问题或特定领域。但是,对于过滤器(或内核)的大小,至少应该有一些“规则”适用于大多数时间!
在大多数情况下,直觉应该是用小滤波器来检测高频特征,用大内核来检测低频特征,对吧?例如,用于边缘检测、颜色对比度等的内核过滤器,也许还有用于检测完整对象,当对象占据大致的区域时像素。
这种“直觉”或多或少普遍正确吗?我们如何决定应该为特定问题选择哪个内核的大小 - 甚至对于一个特定的卷积层?
看看这篇文章。它提供了一些工具来实际了解您的过滤器已经学到了什么,并展示了您接下来可以做什么来优化您的超参数。还可以查看更多最近的文章,这些文章试图提供对 NN 所学内容的解释。
答案的一个关键在于“即使对于一个特定的卷积层”这个问题。假设单个内核大小最恰当地适用于所有层,那么构建深度卷积网络并不是一个好主意。当仔细阅读在出版物中证明是成功的配置时,很明显,通过它们的层变化的配置通常被发现是最优的。
另一个关键是要了解两层 11x11 内核的范围为 21x21,十层 5x5 内核的范围为 41x41。从一个抽象级别到下一个抽象级别的映射不需要在一层中完成。
存在关于内核大小的通用性,但它们是典型输入特征、网络所需输出、可用计算资源、分辨率、数据集大小以及它们是静止图像还是电影的函数。
关于输入特性,考虑这种情况:图像是在光线不足的情况下拍摄的大景深,例如在安全场景中,因此镜头的光圈大开,导致某些距离范围内的物体超出焦点,否则可能会出现运动模糊。
在这种情况下,单个 3x3 内核将无法检测到许多边缘。如果边缘可能跨越五个像素,则存在关于有多少层专用于其检测的选择。影响该选择的因素取决于输入数据中存在的其他特征。
预计随着加速硬件的发展(在专用于此目的的 VLSI 芯片中),计算资源限制作为内核大小选择的一个因素的优先级将降低。目前,计算时间很长,迫使关于如何平衡层数和层大小的决定主要取决于成本。
这个问题引出了另一个问题。监督机器学习者能否学习如何自动平衡深度卷积网络的配置?然后,只要提供额外的计算资源,就可以重新执行它。如果没有至少十几个实验室正在研究这种能力,那将是令人惊讶的。