【问题标题】:Recognizing image features regardless of their position using Convolutional Neural Networks使用卷积神经网络识别图像特征,无论其位置如何
【发布时间】:2013-12-25 00:10:21
【问题描述】:

假设您正在使用神经网络进行图像识别,并且您已经训练它识别直线。

每当特定的像素列打开,而相邻的像素关闭时,就会触发一个特定的节点并因此“识别”该行。

到目前为止一切都很好,但是如果线条向左或向右移动了几个像素怎么办?

“直线”节点不再处于活动状态,因为它“反应”的像素列已关闭(直线太靠右或靠左)。

我的幼稚解决方案是单独训练网络以识别图像每个部分上的线条,但这似乎很混乱且过大。

所以我的问题:

无论线条在图像上的什么位置,神经网络如何识别线条?我读到卷积神经网络优雅地解决了这个问题,有人可以用不太专业的术语解释一下吗?

一旦他们被识别出来,关于他们位置的信息是如何被传送到更远的链上的(因为左边的线可能与图像右边的线有不同的含义)?

【问题讨论】:

    标签: machine-learning artificial-intelligence neural-network convolution


    【解决方案1】:

    Kunihiko Fukushima 在 1980 年提出了能够进行鲁棒视觉模式识别的分层多层神经网络 (NN)。在他的 work 中,他研究了 NN 如何训练线条。三个像素的水平线、垂直线和不同角度的对角线的特定变化被用作训练样本。他的动机是看看当期望的模式出现时,他的隐藏层的哪一部分可以被触发。他的结果还表明,这种训练有素的网络可以识别具有所有方向的线。

    与仅允许将输入作为向量的 NN 不同,卷积神经网络 (CNN) 允许在输入层使用 2D 数组。从这个方面来看,将 CNN 视为可以在学习过程中更新权重的局部过滤器是很简单的。隐藏层一小部分中的每个节点都连接到输入图像的局部区域中的像素及其邻域。在线条识别训练中,不仅更新了这部分的权重,线条特征也通过学习得到了增强。是的,您可能已经注意到这就像一个边缘检测器,因为线像素上的权重会增加,而周围像素的权重会减少甚至变为负值。

    CNN 的一个重要且独特的功能称为shared weights。它产生独立于其位置和方向的线检测(注意:局部区域中的像素的权重相同,但每个邻域像素与中心像素或线像素之间的相对位置不同)。

    另外,MaxPooling也是一种提供平移不变性形式的机制,进一步实现了行识别中的位置无关性。

    【讨论】:

      猜你喜欢
      • 2010-11-21
      • 2017-02-12
      • 2014-08-09
      • 2020-08-20
      • 2012-01-12
      • 2016-10-23
      • 2016-03-10
      • 2019-12-10
      • 1970-01-01
      相关资源
      最近更新 更多