• Convolutional Neural Networks(1): Architecture


    Concolutional Neural Networks(CNN)同样使用三层结构,但结构上同Feedforward Neural Network有很大不同,其结构如下图:

    Input layer: 对单张图片来说,输入数据是3D的(Width*Length*Depth),见下方的立体图。但如果我们使用mini-batch去训练神经网络的话,则input变为了4D数据(Width*Length*Depth*Batch_size)。

    Feature-extraction layers:Convolution layer(+Relu)和Pooling layer成对出现,进行高阶映射和特征提取。如下图所示,对于单张图片(3D data)来说,使用Filter(也叫Kernel,可以看成是一个Sliding Window,一般尺寸比数据要小)去扫描该图片并做卷积。通常情况下,从input volumn到Convolutional Layer,数据的Width和Length有了少许的减少,而the 3rd Dimension Depth,则被扩张了,因为有多个Kernels。在中间的过程中,可以看到经过Filter以后,depth变成了6,证明有6个Filter,将原先Depth=3扩展到了6。而后通过pooling layer,Width和Length又被进一步压缩,在这里一般使用Average,或者Maximum去压缩。

    Classification layer:在最终输出层之前,会有一个Fully-connected layer,形式和Feedfoward Neural Network的Hidden layer是一样的,与前一Pooling layer的Neurons做全连接,与输出层的Output nodes也做全连接,一层或多层根据需要。

    Output layer:用Softmax输出概率或根据需要输出其他形式。如果使用了Mini batch,则输出是2D的(Probabilities*Batch_size)。

    实际工作流程,可以用下例来说明:

    a. Input是32*32的(depth=1)

    b.在Layer1中有6个kernel,Convolution之后有6个28*28的Activation Map,经过Pooling(Subsample)四选一之后,变成了6*14*14.

    c.Layer2中有16个kernel,Convolution之后有16个10*10的Activation Map,经过Pooling(Subsample)四选一之后,变成了16*5*5.

    d.C5是含有120个neurons的全连接层,F6是输出层

  • 相关阅读:
    ASP.NET WebAPI Get和Post 传参总结
    关于EF第一次加载慢或过一段时间不访问时再次访问加载慢问题的总结
    jqthumb.js缩略图插件-让缩略图正常显示而不变形
    解决kindeditor编辑器中使用百度地图时不能拖动坐标的问题
    Jzoj3591 数据
    Jzoj3590 珠链
    Jzoj3590 珠链
    C++蜂鸣器歌曲1
    C++蜂鸣器歌曲1
    Jzoj2309 辽哥游戏
  • 原文地址:https://www.cnblogs.com/rhyswang/p/8937940.html
Copyright © 2020-2023  润新知