TensorFlow 学习(十):CNN-改进算法

C1层是一个卷积层

6个特征图,每个特征图中的每个神经元与输入中5*5的邻域相连,特征图大小为28*28

每个卷积神经元的参数数目:5*5=25个weight参数和一个bias参数

链接数目:(5*5+1)*6*(28*28)=122304个链接

参数共享:每个特征图内共享参数,因此参数总数:共(5*5*1)*6=156个参数

S2层是一个下采样层

6个14*14的特征图,每个图中的每个单元与C1特征图中的一个2*2邻域相连接,

不重叠。因此,S2中每个特征图的大小是C1中的特征图大小的1/4。

S2层每个单元的4个输入相加,乘以一个可训练参数w,再加上一个可训练偏置b,结果通过sigmoid函数计算

连接数:(2*2+1)*1*14*14*6=5880个

参数共享:每个特征图内共享参数,因此有2*6=12个可训练参数

C3层是一个卷积层

16个卷积核,得到16张特征图,特征图大小为10*10

每个特征图中的每个神经元与S2中某几层的多个5*5的邻域相连;

例如:对于C3层第0张特征图,其每一个节点与S2层的第0~2张特征图,总共3个5*5个节点相连接。

S4层是一个下采样层

由16个5*5大小的特征图构成,特征图中的每个单元与C3中相应特征图的2*2邻域相连接。

连接数:(2*2+1)*5*5*16=2000个

参数共享:特征图内共享参数,每个特征图中的每个神经元需要1个因子和一个偏置,因此有2*16个可训练参数。

C5层是一个卷积层

120个神经元,可以看作120个特征图,每张特征图的大小为1*1

每个单元与S4层的全部16个单元的5*5邻域相连(S4和C5之间的全连接)

连接数=可训练参数:(5*5*16+1)*120=48120个

F6层是一个全连接层

有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全连

接。

F6层计算输入向量和权重向量之间的点积,再加上一个偏置。

连接数=可训练参数:(120+1)*84=10164

84:stylized image:7*12

输出层采用欧氏径向基函数单元

给定一个输入模式,损失函数应能使得F6的配置与RBF参数向量(即模式的期

望分类)足够接近。

每类一个单元,每个单元连接84个输入;每个输出RBF单元计算输入向量和参

数向量之间的欧式距离。

RBF输出可以被理解为F6层配置空间的高斯分布的对数似然【-log-likelihood】

AlexNet结构优化

非线性激活函数:ReLU

防止过拟合的方法:Dropout,Data augmentation(数据增强)

大数据训练:百万级ImageNet图像数据

GPU实现:在每个GPU中放置一半核(或神经元),还有一个额外的技巧:

GPU间的通讯只在某些层进行。

LRN归一化:本质上,这个层也是为了防止激活函数的饱和的。

ZF Net

基于AlexNet进行微调

Top5错误率11.2%

使用ReLU激活函数和交叉熵损失函数

GoogleNet

Top5错误率6.7%;使用9个inception模块,改变CNN原串行结构,并行,共

22层;使用平均池化替代FC层;参数量仅为AlexNet的1/12;使用softmax获

取平均结果;网络结构的更新,性能比AlexNet要好;2014年ILSVRC冠军。

GoogLeNet借鉴了NIN的特性,在原先的卷积过程中附加了1*1的

卷积核加上ReLU激活。

这不仅仅提升了网络的深度,提高了representation power,而且

文中还通过1*1的卷积来进行降维,减少了更新参数量。

Network-in-Network主要思想是,用全连接的多层感知机去代替

传统的卷积过程,以获取特征更加全面的表达,同时,因为前面已

经做了提升特征表达的过程,传统CNN最后的全连接层也被替换为

一个全局平均池化层,因为作者认为此时的map已经具备分类足够

的可信度了,它可以直接通过softmax来计算loss了。

Inception架构的主要思想是找出如何让已有的稠密组件接近与覆盖卷积视觉网络中的最佳局

部稀疏结构。

为了避免patch校准问题,现在的滤波器大小限制在1x1,3x3和5x5,主要是为了方便,不是

必要的。

另外,在pooling层添加一个额外的并行pooling路径用于提高效率。

架构的第二个主要思想:在计算要求增加很多的地方应用维度缩减

和预测。即,在3x3和5x5的卷积前用一个1x1的卷积用于减少计算,

还用于修正线性激活。如下图所示,左边是加入维度缩减之前的,

右边是加入维度缩减之后的。

CNN-GoogleNet

CNN-VGGNet

CNN-ResNet

ILSVRC2015冠军,比VGG深8倍,超深网络,

最高可以达到152层;引入残差结构,更改

参数w的修改规则;top-5错误率3.6%;参

数更新中使用到RNN的思想

使用了一种连接方式叫做“shortcut connection”,顾名思义,

shortcut就是“抄近道”的意思。

真正在使用的ResNet模块并不是这么单一,文章中就提出了两种方式

实线的的Connection部分(“第一个粉色矩形和第

三个粉色矩形”)都是3x3x64的特征图,他们的

channel个数一致,所以采用计算方式:

y=F(x)+x

虚线的的Connection部分(”第一个绿色矩形和第

三个绿色矩形“)分别是3x3x64和3x3x128的特征

图,他们的channel个数不同(64和128),所以采

用计算方式:

y=F(x)+Wx

其中W是卷积操作,用来调整x的channel维度的。

神经网络案例二

CNN卷积神经网络手写数字

VGG导入别人训练模型

猜你喜欢

转载自blog.csdn.net/lusics/article/details/88074149