查看原文
其他

处理器IP厂商的机器学习方案 - 背景

2017-03-18 唐杉 StarryHeavensAbove
导  读

之前谈了不少机器学习处理器的技术内容,也分析过初创公司在这方面的机会(初创公司在人工智能芯片(IP)领域的机会),下面换个角度,看看处理器IP厂商的动作:ARMCEVASynopsysCadence。这几家公司不像人工智能初创公司那么抢风头,但技术积累和市场能力都很强,看看它们对机器学习的理解和相关方案很有意义。


这几家的处理器IP主要是面向终端设备SoC的,所以在进入正题之前,我想先用个Q&A,回顾一下终端设备机器学习(on-device machine learning)的一些背景。


问题1:为什么要做on-device的机器学习?

on-device是和cloud相对的。在终端设备上做机器学习应用主要是做inference,也就是用训练(训练的过程一般是在cloud端或者处理能力强的GPU上完成)好的模型解决实际问题。比如,之前很火的Prisma,就是用训练好的神经网络对照片进行风格转换。

其实我们现在用的很多机器学习应用,比如语音识别,语言翻译,聊天机器人,图像识别和处理等等,inference也是在云端进行的。那么为什么on-device这么重要的呢?第一,很多应用有实时性的要求,比如自动驾驶,机器人和无人机,必须要根据传感器输入的信息及时做出反应。如果放在云端,这种实时性是很难保障的。第二,很多设备并不能保证始终联网,比如一些物联网和可穿戴设备。第三,在边缘设备上实现机器学习可以大大减轻云端压力,包括运算,存储,网络通信的压力。一个典型的例子就是安防监控,如果让安防监控的摄像头都具有一定智能,把感兴趣的内容识别出来,对视频进行分析和标记,就没有必要把海量的视频存储和处理功能推到云端。第四,on-device的智能处理更接近传感器,从整个网络来说是更节省能耗的方案。最后,还有个用户体验的问题,毕竟用户直接接触到的是终端设备。Prisma最早是在云端进行图像风格转换,就会出现网络拥塞等问题。后来实现在手机上的离线处理,用户体验就好了很多。另外,还有隐私的考虑等等。


问题2:on-device机器学习有哪些挑战?

首先,是终端设备本身在处理能力(运算和存储),功耗,成本,体积上的限制。当然这种限制也是相对的。比如,ADAS就对这些问题不是很敏感,所以Nvdia可以搞个“超算”平台放到汽车上。而可穿戴设备就完全是另一种情况了。智能手机算是介于这两者之间。第二,是终端设备五花八门的形式和特殊的要求。比如,机器人就要求很高的实时性;而可穿戴设备可能要做的很小很便宜,等等。


问题3:有哪些解决问题的路径?

首先是从神经网络算法本身的特点出发,降低运算和存储的复杂度。比如用8bit甚至更少的比特数来量化网络权重,二值网络或者三值网络也是一个研究的热点;网络稀疏化和压缩等等手段(参见之前的文章嵌入式机器学习处理器的技术挑战和机会)。算法层面的优化,往往可以大幅度降低计算和存储的要求。通过这些方法得到的神经网络,就有可能在一个处理能力比较强的终端上(比如高端智能手机)实现基本的inference功能了。现在也看到一些报道指出,通过网络压缩和优化,可以把人脸识别之类的应用直接运行在基于ARM的智能手机芯片上。这也就是我们说的纯软件的实现方式。ARM公司目前就提供软件开发环境来支持这种实现。


不过对于另外一些终端设备,其处理能力、功耗和成本的限制更大;又或者,有些应用需要在智能手机上得到更好的体验,比如实时的视频智能分析。对于这些需求,在现有硬件基础上只进行算法和软件的优化就很难满足。这种情况就需要专用的机器学习处理器或者硬件加速器出场了。这也是我想讨论的重点。CEVASynopyssCadence都有相应的方案。


今天先起个头。最后强调一点:圈子太小,所以讨论公开信息,不说八卦。

T.S.

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存