三分钟了解卷积神经网络(CNN)

三分钟了解卷积神经网络(CNN)

卷积神经网络是应用最为广泛的神经网络之一。虽然主战场是图像识别,但是在自然语言处理和语音识别等领域也有着不俗的表现。而在图像识别中,在一些测试中,其表现甚至超越人类。现在我们一起快速了解一下神奇的卷积神经网络。

卷积神经网络分成三个主要部分,分别为:卷积层(convolution layer),池化层(pooling layer) 和 全连接层 (fully connected layer)。

全连接层:

全连接层简单的说就是将层间所有神经元两两连接在一起。如下图所示。每一个神经元代表每一层的输入(蓝色数字)和输出(红色数字)。两者之间的线上的数字(黄色数字),代表权重。最后还要加上偏差(绿色数字)。运算法则是所有输出乘以权重,然后再加上偏差,得到输出。例如第一行的输出4,是由 ( 1 X 1+ -1 X-2 ) + 1得到。通过这样一层一层(一列一列)的迭代,最后我们就有了整个全连接层的输出y1, y2。

卷积层:

卷积层的思想是,与其像全连接层的每一个输出神经元连接每一个输入,对于输入较多的情况,参数过多效率低下。我们选择每一个输出神经元只链接一个区域的输入,如下图所示。

不仅如此,在每个区域中权重(下图蓝色框内数字)的大小是相等的。

具体运算过程如下。输入(红色框内)与权重对位相乘法1 X 1 + 1 X 1 + 0 X 0 + 0 X 1 = 2,得到第一个输出值2(紫色框)。

接下来,我们将输入向左移动一格,继续作以上运算 1 X 1 + 1 x 1 + 0 X 0 + 1 X 1 = 3,得到第二个输出值3。当向右移动到达某一排末尾时。向下移动一格到达下一排,并且向左回到排的首列,再继续下一次运算。按照以上规则,遍历整个输入。得到下图中的输出图。

池化层:

池化层的存在主要目的是除去冗杂信息,增加运算效率。运算法则很简单,直接将每四个相邻输入里面最大的值保留,而删去其他值。如下图所示,在绿,棕,红,蓝四个2X2的区域中,我们只选择其中最大的值保留,得到输出结果。

总览:

一个完整的卷积神经网络由以上三个主要板块构成。下图是一个识别手写英文字母的卷积神经网络。是由 卷积层 + 池化层 + 卷积层 + 池化层 + 全连接层 这样的结构组成。

以此为例,我们的输入是由像素点转化成的数字(比如灰度),如果是32 X 32 大小的图,那就有

1024 个的输入,最后有26个输出,26个数字,对应被识别为每一个英文字母的概率。而概率最大的,即是识别结果。

对于具体的训练方法达到以上目的,在这里不做赘述。感兴趣的朋友,可以持续关注后续更新,在以后文章中,我们将会继续为大家介绍。

    THE END
    喜欢就支持一下吧
    点赞13 分享
    评论 抢沙发
    头像
    欢迎您留下宝贵的见解!
    提交
    头像

    昵称

    取消
    昵称表情代码图片

      暂无评论内容