第 1 节

卷积神经网络

作者
崔桐汇的头像崔桐汇
协作者
董佳辉的头像董佳辉
发布于 2024/07/19更新于 2024/08/21

粗略介绍卷积神经网络(CNN)

该文档数学公式显示不全,若想看完整数学公式可移步至卷积神经网络.pdf

该文档旨在简单的介绍卷积神经网络,仅仅靠这个文档是不能完全了解卷积神经网络的,这方面比较难以理解,如若想要知道具体数学原理请看该视频

什么是卷积神经网络?

卷积神经网络(Convolutional Neural Network, CNN)是一种特殊的神经网络,主要用于处理图像数据。CNN通过卷积层和池化层的操作,能够有效地提取图像的特征信息,从而在图像分类、目标检测等任务中表现出色。

CNN的基本结构

1. 输入层(Input Layer):输入图像数据,可以是灰度图或彩色图。

2. 卷积层(Convolutional Layer):通过卷积核(滤波器)扫描图像,提取局部特征。

3. 激活层(Activation Layer):通常使用ReLU激活函数,增加非线性。

4. 池化层(Pooling Layer):通过降采样(如最大池化)减少数据量,保留主要特征。

5. 全连接层(Fully Connected Layer):将提取的特征用于分类或回归任务。

6. 输出层(Output Layer):根据任务输出结果,例如图像类别。

CNN的优势

- 局部连接:通过卷积操作,CNN可以捕捉图像的局部特征。

- 权重共享:卷积核在图像上共享参数,减少了参数数量。

- 降维效果:池化操作降低了数据维度,减小了计算量。

应用领域

  • 图像分类(如手写数字识别)

  • 目标检测(如人脸检测)

  • 图像分割(如医学图像分析)


以下内容含有数学公式

卷积层(Convolutional Layer)

卷积层是CNN的核心部分,通过卷积操作提取图像特征。假设输入图像为 $X$,卷积核为 $W$,卷积操作可以表示为:

$(X * W)(i, j) = \sum_\sum_X(i+m, j+n)W(m, n)$

这里,$i, j$ 为输出图像的位置索引,$m, n$ 为卷积核的索引。

激活函数(Activation Function)

激活函数增加了神经网络的非线性能力。常用的激活函数是ReLU(Rectified Linear Unit),定义为:

$f(x) = \max(0, x)$

池化层(Pooling Layer)

池化层通过降采样减少数据维度。常见的池化操作是最大池化(Max Pooling),其公式为:

$Y(i, j) = \max_ X(i+m, j+n)$

其中,$Y$ 为池化后的输出,$X$ 为输入,$m, n$ 为池化窗口的索引。

全连接层(Fully Connected Layer)

全连接层将卷积层和池化层提取的特征用于分类或回归。其计算公式为:

$y = W \cdot x + b$

其中,$y$ 为输出向量,$W$ 为权重矩阵,$x$ 为输入向量,$b$ 为偏置向量。

反向传播(Backpropagation)

CNN的训练通过反向传播算法进行,主要步骤包括:

1. 前向传播(Forward Propagation):计算损失函数值。

2. 反向传播(Backpropagation):计算损失函数对每个参数的梯度。

3. 参数更新(Parameter Update):使用梯度下降算法更新参数。

假设损失函数为 $L$,权重为 $W$,学习率为 $\eta$,则参数更新公式为:

$W \leftarrow W - \eta \frac$

典型CNN架构

一个典型的CNN架构如下:

1. 输入层:输入尺寸为 $32 \times 32 \times 3$ 的图像。

2. 第一个卷积层:使用 $5 \times 5$ 的卷积核,输出尺寸为 $28 \times 28 \times 6$。

3. 第一个池化层:使用 $2 \times 2$ 的最大池化,输出尺寸为 $14 \times 14 \times 6$。

4. 第二个卷积层:使用 $5 \times 5$ 的卷积核,输出尺寸为 $10 \times 10 \times 16$。

5. 第二个池化层:使用 $2 \times 2$ 的最大池化,输出尺寸为 $5 \times 5 \times 16$。

6. 全连接层:连接到输出层,进行分类。