zoukankan      html  css  js  c++  java
  • 常用深度学习模型介绍(1)

    参考:https://blog.csdn.net/xbinworld/article/details/45619685

    参考:https://blog.csdn.net/fate_fjh/article/details/53446630(FCN模型)

    参考:https://blog.csdn.net/zyqdragon/article/details/72353420

    LeNet模型(包括输入层在内共有8层):

     模型结构如下:

    第一层:输入层是32x32大小的图像

    第二层:C1层是一个卷积层,6个feature map,5x5大小的卷积核,每个feature map共有(32-5+1)*(32-5+1)即28x28个神经元,每个神经元都与输入层的5x5大小的区域相连,即C1层有(5x5+1)x6=156个训练参数(5为卷积核权重,1为bias偏置项权重,共6个feature map),两层间的连接数为156x(28x28)=122304个,通过卷积运算来强化特征,减少噪音。

    第三层:S2是池化层,共6个14x14的feature map,对应的池化大小为2x2,(按照书上的解释)这里的池化层的计算过程和普通的池化层有点差异,这里采用对上一层卷积层的2x2大小的数值求和得到xi,再经wxi+b计算后进行激活函数处理得到结果,这里的连接数为(4+1)x(14x14)x6=5880。

    第四层:C3层是一个卷积层,采用5x5的卷积核,这里的feature map的神经元个数为(14-5+1)x(14-5+1)=10x10,这里有16个feature map,每个feature map由上一层的feature map之间进行不同组合。(现在大部分的卷积层都是和所有的上一层所有的feature map相连接,表现为每个feature map和卷积核内积后求和并加偏置项,得到输出的单个feature map中对应的数值)

    第五层:S4是一个池化层,由16个5x5的feature map组成

    第六层:C5是一个卷积层,同样使用5x5的卷积核,该层有120个feature map

    第七层:F6全连接层有84个feature map,每个feature map只有一个神经元与C5全相连,该层计算输入向量和权重向量间的点积和偏置,然后传递给sigmoid函数计算。

    第八层:输出层也是全连接层,共10个节点,分别代表数字0-9

     AlexNet模型:

    该模型总共有8层,前五层是卷积层,后三层是全连接层,最后一个全连接层的输出具有1000个输出的softmax。

    第一个卷积层conv1中,Alexnet采用96个11x11x3的kernel(对应下图中的num_output),在stride为4的情况下对224x224x3的图像进行滤波,即通过11x11的卷积模板在3个通道上,间隔为4个像素的采样频率对图像进行卷积操作。

    对于每个feature map来说,间隔为4,因此map核大小为(224/4-1)55x55。在得到基本的卷积数据后,通过relu、norm变换、池化操作作为输出传递到下一层。经过池化之后的feature map大小转化为(55/2)27x27,本层feature map的个数为96个。

     

    第二个卷积通过256个5x5的卷积模板卷积得到(pad表示周边的0填充)。过程和第一层的conv1类似,(按照他人博客的意思)这里的group的目的在于将前面的feature map分开,卷积部分分成2部分来做,每组针对27x27x48的像素进行卷积运算。步长为1。其中,池化运算的尺度为3x3,运算步长为2,因而得到池化之后的feature map大小为13x13。     过程作图表示如下:

     第三个卷积层的过程和第二个卷积层类似。这里采用384个卷积模板来进行操作,每个像素层都通过上下左右pad=1来进行填充,这里的2组像素层被送到2个不同的GPU中进行运算,每个GPU有192个卷积核,每个卷积核的尺寸为3x3x128。因此,每个GPU中的

    卷积核都可以2组13x13x128的像素层的所有数据进行卷积运算。经计算后,得到2组GPU中总计13x13x384个卷积后的像素层。

    第四层的输入为上一层的输出(即2组GPU的总计13x13x384的像素层),每个GPU中各有192个卷积核,每个卷积核的尺寸为13x13x192,其余部分同上。

     

    第五层的输入为第四层输出的2组13x13x192的像素层,同上,这里也分为2个group,每组的卷积核的个数为128,卷积核的尺寸大小为13x13x192,经卷积计算后的卷积核尺寸大小为13x13x128,2组GPU总计13x13x256的卷积核。

    经过核大小为3,步长为2的池化层处理后尺寸大小为(13-3)/2+1=6,即得到2组6x6x128的像素层,合计为6x6x256的像素层。

     

    第六层为全连接层,这里的输入数据的尺寸大小为6x6x256,通过6x6x256尺寸的滤波器对输入数据进行卷积运算,每个6x6x256尺寸的滤波器对第六层的输入数据进行运算得到1个结果;共有4096个6x6x256尺寸的滤波器对输入数据进行卷积运算,

    通过4096个神经元输出运算结果。再经relu激活函数得到4096个值,后通过dropout层输出4096个本层的输出结果。由于这一层的滤波器尺寸6x6x256和待处理的feature map的6x6x256的尺寸相同,也就是说滤波器的每个系数只和feature map中的一个

    系数相乘,因此该层也称为全连接层。

    第七层也为全连接层。第六层的输出的4096个数据和第七层的4096个神经元进行全连接,后经relu处理、dropout处理,输出4096个数据。

    第七层的4096个数据和第八层的1000个神经元进行全连接,经过训练后输出被训练的数值。

     

    其中,Alexnet模型的各层发挥的作用如下表所示:

    多GPU训练:提高训练速度

     非线性激活函数:使用Relu非线性函数收敛更快,用Relu替代Sigmoid是因为Relu的SGD收敛速度比Sigmoid/tanh快很多,主要原因是Relu是线性的、非饱和的,只需要一个阈值就可以得到激活值。

     dropout:减少过拟合

     LRN局部相应归一化:有助于模型的泛化

     重叠池化:提高精度、减少过拟合

  • 相关阅读:
    修改其他输入法为android 默认输入法
    {php 数据类型}
    转:PHP.ini配置文件(中文)
    php导出任意mysql数据库中的表去excel文件
    php输出、写入csv
    smarty二级分类代码和模版循环例子
    笔记:使ecshop 模板中可引用 常量
    Windows下Apache2不同域名解析不同目录解决方法
    {php 数组}
    Apache中.htaccess文件功能
  • 原文地址:https://www.cnblogs.com/xiaochouk/p/9047838.html
Copyright © 2011-2022 走看看