深度学习:核心技术、工具与案例解析
上QQ阅读APP看书,第一时间看更新

1.2 深度学习的技术发展

深度学习近年来的大范围应用和发展,除了要归功于大数据沉淀和计算能力的提升,同时也得益于深度学习模型的灵活性。反过来看传统的机器学习,每个算法都是针对特定的应用。AI工程师和研发人员更多的工作是在进行特征的抽取上。而深度学习则可以有更多样的输入和输出,例如任意维度的张量,甚至大小都是可以变化的。同时模型在设计上也很灵活,能对更加复杂的问题进行建模。我们也可以认为深度学习更像是一种语言,我们通过它来描述对问题的理解。下面将从基础技术、应用等维度展开深度学习技术的发展状况。

1.2.1 基础技术发展

我们可以从框架层、硬件层、标准层对深度学习的基础技术进行关注,通过应用场景整体进行驱动后端的技术发展。接下来就从不同的层面对深度学习技术进行全面的了解。

1.框架

深度学习计算框架目前处于百花齐放的状态,也有开源后应用非常广泛的Google开源的TensorFlow、微软开源的CNTK和百度主推的PaddlePaddle、亚马逊主推的MXNet。

框架的多样性导致了深度学习框架前端用户接口的多样化,微软也推出了Visual Studio Tools for AI,可以在一套开发工具内集成各种框架进行开发。

深度学习框架的发展与编程语言的发展比较类似,随着编程语言的多样化与CPU架构的变化,有了后来的LLVM,将语言的前端与后端分离开来,为新语言和新硬件提供了非常好的支持。对于深度学习,类似于LLVM,产生了NNVM项目,其尝试将深度学习的前端与后端进行解耦。

2.硬件

深度学习的执行作业需要大量的矩阵和向量计算,基于GPU、FPGA、ASIC等异构硬支撑深度学习运算的场景在各大公司不断进行尝试。例如GPU适合模型训练,CPU由于大量存在也经常用作云端模型预测,但很多厂商也开始走FPGA路线。ARM主要用于手机等低功耗的场景,但很可能其很快就会被定制的FPGA/ASIC所取代。虽然目前的主流硬件是Nvidia GPU,但Intel正在试图通过下一代的神经引擎迎头赶上。

3.标准

随着框架和模型的发展,越来越多的公司和生产环境产生了大量不同标准的模型,模型和框架之间的转换是工程师和研究人员想要解决的问题。微软和Facebook发布了一个全新的开源项目——ONNX,欲借此打造一个开放的深度学习开发工具生态系统。该项目的目的是让不同的神经网络开发框架做到互通互用。早前,Microsoft Cognitive Toolkit、PyTorch和Caffe2均已宣布支持ONNX。后来,AMD、ARM、华为、IBM、英特尔、高通等同时宣布支持ONNX。研究人员可以轻易地在当前顶尖的机器学习工具之间进行转换,并为项目选择最好的组合方式。

1.2.2 应用技术发展

深度学习在不同应用场景下的发展也十分迅速,其在语音、计算机视觉、自然语言处理等领域都取得了不俗的成绩,同时在原有机器学习的场景下,研究人员也在不断尝试使用深度学习的方案优化原有的解决方案。

1.深度学习在语音识别领域的发展

传统语音识别系统的代表方法是GMM-HMM等架构和方法。之后微软成功地将深度学习应用到语音识别系统中,相比之前的最优方法,单词错误率降低了很多。随后微软基于上下文相关的深度神经网络——隐马尔可夫模型,成功识别大词汇量语音,改变了语音识别系统的原有框架。目前许多国内外知名的语音研究机构,如微软、讯飞、Google等公司都在积极研究深度学习在语音识别上的应用。在应用层面,苹果Siri、微软小娜等应用,对开发者开放了语音识别API,语音识别的应用也在如火如荼地发展中。

2.深度学习在计算机视觉领域的发展

在声音、图像、文本三个领域中,深度学习在图像识别领域对识别效果的提升最为显著。公开数据集和竞赛,如ImageNet等,促进了深度学习在图像识别领域的进展。深度神经网络朝着更深层、更宽的网络结构,更快的计算方式和更高的利用率平台架构,更广泛的视觉应用领域发展。深度学习在计算机视觉领域的外延逐渐拓展开来,我们可以看到以下的应用。

 

▼ 互联网领域:核身平台、直播美颜等。

▼ 安防领域:机场安检、车牌定位、目标追踪等。

▼ 日常生活:门禁系统、人脸识别、表情识别等。

如图1-4所示,在安防领域经过人脸检测、关键点定位与人脸对齐、人脸特征提取比对与认证可以实现人脸识别的身份识别系统。

图1-4 人脸识别核身系统

3.深度学习在自然语言处理领域的发展

自然语言处理问题是深度学习在除了语音和图像处理之外的另一个重要的应用领域。数十年以来,自然语言处理的主流方法是基于统计的模型进行处理。我们可以看到深度学习对NLP的贡献。深度学习在NLP的细分领域取得了很大进展,比如机器翻译、问答系统、聊天机器人、情感分析等。同时深度学习也面临了很多挑战,即如何与领域知识、语言学知识结合;如何通过增强学习的方式利用环境提升系统;如何利用上下文学习和用户画像体现个性化的结果。

如图1-5所示的是用户体验与微软小冰进行对话的场景,小冰背后大量使用了深度学习技术。

true

图1-5 对话机器人微软小冰