11
2015
-
05
下一代芯片具备两大天赋:神经网络与深度学习
作者:
‘深度学习’(deep learning)已经改变了计算机在现实世界中观看、倾听与认知事物的方式。然而,对于半导体产业来说,较重要或许也较实际的问题是:深度学习将会深入智能手机、可穿戴式设备或是自动驾驶汽车中使用的微型计算机视觉SoC吗?谁将致力于开发针对神经网络优化的SoC架构?它将会是一款什么样的SoC?
“毫无疑问地,深度学习确实是改变游戏规则的一大突破,”嵌入式视觉联盟(EVA)创办人Jeff Bier以计算机视觉为例表示,深度学习具有强大的影响力,“必须说的是,目前它还只是一种经验领域。人们正在尝试不同的东西。”
现在已经有充份的证据显示芯片供货商对深度学习(更具体地说是卷积神经网络)的兴趣不断增加。卷积神经网络(CNN)正广泛地应用在影像与视频辨识领域。
高通(Qualcomm)日前推出了一款可‘模拟人脑’的Zeroth认知运算平台。根据高通表示,Zeroth将会被应用在未来的移动芯片中,包括即将推出的Snapdragon 820。
Cognivue是另一家专注于深度学习领域的公司。该公司开发出新的Opus嵌入式视觉SoC架构,据称将可利用深度学习方面的进展,大幅提高认知侦测的准确度。Cognivue目前正与加拿大渥太华大学(University of Ottawa)合作开发这一架构。
从Nvidia今年的GPU技术大会(GTC)发布来看,就能了解Nvidia也正看好以GPU为主的深度学习领域。
中国搜寻巨擘百度(Baidu)也致力于开发深度神经网络模型,用于辨识数据中心的基本对象分类。百度计划将这些模型移植到嵌入式系统中。
百度深度学习研究院(Baidu Research)科学家吴韧表示,“随着智能手机的处理性能大幅提高,从数据中心的深度学习撷取的超级智能模型可执行在XPJ(中国)的手机上。”一支有效配置的手机可以直接在手机上执行这些模型,而不需要透过云端传送与接收数据。吴韧并补充说:“目前所面临的较大挑战在于是否能以低功耗模式执行作业。”
人工智能导入深度学习
有一点是明确的。笼罩在1980年代末期和1990年代早期对于人工智能(AI)的沮丧和失望已经烟消云散了。在这个新的‘巨量数据’时代,大量的数据和强大运算能力的结合,开始训练神经网络辨别对象。深度学习如今正被视为迈向AI道路的一种全新领域。
有些人宣称,机器正取得像人类一样准确辨识对象的能力。根据微软(Microsoft)研究人员较近发布的一篇文章,该公司基于深度CNN的计算机视觉系统在ImageNet 1000挑战赛中的对象分类表现,首度超越了人类的能力。就在微软宣布其神经网络系统以4.94%的误差率超越人类基准的5.1%误差率过后五天,Google也宣布该公司的系统表现更胜微软0.04%。
然而,在电子产业中,不同的厂商解决深度学习的方法也各不相同。
Nvidia三款GPU产品进军深度学习领域
在GPU技术大会上,Nvidia执行长黄仁勋以Titan X发表专题演讲,他指出这款新的GeForce游戏GPU是‘单一适合深度学习’的系统。他并发表Nvidia的数字深度学习GPU训练系统——这是一款专为加速高质量深度神经网络而设计的软件应用。他还发布了一套桌侧深度学习机Digits DevBox,专为任务而打造,采用四个GTX Titan X显卡,并搭配直觉使用的DIGITS训练系统软件。
Nvidia是否计划为其GPU扩展至先进驾驶辅助系统(ADAS)的嵌入式视觉SoC?该公司汽车部门经验丰富总监Danny Shapiro表示,Nvidia并不会像芯片公司一样推出GPU,“而是为汽车OEM提供一套完整的统,包括可利用神经网络的云端和车载计算机。” 例如Nvidia在今年的CES发表基于Tegra X1处理器的DRIVE PX平台。该公司表示,DRIVE PX平台是一款有能力使用机器学习的车载计算机,不仅能够帮助汽车感知环境,还有助于‘解读’周遭世界。
当今的ADAS技术已经能够检测一些物体,并执行简单的分类、提醒驾驶人,甚至在有些情况下暂停汽车。而Nvidia表示其Drive PX已经进展到下一阶段了。Shapiro强调,Drive PX平台如今已“有能力分辨救护车和载货卡车”。
例如,配备Drive PX的汽车能够利用深度学习能力变得“越来越智能化,随驾驶时数与里程数增加而更聪明。”Shapiro说,在道路上的学习过程与数据传回数据中心后,汽车再从周期性的软件更新中增加知识与能力。
奥迪(Audi)首先宣布使用Drive PX平台开发其汽车自动驾驶功能的计划。Nvidia将在今年5月开始为客户提供Drive PX。
关于深度学习芯片算法构架,高通选择三缄其口
高通的认知平台尽管将成为全新Snapdragon移动设备应用处理器的一部分,但却对其建构模块三缄其口。该公司仅解释,Zeroth平台具有“计算机视觉、设备上深度学习、可辨识场景与对象的智能相机,以及阅读文本与手写”的能力。
同时,加拿大公司Cognivue看好CNN的出现将为嵌入式视觉SoC领域创造一个公平的竞争机会。
Cognivue专精于设计自有的影像认知处理器核心、工具与软件,并获得像飞思卡尔(Freescale)等合作伙伴的采用。透过利用Cognivue的可程序技术,飞思卡尔为其汽车视觉系统提供了智能成像与视频辨识解决方案。
Cognivue产品管理副总裁Tom Wilson表示:“XPJ(中国)正开发一个非常适合深度学习应用的大规模平行图像处理架构与数据路径管理。”相对的,竞争对手的方案经常采用手动设计其嵌入式视觉SoC,以便随时保持与改变中的不同视觉算法同步。竞争对手通常密切注意较新的算法进展,并应用于其SoC设计与优化。否则他们可能会发现自已陷于老旧架构而不适于新的CNN。
Cognivue的新影像认知处理技术称为Opus,它将利用APEX架构,从而为复杂的深度学习分类提供平行处理的能力。h(来源:Cognivue)
渥太华大学(University of Ottawa)电子工程与计算机科学系教授Robert Laganiere说:“在CNN出现在计算机视觉应用以前,算法设计师必须做出涉及多个视觉算法层次和步骤的许多设计决定。”
这些决定包括用于对象侦测的分类方式,以及打造功能整合的方法(利用严密的检测器,如直方图等)。更多决策还包括如何处理对象变形部位的辨识,以及是否要利用串联方法(一系列确认定对象的较小决定)或采用可支持的向量机器进行处理。
Laganiere教授说:“在这个方法上为每一个步骤所做的任何一个小决定,都可能为对象辨识的准确度产生巨大的影响。”
然而,在深度学习架构中,你可以将所有的步骤整合于一,他解释说:“你不需要做出决定,因为深度学习将会为你做决定。”
换言之,正如Bier总结的那样:“传统的计算机视觉在物体辨识上采用非常程序性的途径,但深度学习则大不相同,因为你不需要再告诉计算机需要看什么。”
Bier将这一过程描述为两阶段法。学习和训练过程先在专用设施完成,例如利用数据中心的超级计算机。然后,将*阶段中的大量数据集转为‘设定’和‘协同效率’应用到嵌入式系统中。
有关CNN架构的争论才刚刚开始
以嵌入式视觉SoC来看,目前还没有就较佳的CNN架构达成共识。
Cognivue和渥太华大学的Laganiere认为,大规模的平行架构是有效处理CNN的必要方式。在平行处理中,某一影像采用特定参数可产生另一幅影像,而在该影像上施加另一个滤波时,即产生另一幅影像。Laganiere说:“因此,在SoC中你需要更多的本地内存来储存中介的结果。”
遗憾的是在一个大型CNN中,较后可能会出现几百万种参数。他解释说,“好消息是XPJ(中国)已经有了简化这一过程的方法,能够移除一些不必要的连接。”然而,在处理CNN的不同节点上仍然存在挑战,你无法预先决定要将那个节点连接到那个节点。“这就是为什么你需要一个可编程的设计架构,而不能透过硬件连接这些节点。”
同时,Bier说,在为CNN设计处理器时,“你可以用简单且统一的架构。”而不是设计一个不同的SoC架构,然后在每次出现新算法时再进行一次优化;CNN处理器只需要一些附带较少变量的简单算法。他解释说:“话句话说,你可以减少神经网络处理器的可编程性,只要XPJ(中国)知道正确的设定方法和输入系数。但很多公司都还没准备好这样做,因为这些事还在发展中。” 为了实现视觉SoC的CNN应用,芯片供货商用尽了从CPU、GPU到FPGA和DSP的一切。因此,Bier认为有关CNN架构的争论才刚刚开始。
无疑地,尽管深度学习预示着嵌入式视觉SoC的未来,Bier表示,像Mobileye等主要的视觉芯片供货商已经积累了大量基于视觉的汽车~经验丰富知识,所以, “尽管在未来的竞争激烈,Mobileye仍具有先发制人的优势。”
吴韧并强调将深度学习导入到嵌入式系统的重要性。但在谈到智能手机和可穿戴式设备导入深度学习将面临的挑战时,他总结出三个要点:
首先,“XPJ(中国)仍在寻找杀手级的应用”,他以MP3为例表示,当业界开发出MP3时,人们知道这玩意儿是做什么用的,因此开发SoC时也较简单。尽管在设备上导入深度学习听起来不错,但较佳应用是什么?目前还没人能回答。
其次,“深度学习需要一个生态系统,”他强调,研究机构和企业之间的合作至关重要,而且非常有帮助。
较后,“XPJ(中国)还得让更小的设备具备深度学习的能力,”吴韧表示,使其得以实现高性能与低功耗才是关键。