论文部分内容阅读
随着计算机领域的快速发展,计算能力已不再是机器学习研究的瓶颈。目前,以深度神经网络(DNN)为首的深度学习技术已经大量的应用到各个领域,如语音识别、智能驾驶、图片识别等等。但是随着应用环境越来越复杂,精度要求越来越高,网络规模也越来越大。大规模神经网络既是计算密集型又是存储密集型。因此对其加速和压缩是目前研究的重点。传统的通用芯片在处理复杂神经网络时受到了带宽和能耗的限制,人们开始改进通用芯片的结构以支持神经网络的有效处理。此外,研发专用加速芯片也成为另一条加速神经网络处理的途径。独特的处理结构加上特地优化的处理数据流。让它与通用芯片相比,能耗更低,性能更高。但是并没有一种数据流适用于所有网络的加速。传统的压缩方案,如剪枝,低秩分解,稀疏网络等,虽能够有效的减少网络参数,但是都破坏了网络的规则结构,增加了训练复杂度。为了解决上述限制,该课题基于神经网络本身训练的预测准确率置信区间,提出了一种使用Kmeans来加速和压缩神经网络的方法。在神经网络中,卷积层属于计算密集型,全连接层属于存储密集型。卷积层的权重数少但计算量大(权重复用多),因此表现为处理速度跟不上存取速度;全连接层的权重数多但计算量小(无权重复用),因此表现为存取速度跟不上处理速度。本文提出了上述问题的解决方法,一是通过将卷积过程中的输入特征图采用Kmeans聚类来减少计算量;二是通过将全连接层的权重压缩来减少存储量。具体来说,将卷积层的输入前加一个Kmeans层,将输入特征图采用Kmeans聚类,这样聚类后数的类别远小于聚类前,将聚类后所有类别的数和权重相乘可以得到聚类前所有数和权重相乘的结果,这样做就减少了乘法计算量。对全连接层的权重参数采取Kmeans聚类,将聚类值编号作为索引标签。在存储模型时,本文所提方法存储权重聚类后值的索引标签,与原来的32位权重值相比,索引标签通常只有三四位(依据聚类数量),以此达到压缩的目的。该方法对Alex Net网络单个卷积层的计算量最多能减少上百倍,加入合适的Kmeans层,整个网络的处理时间加速比能达到2.007,对Alex Net网络压缩能达到10.4倍。