Page 33 - 《软件学报》2020年第10期
P. 33

徐梦炜  等:面向移动终端智能的自治学习系统                                                           3009


         3    分布式自治学习系统 AutLearn:设计与实现

             我们实现了第 1 个分布式自治学习系统框架 AutLearn.本节介绍 AutLearn 系统的设计和具体实现.首先介
         绍该系统的核心思想;然后,介绍总体架构以及系统中每一个功能模块的具体实现;最后,以输入法和图像处理
         为例介绍特定的应用如何在该系统上运行,以达到自治学习的目的.

         3.1    核心思想
             为了解决终端设备上训练数据不足的问题,AutLearn 采用了云端协同思想,在云端服务器上利用公共数据
         训练一个泛化能力较强的模型,然后在终端利用迁移学习                     [17] 技术对模型进行调整,得到一个适用于该终端设备
         的可用于部署的模型.为了保证用户的隐私,云端服务器在预训练模型时不能要求用户上传数据,而是通过数据
         挖掘的方式从公共数据中寻找与用户数据分布相似的替代数据,达到公私合赢的目标.这里的公共数据包括那
         些获得用户授权的数据、通过合法途径购买的数据、利用爬虫技术从公网上爬取的数据等等.此外,我们还引
         入了数据增强技术用于提高终端上用于训练的数据量.
             为了解决终端设备计算资源及电量受限的问题,AutLearn 引入了一系列的优化技术,包括模型层压缩、运
         行时缓存优化、神经网络编译器等.这些技术在保证模型精度(或极少精度损失)的前提下,极大地节省了终端设
         备上神经网络训练的资源开销.
         3.2    总体架构
             本文提出的自治学习系统框架 AutLearn 如图 3 所示.在云端服务器,首先利用公共数据集对模型进行预训
         练.考虑到模型需要部署在终端,AutLearn 内置了基于奇异值分解                  [18] 的模型剪枝算法.剪枝结束之后需对模型进
         行重新训练以恢复模型精度.接下来,AutLearn 会利用神经网络编译技术对剪枝后的模型进行编译,从而优化其
         在相应终端计算硬件(CPU、GPU 等)上的运算效率.关于编译的具体内容将在第 3.4 节进行介绍.
             编译后的模型被下载到各个终端设备,利用本地数据在适宜的时间段进行迁移学习,这个过程我们称其为
         离线学习.其中,AutLearn 会对本地数据进行增强以提高数据量.训练结束后模型会被用于部署,执行神经网络的
         前向推断.为了让模型可以持续学习用户行为的改变以获取更高的准确率,AutLearn 同时实现了在线学习,即在
         终端设备上生成训练数据之后立即进行训练.相较于离线学习,在线学习的优势是可以更快地对用户行为改变
         进行适应,从而在接下来的推断中得到更合理的结果,且数据无需保存在本地,进一步地减少了隐私泄露的风
         险.具体地,使用离线学习还是在线学习,亦或是两者结合,需要取决于具体的应用场景.我们将在第 3.6 节中介绍
         如何选择合适的训练模式.



















                                         Fig.3   Architecture of AutLearn
                                          图 3   AutLearn 系统架构图
   28   29   30   31   32   33   34   35   36   37   38