【问题标题】:How are filters for CNNs learned?CNN 的过滤器是如何学习的?
【发布时间】:2017-05-25 17:13:39
【问题描述】:

我了解输入(比如说图像)通过 CNN 前向传递、卷积和下采样。然后,在一个全连接层,根据它产生的最终权重分配一个标签。在训练中,计算出一个 E 误差变量,以便我们可以利用梯度下降(或其他一些优化函数)来调整权重,使得 E 接近零。

过滤器在这个过程中从哪里学到的?我不明白过滤器如何从高斯噪声变为线条、角落和颜色。然后我想这些过滤器被明确写到一个文件中进行测试,对吗?

【问题讨论】:

  • 过滤器在哪里学习是什么意思?你的意思是反向传播过程?
  • @MarcinMożejko 是的,我想了解数学是如何找到最佳过滤器的。

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


【解决方案1】:

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

让我们以 Sobel 为例,Sobel 使用特定的核对图像进行卷积,使用该核我们可以恢复图像在 X 和 Y 中的梯度,用作边缘检测器。但是,如果这些特征(线)不是我们想要恢复的唯一想法,或者它不是我们特定问题的理想特征,那又如何呢?因此,我们可以学习这些内核并创建不同的图像。

从内核创建的这些图像称为特征图,可以使用different techniques 进行可视化,我真的建议观看该视频,因为您可以更好地了解 CNN 正在学习的特征是什么,并看看这个@987654322 @。

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

所以,这些过滤器最终就是您刚刚学习的网络的权重。

【讨论】:

  • 所以我知道这个过程会发生,但我的主要问题是数学是如何实现的。对于 NN 中单个权重的反向传播,您可以对损失函数求导,然后迭代到所述函数的最小值。对于过滤器,您是否会调整过滤器中的每个值,然后再次应用过滤器以查看结果?这似乎计算量很大。
猜你喜欢
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-05
相关资源
最近更新 更多