【AI学习笔记8】卷积神经网络CNN原理 The Principle of Convolutional Neural Network

卷积神经网络CNN原理 The Principle of Convolutional Neural Network

 

  • CNN基本原理与结构

CNN(Convolutional Neural Network):卷积神经网络,通过卷积和池化操作有效地处理高维图像数据,降低计算复杂度,并提取关键特征进行识别和分类。

    CNN通过模拟人的视觉神经系统,卷积感受野如同人眼扫描观察范围,提取图像局部特征,最后根据特征组合来识别图像。

CNN相比于MLP,利用局部连接和权值共享的方式减少参数数量(而不是像MLP一样每个神经元都和上一层中的所有节点连接),从而减少了参数,提高了训练效率。如果一个图像的尺寸是(28,28,1),即代表这个图像的是一个长宽均为28,channel为1的图像(channel也叫depth,此处1代表灰度图像)。如果使用全连接的网络结构,即,网络中的神经与与相邻层上的每个神经元均连接,那就意味着网络有28 * 28 =784个神经元,hidden层采用了15个神经元,那么需要的参数个数(w和b)就有:784*15*10+15+10=117625个,这个参数太多了,随便进行一次反向传播计算量都是巨大的,从计算资源和调参的角度都不建议用MLP神经网络。【1】

如图,CNN网络由卷积层(Convolutional)、池化层(Pooling)、全连接层(FCN)组成:【2】

  1. 输入层

输入层接收原始图像数据。图像通常由三个颜色通道(红、绿、蓝)组成,形成一个二维矩阵,表示像素的强度值。如果是灰度图,则只有一个颜色通道。【3】

  1. 卷积层和激活函数(Convolutional Layer& Activation Function)

卷积层将输入图像与卷积核进行卷积操作,提取图像的边缘、纹理和图案等特征。然后,通过应用激活函数(如ReLU)来引入非线性。这一步使网络能够学习复杂的特征。

  1. 池化层(Pooling)

池化层通过减小特征图的大小来减少计算复杂性。它通过选择池化窗口内的最大值(Max Pooling)或平均值(Average Pooling)来实现。这有助于提取最重要的特征。

  1. 多层堆叠

CNN通常由多个卷积和池化层的堆叠组成,以逐渐提取更高级别的特征。深层次的特征可以表示更复杂的模式。

  1. 全连接层(FCN)和输出

最后,全连接层将提取的特征映射转化为网络的最终输出。这可以是一个分类标签、回归值或其他任务的结果。可以用Softmax生成概率。

 

  • CNN主要模块展开

 

  1. 卷积层Convolutional Layer【4】

输入图像数据image data --> 卷积核kernel组成的filter --> 特征图feature map

 

Image通过filter滑窗卷积,得到Feature

 

计算过程如上图示例【5】

 

  1. 卷积核:或称作滤波器,通过卷积提取特征(如水平边缘检测、垂直边缘检测、“X”检测等)【6】

 

  1. 多卷积核: 通过多个卷积核,学习多种不同的特征,对应产生多个通道(Channel)的特征图(feature map)【7】

 

 

  1. Stride:Filter滑窗每次滑动的步长【4】

 

  1. Padding:当Filter滑动到边缘时,如果图像不是Filter的整数倍,则可以在周围填充数据来padding补齐(补零称为 Zero Padding)【4】

 

  1. 池化Pooling:池化层又称为下采样【8】

最大池化(Max Pooling):就是每次取正方形中所有值的最大值,这个最大值也就相当于当前位置最具有代表性的特征,如图所示:

 

平均池化(Average Pooling):就是取此正方形区域中所有值的平均值,考虑到每个位置的值对于此处特征的影响,如图所示:

 

 

 

参考文献(References):

【1】 Charlotte77 《【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理

https://www.cnblogs.com/charlotte77/p/7759802.html

 

【2】 架构师带你玩转AI 《大模型开发 - 一文搞懂CNNs工作原理(卷积与池化)》

https://www.53ai.com/news/qianyanjishu/594.html

 

【3】 Rukshan Pramoditha 《Convolutional Neural Network (CNN) Architecture Explained in Plain English Using Simple Diagrams》

https://medium.com/towards-data-science/convolutional-neural-network-cnn-architecture-explained-in-plain-english-using-simple-diagrams-e5de17eacc8f

 

【4】 天在那边 《卷积神经网络 (CNN) 基本原理和公式》

https://blog.csdn.net/weipf8/article/details/103917202

 

【5】 机器学习AI算法工程 《一文搞懂卷积神经网络(CNN)的原理(超详细)》

https://cloud.tencent.com/developer/article/2391027

 

【6】Lianm's Blog 《CNN的数学原理》 

https://ming-lian.github.io/2019/05/30/Mathmatic-Principle-in-CNN/

 

【7】 Lansonli 卷积神经网络(CNN)原理

https://blog.51cto.com/lansonli/5284033

 

【8】 tomato 卷积神经网络(CNN)详细介绍及其原理详解

https://www.ebaina.com/articles/140000017254

posted on 2025-02-23 13:10  JasonQiuStar  阅读(731)  评论(0)    收藏  举报