Google研究人员提出在移动设备上运行神经网络的新技术

作者 Roland Meertens 译者 盖磊

近期不少企业纷纷发布了使用深度神经网络的应用。神经网络需要做大量的计算,鉴于此,它们通常运行于具备GPU计算服务器的SaaS上。但是一些应用需要在没有因特网连接条件下运行、计算速度必须很快并且结果可靠、或是存在隐私上的考虑,这时不可能采用运行于服务器上的神经网络。

最近,多家企业宣布正致力于实现运行于移动设备上的神经网络。Apple已经在WWDC 2017大会上发布了CoreML平台。Google正在实现称为“Tensorflow Lite”移动设备通用Tensorflow工具集。Google还发布了一些已预先训练的图像识别模型,开发人员可以根据自身需求在效率和准确性上做出权衡

虽然开发人员可以在移动设备上运行他们的神经网络算法,但在构建快速神经网络应用上的可选方法依然有限。一类方法需要开发人员降低他们的神经网络规模,这通常会导致准确性的降低。另一类方法是在训练整个神经网络后降低浮点精度,这对性能的影响难以估量。还可以使用其它一些先期算法,例如Facebook的AI研究负责人Yann Le Cun提出的OBD算法(Optimal Brain Damage)。这些神经网络推理优化方法都没有得到广泛的采用。

为此,Google研究人员Sujith Ravi提出一种新方法,即同时训练两个神经网络。其中一个是完备的神经网络,称为“训练网络”。另一个神经网络占用内存很小,表示了输入和训练网络中间结果,称为“投影网络”。它使用了高效函数,并学习自训练网络。一旦两个神经网络都被训练好可供使用,较大的网络依然运行在服务器上,较小的高效网络可被用户下载到智能手机上。

Sujith Ravis已将论文提供在ArXiv上。论文中还对多个常用数据集上得分更好所需的比特位数进行了讨论。