zoukankan      html  css  js  c++  java
  • (Review cs231n) ConvNet

    概念

    神经网络的深度和数据据体的深度(图像的通道数channels)要主要区分。

    输入

    1.得到一些数据,作为网络的输入。

    2.在CNN中有filter,the size of filter is small。如上的filter为5*5,深度为3,这个3要在深度上穿过

    输入数据的每一个位置,输入数据是三个通道;

    3.filter 要完全覆盖输入数据的全部深度,用filter来和输入图像做卷积运算。

    filter要在整个图像的空域范围内全部位置滑动,每一个位置filter和图像做点乘。这个filter是要学习的用W表示,我们也要学习这些filter,可以把filter看作是你的一堆W,然后在图像范围内滑动这个filter。

    as folllows:

    $w^{T}x + b$

    where w denotes the filter and x denotes the patch of input image, 大小是5*5*3的小区域。

    激活图给出了每个空间位置出滤波器的反应,将5*5的filter在32*32的输入数据上滑动,得到了28*28的激活图。

    hei = 32;
    wid = 32;
    stride = 1;
    count = 0;
    step1 = 0;
    step2 = 0;
    pathchSize = 5;
    for x = 1 + step1: stride : hei - patchSize + 1
         for y = 1 + step2 : stride : wid - patchSize +1
                count = count + 1;
         end 
    end
    
    out >>> count = 784 >>> 28 * 28

    另一个滤波器与第一次滤波器计算无关,所以的滤波器都是相互独立的,假设有六个filter,然后输入数据每一个独立的计算与六个滤波器点乘,这个过程成为卷积运算,得到了一组28*28*6的激活图组,把他们沿着深度方向存储在一起。

    操作:遍历这幅图像,重新表示这幅32*32的图像,表示为了28*28*6,又作为了后续层的输入,后一个filter为5*5*6(为了保持了输入的深度一致)假设有10个独立的filter做线性运算

    感性的认识这些操作的意义

    CNN最后会构建整个特征层级

    随着网络的加深,组合成更大的特征块,用小的特征块组合在一起。所以初始值随机,空间上组合这个特征。

    filters的堆叠

    将滤波器产生的激活图沿着深度方向组合起来,然后把这些图作为下一个卷积层的输入,也就是不断的做这些图的组合。

    Conv的大体布局

    从图中可以看到大概为三个部分:

    1. 卷积层 2.Relu层 (非线性变换层,进行阈值处理也是控制过拟合的方式) 3. 池化层pooling

    一列中的每一行是一个激活图,每一个卷积层有10个滤波器

     filter的不同尺寸和步长(stride)对于得到的激活图的尺寸

    1.计算可以取多少个patch的公式:

    hei = ?;
    wid = ?;
    stride = ?;
    count = 0;
    step1 = 0;
    step2 = 0;
    pathchSize = ?;
    for x = 1 + step1: stride : hei - patchSize + 1
         for y = 1 + step2 : stride : wid - patchSize +1
                count = count + 1;
         end 
    end

     2.计算输出的激活图的尺寸

    $Result = (N-F)/Stride + 1$

    where Result should be integer.

    3.常用图像的填充(pad)

    1.填充的默认值为0;

    2.如果加上一圈边缘之后再做卷积,输出尺寸和输入尺寸一样大,这是我们想要的结果,这对于设计神经网络架构十分好,空间大小不变的性质。

    3.对于3*3的滤波器,需要1圈才能保持空间大小不变,对于广义的F的大小,如何使空间大小不变呢?需要考虑填充的大小:

     

    4.使用5*5的filter 会发现图像尺寸会随着时间的推进而变小,这是个不好的性质,尺寸从32-》28-》24,空间尺寸变小的速度非常快,我们不想让我们的图像尺寸减小的太快,我们希望做很大大小不会缩小的卷积层,用更少的数字表现原来的图像;希望表达的尺寸不变。

    5.参数的计算

     

     6.卷积层的总结:每次接收到的输入数据尺寸为W1*H2*D1,输出尺寸为W2*H2*D2;卷积层的四个超参数:

    (1)K 是filter的数量(也表示卷积后的深度,总是2的指数,e,g,32 64 128 512,因为有时候会进入特殊的高效的计算流程,使用向量化表示,这是使用2的指数的原因)

    (2)空间的延生F:经常3*3 S=1 空间尺寸不变、或者5*5 S=2 空间尺寸不变;filter的尺寸总是奇数,奇数尺寸的filter有更好的表达,3是有意义的最小尺寸了。

    (3)步长S

    (4)zero-padding的数量P

     7.特例:1*1的卷积,每个滤波器在整个深度方向上做点乘,在整个深度方向上做64维的点乘,再做阈值化处理,有意义。

    8.输入深度取决于你的图像通道,输出深度取决于你有多少个滤波器,比较重要的两个词:共享参数和局域连接;也就是说神经元在一个激活映射中共享相同的权值, 我们有5个不同的滤波器,结果从整体上观察数据,你有排列在3维空间中的神经元体,全部以一个局域模式,共享参数的状态关注着同一个数据体。

    但是在深度方向上,它们都有不同的神经元,都有着输入数据体的相同的部分,它们的权重不同,它们各自和自己相同层的小伙伴分享权重。

    局域连接和参数共享的优点是可以从视觉上控制模型能力,神经元在平面上想要计算相似的东西,例如小的边缘,这样的功能有意义。

    下采样

    空间尺寸的减小通常是在下采样层进行的。

    直观概念:下采样层就是把输入数据拿过来,通过下采样达到空间上压缩的目的,下采样在每个激活映射中独立进行,as follows:

    1.max pooling(效果最好的)

     需要知道的下采样的超参数包括: 步长、filter的尺寸,深度保持不变。

    全连接层(FC layer)

    AlexNet

    注意池化层没有参数,只有卷积层才有参数。

    当在进行反向传播时一定要小心,因为参数是共享的,当你在用filter做卷积时,所有神经元都共享参数,你必须小心所有filter的梯度都汇总到一个权重

    blob,

    ZFNet

    VGGNet 

    在filter的大小等参数上做了很多的工作,整个VGG网络只用了3*3卷积核,滑动步长2和2*2的池化窗口,stride为2。

    大多数的memory的消耗在前面的卷积部分,而大多数的参数集中在全连接层。

    GooLeNet

    使用了平均池化,在全连接层前大幅度的减小了参数的规模

    Resnet

    plain net 随着层数的增长反而错误率降低;按道理来说随着层数的增长,模型的性能应该更好,但是结果却是更坏。我们在优化层数上做的不够好

    但是ResNet相反,当你提升层数时,模型的训练错误率和测试错误率上都持续地改进,所以你想用更多层数。

    梯度“流经”这些权重并且后向传播,你需要做的是加法处理,加法在这里是分散梯度给所有的两部分,因此梯度会流向之前的一部分,同样也会跳过

    这一部分,之间流向输入处,该结构让你的梯度直接从158层的softmax层跳达这里的卷积层,因此你可以训练处离图像很近的这些小层次。中间的这些家伙能够

    能够学习到如何加入你的信号使得更有效。

    另一种解释是这一层基本上是由默认的恒等运算,这些建立在顶部的恒等上,它只是让它更好的优化。

    Resnet的训练

     

    需要再看下Xavier/2的初始化方法BN可以使得学习率高一些

    残差网络快速缩减了这个尺寸,它们打包了所有的大小,以便内存存下来更多的层次。

  • 相关阅读:
    中国历史朝代公元对照简表
    [Solved] DashBoard – Excel Service: The data sources may be unreachable, may not be responding, or may have denied you access.
    Delete/Remove Project from TFS 2010
    Sharepoint site showing system account instead of my username on the top right corner.
    你的成功在于你每天养成的习惯
    Internet Information Services is running in 32bit emulation mode. Correct the issue listed above and rerun setup.
    Prepare to back up and restore a farm (Office SharePoint Server 2007)
    Word中字号与磅值的对应关系
    How to: Change the Frequency for Refreshing the Data Warehouse for Team System
    UI Automation in WPF/Silverlight
  • 原文地址:https://www.cnblogs.com/ChenKe-cheng/p/10600738.html
Copyright © 2011-2022 走看看