深度学习笔记——卷积神经网络CNN

445 阅读4分钟

大家好,这里是好评笔记,本文为试读,查看全文请移步公主号:Goodnote。本文详细介绍面试过程中可能遇到的卷积神经网络CNN知识点。

5.png

@[toc]

卷积神经网络 (CNN) 是一种专门用于处理图像、视频等数据的深度学习模型,主要用于计算机视觉任务,例如图像分类、目标检测和图像生成。CNN 通过卷积操作减少输入数据的尺寸,提取出重要特征,同时保留其空间结构 ,尤其在处理高维数据时非常有效。

主要组件

输入层

输入层用于接收原始数据,例如图像(二维或三维张量)。对于图像,通常是像素值。

卷积层 (Convolutional Layer)

卷积层是 CNN 的核心组件,负责通过卷积核 (filter) 提取输入数据的局部特征 。通过扫描输入的局部区域,卷积层可以识别特定的模式(例如边缘、角等)。卷积操作通常会产生一组特征图

批归一化层(Batch Normalization, BN)

归一化使训练过程更加稳定和高效。BN 层将激活值标准化为均值为 0、标准差为 1 的分布,然后通过可学习的缩放平移参数恢复数据分布。防止梯度消失和梯度爆炸问题。加速训练,允许使用更大的学习率。在一定程度上起到正则化作用,减少过拟合

参考【归一化部分】:深度学习——优化算法、激活函数、归一化、正则化

激活函数 (Activation Function)

常见的激活函数是ReLU 及其变体(如 Leaky ReLU、PReLU 和 ELU)。其他函数如 Swish 也逐渐流行(SD模型组件中GSC中的S指的就是Swish)。Sigmoid 和 Tanh 因梯度消失问题较严重,不适合深层 CNN 网络,因此使用较少。

池化层 (Pooling Layer)

池化层用于缩减数据的尺寸,同时保留主要特征。最大池化(Max Pooling)是最常用的方式,它通过取每个区域内的最大值来减少数据量。这有助于减小计算量,并增强模型的平移不变性。

全连接层 (Fully Connected Layer)

全连接层是CNN 的特征整合部分,将高维特征压缩并组合,最终生成一个用于输出处理的向量连接到输出层。通常在 CNN 的最后几层用于将提取到的特征映射到最终的分类或回归结果

批归一化层(Batch Normalization, BN)

输出层激活函数 (Output Layer Activation Function)

  • 二分类问题:输出层通常输出一个经过 sigmoid 函数 处理的值,该值表示预测属于某个类别的概率,范围在 0 到 1 之间。

  • 多分类问题:输出层通常使用 softmax 函数,将全连接层的输出向量转换为概率分布,表示样本属于不同类别的概率。概率的总和为 1。

  • 回归任务:输出层直接输出一个或多个实数,表示模型的预测值。回归任务的输出层通常不使用激活函数,或者使用线性激活函数,允许输出为任意实数。

输出层 (Output Layer)

输出层的作用是生成最终的预测结果


整体流程概述

  1. 输入层:输入图像数据,可能是灰度或彩色图像。
  2. 卷积层:通过卷积核提取局部特征。
  3. 批归一化(可选):对每一批次进行归一化,防止梯度爆炸或消失,加速训练。
  4. 激活函数:如 ReLU 引入非线性。
  5. 池化层:对特征图进行下采样,降低特征图尺寸,减少计算复杂度。
  6. 重复卷积~池化层:逐层提取更高层次的特征。
  7. 全连接层:将高层特征映射到输出空间,通常用于分类任务。
  8. 批归一化(可选):对每一批次进行归一化,防止梯度爆炸或消失,加速训练。
  9. 激活函数:如 ReLU 引入非线性。
  10. 丢弃层(可选):随机丢弃部分神经元,防止过拟合。
  11. 输出层:输出最终的预测结果,常用于分类或回归任务。
  12. 损失函数:衡量模型输出与真实值之间的差距。
  13. 反向传播和优化:更新模型权重,使损失函数最小化。

详细全文请移步公主号:Goodnote。

参考:欢迎来到好评笔记(Goodnote)!