来源:人工智能网
自从2012年以来,深度学习(Deep Learning)就以一种势如破竹之势突破了一个个经典的人工智能问题。面对人工智能的快速发展,你不想了解它的基本工作原理吗?
想搞清楚什么是深度学习,要先从人工智能说起,自从 1956 年计算机科学家们在达特茅斯会议(Dartmouth Conferences)上确认人工智能这个术语以来,人们就不乏关于人工智能奇思妙想,我们梦想着拥有人类五感(甚至更多)、推理能力以及人类思维方式的神奇机器。如今,虽然梦想的局面还没有出现,但是稍微弱一点的人工智能已经大行其道了,比如:图像识别、语音识别、多语言翻译等。
机器学习是实现人工智能的一种重要方法。机器学习的概念来自早期的人工智能研究者,简单来说,机器学习就是使用算法分析数据,从中学习并自动归纳总结成模型,最后使用模型做出推断或预测。与传统的编程语言开发软件不同,我们使用大量的数据送给机器学习,这个过程叫做“训练”。
深度学习 ( Deep Learning ) 是机器学习中近年来备受重视的一支,深度学习根源于类神经网络模型,但今日深度学习的技术和它的前身已截然不同,目前最好的语音识别和影像辨识系统都是以深度学习技术来完成,像各手机厂商宣传的AI拍照功能,以及此前红遍大街小巷的AlphaGo都是基于深度学习技术,仅仅是应用场景不同。
深度学习的基础是大数据,实现的路径是云计算。只要有充足的数据、足够快的算力,得出的“结果”(宏观上呈现机器的某种智能化功能),就会更加准确。目前,基于大数据、云计算这种智能化操作路径,可以在深度神经网络框架下来更好解释。
深度神经网络也被称为深度学习,是人工智能领域的重要分支,深度神经网络目前是很多现代AI应用实现的基础。自从深度神经网络在语音和图像识别任务中展现出突破性成果后,使用深度神经网络的应用数量就呈爆炸式增长。
目前这些深度神经网络方法被大量应用在自动驾驶、语音识别、图像识别、AI游戏等领域。在很多领域,深度神经网络跟早期的专家手动提取特征或制定规则不同,深度神经网络的优越性能来自于在大量数据上使用统计学习方法,从原始数据中提取高级特征的能力,从而对输入空间进行有效的表示。
实际上,这种表示的过程就包含对大量数据计算的过程,因为针对某种特定功能的最终呈现的超高的准确性,是以超高的计算复杂度为代价的。
而通常我们所说的计算引擎,尤其是GPU,就是深度神经网络的基础。因此,能够在不牺牲准确性和增加硬件成本的前提下,提高深度神经网络的能量效率和吞吐量的方法,对于深度神经网络在AI系统中更广泛的应用是至关重要的。
目前,国内一些知名大公司近些年的研究人员已经更多的将关注点放在针对深度神经计算开发专用的加速方法,并着手研发人工智能专用芯片,也就是真正的人工智能芯片。
所谓人工智能芯片,一般是指针对人工智能算法设计的ASIC(专用芯片)。虽然传统的CPU、GPU也都可以拿来执行人工智能算法,但是这些芯片要么计算速度慢,要么功耗大,这么多缺点使得它们在很多场合是不能用的。
比如,自动驾驶的汽车需要人工智能芯片,因为汽车在行驶过程中需要识别道路行人以及红绿灯的变化状况,这些情况有时候是突发的,如果我们利用传统的CPU去做这个突发路况计算,因为CPU不是专职干人工智能计算的,所以它的计算速度慢,很可能绿灯已经变成红灯了,我们的自动驾驶汽车还没有刹车。
如果换成用GPU,计算速度确实要快很多,但这个时候的计算功耗非常大,电动汽车的车载电池无法长时间支撑这个功能,而且大功率芯片会导致车体发热,容易引发油箱自燃。而且GPU一般价格昂贵,普通消费者也很少能买得起这种使用大量GPU芯片的自动驾驶汽车。因此,在人工智能领域,开发专用芯片成了必然趋势。
(行业针对不同场景开发的专用芯片技术实现路径)
目前市场上可以买到的人工智能芯片按照处理任务的不同可以分为两类。
——面向训练和推断(Inference),这个工作GPU可以干,CPU也可以干,FPGA也可以干。但如果开发人工智能的芯片,则干得更好。因为人工智能芯片是专业干这个的,相当于是“专家”。
——推断加速芯片。这类芯片就是把神经网络训练好的模型放在芯片上跑。比如寒武纪的神经网络芯片,深鉴科技的DPU,地平线机器人的BPU都是这类产品。
如果按使用场景划分,人工智能芯片主要分为云端和终端芯片。
目前主流的深度学习人工神经网络算法包括训练和推断两个环节。由于训练需要大量数据去训练人工神经网络,因此训练主要在云端进行。比如百度在2018年的AI开发者大会上推出的昆仑芯片——这是中国首款云端全功能AI芯片。而终端芯片更侧重低成本和低功耗,目前中国的人工智能芯片初创企业主要布局在这个领域。
那么,人工智能芯片是如何工作的呢?在神经网络领域,一个子领域被称为深度学习。最初的神经网络通常只有几层的网络。而深度网络通常有更多的层数,今天的网络一般在五层以上,甚至达到一千多层。
目前在视觉应用中使用深度神经网络的解释是:将图像所有像素输入到网络的第一层之后,该层的加权和可以被解释为表示图像不同的低阶特征。随着层数的加深,这些特征被组合,从而代表更高阶的图像特征。
当然,一片在指甲盖大小的面积上集成了超过 55 亿个晶体管的 AI 芯片不可能只用来拍拍照这么简单。目前手机上已经有语音服务、机器视觉识别、图像处理等智能应用,未来还会增加包含医疗、AR、游戏AI 等更多元化的应用类型。
那么语音服务、机器识别、图像自动处理这些功能,在微观层面的机制如何运行的?
以AI拍照拍摄一只在混乱背景中的猫咪为例,当图片进入摄像头中的图片在表层时,该层的加权可能被“认定”为一直老虎,但当随着加权层数的不断增加,显现的结果就会越来越精确,不仅能识别图片中是一只猫,而且还能进一步识别出猫的周围环境:有一片草地,天空是蓝的,猫站在台阶上等等更高阶的图像特征。
深度学习网络在近些年得到巨大成功,主要是由三个因素导致的。
首先是训练网络所需的海量信息。学习一个有效的表示需要大量的训练数据。目前Facebook每天收到超过3.5亿张图片,沃尔玛每小时产生2.5Pb的用户数据,YouTube每分钟有300小时的视频被上传。因此,云服务商和许多公司有海量的数据来训练算法。
其次是充足的计算资源。半导体和计算机架构的进步提供了充足的计算能力,使得在合理的时间内训练算法成为可能。
最后,算法技术的进化极大地提高了准确性并拓宽了DNN的应用范围。早期的DNN应用打开了算法发展的大门。它激发了许多深度学习框架的发展(大多数都是开源的),这使得众多研究者和从业者能够很容易的使用DNN网络。
目前,DNN已经广泛应用到各个领域,包括图像和视频、语音和语言、医药、游戏、机器人、自动驾驶等领域。可以预见的是,深度神经网络必将也会在金融(例如交易,能源预测和风险评估),基础设施建设(例如结构安全性,交通控制),天气预报和事件检测中有更多深入的应用。