美文网首页
Lecture 7:Convolutional Neural N

Lecture 7:Convolutional Neural N

作者: dapulser | 来源:发表于2018-08-23 12:48 被阅读0次

    Lecture 7:Convolutional Neural Networks

    1. 卷积神经网络的提出

    1.1 全连接神经网络的缺点

        我们在之前提到的神经网络是“全连接神经网络”(Fully Connected Network)。它的特点是层与层之间是完全连接的,这就导致了一个问题,参数特别多,我们用分辨率比较低的图片还好,那种比较高清(1920*1080)的怎么办?参数太多导致计算速度变慢,根本不能用,因此,我们迫切需要一种能减少计算方案,但是有不会降低准确率太严重的办法。

    1.2 一个想法

        参数太多怎么办?砍啊,把网络不全连接,改成一个稀疏的不就行了,但是怎么改?不能随机删吧,于是我们引入“卷积”这一操作,卷积在数学上是一个积分的形式,但是很显然,咱们现在做的东西除了反向传播没连续的,下面简单介绍一下哎卷积。

    1.3 卷积神经网络中的卷积

        卷积其实是一种比较简单的运算(当然反向传播就更麻烦了,对了,CNN的反向传播,我就不做了【滑稽.jpg】,可以自己试试)。我们先简单点的看一下卷积


    其中

    把一张图片用卷积核过一遍,结果就是简单的元素之间相乘之后相加。而且一个卷积核使用一组参数就把整张图片处理一遍,极大的减少了使用的参数量。

    1.4 边缘检测示例

        这样的操作有什么意义呢?我们看下面一个例子



    我们可以看到,原始图片的0和10的分界线,被我们的卷积核检测出来了,相对的位置数值特别大,但是其他位置,数值相对较小。但是如果我们换一个卷积核呢?



    我们更换卷积核之后发现,生成的数字全是0。我们可以将第一个卷积核看作是一个垂直边缘检测器,第二个看作水平边缘检测器。这就是卷积的作用,很明显,他对特征的处理还是比较到位的,甚至有点可解释了,而相比较,全连接神经网络是完全不知道他在干什么。

    2. 卷积神经网络结构

    2.1 卷积层 Convolutional Layer

        从名字就可以看出,卷积层就是执行卷积操作的层。下面详细介绍一下。
        在我们日常使用中,图片是以RGB三通道的形式存在的,比如一张1080的图片,他其实是1920\times1080\times3的矩阵,而颜色信息也很重要,毕竟物体识别什么的,肯定是要看颜色的,因此,我们自然可以联想到,卷积核也是有三维的,比如说,我们使用一个3\times3\times3的卷积核去处理上述矩阵,最后会变成一个1919\times1079\times1的矩阵,但是就如上面的边缘检测示例,我们只用一个卷积核肯定是不够的,一层只检测一个垂直边缘也太挫了,所以,我们在一层多放几个卷积核,但是注意,这几个卷积核是分别独立的,他们各自使用自己的参数处理一遍图片,各自得到一张图片,然后,我们把这些图片排成一列,比如说,我们用了32个过滤器,那么现在,我们的数据就是一个1919\times1079\times32的矩阵了。后一层如果还是卷积层的话,那么他的卷积核就必须是深度为32的,必须将上一层同一个位置的所有数据一起处理,这样才能得到结果,卷积核如果深度不是完全覆盖的话就没有意义。想像一下,我上一个过滤器得出了一个位置有垂直线,水平线,那么我下一层的过滤器就可以组合出一个十字出来,如果深度方向割裂开,就会破坏这些关系,因此卷积层的不同卷积核深度就是输入数据矩阵深度。
        还有一个需要注意的地方就是步长,上面我们看到的卷积操作都是一步一步走的,其实,这是可以跳步走的,因此我们有一个步长,来控制这个问题。还有个问题,如果一张图片横向只有10个单位,我们使用大小为3的卷积核步长为3,最后剩下一部分怎么办?我们可以填充,把这张图片那些空缺的地方有一些数字填充,比如说0,这样卷积操作就可以继续下去了。
        综上所述,一个卷积层有连四个数字参数:卷积核大小F(filter),卷积核个数(通道数)K(kernel),步长S(stride),填充大小P(padding)。
       权重数量:以上面的例子为例,参数一共有3\times3\times3\times32=864个(没有计算偏置,卷积层也可以有那个Wx + bb

    2.2 池化层 Pooling Layer

       池化层一定程度上是简化的卷积层,卷积层是各元素之间相乘,池化层就是直接取最大值,或者取平均值。
       一开始我也没注意,池化层是不改变深度的,只在二维平面上做操作。
       我一开始见到这种结构感觉好奇怪,这种东西要它干什么用……再加一层卷积不得了。现在看到的解释是,可以进一步减少参数量,同时可以进一步提取feature,说了跟没说一样是吧……反正现在的网络都会带上pooling……就加上吧。

    3.经典网络结构

    卷积神经网络那么多种层怎么用是个学问,其实这是个超参数,不一定越深越好,浅了当然也不行,我们看一些经典的结构,以加深我们的了解。

    3.1 LeNet-5

    图片2.png

    3.2 AlexNet

    3.3 GoogleLeNet

    这张图输入在下面。
    GoogleLeNet由于我没用过,所以了解不是很深,等有时间会出专题分析原论文。


    3.4 VGGNet

    VGGNet是为了验证网络深度对准确度的影响而做的实验,使用了五种网络,分别如下

    我们可以看到,确实增加深度对网络正确率有好的影响。


    3.5 ResNet&DenseNet

    这是我之前做的一个PPT,直接放上来了【滑稽.jpg】


    幻灯片2.PNG 幻灯片3.PNG 幻灯片4.PNG 幻灯片5.PNG 幻灯片6.PNG 幻灯片7.PNG 幻灯片8.PNG 幻灯片9.PNG 幻灯片10.PNG 幻灯片11.PNG 幻灯片12.PNG 幻灯片13.PNG 幻灯片14.PNG

    ResNet应该是Highway Network的简化版本(我觉得是),Highway Network对于神经网络不同层之间的跳跃连接做了普遍的推导(所以我没看下去,式子太多,对于一个淑芬60+的人我就不说什么了),感兴趣的可以看一下。

    相关文章

      网友评论

          本文标题:Lecture 7:Convolutional Neural N

          本文链接:https://www.haomeiwen.com/subject/qxvpiftx.html