keras在CNN中用于conv2D的滤波器类型是什么?

时间:2018-01-22 19:20:43

标签: python-3.x frameworks neural-network deep-learning keras

我只是不明白卷积神经网络的keras框架在下面的代码行中使用什么样的滤波器,是用于水平边缘检测还是垂直或任何边缘或任何其他特征? 这是一个7 * 7 32过滤器,步幅为1,我们将其与X

进行卷积
x= Conv2D(32, (7, 7), strides = (1, 1), name = 'conv0')(X)

1 个答案:

答案 0 :(得分:0)

卷积滤波器不会预先处理任何特定功能。相反,他们学习"通过培训他们的职责。这些特征通过训练有机地发展,取决于增强模型远端预测准确性的因素。该模型将逐渐了解哪些特征适用于给定的输入,具体取决于基本事实和反向传播。

这方面的关键技巧是后支撑和初始化的组合。当我们随机初始化过滤器时,重要的部分不是我们选择的分布;相反,它存在一些差异,因此过滤器可以很好地区分。

例如,在典型的视觉处理应用程序中,模型的第一层(将conv0标签作为提示)将学习简单的特征:线条,曲线,颜色斑点等。无论过滤器< em>发生以最接近垂直线检测器进行初始化,最终将演变为该滤波器。在早期训练中,它将获得来自反向传播的最高强化&#34;需要&#34;用于垂直线。那些在垂直方向较弱的过滤器将获得较少的加固,然后看到它们的重量减少(因为我们的&#34;星瞳&#34;将足以驱动垂直线需求),并且最终将演变为识别其他一些特征

总的来说,过滤器将根据最终输出的需要演变为一组不同的功能。找到正确数量的特征的一种强力方法是投入太多 - 看看他们中有多少人学到了有用的东西,然后减少了数量,直到你在最小的过滤器上进行了清晰的区分。在您提供的代码行中,有人已经这样做了,并且发现CONV0需要大约32个过滤器用于此拓扑和应用程序。

这是否清除了意义?