当Alpha Go点燃人类对深度学习的好奇心后,近年深度学习在市场上的讨论度达到一个高峰。我们很容易从网络资源上取得关于深度学习的开发步骤,若归结到最根本的问题,究竟深度学习需要先准备哪里些东西?
浅谈深度学习的架构,主要可分为训练(Training)与推论(Inference)两个阶段。简单来说,就是训练机器学习,以及让机器展现学习成果。再进一步谈深度学习的运算架构,NVIDIA解决方案架构经理康胜闵简单统整,定义出几个步骤:
例如,必须收集学习所需的大数据,包含大量的图片、影片、文字或语言;接著建置运算环境,例如设计类神经网络算法、选择合适的运算平台软件、运算环境中软硬件资源的配置等;经过反复学习、验证与调整后得出最佳化模型,也就是学习成果,最后将模型导入产业环境中使用。
因此,深度学习的第一件事,必须先建立训练的环境。而建立训练环境的过程,单单几个步骤看似简单,实则复杂,主要是因为整个训练环境横跨多个领域,包括半导体芯片设计、IT领域的技术、计算机科学、资料科学、数学等,若涵盖应用端则又更广。
由于深度学习所涉及的领域相当广泛,对非具备相关知识的人来说,看着深度学习就像一个魔法,就算是涉猎其中一项技术的人,也不一定能融会贯通。但事实上,要实现深度学习并不难,尤其现今的开发环境中,在市场上都具备许多相当完整且成熟的产品可提供开发者使用,甚至简化训练过程。
象是芯片大厂NVIDIA、英特尔(Intel)纷纷在市场上推出集成软硬件的深度学习解决方案,或是各种软件开发工具加速深度学习。台厂方面,掌握众多产业Know-how的IPC大厂研华也投入市场开发,以产业需求为核心提出深度学习解决方案。
随著深度学习的前景与商机爆发,投入市场的人势必越来越多,但这些人在深度学习领域中所扮演的角色与功能不尽相同。虽然深度学习在媒体上的讨论度非常高,网络上针对每个层面的技术都有相关文章为读者抽丝剥茧,不过,碍于庞大的生态系,碎片化的信息仍旧难以将整个生态系串联起来。
换一个角度来看,从产业链来定义深度学习的开发环境,暂且把它称之为深度学习的生态系。为简化深度学习的生态系,研华智能系统事业群协理鲍志伟提出一个五层金字塔的概念,将深度学习的开发环境与过程透过五个层级,分别定义出每一层在深度学习系统中所扮演的角色,以及对应的产业结构。
要想明白深度学习需要怎样的软硬件,必须了解深度学习的工作原理。试想象一个五层金字塔,从最底层往上堆叠,第一层是深度学习在训练过程中的「引擎」,也就是硬件基础。深度学习之所以能够加速发展,主要的原因是因为市场发现GPU所提供的强大平行运算架构能大举提升比CPU更快的运算速度,这也让GPU成为深度学习的代名词。
虽然GPU在深度学习运算中占有绝对重要的地位,但市场上仍有部份业者投入开发不同于GPU架构的芯片。相较于GPU本来专为游戏开发却无心插柳到AI领域,ASIC是一种专为特定目的而设计的集成电路,在效能与功耗上都要优于GPU,但因其技术门槛高,目前大多由具备AI算法又擅长芯片研发的大厂参与,包括英特尔与Google都相继投入开发。
而在金字塔的第二层中,则为专门提供开发者建立一个让深度学习在运算时,可供扩展且易于部署的基础设施环境,当中包括一些基于硬件优化的开源软件工具,让开发者能够d性调配服务器里的GPU资源。
若是以传统实体机建构的运算环境,一方面因成本太高,另一方面也因为专机专用导致使用率偏低。所幸随著虚拟化技术的进步,现在连GPU也可以透过虚拟化达到运算资源分享,开发者可以透过云端服务商所提供的基础设施建立起深度学习运算环境。
不过,即便部署虚拟化的运算环境,在系统建置上仍会遇到开发环境不兼容等的问题。对此,具有隔离性和可移植性的容器技术正因此而变得盛行。容器可将软件与其周围的环境隔离开来,此有助于减少在同一基础架构上,运行不同软件之间的冲突。而像Docker这样的容器格式,以及由Google所设计的容器管理平台Kubernete也正受到市场广泛地支持。
当底层的运算环境建置起来后,在第三层的架构中则是建立训练模型。在建立模型的过程中,开发者需要一个提供训练空间的运算平台软件,也就是市场上耳熟能详的深度学习框架。现在有许多框架都能为开发者提供各种工具去设计、建构和训练自己的模型,并在训练过程中不断进行测试与调整算法的参数以得出最佳化的模型。
自2016年开始,不少科技巨头便纷纷投入开发高效快速的架构,市场上比较知名的三巨头有Google的TensorFlow、Facebook的Caffe以及微软的CNTK。大厂释出开源框架,也大大降低开发者训练模型的入门门槛,开发者可自己选择从复杂的神经网络中编写程序,或是调整框架中的模型来训练与设计算法。
另一方面,数据的准备工作则是训练模型前的必要工作,对于大数据的搜集、整理和分析归纳是一门学问,在第四层架构中,资料科学是其核心,透过分析资料的关联性,可以额外获得新的信息。
但分析数据非常耗时耗力,所幸在入门阶段的开发者可以使用现有的开源图象资料库快速完成前期工作。许多现有的开源图象资料库大多由大学或实验室研究开发,象是常见的人脸资料库VGG-Face Dataset由牛津大学(University of Oxford)研究与整理,而全世界最大的图象识别资料库ImageNet也是由史丹佛大学(Stanford University)所建立。
从金字塔的一到四层建构起一个深度学习训练系统后,最终开发者将训练出最佳化的深度学习模型,而此模型便可实际导入应用端,让机器在未来新的环境里吸收新的资料加以消化,实现各种智能化的应用,这便是深度学习的最终目的。
市场在讨论深度学习时,从应用层切入是最易于引起广泛的讨论,但事实上,从训练到推论的过程中却牵涉很多领域的技术,且所涵盖的知识背景也大有不同。
就像一开始所提,并非每个投入深度学习开发的人在各个领域都能专精,甚至为了加速深度学习的开发,因此,尽可能向市场获取简便、快速的开发工具与资源,便成为现今投入深度学习市场中重要的课题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)