欢迎访问www.allbetgaming.com!

首页科技正文

徐州天气预报:数据挖掘入门系列教程(十一点五)之CNN网络先容

admin2020-05-0146

在前面的两篇博客中,我们先容了DNN(深度神经网络)并使用keras实现了一个简朴的DNN。在这篇博客中将先容CNN(卷积神经网络),然后在下一篇博客中将使用keras构建一个简朴的CNN,对cifar10数据集举行分类展望。

CNN简介

我们可以想一个例子,若是我们现在需要对人举行识别分类,凭据我们人类的头脑,我们肯定是对照他的是不是一样的,是不是一样巨细,是不是双(or 三)下巴。换句话来说,我们的判断尺度是一个可视的局限。

CNN就是受到了人类视觉神经系统的启发,使用卷积核来取代人类中的视野,这样既能够降低盘算量,又能够有用的保留图像的特征,同时对图片的处置加倍的高效。我们可以想一想前面先容的DNN网络,它是将一个一个的像素点举行盘算的,毋庸置疑,这样必然会带来参数的膨胀,比如说cifar-10中一张32*32*3的图像,第一个隐藏层的中的单个神经元就有\(32 \times 32 \times 3 = 3072\)个权重,似乎挺小的,然则若是图片的像素再大一点,则参数会飞速猛增,同时参数增添的同时就会导致过拟合。

下图是我使用DNN网络去训练cifar-10获得的效果,可以显著的看到过拟合:

而CNN就是将DNN中庞大的问题简朴化(实际上更庞大,然则参数简朴化了)。这里借用Easyai的几张图和几段话:

在下面的场景中,有是1,否则就是0,的位置差别,发生的数据也就差别,然则从视觉的角度上面来说,两张图的内容是差不多的,只在于的位置的差别而已。

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

下面是一张来自cs231n中一张识别汽车的图,使用的是CNN网络,内里包含了CNN网络的网络层:

在上图中的CNN网络中,网络层有一下类型:

  • CONV:卷积层,举行卷积盘算然后求和。
  • Relu:激励层,激励函数为Relu
  • POOL:池化层
  • FC:全毗邻层

可以很显著的看到,CNN网络与DNN网络有相似,也有差别。在CNN网络中,使用了卷积层和池化层,最后才使用全毗邻层,而卷积层就是CNN的焦点。然则在DNN网络中全部都是全毗邻层。

下面将对这几层举行先容,其中参考了YouTube上How Convolutional Neural Networks work这个视频。该视频有条件的建议去看一看,讲的照样蛮形象生动的。

我们以识别一张照片是X照样O作为我们的识别目的:

我们若何识别一张新的图片是X照样O,肯定是拿该照片与已有的尺度XO照片举行对比,哪一个相似度高,则就以为新的照片是属于哪一个种别。对比对于人类来说很简朴,然则,对于盘算机来说,应该怎么对比呢?

盘算机可以举行遍历图片的每一个像素点的像素值,然后与尺度图片的像素值举行对照,然则毋庸置疑,这样肯定是不行的,比如说在下图中盘算机就以为只有中心的是一样的,其它四个角都差别,因此可能会得出这张图片不是X这个结论。

然则我们肯定是希望不管在平移,旋转,照样变形的情况下,CNN模子都可以识别出来。

so,我们将对照局限由像素点扩大到某一个局限,在CNN模子中,会对照两张图片的的各个局部,这些局部称之为特征(features)。

每一个feature都是一张小图,也就是更小的二维矩阵。这些特征会捕捉图片中的配合要素。以X图片为例,它最主要的特征就是对角线和中心的交织。也就是说,任何叉叉的线条或中心点应该都市相符这些特征。

那么若何判断一张图片中是否有相相符的特征,然后相符的特征有多少个,这里我们使用数学的方式卷积(convolution)举行操作,这个也就是CNN名字的由来。

卷积层(Convolution Layer)

下面我照样将以识别X作为例子来解说一下若何举行举行卷积。卷积的目的是为了盘算特征与图片局部的相符水平。

盘算的步骤如下:

\[\frac{(1 \times 1) + (-1\times -1) + (-1\times -1) + (-1\times -1) + (1\times 1) + (-1\times -1)+ (-1\times -1) + (-1\times -1) + (1\times 1)}{9} = 1s \]

若是我们将这个\(3 \times 3\)的特征矩阵沿着该图片以stide = 1(也就是每次滑动一格),可以获得一个\(7 \times 7\)的矩阵,最终获得的效果如下图所示:

很容易明白,卷积之后的效果越靠近1,则相当与对应位置与特征feature越靠近。划分与三个特征举行卷积的效果如下所示,获得了feature map:

这里是一张来自cs231n的一张卷积示意图:

不外这里与上面差别的是,它并没有取平均值,同时加上了一个偏置\(b\),同时最后的效果是三个的的卷积的和。而且加上了一个padding(也就是外面那一层灰色取0的地方)

设输入的为\(W_1 \times H_1 \times D_1\),卷积核的巨细是\(F \times F\),卷积核的数目是\(K\),padding的巨细是\(P\),stride步为\(S\),输出的矩阵的巨细是\(W_2 \times H_2 \times D_2\),则:

\[W_{2}=\left(W_{1}-F+2 P\right) / S+1\\ H_{2}=\left(H_{1}-F+2 P\right) / S+1 \\ D_{2}=K \]

Relu激励层

整流线性单元函数(Rectified Linear Unit, ReLU),又称修正线性单元, 是一种人工神经网络中常用的激励函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。数学表达式为:

\[\begin{equation}f(x)=\max (0, x)\end{equation} \]

Relu激励层的事情流程如下所示:

将卷积层的输出通过激励层后的效果如下:

这一层照样蛮简朴的,可能人人会发现,在深度神经网络中,sigmoid激活函数就很少使用了,这是由于sigmoid函数太小了,在多层神经网络下会泛起”梯度消逝“征象。

池化(Pooling)

池化层就加倍的简朴了,池化层可以大幅度的降低数据的维度。池化层多种,下面先容两种简朴常用的:

  • 平均池化average pooling):盘算图像区域的平均值作为该区域池化后的值。
  • 最大池化max pooling):选图像区域的最大值作为该区域池化后的值。

那么池化是怎么操作的呢,下面是最大池化举行操作的示意图:

池化层也就是从一定的局限(也就是池化层的巨细)中选出一个(或者盘算出一个)值作为这个区域局限的代表。

对所有的feature map都举行池化,最后的效果如下:

由于最大池化(max-pooling)保留了每一个小块内的最大值,以是它相当于保留了这一块最佳的匹配效果(由于值越靠近1示意匹配越好)。这也就意味着它不会详细关注窗口内到底是哪一个地方匹配了,而只关注是不是有某个地方匹配上了。这也就能够看出,CNN能够发现图像中是否具有某种特征,而不用在意到底在那里具有这种特征。这也就能够辅助解决之前提到的盘算机逐一像素匹配的死板做法。

设输入的为\(W_1 \times H_1 \times D_1\),池化层的巨细是\(F \times F\),stride步为\(S\),输出的矩阵的巨细是\(W_2 \times H_2 \times D_2\),则:

\[\begin{equation}\begin{aligned} &W_{2}=\left(W_{1}-F\right) / S+1\\ &H_{2}=\left(H_{1}-F\right) / S+1\\ &D_{2}=D_{1} \end{aligned}\end{equation} \]

连系卷积层、激励层、池化层

我们将前面所讲的卷积层,激励层,池化层举行连系,所得:

加大网络的层数就获得了深度神经网络:

全毗邻层(Fully connected layers)

通过前面得卷积,池化操作,我们乐成得将数据举行了降维,获得降维后的数据后,我们在将其放入全毗邻层中,就可以获得最终得效果。

照样以上面识别X为例子:

我们称之这一层为全毗邻层。

固然全毗邻层也可以有多个:

综上,所有得结构我们可以表达为:

同时我们可以与CS231n的图片作对照,两者是一样的。

总结

这一篇博客主要是先容了每一层的功效,以及每一层事情的原理,然则并没有对其数学公式继续宁推导,若是想更多的领会CNN的前向和反向流传算法,可以去参考这一篇博客。

在下一篇博客中,将先容使用CNN对cifar-10(也可能是cifar-100)举行训练展望。

参考

  • Easyai
  • cs231n
  • 卷积神经网络的运作原理
  • [透析] 卷积神经网络CNN究竟是怎样一步一步事情的?
,

Sunbet

Sunbet www.169894.com Sunbet是进入Sunbet的主力站点。Sunbet开放Sunbet会员开户网址(www.sunbet.us)、Sunbet代理开户(www.sunbet.us)、Sunbet手机版下载(www.sunbet.us)、Sunbet电脑客户端下载(www.sunbet.us)等业务。

本文链接:https://www.lphggs.com/post/751.html

网友评论

最新评论

  • UG环球客户端 10/11 说:

    Allbet Gmaing开户欢迎进入Allbet Gmaing开户(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。连老妈都迷上了

  • 环球UGAPP下载 10/11 说:

    Allbet Gmaing欢迎进入欧博Allbet官网(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。内容过于优秀

  • 环球UG官网开户网址 10/11 说:

    www.allbetgaming.com欢迎进入欧博平台网站(www.aLLbetgame.us),www.aLLbetgame.us开放欧博平台网址、欧博注册、欧博APP下载、欧博客户端下载、欧博游戏等业务。粉丝大军助威

  • UG环球网址 10/11 说:

    Allbet Gmaing官网欢迎进入Allbet Gmaing官网(www.aLLbetgame.us):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。放假了使劲看

  • Allbet登录网址 10/10 说:

    AllbetGmaing下载欢迎进入AllbetGmaing下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。当代冰心

  • 环球UG官方注册 10/09 说:

    欧博亚洲客户端欢迎进入欧博亚洲客户端(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。无意刷到,厉害了

  • Allbet官网 10/08 说:

    www.allbetgaming.com欢迎进入欧博平台网站(www.aLLbetgame.us),www.aLLbetgame.us开放欧博平台网址、欧博注册、欧博APP下载、欧博客户端下载、欧博游戏等业务。字字珠玑

  • Allbet官网 10/08 说:

    www.allbetgaming.com欢迎进入欧博平台网站(www.aLLbetgame.us),www.aLLbetgame.us开放欧博平台网址、欧博注册、欧博APP下载、欧博客户端下载、欧博游戏等业务。字字珠玑