工程优化 — 一样的参数数量更加有效率bash
深层网络遇到的问题网络
V1结构优化
分组卷积spa
相对于一个普通3*3的卷积核,在inception-net中采用了多种卷积核,每种卷积核均可以进行扩展(多加一些层)造成一个组,组和组之间计算就不相互交叉了。不相互交叉就能下降计算量(至关于每一个组的输入都不包含其余组的输入)code
Inception优点cdn
卷积计算量blog
((kw*kh)*Ci)((oW*Oh)*Co)
kw:卷积核的宽
kh:卷积核的高
ow:输出图像的宽
oh:输出图像的高
ci:输入的通道数
co:输出的通道数
复制代码
咱们能够继续优化Inception的参数数目和计算量,这里Inception比较高仍是由于有一个5*5的卷积核,那么咱们能够用1*1的卷积核去优化他,先使用1*1作非线性变换,将输入通道数减少(好比从100通道变成25通道),而后再作5*5的卷积,由于输入通道数变小了,因此参数数目和计算量确定也就变小了图片
用V1结构组装网络结构ip
[图片上传失败...(image-6736d9-1538918313502)]ci
V2结构
引入3*3视野同等卷积替换
v3结构
- 3\*3不是最小卷积
- 3\*3 = 1\*3 和 3\*1
- 参数下降33%
复制代码
v4结构
引入skip connection
就是残差连接(inceptionnet和resnet组合)
可以保证精度损失在可控制范围以内,能够大幅度下降参数数目和计算量
模型结构
引入深度可分离卷积
下左图是普通的神经网络结构,下右图是深度可分离的神经网络结构,其中BN是归一化,后面会讲
回顾InceptionNet
分到极致
首先使用1*1 的卷积核将输入变成多通道,而后一个卷积核只关注其中的一个通道,关注某个通道后生成一个通道,在将全部输出通道拼接,下降了全部卷积核对输入的一个范畴
计算量对比
优化比例:
(Kw*Kh*Co*OW*Oh + Ci*Co*Ow*Oh) / (Kw*Kh*Ci*Co*OW*Oh) = 1/Ci+1/(Kw*Kh)
复制代码
深度可分离卷积能够大幅度下降参数数目和计算量,固然这么大幅度的下降确定可以会带来精度的损失,可是通过试验代表,这个损失是可控的,能够控制在百分之10之内
效果分析
效果层次分析
效果计算量分析
横坐标:计算量
纵坐标:精准率
圆圈大小:参数量多少