Network Pruning
1.删除没用的neuron或参数(weight pruning, neuron pruning)
2.对删除部分参数的model重新训练
3.反复1, 2
weight pruning会导致模型不规则,因为删除了一些neuron之间的参数.导致不容易实做,因为不规则的模型不好用GPU进行矩阵乘法加速,通常的做法是将删除的参数用0代替,但这样本质上并没有做weight pruning,也不能加速训练.
Why Pruning?
通常来说直接训练一个小的network的performance没有大的network pruning之后的效果好
Lottery Ticket Hypothesis 具体见PPT
Knowledge Distillation
1.训练一个较大的network作为Teacher Net
2.根据Teacher Net的输出训练Student Net
Ensemble:根据多个Teacher Net output的平均作为结果给student net学习.该技术通常应用在机器学习比赛上
Trick:对softmax做修改,加一个超参数T,用于平滑哪些比较集中的softmax输出,让student学到更多的信息,具体见PPT
Parameter Quantization
1.Using less bits to represent a value
2.Weight clustering
Binary weight
Architecture Desige
Depthwise Separable Convolution(用于减少一般CNN的参数量)
1.depthwise convolution:每个filter处理一个channel,这样输入输出的channel数目相同
(一般的CNN中的filter数量跟channel不同,人为决定,想输出多少个channel就设多少个filter)
2.Pointwise Convolution
filter跟一般CNN类似,数量人为决定,跟channel数量无关,但其kernel size必须为1*1
用于提取跨channel的图像信息
Dynamic Computation
The network adjusts the computation is need(different devices, high/low battery)
Dynamic Depth:在每个hidden layer之后加上extra layer,各自输出.之后根据情况动态使用某一层的output
Dynamic width
Computation based on Sample Differently
上述方法并不互斥,可以同时使用
tiny_v6.pptx
