导航:首页 > 网络营销 > 神经网络哪些层可以保存纹理信息

神经网络哪些层可以保存纹理信息

发布时间:2023-06-29 05:07:54

⑴ 用卷积神经网络提取图像特征

前面讲到的都是基于知识的图像特征提取方法,除此之外还有另一条技术路线——基于深度学习的图像特征提取。

人在认知图像时是分层抽象的,首先理解的是颜色和亮度,然后是边缘、角点、直线等局部细节特征,接下来是纹理、几何形状等更复杂的信息和结构,最后形成整个物体的概念。
视觉神经科学(Visual Neuroscience)对于视觉机理的研究验证了这一结论,动物大脑的视觉皮层具有分层结构。眼睛将看到的景象成像在视网膜上,视网膜把光学信号转换成电信号,传递到大脑的视觉皮层(Visual cortex),视觉皮层是大脑中负责处理视觉信号的部分。1959年,David和Wiesel进行了一次实验,他们在猫的大脑初级视觉皮层内插入电极,在猫的眼前展示各种形状、空间位置、角度的光带,然后测量猫大脑神经元放出的电信号。实验发现,不同的宏盯神经元对各种空间位置和方向偏好不同。这一成果后来让他们获得了诺贝尔奖。
目前已经证明,视觉皮层具有层次结构。从视网膜传来的信号首先到达初级视觉皮层(primary visual cortex),即V1皮层。V1皮层简单神经元对一些细节、特定方向的图像信号敏感。V1皮层处理之后,将信号传导到V2皮层。V2皮层将边缘和轮廓信息表示成简单形状,然后由V4皮层中的神经元进行处理,它颜色信息敏感。复杂物体最终在IT皮层(inferior temporal cortex)被表示出来。

卷积神经网络可以看成是上面这种机制的简单模仿。它由多个卷积层构成,每个卷积层包含多个卷积核,用这些卷积核从左向右、从上往下依次扫描整个图像,得到称为特征图(feature map)的输出数据。网络前面的卷积层捕捉图像局部、细节信息,有小的感受野,即输出图像的每个像素只利用输入图像很小的一个范围。后面的卷积层感受野逐层加大,用于捕获图猜绝岩像更复杂,更抽象的信息。经过多个卷积层的运算,最后得到图像在各个不同尺度的抽象表示。

顾名思义,卷积层由一组卷积单元(又称"卷积核")组成,可以把这些卷积单元理解为过滤器,每个过滤器都会提取一种特定的特征,方法参见 图像卷积 。

卷积层的过滤器负责从图像中查找规律,过滤器越多则参数越多,这意味着卷积层的维度可能很穗御庞大。我们需要一种方法来降低维数,这就是卷积网络中的池化层(又名"下采样层")所扮的角色。

池化主要有3种形式:一般池化,重叠池化和金字塔池化。

池化窗口的尺寸为n*n,一般情况下池化窗口都是正方形的。步长(stride)等于n。此时池化窗口之间是没有重叠的。对于超出数字矩阵范围的,只计算范围内的或者范围外的用0填充再计算。又可以分为最大值池化,均值池化。

池化窗口范围内的最大值作为采样的输出值。
假如输入是一个4×4矩阵,执行最大池化是一个2×2矩阵,每次滑动2步。执行过程非常简单,把4×4的输入拆分成不同的区域,把这些区域用不同颜色来标记。对于2×2的输出,输出的每个元素都是其对应颜色区域中的最大元素值。

普通均值池化就是将池化窗口范围内的平均值作为采样的输出值。这种池化不如最大池化常用。

池化窗口之间有重叠。也就是步长大于等于1小于n,计算和一般池化是一样的。

空间金字塔池化(Spatial Pyramid Pooling,简称SPP)可以将尺寸大小不一样的图片转换为同样的尺寸。
SPP首先把图片看成1块,对这1块进行最大值池化,得到1个值,分成4块,对这4块分别进行最大值池化,得到4个值;分成16块,对这16块分别进行最大值池化,得到16个值,以此类推。这样就可以保证对于不同尺寸的图片而言,最终得到的值的个数是一样的。因为是最大值池化,超出范围的用不用0填充不会影响结果。

直接对原始图像做卷积,会存在两个问题。一是每次卷积后图像(特征图)都会缩小,这样卷不了几次就没了; 二是相比于图片中间的点,图片边缘的点在卷积中被计算的次数很少,导致边缘的信息易于丢失。
为了解决这个问题,我们可以采用填充的方法。我们每次卷积前,先给图片周围都补一圈空白,让卷积之后图片跟原来一样大,同时,原来的边缘也被计算了更多次。

比如,我们把(8,8)的图片给补成(10,10),那么经过(3,3)的filter之后,就是(8,8),没有变。
能够保证输入的数据和输出的数据具有相同的空间尺寸,假设零填充个数为p,卷积核为f * f,卷积核滑动步长为s,则p应设置为

假设原始输入图像为m * m,输出图像为n * n,零填充个数为p,卷积核为f * f,卷积核滑动步长为s,则输出尺寸为

假设输入图像为(m,m,d),其中d为图像深度(通道数),卷积核为f * f,卷积核个数为n,则weight个数为

bias个数:

池化层很少使用零填充。假设原始输入图像为m * m,输出图像为n * n,卷积核为f * f,卷积核滑动步长为s,则输出尺寸为

⑵ 理解神经网络卷积层、全连接层

https://zhuanlan.hu.com/p/32472241

卷积神经网络,这玩意儿乍一听像是生物和数学再带点计算机技术混合起来的奇怪东西。奇怪归奇怪,不得不说,卷积神经网络是计算机视觉领域最有影响力的创造之一。

2012年是卷积神经网络崛起之年。这一年,Alex Krizhevsky带着卷积神经网络参加了ImageNet竞赛(其重要程度相当于奥运会)并一鸣惊人,将识别错误率从26%降到了15%,。从那开始,很多公司开始使用深度学习作为他们服务的核心。比如,Facebook在他们的自动标记算法中使用了它,Google在照片搜索中使用了,Amazon在商品推荐中使用,Printerst应用于为他们的家庭饲养服务提供个性化定制,而Instagram应用于他们的搜索引擎。

然而,神经网络最开始也是最多的应用领域是图像处理。那我们就挑这块来聊聊,怎样使用卷积神经网络(下面简称CNN)来进行图像分类。

图像分类是指,向机器输入一张图片,然后机器告诉我们这张图片的类别(一只猫,一条狗等等),或者如果它不确定的话,它会告诉我们属于某个类别的可能性(很可能是条狗但是我不太确定)。对我们人类来说,这件事情简单的不能再简单了,从出生起,我们就可以很快地识别周围的物体是什么。当我们看到一个场景,我们总能快速地识别出所有物体,甚至是下意识的,没有经过有意的思考。但这种能力,机器并不具有。所以我们更加要好好珍惜自己的大脑呀! (:зゝ∠)

电脑和人看到的图片并不相同。当我们输入一张图片时,电脑得到的只是一个数组,记录着像素的信息。数组的大小由图像的清晰度和大小决定。假设我们有一张jpg格式的480 480大小的图片,那么表示它的数组便是480 480*3大小的。数组中所有数字都描述了在那个位置处的像素信息,大小在[0,255]之间。

这些数字对我们来说毫无意义,但这是电脑们可以得到的唯一的信息(也足够了)。抽象而简单的说,我们需要一个接受数组为输入,输出一个数组表示属于各个类别概率的模型。

既然问题我们已经搞明白了,现在我们得想想办法解决它。我们想让电脑做的事情是找出不同图片之间的差别,并可以识别狗狗(举个例子)的特征。

我们人类可以通过一些与众不同的特征来识别图片,比如狗狗的爪子和狗有四条腿。同样地,电脑也可以通过识别更低层次的特征(曲线,直线)来进行图像识别。电脑用卷积层识别这些特征,并通过更多层卷积层结合在一起,就可以像人类一样识别出爪子和腿之类的高层次特征,从而完成任务。这正是CNN所做的事情的大概脉络。下面,我们进行更具体的讨论。

在正式开始之前,我们先来聊聊CNN的背景故事。当你第一次听说卷积神经网络的时候,你可能就会联想到一些与神经学或者生物学有关的东西,不得不说,卷积神经网络还真的与他们有某种关系。

CNN的灵感的确来自大脑中的视觉皮层。视觉皮层某些区域中的神经元只对特定视野区域敏感。1962年,在一个Hubel与Wiesel进行的试验( 视频 )中,这一想法被证实并且拓展了。他们发现,一些独立的神经元只有在特定方向的边界在视野中出现时才会兴奋。比如,一些神经元在水平边出现时兴奋,而另一些只有垂直边出现时才会。并且所有这种类型的神经元都在一个柱状组织中,并且被认为有能力产生视觉。

在一个系统中,一些特定的组件发挥特定的作用(视觉皮层中的神经元寻找各自特定的特征)。这一想法应用于很多机器中,并且也是CNN背后的基本原理。 (译者注:作者没有说清楚。类比到CNN中,应是不同的卷积核寻找图像中不同的特征)

回到主题。

更详细的说,CNN的工作流程是这样的:你把一张图片传递给模型,经过一些卷积层,非线性化(激活函数),池化,以及全连层,最后得到结果。就像我们之前所说的那样,输出可以是单独的一个类型,也可以是一组属于不同类型的概率。现在,最不容易的部分来了:理解各个层的作用。

首先,你要搞清楚的是,什么样的数据输入了卷积层。就像我们之前提到的那样,输入是一个32 × 32 × 3(打个比方)的记录像素值的数组。现在,让我来解释卷积层是什么。解释卷积层最好的方法,是想象一个手电筒照在图片的左上角。让我们假设手电筒的光可以招到一个5 × 5的区域。现在,让我们想象这个手电筒照过了图片的所有区域。在机器学习术语中,这样一个手电筒被称为卷积核(或者说过滤器,神经元) (kernel, filter, neuron) 。而它照到的区域被称为感知域 (receptive field) 。卷积核同样也是一个数组(其中的数被称为权重或者参数)。很重要的一点就是卷积核的深度和输入图像的深度是一样的(这保证可它能正常工作),所以这里卷积核的大小是5 × 5 × 3。

现在,让我们拿卷积核的初始位置作为例子,它应该在图像的左上角。当卷积核扫描它的感知域(也就是这张图左上角5 × 5 × 3的区域)的时候,它会将自己保存的权重与图像中的像素值相乘(或者说,矩阵元素各自相乘,注意与矩阵乘法区分),所得的积会相加在一起(在这个位置,卷积核会得到5 × 5 × 3 = 75个积)。现在你得到了一个数字。然而,这个数字只表示了卷积核在图像左上角的情况。现在,我们重复这一过程,让卷积核扫描完整张图片,(下一步应该往右移动一格,再下一步就再往右一格,以此类推),每一个不同的位置都产生了一个数字。当扫描完整张图片以后,你会得到一组新的28 × 28 × 1的数。 (译者注:(32 - 5 + 1) × (32 - 5 + 1) × 1) 。这组数,我们称为激活图或者特征图 (activation map or feature map) 。

如果增加卷积核的数目,比如,我们现在有两个卷积核,那么我们就会得到一个28 × 28 × 2的数组。通过使用更多的卷积核,我们可以更好的保留数据的空间尺寸。

在数学层面上说,这就是卷积层所做的事情。

让我们来谈谈,从更高角度来说,卷积在做什么。每一个卷积核都可以被看做特征识别器。我所说的特征,是指直线、简单的颜色、曲线之类的东西。这些都是所有图片共有的特点。拿一个7 × 7 × 3的卷积核作为例子,它的作用是识别一种曲线。(在这一章节,简单起见,我们忽略卷积核的深度,只考虑第一层的情况)。作为一个曲线识别器,这个卷积核的结构中,曲线区域内的数字更大。(记住,卷积核是一个数组)

现在我们来直观的看看这个。举个例子,假设我们要把这张图片分类。让我们把我们手头的这个卷积核放在图片的左上角。

记住,我们要做的事情是把卷积核中的权重和输入图片中的像素值相乘。

(译者注:图中最下方应是由于很多都是0所以把0略过不写了。)

基本上,如果输入图像中有与卷积核代表的形状很相似的图形,那么所有乘积的和会很大。现在我们来看看,如果我们移动了卷积核呢?

可以看到,得到的值小多了!这是因为感知域中没有与卷积核表示的相一致的形状。还记得吗,卷积层的输出是一张激活图。所以,在单卷积核卷积的简单情况下,假设卷积核是一个曲线识别器,那么所得的激活图会显示出哪些地方最有可能有曲线。在这个例子中,我们所得激活图的左上角的值为6600。这样大的数字表明很有可能这片区域中有一些曲线,从而导致了卷积核的激活 (译者注:也就是产生了很大的数值。) 而激活图中右上角的数值是0,因为那里没有曲线来让卷积核激活(简单来说就是输入图像的那片区域没有曲线)。

但请记住,这只是一个卷积核的情况,只有一个找出向右弯曲的曲线的卷积核。我们可以添加其他卷积核,比如识别向左弯曲的曲线的。卷积核越多,激活图的深度就越深,我们得到的关于输入图像的信息就越多。

在传统的CNN结构中,还会有其他层穿插在卷积层之间。我强烈建议有兴趣的人去阅览并理解他们。但总的来说,他们提供了非线性化,保留了数据的维度,有助于提升网络的稳定度并且抑制过拟合。一个经典的CNN结构是这样的:

网络的最后一层很重要,我们稍后会讲到它。

现在,然我们回头看看我们已经学到了什么。

我们讲到了第一层卷积层的卷积核的目的是识别特征,他们识别像曲线和边这样的低层次特征。但可以想象,如果想预测一个图片的类别,必须让网络有能力识别高层次的特征,例如手、爪子或者耳朵。让我们想想网络第一层的输出是什么。假设我们有5个5 × 5 × 3的卷积核,输入图像是32 × 32 × 3的,那么我们会得到一个28 × 28 × 5的数组。来到第二层卷积层,第一层的输出便成了第二层的输入。这有些难以可视化。第一层的输入是原始图片,可第二层的输入只是第一层产生的激活图,激活图的每一层都表示了低层次特征的出现位置。如果用一些卷积核处理它,得到的会是表示高层次特征出现的激活图。这些特征的类型可能是半圆(曲线和边的组合)或者矩形(四条边的组合)。随着卷积层的增多,到最后,你可能会得到可以识别手写字迹、粉色物体等等的卷积核。

如果,你想知道更多关于可视化卷积核的信息,可以看这篇 研究报告 ,以及这个 视频 。

还有一件事情很有趣,当网络越来越深,卷积核会有越来越大的相对于输入图像的感知域。这意味着他们有能力考虑来自输入图像的更大范围的信息(或者说,他们对一片更大的像素区域负责)。

到目前为止,我们已经识别出了那些高层次的特征吧。网络最后的画龙点睛之笔是全连层。

简单地说,这一层接受输入(来自卷积层,池化层或者激活函数都可以),并输出一个N维向量,其中,N是所有有可能的类别的总数。例如,如果你想写一个识别数字的程序,那么N就是10,因为总共有10个数字。N维向量中的每一个数字都代表了属于某个类别的概率。打个比方,如果你得到了[0 0.1 0.1 0.75 0 0 0 0 0 0.05],这代表着这张图片是1的概率是10%,是2的概率是10%,是3的概率是75%,是9的概率5%(小贴士:你还有其他表示输出的方法,但现在我只拿softmax (译者注:一种常用于分类问题的激活函数) 来展示)。全连层的工作方式是根据上一层的输出(也就是之前提到的可以用来表示特征的激活图)来决定这张图片有可能属于哪个类别。例如,如果程序需要预测哪些图片是狗,那么全连层在接收到一个包含类似于一个爪子和四条腿的激活图时输出一个很大的值。同样的,如果要预测鸟,那么全连层会对含有翅膀和喙的激活图更感兴趣。

基本上,全连层寻找那些最符合特定类别的特征,并且具有相应的权重,来使你可以得到正确的概率。

现在让我们来说说我之前有意没有提到的神经网络的可能是最重要的一个方面。刚刚在你阅读的时候,可能会有一大堆问题想问。第一层卷积层的卷积核们是怎么知道自己该识别边还是曲线的?全连层怎么知道该找哪一种激活图?每一层中的参数是怎么确定的?机器确定参数(或者说权重)的方法叫做反向传播算法。

在讲反向传播之前,我们得回头看看一个神经网络需要什么才能工作。我们出生的时候并不知道一条狗或者一只鸟长什么样。同样的,在CNN开始之前,权重都是随机生成的。卷积核并不知道要找边还是曲线。更深的卷积层也不知道要找爪子还是喙。

等我们慢慢长大了,我们的老师和父母给我们看不同的图片,并且告诉我们那是什么(或者说,他们的类别)。这种输入一幅图像以及这幅图像所属的类别的想法,是CNN训练的基本思路。在细细讲反向传播之前,我们先假设我们有一个包含上千张不同种类的动物以及他们所属类别的训练集。

反向传播可以被分成四个不同的部分。前向传播、损失函数、反向传播和权重更新。

在前向传播的阶段,我们输入一张训练图片,并让它通过整个神经网络。对于第一个输入图像,由于所有权重都是随机生成的,网络的输出很有可能是类似于[.1 .1 .1 .1 .1 .1 .1 .1 .1 .1]的东西,一般来说并不对任一类别有偏好。具有当前权重的网络并没有能力找出低层次的特征并且总结出可能的类别。

下一步,是损失函数部分。注意,我们现在使用的是训练数据。这些数据又有图片又有类别。打个比方,第一张输入的图片是数字“3”。那么它的标签应该是[0 0 0 1 0 0 0 0 0 0]。一个损失函数可以有很多定义的方法,但比较常见的是MSE(均方误差)。被定义为(实际−预测)22(实际−预测)22。

记变量L为损失函数的值。正如你想象的那样,在第一组训练图片输入的时候,损失函数的值可能非常非常高。来直观地看看这个问题。我们想到达CNN的预测与数据标签完全一样的点(这意味着我们的网络预测的很对)。为了到达那里,我们想要最小化误差。如果把这个看成一个微积分问题,那我们只要找到哪些权重与网络的误差关系最大。

这就相当于数学中的δLδWδLδW (译者注:对L关于W求导) ,其中,W是某个层的权重。现在,我们要对网络进行 反向传播 。这决定了哪些权重与误差的关系最大,并且决定了怎样调整他们来让误差减小。计算完这些导数以后,我们就来到了最后一步: 更新权重 。在这里,我们以与梯度相反的方向调整层中的权重。

学习率是一个有程序员决定的参数。一个很高的学习率意味着权重调整的幅度会很大,这可能会让模型更快的拥有一组优秀的权重。然而,一个太高的学习率可能会让调整的步伐过大,而不能精确地到达最佳点。

前向传播、损失函数、反向传播和更新权重,这四个过程是一次迭代。程序会对每一组训练图片重复这一过程(一组图片通常称为一个batch)。当对每一张图片都训练完之后,很有可能你的网络就已经训练好了,权重已经被调整的很好。

最后,为了验证CNN是否工作的很好,我们还有另一组特殊的数据。我们把这组数据中的图片输入到网络中,得到输出并和标签比较,这样就能看出网络的表现如何了。

⑶ 一文看懂卷积神经网络-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(基本原理+独特价值+实际应用) 》

⑷ (7)卷积神经网络的基本结构

    卷积神经网络主要结构有:卷积层、池化层、和全连接层。通过堆叠这些层结构形成一个卷积神经网络。将原始图像转化为类别得分,其中卷积层和全连接层拥有参数,激活层和池化层没有参数。参数更新通过反向传播实现。

(1)卷积层

    卷积核是一系列的滤波器,用来提取某一种特征

    我们用它来处理一个图片,当图像特征与过滤器表示的特征相似时,卷积操作可以得到一个比较大的值。

    当图像特征与过滤器不相似时,卷积操作可以得到一个比较小的值,实际上,卷积的结果特征映射图显示的是对应卷积核所代表的特征在原始特征图上的分布情况。

        每个滤波器在空间上(宽度和高度)都比较小,但是深度和输入数据保持一致(特征图的通道数),当卷积核在原图像滑动时,会生成一个二维激活图,激活图上每个空间位置代表原图像对该卷积核的反应。每个卷积层,会有一整个集合的卷积核,有多少个卷积核,输出就有多少个通道。每个卷积核生成一个特征图,这些特征图堆叠起来组成整个输出结果。

    卷积核体现了参数共享和局部连接的模式。每个卷积核的大小代表了一个感受野的大小。

    卷积后的特征图大小为(W-F+2*P)/s+1 ;P 为填充 s 为步长

(2)池化层

    池化层本质上是下采样,利用图像局部相关性的原理(认为最大值或者均值代表了这个局部的特征),对图像进行子抽样,可以减少数据处理量同时保留有用信息。这里池化有平均池化,L2范式池化,最大池化,经过实践,最大池化的效果要好于平均池化(平均池化一般放在卷积神经网络的最后一层),最大池化有利于保存纹理信息,平均池化有利于保存背景信息。实际上(因为信息损失的原因)我们可以看到,通过在卷积时使用更大的步长也可以缩小特征映射的尺寸,并不一定要用池化,有很多人不建议使用池化层。32*32在5*5卷积核步长为1下可得到28*28。

    池化操作可以逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合。

(3)全连接层

    通过全连接层将特征图转化为类别输出。全连接层不止一层,在这个过程中为了防止过拟合会引入DropOut。最新研究表明,在进入全连接层之前,使用全局平均池化可以有效降低过拟合。

(4)批归一化BN——Batch Normal

    随着神经网络训练的进行,每个隐层的参数变化使得后一层的输入发生变化,从而每一批的训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大训练复杂度和过拟合的风险,只能采用较小的学习率去解决。

    通常卷积层后就是BN层加Relu。BN已经是卷积神经网络中的一个标准技术。标准化的过程是可微的,因此可以将BN应用到每一层中做前向和反向传播,同在接在卷积或者全连接层后,非线性层前。它对于不好的初始化有很强的鲁棒性,同时可以加快网络收敛速度。

(5)DropOut

    Dropout对于某一层神经元,通过定义的概率来随机删除一些神经元,同时保持输入层与输出层神经元的个数不变,然后按照神经网络的学习方法进行参数更新,下一次迭代中,重新随机删除一些神经元,直至训练结束。

(6)softmax层

    Softmax层也不属于CNN中单独的层,一般要用CNN做分类的话,我们习惯的方式是将神经元的输出变成概率的形式,Softmax就是做这个的:  。显然Softmax层所有的输出相加为1,按照这个概率的大小确定到底属于哪一类。

阅读全文

与神经网络哪些层可以保存纹理信息相关的资料

热点内容
中国移动网络机顶盒打不开机 浏览:508
计算机网络基础主要功能 浏览:587
手机修改网络密码 浏览:740
怎样恢复网络设置 浏览:791
计算机网络术语英文 浏览:429
丰泽无线网络 浏览:942
公平平台和快手网络哪个好 浏览:807
没有网络可以安装路由器吗 浏览:608
计算机网络解析图 浏览:269
梅州网络工程哪里有名 浏览:577
喜欢用网络用语怎么说 浏览:66
甘肃启航网络怎么样 浏览:714
去掉网络水印怎么弄 浏览:748
广电如何修改网络名称 浏览:684
网络用语你是规矩的什么意思 浏览:791
信号基站停电网络还有信号吗 浏览:640
广电网络劳务承包什么意思 浏览:720
神经网络移植到安卓手机 浏览:912
在哪里下载网络教育 浏览:571
如何开通3g网络 浏览:220

友情链接