卷积神经网络(CNN)到底是个什么鬼东西(结构及作用)

满世界都是DEEP LEARNING和CNN, 那么CNN到底是什么?

首先,卷积神经网络只是一个工具,有输入有输出,输入是你的数据集,输出是你要的分类结果,了解大概结构并知道如何使用就行(这里不讲怎么用)。

你应该从很多地方知道了,卷积神经网络包括:

  1. 输入层(INPUT)
  2. 卷积层(CONV)
  3. 激活层(RELU)
  4. 池化层(POOL)
  5. 全连接层(FC)

下面分别对几个部分做解释:

1.输入层

就是一个矩阵…

2.卷积层

先说卷积吧,卷积就是一个矩阵(原始数据)乘一个卷积核(小矩阵),然后得到另一个矩阵(特征)。

看图复习一下卷积:
在这里插入图片描述
图片来源:shushi6969的CSDN博客

知道了卷积是如何操作之后,再来看一下卷积层的图:
在这里插入图片描述
图片来源:zxyhhjs2017的CSDN博客

如上图,一个32X32X3的矩阵在和一个5X5X3的卷积核卷积之后(步长为1),变成了一个带有特征的28X28X1的矩阵。当然卷积核还有步长都是可以设置的,可以提取不同的特征。

3.激活层

激活层存在的意义是,线性函数处理不了非线性问题,就找一个工具去处理得到非线性函数,来处理非线性问题。

找个图理解一下:
在这里插入图片描述
图片来源:我自己(找不到自己查阅的资料的图源在哪了,就画一个…)

如上图:假如做一个二分类,左边的线性问题就很好办,画一条直线就可以分开了,但是对于右边的图,如果想要做很好的分类,就得画条曲线才行了,激活层就是干这个的。

4.池化层

池化又是干嘛的!!!不是已经卷积出来特征了吗?又通过了激活函数都能处理非线性问题了,怎么还不直接分类!!!

池化就是对得到的特征进行简化压缩,简化就是使得数据少一点,不然算的慢,压缩就是提取主要特征,只要最后分类出我想要的结果,管你什么特征,尽量压缩就好了,不然电脑也带不动呀。最常见的池化操作是最大池化和平均池化,这两个家伙又是什么鬼呢?最大池化操作如图:
在这里插入图片描述
图片来源:搜狗百科

如上图,对这16个数据进行最大池化操作,画了四个框,取每个框里边的最大值作为新的数据。(平均池化就是取每个框的平均值啦)

5. 全连接层

经过前面一通操作之后,我们得到了很多特征(只是一个特征的话,就不用深度学习了,就是自己找不出特征才用的…),就可以把这些所有的特征连接起来去进行分类了。全连接层就是干这个的。最后一个图:
在这里插入图片描述
图片来源:bobo_jiang的CSDN博客

如上图,我们最后要得到猫的识别结果,经过操作之后得到了头、尾巴、脚等特征之后,全连接层将这些特征组合最后得到了结果,嗯,这是一只猫。

到这里,你可能知道CNN是个什么鬼了,又或是好像更加不懂了,这只是目前我对CNN的一些理解,希望能帮你,如又错误或者不妥,也欢迎批评指正。

这篇文章只是对卷积神经网络的结构和作用做了一个大概的解释,图片有对应链接的也都是CSDN博主对应的关于卷积神经网络的博客,有兴趣的可以点开看看。具体的卷积神经网络如何处理数据,实际操作,建议大家自己下载一个程序,实现一下就明白了。

发布了17 篇原创文章 · 获赞 13 · 访问量 2417

猜你喜欢

转载自blog.csdn.net/qq_37813206/article/details/103431987