神经网络剪枝,知识蒸馏,以及模型优化设计
一.神经网络压缩 在如今人工智能的浪潮之下,深度学习在不少领域都取得了不错的成果。但是目前在边缘计算,物联网设备上的算力相比于我们的台式计算机还不太充足,我们在计算机上用于拟合的神经网络参数过多,不太适合运行在算力较弱的设备上,比如无人机,手机,平板电脑,自动驾驶汽车等等。因此我们需要将在计算机上训练好的神经网络通过某种技巧将其进行压缩,减少模型的参数,这样训练好的模型就可以迅速在这些边缘计算的设备上部署,同时达到和计算机上训练模型几乎一致的效果。比如我们常用的图像分类的模型VGG,通过改良后的MobileNet,计算量减少了10倍,输出的准确度结果甚至超越了AlexNet,准确率比Google InceptionNet也只少了0.7个百分点。那么我们有什么方法进行神经网络的压缩呢?目前比较常用的则是神经网络的剪枝,知识蒸馏,以及模型优化设计者三个方法。 二.神经网络剪枝 其实我们拟合的神经网络,很多网络的参数都过于多了,有些神经元在对结果进行的预测的时候并没有什么用,甚至是具有负面的作用。因此我们需要将其“ 拆除 ”。 拆除网络当中某些参数的方法如下: 1.剪掉权重weight约等于0的weight,让两个神经元之间失去连接 2.查看某个神经元经过activation之后的输出是否接近于零,如果接近于零,则剪掉这个神经元 3.在修剪完整个网络之后,识别的准确度肯定会下降