鹏仔日记第85篇:三分钟了解卷积神经网络(CNN)

Posted PM李驰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了鹏仔日记第85篇:三分钟了解卷积神经网络(CNN)相关的知识,希望对你有一定的参考价值。

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




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



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


全连接层:




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






【鹏仔日记】第85篇:三分钟了解卷积神经网络(CNN)





卷积层:




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






【鹏仔日记】第85篇:三分钟了解卷积神经网络(CNN)






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



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

【鹏仔日记】第85篇:三分钟了解卷积神经网络(CNN)




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






【鹏仔日记】第85篇:三分钟了解卷积神经网络(CNN)









【鹏仔日记】第85篇:三分钟了解卷积神经网络(CNN)





池化层:




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










总览:




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



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



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



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











以上是关于鹏仔日记第85篇:三分钟了解卷积神经网络(CNN)的主要内容,如果未能解决你的问题,请参考以下文章

(机器学习深度学习常用库框架|Pytorch篇)第(待定)节:卷积神经网络CNN中一些经典网络结构写法

机器学习篇:卷积神经网络DNN和CNN

三维几何学习从零开始网格上的深度学习-2:卷积网络CNN篇(Pytorch)

神经网络:卷积神经网络CNN

3. 使用PyTorch深度学习库训练第一个卷积神经网络CNN

手撕 CNN 经典网络之 VGGNet(理论篇)