在上一篇文章《AI芯片的算法优化》中,介绍了一些降低AI算法在芯片中的内存和功耗的方法,本篇接续上一篇,继续补充近几年AI芯片算法的改进思路。
1. 卷积分解方法
这种方法的代表模型是谷歌提出的MobileNet,它将标准卷积分解为深度卷积(Depthwise Convolution)和逐点卷积(Bitwise Convolution)。Depthwise Convolution将单个卷积核应用于每个输入通道,然后,通过1x1的Bitwise Convolution对输出的深度卷积进行组合,这种分解可极大减小计算量以及模型大小。
MobileNet已经发展到了v3版本。在最新的MobileNet版本中,组合了互补搜索技术,通过硬件感知的神经架构搜索(NAS)与NetAdapt算法相结合的方式,使该模型适用于手机CPU。
2. 提前终止方法
随着DNN深度的增加,在提高精度的同时,算法的时延和功耗也在不断升高。为了降低时延和功耗,有一种优化方法是动态更改网络结构,根据需要在网络的中间位置输出结果,而不再进一步处理,也就是提前终止。
基于这种思路,哈佛大学提出了BranchyNet,在这种网络架构中,边侧分支被添加到主神经网络中,以允许某些测试样本提前退出,避免对所有层进行处理,从而大大减少样本的推理运行时间和能耗。BranchyNet可以和网络修剪和网络压缩等技术结合使用。
3. 知识蒸馏方法
知识蒸馏方法最早由Hinton及其团队提出。蒸馏模型采用迁移学习的