一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)

作者&投稿:毛菲 (若有异议请与网页底部的电邮联系)
~ 在 CNN 出现之前,图像对于人工智能来说是一个难题,有2个原因:

图像需要处理的数据量太大,导致成本很高,效率很低

图像在数字化的过程中很难保留原有的特征,导致图像处理的准确率不高

下面就详细说明一下这2个问题:

图像是由像素构成的,每个像素又是由颜色构成的。

现在随随便便一张图片都是 1000×1000 像素以上的, 每个像素都有RGB 3个参数来表示颜色信息。

假如我们处理一张 1000×1000 像素的图片,我们就需要处理3百万个参数!

1000×1000×3=3,000,000

这么大量的数据处理起来是非常消耗资源的,而且这只是一张不算太大的图片!

卷积神经网络 – CNN 解决的第一个问题就是「将复杂问题简化」,把大量参数降维成少量参数,再做处理。

更重要的是:我们在大部分场景下,降维并不会影响结果。比如1000像素的图片缩小成200像素,并不影响肉眼认出来图片中是一只猫还是一只狗,机器也是如此。

图片数字化的传统方式我们简化一下,就类似下图的过程:

假如有圆形是1,没有圆形是0,那么圆形的位置不同就会产生完全不同的数据表达。但是从视觉的角度来看, 图像的内容(本质)并没有发生变化,只是位置发生了变化 。

所以当我们移动图像中的物体,用传统的方式的得出来的参数会差异很大!这是不符合图像处理的要求的。

而 CNN 解决了这个问题,他用类似视觉的方式保留了图像的特征,当图像做翻转,旋转或者变换位置时,它也能有效的识别出来是类似的图像。

那么卷积神经网络是如何实现的呢?在我们了解 CNN 原理之前,先来看看人类的视觉原理是什么?

深度学习的许多研究成果,离不开对大脑认知原理的研究,尤其是视觉原理的研究。

1981 年的诺贝尔医学奖,颁发给了 David Hubel(出生于加拿大的美国神经生物学家) 和TorstenWiesel,以及 Roger Sperry。前两位的主要贡献,是“ 发现了视觉系统的信息处理 ”,可视皮层是分级的。

人类的视觉原理如下:从原始信号摄入开始(瞳孔摄入像素 Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定,眼前的物体的形状,是圆形的),然后进一步抽象(大脑进一步判定该物体是只气球)。下面是人脑进行人脸识别的一个示例:

对于不同的物体,人类视觉也是通过这样逐层分级,来进行认知的:

我们可以看到,在最底层特征基本上是类似的,就是各种边缘,越往上,越能提取出此类物体的一些特征(轮子、眼睛、躯干等),到最上层,不同的高级特征最终组合成相应的图像,从而能够让人类准确的区分不同的物体。

那么我们可以很自然的想到:可以不可以模仿人类大脑的这个特点,构造多层的神经网络,较低层的识别初级的图像特征,若干底层特征组成更上一层特征,最终通过多个层级的组合,最终在顶层做出分类呢?

答案是肯定的,这也是许多深度学习算法(包括CNN)的灵感来源。

典型的 CNN 由3个部分构成:

卷积层

池化层

全连接层

如果简单来描述的话:

卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。

下面的原理解释为了通俗易懂,忽略了很多技术细节,如果大家对详细的原理感兴趣,可以看这个视频《 卷积神经网络基础 》。

卷积层的运算过程如下图,用一个卷积核扫完整张图片:

这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。

在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。以下就是25种不同的卷积核的示例:

总结:卷积层的通过卷积核的过滤提取出图片中局部的特征,跟上面提到的人类视觉的特征提取类似。

池化层简单说就是下采样,他可以大大降低数据的维度。其过程如下:

上图中,我们可以看到,原始图片是20×20的,我们对其进行下采样,采样窗口为10×10,最终将其下采样成为一个2×2大小的特征图。

之所以这么做的原因,是因为即使做完了卷积,图像仍然很大(因为卷积核比较小),所以为了降低数据维度,就进行下采样。

总结:池化层相比卷积层可以更有效的降低数据维度,这么做不但可以大大减少运算量,还可以有效的避免过拟合。

这个部分就是最后一步了,经过卷积层和池化层处理过的数据输入到全连接层,得到最终想要的结果。

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

典型的 CNN 并非只是上面提到的3层结构,而是多层结构,例如 LeNet-5 的结构就如下图所示:

卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层

在了解了 CNN 的基本原理后,我们重点说一下 CNN 的实际应用有哪些。

卷积神经网络 – CNN 很擅长处理图像。而视频是图像的叠加,所以同样擅长处理视频内容。下面给大家列一些比较成熟的应用�:

图像分类、检索

图像分类是比较基础的应用,他可以节省大量的人工成本,将图像进行有效的分类。对于一些特定领域的图片,分类的准确率可以达到 95%+,已经算是一个可用性很高的应用了。

典型场景:图像搜索…

目标定位检测

可以在图像中定位目标,并确定目标的位置及大小。

典型场景:自动驾驶、安防、医疗…

目标分割

简单理解就是一个像素级的分类。

他可以对前景和背景进行像素级的区分、再高级一点还可以识别出目标并且对目标进行分类。

典型场景:美图秀秀、视频后期加工、图像生成…

人脸识别

人脸识别已经是一个非常普及的应用了,在很多领域都有广泛的应用。

典型场景:安防、金融、生活…

骨骼识别

骨骼识别是可以识别身体的关键骨骼,以及追踪骨骼的动作。

典型场景:安防、电影、图像视频生成、游戏…

今天我们介绍了 CNN 的价值、基本原理和应用场景,简单总结如下:

CNN 的价值:

能够将大数据量的图片有效的降维成小数据量(并不影响结果)

能够保留图片的特征,类似人类的视觉原理

CNN 的基本原理:

卷积层 – 主要作用是保留图片的特征

池化层 – 主要作用是把数据降维,可以有效的避免过拟合

全连接层 – 根据不同任务输出我们想要的结果

CNN 的实际应用:

图片分类、检索

目标定位检测

目标分割

人脸识别

骨骼识别

本文首发在 easyAI - 人工智能知识库

《 一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用) 》


卷积神经网络(CNN)
深度探索:卷积神经网络的奥秘与应用 卷积神经网络(CNN),作为深度学习中的明珠,是图像、语音和自然语言处理领域的关键工具。它以独特的结构和功能,为我们揭示了从原始数据中提取特征的高效路径。CNN的核心结构由输入层、卷积层和预处理环节构成,每一层都肩负着特定的使命。卷积层:特征提取的魔术师 ...

神经网络包括卷积层,还包括哪些层
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。[1] 它包括卷积层(alternating convolutional layer)和池层(pooling layer)。卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60...

深度学习之卷积神经网络经典模型
2012年Imagenet图像识别大赛中,Alext提出的alexnet网络模型一鸣惊人,引爆了神经网络的应用热潮,并且赢得了2012届图像识别大赛的冠军,这也使得卷积神经网络真正意义上成为图像处理上的核心算法。上文介绍的LeNet-5出现在上个世纪,虽然是经典,但是迫于种种复杂的现实场景限制,只能在一些领域应用。不过,随着SVM等手工设计的...

神经网络卷积层的作用是什么?
卷积层的主要作用如下:卷积层是卷积神经网络(ConvolutionalNeuralNetwork,CNN)中的核心组成部分,其主要作用是从输入数据中提取特征并进行特征映射。1.特征提取:卷积层通过卷积运算从输入数据(如图像)中提取局部特征。卷积运算涉及一个小的可训练的卷积核(也称为滤波器)在输入数据上滑动,计算每个位置...

如何直观解释卷积神经网络的工作原理
rbf神经网络即径向基函数神经网络(Radical Basis Function)。径向基函数神经网络是一种高效的前馈式神经网络,它具有其他前向网络所不具有的最佳逼近性能和全局最优特性,并且结构简单,训练速度快。同时,它也是一种可以广泛应用于模式识别、非线性函数逼近等领域的神经网络模型。

cnn是什么意思
什么是CNN CNN(卷积神经网络)是一种深度学习技术,它是一种计算机视觉技术,可以让计算机“看”到图像中的特征。它是一种深度学习技术,可以处理复杂的图像,比如视频,图像和文本。CNN的基本原理 CNN是一种特殊的前馈神经网络,它使用卷积层来提取图像的特征,以及池化层来减少数据量。它的结构包括输入...

深度学习中的卷积网络到底怎么回事
这两个概念实际上是互相交叉的,例如,卷积神经网络(Convolutionalneuralnetworks,简称CNNs)就是一种深度的监督学习下的机器学习模型,而深度置信网(DeepBeliefNets,简称DBNs)就是一种无监督学习下的机器学习模型。深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度...

cnn有哪几种
CNN有哪几种 CNN是指卷积神经网络(Convolutional Neural Network),是人工智能领域中一个重要的算法。它已经被应用于各种领域,例如计算机视觉、语音识别和自然语言处理等。那么,CNN有哪几种呢?本文将为您详细介绍。1. 常规的卷积神经网络 常规的卷积神经网络是指由若干个卷积层、池化层和全连接层组成的...

目标检测算法图解:一文看懂RCNN系列算法
下面从最简单的深度学习方法开始,一种广泛用于检测图像中的方法——卷积神经网络(CNN)。如果读者对CNN算法有点生疏,建议 阅读此文 。 这里仅简要总结一下CNN的内部运作方式: 首先将图像作为输入传递到网络,然后通过各种卷积和池化层处理,最后以对象类别的形式获得输出。 对于每个输入图像,会得到一个相应的类别作为输出...

一文读懂神经网络
人工智能背后的核心技术是深度神经网络(Deep Neural Network),大概是一年前这个时候,我正在回老家的高铁上学习 3Blue1Brown 的 Neural Network 系列视频课程,短短 4 集 60 多分钟的时间,就把神经网络从 High Level 到推导细节说得清清楚楚,当时的我除了获得新知的兴奋之外,还有一点新的认知,算是给头脑中的革命性...

稻城县19757756046: 什么是卷积神经网络?为什么它们很重要 -
钱屈巴利: 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现.[1] 它包括卷积层(alternating convolutional layer)和池层(pooling layer). ...

稻城县19757756046: 假设面试官什么都不懂,详细解释cnn的原理 -
钱屈巴利: 卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法.20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网...

稻城县19757756046: 层有什么用处,以及是如何实现的 -
钱屈巴利: 1.卷积神经网络简介 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现.[1] 它包括卷积层(alternating convolutional layer)和池...

稻城县19757756046: 介绍卷积神经网络cnn和 dnn 有什么区别 -
钱屈巴利: CNN是指卷积神经网络吗? 神经元就是指一个带权重W和偏置B,以及激活方程f的一个单元 输入I和输出O的关系是 O = f(WI+B)

稻城县19757756046: 神经网络(深度学习)的几个基础概念 -
钱屈巴利: 从广义上说深度学习的网络结构也是多层神经网络的一种.传统意义上的多层神经网络是只有输入层、隐藏层、输出层.其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适.而深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的.具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级.输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层简单来说,原来多层神经网络做的步骤是:特征映射到值.特征是人工挑选.深度学习做的步骤是 信号->特征->值. 特征是由网络自己选择.

稻城县19757756046: 如何理解卷积神经网络中的权值共享 -
钱屈巴利: 简单谈谈自己的理解吧.池化:把很多数据用最大值或者平均值代替.目的是降低数据量.卷积:把数据通过一个卷积核变化成特征,便于后面的分离.计算方式与信号系统中的相同.

稻城县19757756046: 如何计算卷积神经网络中接受野尺寸 -
钱屈巴利: #Compute input size that leads to a 1x1 output size, among other things# [filter size, stride, padding]convnet =[[11,4,0],[3,2,0],[5,1,2],[3,2,0],[3,1,1],[3,1,1],[3,1,1],[3,2,0],[6,1,0]] layer_name = ['conv1','pool1','conv2','pool2','conv3','conv4','conv5','pool5...

稻城县19757756046: “深度学习”和“多层神经网络”的区别 -
钱屈巴利: “深度学习”和“多层神经网络”不存在区别关系.深度学习的网络结构是多层神经网络的一种.深度学习中最著名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的.广义...

稻城县19757756046: 卷积神经网络为什么最后接一个全连接层 -
钱屈巴利: 在常见的卷积神经网络的最后往往会出现一两层全连接层,全连接一般会把卷积输出的二维特征图(feature map)转化成(N*1)一维的一个向量 全连接的目的是什么呢?因为传统的端到到的卷积神经网络的输出都是分类(一般都是一个概率值...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网