深入探索卷积神经网络:
通过视频和文章的深入研究,我们精简并整理了核心知识。记录于此,便于随时查阅和理解,确保永不遗失。
1卷积神经网络
卷积神经网络融合了卷积和神经网络的强大功能。卷积是一种信号处理技术,对两个信号进行卷积运算,提取特征。卷积神经网络将这一概念应用于图像处理,通过卷积层提取图像的重要特征,为后续神经网络处理提供基础。
神经网络,机器学习的基石,模拟人脑神经元运作。每个神经元通过相乘、求和和激活函数,将输入数据转化为输出。神经元相互连接形成网络,实现复杂问题的解决。这个由数千甚至数百万神经元组成的强大结构,为人工智能领域带来突破性的创新。
卷积神经网络(CNN)在图像领域大展身手,尤其擅长图像分类和识别。从最初的手写数字识别到如今广泛的应用,CNN已展现出强大的图像理解能力。
2图片格式
图像识别涉及将手写图像数字化为灰度矩阵(单色)或 RGB 通道(彩色)。灰度值代表每个像素点的亮度,而 RGB 值则分解为红色、绿色和蓝色分量,这些分量叠加形成彩色图像。
每一张图片的每一个像素点,其实都是一个数值,整体可看成一个三维矩阵。
3图片卷积运算
图像卷积:将原始图像(RGB 通道)与卷积核(Kernel)相乘并求和,加上偏差(Bias),得到特征图中的值。此过程通过滑窗在图像中移动卷积核来实现。
下面这个图是一个立体的展示。
4 kernel与feature map
卷积核大小的选择经过学者们反复研究,得出了3*3尺寸的最佳平衡点。此尺寸提供足够的感受野,同时保持较低的计算成本。此外,1*1卷积核也被广泛使用,但其他尺寸的卷积核使用较少。
卷积核的参数由机器学习算法优化得到,确定了这些参数就确定了模型。
某些预先设计的卷积核(如锐化和边缘提取核)可用于特定图像处理任务。
卷积操作将图像转换为特征映射,提取图像特征。使用不同内核进行卷积可生成多个特征映射,呈现图像的不同特征。
特征图/Feature map,当图像像素值经过过滤器后得到的就是特征图。
下面2张图就很直观地展示了kernel和feature map的实际样子。
5 padding/边缘填充
优化后内容:
卷积操作中,边界的处理至关重要。使用 "same" 填充会围绕图像补充像素,通常为 0,确保输出图像尺寸与输入图像相同。
而 "valid" 填充则不同,只保留卷积核与图像有效区域之间的像素,不会进行补充,导致输出图像尺寸缩小。
unvalid
valid
带padding的卷积效果展示:
尽管此示例使用了4x4卷积核(实际应用中少用),但它清晰地说明了padding如何影响卷积输出大小。
用3*3的卷积核,可保持图像卷积后尺寸不变。
探索卷积算术中的突破性成果!研究表明,这种神经网络架构将复杂的任务分解为一系列更简单的步骤。使用这种方法,模型在 MNIST 手写数字分类任务中取得了 99.7% 的惊人准确率,证明了其在处理复杂信息时的卓越能力。
6 Stride/步长
步长 2 卷积是一种降维技术,每隔两行或两列进行卷积,减少 feature map 尺寸。此操作降低特征图的维度,在某些应用中很有用。
使用卷积算术加速深度学习,享受高达 85% 的训练速度提升。此创新方法通过利用卷积运算的内在属性,优化网络架构,实现卓越的效率提升。
7 pooling/池化
池化技术,又称下采样,通过数据降维有效防止过拟合。主要有两种池化方式:
* 最大值池化(Max pooling):选取池化区域最大值。
* 平均值池化(Avg pooling):计算池化区域像素平均值。
通常使用 2x2 的池化区域。例如,4x4 图像经过池化后将缩减为 2x2 大小。
8 shape
在tensorflow和pytorch中,shape的结构有所区别
TensorFlow中的输入形状采用四维张量格式: (batch size, height, width, in_channels)。
- batch size:样本数量
- height:图像高度
- width:图像宽度
- in_channels:图像通道数(例如,对于彩色图像为 3)
PyTorch采用(batch_size, in_channels, height, width)的输入形状,该形状适用于神经网络常见的特征图表示。此形状便于深度学习任务的处理,包括图像分类、目标检测和自然语言处理。
上图中,
卷积核维度:[输出通道数, 输入通道数, 核高, 核宽],如 [5, 3, 3, 3],表示该卷积核将从输入图像的 3 个通道中提取特征,输出 5 个通道的特征图。该卷积核大小为 3x3,步长为 1。
卷积核的输入通道数与图像通道数相对应。RGB图像的卷积核输入通道数为3,即处理图像中的红色、绿色和蓝色通道。
图片 引自:https://animatedai.github.io/
9 epoch、batch、Batch Size、step
Epoch:一次完整的训练集遍历。它包含以下步骤:
- 前向传播:将样本输入模型
- 计算损失
- 反向传播
- 参数更新
一个 Epoch 通常包含多个 Step,表示每个样本上的训练操作。
batch:一般翻译为“批次”,表示一次性输入模型的一组样本。在神经网络的训练过程中,训练数据往往是很多的,比如几万条甚至几十万条——如果我们一次性将这上万条的数据全部放入模型,对计算机性能、神经网络模型学习能力等的要求太高了;那么就可以将训练数据划分为多个batch,并随后分批将每个batch的样本一起输入到模型中进行前向传播、损失计算、反向传播和参数更新。但要注意,一般batch这个词用的不多,多数情况大家都是只关注batch size的。
批次大小(Batch Size):指每轮训练中输入模型的图像数量。神经网络训练中,数据被划分为批次,每个批次包含指定数量的样本,由批次大小确定。
Step:模型训练中的关键一步
在神经网络训练中,Step代表模型在单个训练epoch中进行一次参数更新的操作,相当于对一个batch数据的训练。在完成一个batch的训练后,模型的参数会得到更新,以提高其在给定数据集上的准确性。
10 神经网络
卷积处理通过特征提取,为图像分类或预测做好准备。后续需要进行压平操作,将多维数据转换为一维形式,以便输入神经网络。
全连接层(Dense层)是神经网络模型中的关键层,既能担任输入层、输出层,也能作为隐藏层。它以密集的方式连接各个神经元,可有效提取复杂特征,在深度学习中广泛应用。
推荐一个绘制神经网络图的工具:NN-SVG。
11 激活函数
激活函数为神经网络引入非线性,使其能够学习复杂映射关系。
若无激活函数,各层输出仅为线性函数,无论神经网络层数,输出始终为输入的线性组合。
-对此,您有什么看法见解?-
-欢迎在评论区留言探讨和分享。-