端上机器学习对于隐私保护、无网环境可用性和智能响应的实现是至关重要的。这需要在设备端使用机器学习算法进行计算,但设备的计算能力有限,这就刺激了算法效率高的神经网络模型和硬件的发展,这些硬件每秒能够执行数十亿次的数学运算,而只会消耗几毫瓦的电量。最近谷歌发布的Pixel 4就例证了这个趋势,它附带了Pixel神经核心这个硬件单元,并采用了Edge TPU架构。这个Edge TPU是谷歌用在边缘计算设备上的机器学习加速器,它提高了Pixel 4的用户体验,例如面部解锁、更快的谷歌助理和独特的摄像头功能。类似地,像MobileNets这样的算法为移动端视觉应用提供了紧致而高效的神经网络模型,这对机器学习在端上的成功应用至关重要。
今天我们很高兴宣布MobileNet3和其对应的由Pixel 4 Edge TPU优化过的MobileNetEdgeTPU模型及代码正式开源。这些模型是硬件感知AutoML技术以及架构设计领域的一些最新进展累积而成的重大成果。在移动端CPU上,MobileNetV3比MobileNetV2快两倍,而精确度相当,这推动了最先进的计算机视觉网络技术的进步。在Pixel 4 Edge TPU硬件加速器上,MobileNetEdgeTPU有了更进一步的提升,在改进了模型精度的同时还降低了运行时间和能耗。
构建MobileNetV3
与之前手动设计的MobileNet模型版本相比,MobileNetV3通过AutoML在搜索空间里寻找最好的架构,这个搜索空间是针对移动端计算机视觉任务而建立的空间。为了最高效地挖掘这个搜索空间,我们相继引入了两种技术——MnasNet和NetAdapt。首先,我们使用MnasNet来搜索一个大致的架构,其中使用了强化学习方法从一个离散的选项集合中选择最优配置。然后,我们使用NetAdapt微调这个架构,NetAdapt是一种补充技术,能够以较小的精度衰减来减少未充分利用的激活通道。为了在不同条件下都能提供最好的性能,我们分别生成了较大模型和较小模型。
MobileNetV3搜索空间
MobileNetV3的搜索空间建立在最近架构设计领域的多项创新之上,我们将其适配到了移动端环境。首先,我们引入了一个新的激活函数,命名为hard-swish(h-swish),它基于Swish非线性函数。Swish函数的主要缺点是其在移动端硬件上效率非常低。所以,相应地,我们使用了其近似函数,它可以有效地表示为两个分段线性函数之积。