卷积神经网络原理

本文深入探讨卷积神经网络(CNN),解释其如何从图像矩阵开始,解决前馈神经网络在图像处理中的缺陷。内容涵盖数据输入层、卷积层的卷积计算、卷积核的选择与超参数、池化层的作用,以及Flatten层和全连接层在CNN结构中的位置。通过实例解析卷积和参数共享,帮助理解CNN在计算机视觉中的核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(文章同步更新在@dai98.github.io
卷积神经网络 (Convolutional Neural Network, CNN)是受生物学上感受野机制的启发而提出的深度学习模型,在图像处理中较为常见,下面我们依次介绍各种层的结构和作用。

一、从图像到矩阵

每张图片都是由像素组成的,一张图片每行和每列有多少个像素即为图片的分辨率 (Resolution);每一个像素都有一个颜色,这个颜色是由三个属性组成的,分别为红、绿、蓝,我们把这三个属性叫做通道 (Channel)。当然,这是对于彩色图片来讲,对于黑白照片的而言,每个像素只有灰度一个属性。

一般来讲,每个通道的值在0到255之间。这样,一张分辨率为100x100的彩色照片就可以转换为一个(100,100,3)的张量;相同大小的黑白照片可以转换为(100,100,1)的张量。

二、前馈神经网络的缺陷

MNIST数据集是图像处理领域较为著名的数据集,由50000个0到9的手写数字组成,我们要对图像进行多分类,每张照片为28x28x1的灰度图片。

假设我们使用两层的前馈神经网络来解决该问题,隐藏层使用15个神经元,那我们需要计算 28 × 28 × 15 + 10 × 15 + 15 + 10 = 11 , 935 28\times 28\times 15 + 10 \times 15 + 15+10 = 11,935 28×28×15+10×15+15+10=11,935个参数,在反向传播的时候需要大量的计算。而我们知道图片分辨率为28x28已经非常小了,如今的照片的分辨率可以达到2000x3000,传统的前馈神经网络无法完成数量如此庞大的参数计算。

前馈网络的另一个缺陷是无法捕获到图片中的不变特征。一张图片进行放缩或旋转后,其中的特征保持不变,而前馈网络较难捕获到这些不变的特征。

而卷积神经网络用一种不同的结构,可以较好的解决上面的问题。下面我们来分别介绍一下卷积神经网络的主要部分:卷积层、池化层、全连接层。

三、数据输入层

该层要做的处理主要是对原始图像数据进行预处理,其中包括:

  1. 中心化:把输入数据各个维度都减去该维度的平均值,使其中心化为0
  2. 归一化:使数据的标准差为1
  3. PCA/白化:用PCA降维;白化是对数据各个特征轴上的幅度归一化

中心化与归一化示例:

去相关与白化示例:

四、卷积层
1. 卷积计算

二维的卷积计算在图像处理领域经常能够用到,卷积计算需要一个叫做卷积核 (Convolution Kernel)或者叫滤波器(Filter)的结构,实际上是一个矩阵。假设图片 X ∈ R M × N X\in\R^{M\times N} XRM×N,卷积核 w ∈ R m × n w\in\R^{m\times n} wRm×n,且一般 m < < M , n < < N m<<M,n<<N m<<M,n<<N,其卷积为:
y i j = ∑ u = 1 m ∑ v = 1 n w u v ⋅ x i − u + 1 , j − v + 1 y_{ij} = \sum_{u=1}^m\sum_{v=1}^n w_{uv}\cdot x_{i-u+1,j-v+1} yij=u=1mv=1nwuvx

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值