2020李宏毅学习笔记——37.Network Compression(6

    技术2022-07-11  90

    下面我们算一下标准卷积和Depthwise Separable卷积参数数量大小关系:假设输入特征图通道数为 I I I,输出特征图通道数为 O O O,卷积核大小为 k × k k\times k k×k。 标准卷积参数数量= KKI+I*O 因为通常输出特征图的通道数 O会设置的比较大,所以可以看到Depthwise Separable卷积的参数量会明显少于标准卷积。 这样的卷积设计广泛运用在各种小网络上,如SqueezeNet,MobileNet,ShuffleNet,Xception

    6.Dynamic Computation

    该方法的主要思路是如果目前的资源充足(比如你的手机电量充足),那么算法就尽量做到最好,比如训练更久,或者训练更多模型等;反之,如果当前资源不够(如电量只剩10%),那么就先算出一个过得去的结果。

    如何实现?

    - 训练更多的model 比如说我们提前训练多种网络,比如大网络,中等网络和小网络,那么我们就可以根据资源情况来选择不同的网络。但是这样的缺点是我们需要保存多个模型,这在移动设备上的可操作性不高。

    使用中间层输出结果 这样的思路其实也挺直观的,就是比如说我们做分类任务,当资源有限时,我们可能只是基于前面几层提取到的特征做分类预测,但是一般而言这样得到的结果会打折扣,因为前面提取到的特征是比较细腻度的,可能只是一些纹理,而不是比较高层次抽象的特征。

    左下角的图表就展示了不同中间层的结果比较,可以看到越靠近输入,预测结果越差。

    右下角的图则展示了在不同中间层插入分类器对于模型训练的影响,可以看到越靠近输入层插入分类器,对模型的影响越大。其实也很好理解,因为一般而言,前面的网络结构负责提取浅层的特征,但是当我们在前面就插入分类器后,那么分类器为了得到较好的预测结果会强迫前面的网络结构提取一些抽象的特征,进而扰乱了后面特征的提取。具体的分析可以阅读这篇文章Multi-Scale Dense Networks for Resource Efficient Image Classification。

    Processed: 0.015, SQL: 9