Page 34 - 《软件学报》2020年第9期
P. 34
张政馗 等:面向实时应用的深度学习研究综述 2655
[1]
[2]
深度学习(deep learning,简称 DL) 是机器学习(machine learning,简称 ML) 的一个分支,都是能够让计算
机根据数据进行预测,并且改进其预测或行为的一组方法.其核心思想是:在训练阶段,以最小化损失函数(loss
function)为引导,通过梯度下降算法(gradient descent)来调整计算模型的权重(weight)和偏置(bias)两种参数;在
推理阶段,则使用输入数据和训练好的模型参数来计算预测值.深度学习的主要特征是采用了分层的深层神经
网络(deep neural network,简称 DNN)模型:每一层抽象出不同的简单特征,不同层的简单特征可以叠加组合成更
[3]
复杂的特征,并使用这些组合的复杂特征解决问题 .相比而言,传统机器学习算法很难抽象出足够有效的特征.
现在的 DNN 模型已经有百万个人工神经元,深度达到了几十层.例如 2015 年,ImageNet 图像分类比赛(ImageNet
large scale visual recognition challenge,简称 ILSVRC)的冠军是 ResNet,其最大深度为 152 层,属于超深神经网络.
随着大数据、深度学习算法与高性能计算技术的不断发展,深度学习在人工智能(artificial intelligence,简称
AI)领域一些最困难的问题上取得了重大突破,并且被应用于图像识别、语音识别、自然语言处理、自动驾驶、
生物信息处理、电脑游戏、搜索引擎、广告推荐、医学自动诊断和金融分析等各大领域.现如今,物联网、可
穿戴设备正在从概念变成现实,5G 网络建设已全面起步,这些全新的信息技术必将促进人工智能技术从工作站
和服务器端迁移到各种嵌入式终端.这其中也包括了安全攸关系统,典型案例是全球互联网巨头和汽车巨头正
如火如荼地研究以深度学习为基础的自动驾驶系统.特斯拉公司在 2015 年已经将自动驾驶技术(autopilot)投入
了商用.然而,近两年接连发生的几起关于自动驾驶汽车的严重交通事故表明,深度学习技术的成熟度还远未达
到安全攸关应用的要求.事实上,无论从功能层面还是非功能层面,深度学习赋能的安全攸关系统亟待有效的验
[4]
证技术来保障整个系统计算逻辑的正确性和响应外部事件的实时性 .
在功能层面保证 DNN 的正确性会面临 3 大困难 [5,6] :(1) DNN 具有鲁棒性缺陷,对抗样本的轻微扰动就可能
导致 DNN 给出错误的判断,这对安全攸关系统是一个致命的问题;(2) DNN 不具备可解释性,这导致无法对
DNN 模型进行(精确的)形式化建模和属性描述;(3) DNN 无穷的输入空间、大量的神经元、非线性激活函数会
[7]
[2]
导致验证时发生状态空间爆炸.针对这些挑战,学术界在 DNN 的可解释性(interpretability) 、建模(modeling) 、
测试(testing,把神经网络看作一个组件进行白盒测试,力求让测试案例最大化地覆盖整个网络结构,包括神经
[8]
元、条件和分支等) 、证伪(falsification,又称半形式化验证(semi-formal verification),其目的是产生让整个系统
违反设计规范的极端测试案例(corner test case)) [9,10] 、验证(verification) [11−13] 等方面展开了大量的研究.此外,欧
美政府也开始重视可信人工智能方向的研究.2017 年,美国国防部高级研究计划局(Defense Advanced Research
Projects Agency,简称 DARPA)发起了“XAI 计划”,旨在研究如何更好地理解 AI 系统的预测逻辑.2018 年,欧盟颁
布的 GDPR(general data protection regulation)要求 AI 算法具有透明性和可解释性.宾夕法尼亚大学成立了安全
AI 研究中心(PRECISE center for safe AI) [14] ,并致力于研究安全 AI 系统的设计和形式化验证技术.
在非功能层面保证 DNN 的实时性是指:在实时嵌入式系统中,DNN 任务(特别说明:本文中的深度学习和
DNN 任务都是指深度学习的推理阶段(inference phase),即用训练好的 DNN 模型和输入数据进行预测)的运行
时间不能超过该任务所指定的时限.而实现这一目标同样面临 3 个方面的挑战:第一,嵌入式平台的计算资源和
内存资源是非常有限的,电源供给也受电池容量的限制,散热条件也远比不上配备了大型冷却设备的数据中心;
第二,DNN 任务已经被普遍部署在多核 CPU+GPU SoC 异构嵌入式平台(例如 NVIDIA Jetson TX2 [15] , NVIDIA
DRIVE PX2 [16] ),但是学术界对调度异构多核嵌入式系统的理论研究还不够成熟;第三,目前为了保证实时性,一
般让 GPU 只负责运行某种特定的 DNN 任务,例如图像识别,但在未来,需要在 GPU 上并行运行多个混合关键任
务,例如未来的自动驾驶汽车上,GPU 可能同时并行处理多个 DNN 推理任务(图像识别、语音识别、自然语言
处理)、DNN 在线训练任务 [17] 、容错备份任务等关键任务 [18] ,同时还需要执行仪表盘的信息显示任务、多媒体
或游戏系统的 2D/3D 渲染任务等非关键任务,这种多任务需求更增加了实时嵌入式操作系统实施任务调度和
资源管理的复杂度.
近两年,实时系统学术界开始关注深度学习所带来的新问题.其中,德克萨斯大学 Liu 等学者在 DNN 网络的
实时优化设计和 DNN 网络的能耗分析方面做了开创性的研究 [19,20] ,北卡罗莱纳大学教堂山分校 Smith 教授对
NIVIDA GPU 的调度机制进行了深入细致的探究 [15,21] .但是,目前还缺乏对实时深度学习推理系统的主要设计