如何学习CNN的过滤器?

时间:2017-01-11 02:56:03

标签: computer-vision neural-network conv-neural-network

我知道一个输入(让我们说一个图像)向前通过CNN,进行卷积和下采样。然后,在完全连接的层上,给出一个标签,给出它产生的最终权重。在训练中,计算 E rror变量,以便我们可以利用梯度下降(或其他一些优化函数)来调整权重,使 E 接近零。

过滤器在这个过程中从哪里学到了什么?我不明白滤波器是如何从高斯噪声到线条,角落和颜色的。那么我想这些过滤器是明确写入文件进行测试的,对吗?

1 个答案:

答案 0 :(得分:2)

从CNN学到的每个内核都是创建这些特征的过滤器(线条,角落等)。

让我们以Sobel为例,Sobel使用特定的内核来卷积图像,并且通过这个内核,我们可以恢复X和Y中用作边缘检测器的imagen的梯度。但是,如果这些特征(线条)并不是我们想要恢复的唯一想法,或者它不是我们特定问题的理想特征。因此,我们可以学习这些内核并创建不同的图像。

这些从内核创建的图像称为功能图,可以使用different techniques显示,我真的建议您观看该视频,因为您可以更好地了解CNN正在学习的功能,并了解这一点course

了解此过滤器的一种方法是让您知道预期的输出是多少。您可以使用随机值(滤波器/权重中的第一个值)对图像进行卷积,然后学习这些值,直到获得更好的预测训练集的值,因此,您不会使用典型的sobel,而是学习什么是最好的内核/过滤器以恢复更好地代表您的图像的功能。

因此,这些过滤器最终是您刚刚学习的网络权重。