machine-learning - 对于更深层次的 CNN 层学习更复杂的特征,是否有理论解释/量化?

标签 machine-learning deep-learning conv-neural-network

我看到过这样的说法:CNN 的更深层次可以学习识别更复杂的特征。这通常附带一张早期过滤器识别直线/简单曲线的图片,以及后期过滤器识别更复杂图案的图片。它具有直观意义:您距离数据越远,您对数据的理解就越抽象。不过,这有理论解释吗?

最佳答案

一种非常接近直观方法的方法是查看每一层的感受野:

如果第一个卷积层的内核大小为 3x3,则感受野大小为 9,以特征图中的一个(标量)值表示。

如果你的第二个卷积层现在也有一个 3x3 的内核大小,那么你又拥有一个大小为 9 的感受野。但是现在感受野中有什么?它是上一层特征图的 9 个值。现在,每个值都有一个来自输入层的 9 个值的感受野,如前所述。

如果您现在从第二个卷积层的特征图回顾到输入层,与从第一个卷积层的特征图到输入层查看相比,您将拥有更宽的感受野。

因此,在第二个特征图中,您将自动考虑更抽象的特征,因为输入层中的感受野更大。您可以在下图中很好地看到这一点,只需将“Map 1”视为输入层,“Map 2”作为第一个Conv-Layer的特征图,“Map 3”作为第二个Conv-Layer的特征图.

enter image description here

您可以在CS231-course中找到有关感受野的更多详细信息。关于 CNN:

关于machine-learning - 对于更深层次的 CNN 层学习更复杂的特征,是否有理论解释/量化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59341328/

相关文章:

python - InceptionV4 和 V2 在 "flower dataset"上的精度低于 InceptionV1

python - 在 tensorflow 中,如何在不实际训练的情况下评估神经元网络

python - 如何预处理具有太多 NAN 值的列?

python - 训练模型后评估建议

machine-learning - 如何解决Keras LSTM网络中的loss = Nan问题?

python - 有没有办法调试 TensorFlow 代码?另外,在解释代码时如何查看变量或对象中的内容?

machine-learning - 该任务的机器学习算法?

tensorflow - 如何识别放大的图像?

python - 如何将 Tensorflow 的结果记录到 CSV 文件

tensorflow - 如何修复图像识别中的错误猜测