0、
inception结构
利用网络中的计算资源,增加网络的宽度和深度,但保持计算量不变。
1、
本文中,首先创新点在于算法和网络结构;
其次注意了移动端和嵌入式的场景,考虑内存和功耗,所以提出的结构并不是固定的,参数少,计算量少。
因此提出了高效的深度神经网络结构,称为inception,灵感来源于Network in Network。
在该案例中,网络的深度主要体现在两个方面:第一是Inception module;第二是网络的深度。
2、相关的工作
从Lenet开始,出现通过堆积的卷积网络结构,总体趋向于增加层的数量并使用dropout解决过拟合问题。
考虑到最大池化会降低精度,我们使用相同的卷积结构代替max pooling(alexnet)
【15】使用了一系列不同尺寸的高波滤波器,类似的googlenet使用Inception,不断的重复,组成22层的深度网络
network in network增加1x1的卷积层,从而增加深度。在googlenet中,1x1的卷积有两个作用,第一是减少维度,第二是增加网络的宽度和深度。
3、动机和高层的考虑
提高神经网络性能最直观的方法就是增加网络的深度和宽度,但是存在两个缺点,第一个缺点是容易过拟合,特别是数据较少的情况下;第二个缺点是计算量的增加。
基本的解决方法是:引入稀疏连接,代替全连接甚至是卷积。具体原因两个:第一是生物神经系统的连接是稀疏的,第二是【2】中提到,对于规模稀疏的神经网络,可以通过分析激活值统计特性和对高度相关的输出进行聚类。
4、结构细节
这是个Inception的细节视频:
http://ziyubiti.github.io/imgs/googlenet/Inception%20Module.mp4
b中采用1x1卷积减少维度,从而减少3x3卷积或者5x5卷积的计算量。设置1x1,3x3,5x5卷积也是为方便对齐,当卷积步长为1时,设置pad为0,1,2,卷积之后便能得到相同尺寸的feature map。
5、使用reLU,输入224x224 0均值 RBG图像。
值得注意的是在中间层加上分类器,这是因为网络中间位置的特征有很大的区别,不同的深处增加loss防止梯度消失。
6、训练地策略
在分布式机器学习系统上进行训练,利用[17]异步随机梯度下降,0.9动量,学习率每八个周期下降4%。最后用Polyak averaging [13]来创建最后用来测试的模型。
采样变化很大。[8]的光度扭曲有助于对付过拟合。还进行了随机插入。
问题:
异步梯度下降
inception结构是如何实现聚集稀疏表示,实现运算?