使用卷积神经网络识别图像特征而不管其位置如何

时间:2013-12-07 17:26:58

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

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

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

到目前为止一直很好,但是如果这条线只向左或向右移动了几个像素呢?

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

我天真的解决方案是分别训练网络识别图像每个部分的线条,但这看起来很混乱和过度。

因此我的问题:

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

一旦识别出来,他们的位置信息如何进一步向上传递(因为左边的一条线可能与图像右侧的一条线有不同的含义)的

1 个答案:

答案 0 :(得分:1)

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

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

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

此外,MaxPooling也是一种提供平移不变性的机制,它进一步实现了线识别中的位置独立性。