卷积神经网络(Convolutional Neural Network,CNN)是一种在计算机视觉领域取得了巨大成功的深度学习模型。它们的设计灵感来自于生物学中的视觉系统,旨在模拟人类视觉处理的方式。在过去的几年中,CNN已经在图像识别、目标检测、图像生成和许多其他领域取得了显著的进展,成为了计算机视觉和深度学习研究的重要组成部分。在了解卷积神经网络前,还不知道什么是神经网络的同学可以看我的这篇博客: 深入了解神经网络:构建人工智能的基石-CSDN博客

一、图像原理

在了解卷积神经网络前,我们先来看看图像的原理:

图像在计算机中是一堆按顺序排列的数字, 数值为0到255 0 表示最暗, 255 表示最亮。 如下图:

上图是只有黑白颜色的灰度图,而更普遍的图片表达方式是 RGB 颜色模型,即红、绿、蓝三原色的色光以不同的比例相加,以产生多种多样的色光。 RGB 颜色模型中,单个矩阵就扩展成了有序排列的三个矩阵,也可以用三维张量去理解。

其中的 每一个矩阵 又叫这个图片的 一个channel(通道),宽, 高, 深 来描述。

二、为什么要学习卷积神经网络?

在传统神经网络中,我们要识别下图 红色框 中的图像时,我们很可能识别不出来,因为这六张图的 位置都不通,计算机 无法分辨 出他们其实是一种形状或物体。

传统神经网络 原理如下图:

我们希望 一个物体不管在画面左侧还是右侧,都会被识别为同一物体,这一特点就是不变性。 为了实现平移不变性, 卷积神经网络(CNN) 等深度学习模型在 卷积层中使用了卷积操作 ,这个操作可以捕捉到图像中的局部特征而不受其位置的影响。

三、什么是卷积?

在卷积神经网络中,卷积操作是指将 一个可移动的小窗口 (称为数据窗口,如下图绿色矩形)与图像进行 逐元素相乘然后相加 的操作。这个小窗口其实是 一组固定的权重 ,它可以被看作是一个特定的 滤波器 (filter) 卷积核 。这个操作的名称“卷积”,源自于这种元素级相乘和求和的过程。这一操作是卷积神经网络名字的来源。

上图这个绿色小窗就是数据窗口。简而言之, 卷积操作就是用一个可移动的小窗口来提取图像中的特征 ,这个小窗口包含了一组特定的权重,通过与图像的不同位置进行卷积操作,网络能够学习并捕捉到不同特征的信息。文字解释可能太难懂,下面直接上动图:

这张图中 蓝色的框 就是指一个 数据窗口 红色框为卷积核 (滤波器),最后得到的绿色方形就是卷积的结果( 数据窗口中的数据与卷积核逐个元素相乘再求和

一张图带你了解卷积计算过程:

卷积需要注意哪些问题?

a. 步长stride :每次滑动的位置步长。

b. 卷积核的个数 :决定输出的 depth 厚度。同时代表卷积核的个数。

c. 填充值zero-padding :在外围边缘补充若干圈 0 ,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

以上图为例,那么:

数据窗口每次移动两个步长取 的局部数据,即 stride=2 两个神经元,即 depth=2 ,意味着有两个滤波器。 zero-padding=1

为什么要进行数据填充:

假设有一个大小为 4x4 的输入图像:

[[1, 2, 3, 4],
 [5, 6, 7, 8], 
[9, 10, 11, 12], 
[13, 14, 15, 16]]

现在,我们要应用一个 3x3 的卷积核进行卷积操作,步幅(stride)为 1,且要使用填充(padding)为 1。如果不使用填充, 卷积核的中心将无法对齐到输入图像的边缘 ,导致 输出特征图尺寸变小 。假设我们使用步幅(stride)为 1 进行卷积,那么在不使用填充的情况下,输出特征图的尺寸将是 2x2。

所以我们要在它的周围填充一圈0,填充为 1 意味着在输入图像的周围添加一圈零值。添加填充后的图像:

[[0, 0, 0, 0, 0, 0], 
[0, 1, 2, 3, 4, 0], 
[0, 5, 6, 7, 8, 0], 
[0, 9, 10, 11, 12, 0], 
[0, 13, 14, 15, 16, 0], 
[0, 0, 0, 0, 0, 0]]

现在,我们将 3x3 的卷积核应用于这个填充后的输入图像,计算卷积结果,得到大小不变的特征图。

数据填充的主要目的是 确保卷积核能够覆盖输入图像的边缘区域,同时保持输出特征图的大小 。这对于在CNN中保留空间信息和有效处理图像边缘信息非常重要。

卷积神经网络的模型是什么样的?

上面红框框起来的部分便可以 理解为一个滤波器 ,即带着 一组固定权重的神经元 多个滤波器叠加便成了卷积层。

四、卷积神经网络的构造

1 输入层

输入层接收原始图像数据。图像通常由三个颜色通道(红、绿、蓝)组成,形成一个二维矩阵,表示像素的强度值。

2 卷积和激活

卷积层将输入图像与卷积核进行卷积操作。然后,通过应用激活函数(如ReLU)来引入非线性。这一步使网络能够学习复杂的特征。

3 池化层

池化层通过减小特征图的大小来减少计算复杂性。它通过选择池化窗口内的最大值或平均值来实现。这有助于提取最重要的特征。

4 多层堆叠

CNN通常由多个卷积和池化层的堆叠组成,以逐渐提取更高级别的特征。深层次的特征可以表示更复杂的模式。

5 全连接和输出

最后,全连接层将提取的特征映射转化为网络的最终输出。这可以是一个分类标签、回归值或其他任务的结果。

形象的过程如下图:

展开形式                                                                未展开形式

五、图片经过卷积后的样子

与人眼观看事物原理相似,卷积神经网络可以看到事物的轮廓

在卷积神经网络中,卷积操作是指将一个可移动的小窗口(称为数据窗口,如下图绿色矩形)与图像进行逐元素相乘然后相加的操作。这个小窗口其实是一组固定的权重,它可以被看作是一个特定的滤波器(filter)或卷积核。这个操作的名称“卷积”,源自于这种元素级相乘和求和的过程。这一操作是卷积神经网络名字的来源。上图这个绿色小窗就是数据窗口。简而言之,卷积操作就是用一个可移动的小窗口来提取图像中的特征。
本文来自csdn,文章先来 卷积神经网络 和全连接 神经网络 对比,接着让我们直观理解卷积,卷积计算流程,结合案例进行相关的介绍。 卷积神经网络 (ConvolutionalNeuralNetwork, CNN )是一种前馈 神经网络 ,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutionallayer)和池化层(poolinglayer)。对比: 卷积神经网络 、全连接 神经网络 左图:全连接 神经网络 (平
文章转自:https://blog.csdn.net/jiaoyangwm/article/details/80011656 1、 卷积神经网络 的概念2、 发展过程3、如何利用 CNN 实现图像识别的任务4、 CNN 的特征5、 CNN 的求解6、 卷积神经网络 注意事项7、 CNN 发展综合介绍8、LeNet-5结构分析9、AlexNet10、ZFNet10.1 意义10.2 实现方法10.3 训练细节10.4 卷积网络可视化10.6 总结 11、VGGNet11.1 结构11.2 网络特点:11.3 分
1. 卷积神经网络 的概念 上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是 卷积神经网络 的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其能够在即使物体有位移或轻微变形的时候,也能完成识别。 卷积神经网络 是多层感知机(MLP)的变种,由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来,视觉皮层的
文章目录人类视觉 原理 神经网络 卷积神经网络 CNN )数据输入层卷积计算层卷积的计算参数共享机制激励层池化层全连接层 CNN 优缺点 卷积神经网络 的常用框架 人类视觉 原理 深度学习 的许多研究成果,离不开对大脑认知 原理 的研究,尤其是视觉 原理 的研究。 1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。...
本文来自于腾讯云,全文阐述了 卷积神经网络 的基本结构和 原理 ,希望对您的学习有帮助。先明确一点就是,DeepLearning是全部 深度学习 算法的总称, CNN 深度学习 算法在图像处理领域的一个应用。第一点,在学习Deeplearning和 CNN 之前,总以为它们是很了不得的知识,总以为它们能解决很多问题,学习了之后,才知道它们不过与其他机器学习算法如svm等相似,仍然可以把它当做一个分类器,仍然可以像使用一个黑盒子那样使用它。第二点,DeepLearning强大的地方就是可以利用网络中间某一层的输出当做是数据的另一种表达,从而可以将其认为是经过网络学习到的特征。基于该特征,可以进行进一步的相似度比较等
1.背景介绍 卷积神经网络 (Convolutional Neural Networks,简称 CNN )是一种 深度学习 模型,主要应用于图像和语音处理领域。它的核心思想是通过卷积层和池化层来提取输入数据的特征,从而实现图像和语音的高效处理。 CNN 的发展历程可以分为以下几个阶段: 1980年代,LeCun等人开始研究 卷积神经网络 ,并提出了基本的 卷积神经网络 结构。 2006年,LeCun等人在图像识别...
卷积神经网络 CNN )是一类包含卷积计算的前馈 神经网络 ,专门用于图像处理等任务。 CNN 的设计基于图像任务中的平移不变性,也就是说图像中的对象在不同位置具有相同的含义。 CNN 在图像处理领域得到了广泛应用,它能够有效处理高维的图像数据(如RGB矩阵表示),避免了传统的前馈网络需要大量输入神经元的问题。 使用 CNN 进行图像识别基本流程如下: 1. 数据准备:收集并标注大量的图像数据集,将其划分为训练集和测试集。 2. 网络构建:使用 CNN 的核心概念,如卷积层(Conv2D)、池化层(MaxPool2D)、展平层(Flatten)和全连接层(Dense),构建一个适合图像识别任务的网络结构。 3. 训练模型:使用训练集的图像数据作为输入,通过反向传播算法和优化器(如Adam)对网络进行训练,使其能够学习图像中的特征和模式。 4. 评估与调优:使用测试集的图像数据对训练好的模型进行评估,并根据评估结果进行调优,如调整网络参数、增加数据量等。 5. 应用模型:在实际应用中,使用训练好的模型对新的图像数据进行识别,实现图像分类、目标检测等任务。 综上所述, CNN 卷积神经网络 )是一种用于图像识别的 神经网络 模型,通过对图像进行卷积计算和特征提取,能够有效地进行图像分类和目标检测等任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [基于 CNN 的图像识别(Tensorflow)](https://blog.csdn.net/first_bug/article/details/124938432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [ 一文 弄懂 CNN 及图像识别](https://blog.csdn.net/m0_61899108/article/details/122401122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]