【问题标题】:What is the kind of filter does keras uses for conv2D in CNN?keras 在 CNN 中用于 conv2D 的过滤器是什么类型的?
【发布时间】:2018-01-22 19:20:43
【问题描述】:

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

x= Conv2D(32, (7, 7), strides = (1, 1), name = 'conv0')(X)

【问题讨论】:

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


    【解决方案1】:

    卷积过滤器不会预先设置任何特定功能。相反,他们通过培训“学习”他们的职责。这些特征通过训练有机地发展,这取决于提高模型远端预测准确性的因素。该模型将逐渐了解哪些特征对给定的输入有效,具体取决于地面实况和反向传播。

    其中的关键技巧是结合使用 back prop 和初始化。当我们随机初始化过滤器时,重要的不是我们选择什么分布;而是存在一些差异,因此过滤器会很好地区分。

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

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

    意思清楚了吗?

    【讨论】:

    • 嗨@Prune,这个答案非常有用,谢谢。还有一个问题,我怎么知道学习到的特征有用?? (我知道这个问题可能超出了这篇文章的最初问题,但如果你有任何我可以阅读的参考书目,我会很感激)
    • 要了解什么是有用的,请查看每个过滤器对完全训练模型中下一层的贡献。如果滤波器的系数接近于零,那么它的贡献很小,并且可能会被删除(即重新配置您的模型拓扑以在该层中减少一个内核,然后重新训练)。创建新的模型拓扑需要进行大量此类实验。
    猜你喜欢
    • 2019-09-07
    • 2023-01-27
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2019-09-19
    • 1970-01-01
    相关资源
    最近更新 更多