一文看懂卷积神经网络CNN的核心

在之前,我总结了关于计算机神经网络与梯度下降的核心,详见下文链接 :
一文看懂计算机神经网络与梯度下降
本文主要会对图像相关的机器学习中最为重要的网络,卷积神经网络作个人的理解分析。

1. 为什么要使用卷积神经网络

在讲述原理之前,我们先来解释为什么我们在图像及视频等等领域的机器学习中要使用CNN。我们都知道,使用多层感知器,有隐藏层的深度神经网络可以帮助我们解决分类,聚合,回归问题。但当我们的输入输出转变为高维度的数据,例如图片时,不可避免地要面临神经元过多,参数量过大的问题。假设我们使用一张720*480的图片作为输入,一张图片对应的参数量就已经达到了345600个,如果我们单纯地将数据压为一维向量并继续使用全连接的神经网络,那不可避免的会极大增加运算成本,降低模型的效率,显然是不科学的。同样的,对于图像而言,如果说像素点的灰度值或RGB值可以对应我们在一维数据中使用的数值,那么图像的空间性在我们将其转变为一维后实际上是被抛弃了,这会导致我们忽略了图像局部形态所包含的信息,使得一些非常轻微的平移旋转对结果产生翻天覆地的变化,这是我们不能容忍的。对于我们来说,两个图片中不同位置的物体所包含的含义应当是一致的,即只应当考虑图片的相对位置而非绝对位置。
在接下来的部分,我会着重阐述卷积神经网络的原理,其中包含一些个人的看法理解。

2. 图像处理中的卷积核

要想理解卷积神经网络的运作,首先必须理解图像处理中卷积的含义。需要注意的是,虽然卷积神经网络中有卷积二字,但是其实他与传统意义上数学定义的卷积是有区别的。更为准确的叫法应当称之为协相关神经网络,而非卷积神经网络。如下图所示,我们以一个常见的3*3的卷积核为例,目标像素点对应的值由其周围对应的原像素点和卷积核计算协相关得来。
在这里插入图片描述
由上图我们不难发现,经过卷积后的目标图像中的每一个像素点都对应了原图像中的局部特征,使用不同的卷积核,就可以从原图像中提取出不一样的局部特征了。计算目标图像的方式,是将卷积核在原图像上滑动,与各个部分的图像分别计算卷积直到遍历全部的原图像。
h n ( i , j ) = ( h n − 1 ∗ ω k ) ( i , j ) = ∑ n = − d − 1 2 d − 1 2 ∑ m = − d − 1 2 d − 1 2 h n − 1 ( i + n , j + m ) ∗ ω ( n , m ) h^n(i,j) = (h^{n-1}*\omega_k)(i,j) = \sum^{\frac{d-1}{2}}_{n=-\frac{d-1}{2}}\sum^{\frac{d-1}{2}}_{m=-\frac{d-1}{2}}h^{n-1}(i+n,j+m) * \omega(n,m) hn(i,j)=(hn1ωk)(i,j)=n=2d12d1m=2d12d1hn1(i+n,j+m)ω(n,m)
上式就是图像处理中使用卷积核进行卷积运算的数学定义,其中 h n h^n hn 是计算得出的目标图像, h n − 1 h^{n-1} hn1 对应原图像, ω \omega ω 就是用于计算的卷积核, d d d 是卷积核的大小。

更多有关图像处理中卷积的基础,可以参考以下链接中的文章 :
数字图像处理中滤波和卷积操作详细说明

3. 卷积神经网络原理

在理解了卷积神经网络中"卷积"的运算方式,我们接下来就来看看卷积神经网络的计算原理。输入输出的维度在理解卷积神经网络的过程中至关重要。

我们日常生活中常处理的图像按照他们的通道区分往往可以分为两大类,单通道的灰度图像以及三通道的RGB图像。下图就给出了一个针对三通道RGB图像的单层卷积神经网络的运算,我们就以下图为例,来理解卷积神经网络中隐藏层各个神经元以及权重的计算。首先,输入是 28 ∗ 28 ∗ 3 28*28*3 28283的RGB图,其中3分别代表RGB三个通道。我们这里只使用了一个 5 ∗ 5 5*5 55的卷积核。我们对每一个通道分别计算卷积,并将结果相加,就得到了一个包含 24 ∗ 24 24*24 2424个神经元的隐藏层。需要注意的是,每一个得出的隐藏层都共用一个卷积核中的权重,例如下图中,隐藏层 h 1 n h^n_1 h1n 共用同一个权重矩阵(卷积核) ω 1 n \omega^n_1 ω1n。通过这样的操作,我们就提取出了由这个卷积核描述的特征。

在这里插入图片描述
接着,如果我们使用不止一个卷积核,那显而易见的,就可以提取出图像中不同的特征了。因此,计算得出的隐藏层的层数,与选择使用的卷积核的个数是一致的。
在这里插入图片描述
综上所述,我们可以通过不同的卷积核来提取出图像中的不同特征。而我们使用卷积神经网络的过程,实际上是通过训练来确定各个卷积核的权重,从而提取出最适合的图像特征。使用不同长度大小的卷积核,在训练卷积神经网络的过程中,可以帮助我们提取出最优的特征来组成feature maps。之后再结合全连接神经网络来完成相关的图像分类聚合问题。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络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 ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值