近期不少企业纷纷发布了使用深度神经网络的应用。神经网络需要做大量的计算,鉴于此,它们通常运行于具备 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 上。论文中还对多个常用数据集上得分更好所需的比特位数进行了讨论。
查看英文原文: Google Researcher Invented New Technology to Bring Neural Networks to Mobile Devices
评论