首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

卷积神经网络(CNN)的变革力量:解开图像识别的秘密

卷积神经网络(CNN)基础知识整理

0写在前面

深入探索卷积神经网络:

通过视频和文章的深入研究,我们精简并整理了核心知识。感谢关注转发!

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 激活函数

激活函数为神经网络引入非线性,使其能够学习复杂映射关系。

若无激活函数,各层输出仅为线性函数,无论神经网络层数,输出始终为输入的线性组合。

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O6E1gDN7g1VdGefTy6pZGy_w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券