1.2 深度学习的三大核心要素
深度学习的三大核心要素是大数据、深度神经网络架构和高性能的计算能力,如图1.5所示。
图1.5 深度学习的三大核心要素
1.大数据
如果把深度学习比喻成火箭,那么大数据就是火箭的燃料。据Facebook统计,Facebook每天产生4PB的数据,包含100亿条信息,以及3.5亿张照片和1亿小时的视频。此外,在Instagram上,用户每天要分享9500万张照片;Twitter用户每天要发送5亿条信息。随着互联网特别是移动互联网时代的到来,人们在互联网上的每个动作几乎都会被服务器记录下来,这些数据使人类一下子进入了大数据时代。大数据时代对传统的算法提出了挑战。在传统算法不能满足人类需求的领域,深度学习应运而生。图1.6显示了随着数据规模的增加,传统算法和深度学习准确率的对比。
图1.6 传统算法和深度学习准确率的对比
图1.6中,横坐标表示的是数据规模的大小,纵坐标表示的是模型所能达到的分类或预测的准确率。对比这两条曲线可以清晰地看到,随着数据规模的增加,深度学习可以在一定范围内持续不断地提高准确率,而传统算法则会很快地遇到准确率的瓶颈。
2.深度神经网络架构
深度神经网络架构就是整个神经网络体系的构建方式和拓扑连接结构,目前最常用的有4种:全连接神经网络、卷积神经网络、循环神经网络和生成式对抗网络。
在全连接神经网络(Full Connection Neural Network,FCNN,详见第5章)中,所有的节点都是一层一层的,每个节点与它相邻层的全部节点相连。这些层一般分为输入层、输出层及介于二者之间的隐藏层。
卷积神经网络(Convolutional Neural Network,CNN,详见第6章)一般用于对图片进行处理,该网络可以使原始的图片即使在经历平移、缩放等变换之后仍然具有很高的识别度。正是因为这样特殊的架构,CNN成功应用于计算机视觉领域。
循环神经网络(Recurrent Neural Network,RNN,详见第7章)是一类用于处理序列数据的神经网络,即一个序列当前的输出与前面的输出也有关,常用于自然语言处理等领域。
生成式对抗网络(Generative Adversarial Network,GAN,详见第8章)至少包括两个模块:生成网络和判别网络,它们互相博弈,产生相当好的输出。该网络常用于生成影片、三维物体模型等。
最近几年,研究者提出了越来越多的新型网络架构,从而使深度学习的性能得到了大幅提升。
3.高性能的计算能力
在如此深的网络架构中处理如此大量的数据(且这些数据多以张量的形式表示,详见第3章),必须要有高性能的计算能力。但要满足这样的计算能力并不需要大规模增加CPU,CPU的强大功能如果只用来做计算就大材小用了,只需要交给擅长大规模张量计算的GPU来完成就可以了。
例如,假设有一堆相同的加、减、乘、除计算任务需要处理,那么把这个任务交给几十个中学生就可以了,无须交给大学生,这里的中学生类似于GPU的计算单元。而对于一些复杂的逻辑推理问题,如公式推导、科技文章写作等高度逻辑化的任务,交给中学生显然不合适,这时交给大学生更适合,这里的大学生类似于CPU的计算单元。
GPU到底是什么呢?GPU就是图形处理单元(Graphics Processing Unit),和CPU一样,是用于计算的基本单元。只不过GPU镶嵌在显卡上,而CPU镶嵌在主板上。图1.7给出了一款NVIDIA TITAN RTX GPU,它可利用576个张量核心加快人工智能算法的工作流程,并利用4608个NVIDA CUDA核心加快并行计算,它可以在几分钟内分析1.2亿条航空公司数据记录。
图1.7 NVIDIA TITAN RTX GPU
GPU为什么擅长进行大规模的张量计算,从而能快速完成深度神经网络的计算呢?这要从GPU的逻辑架构来分析。
图1.8对CPU与GPU的逻辑架构进行了对比。其中Control是控制器、ALU是算术逻辑单元、Cache是CPU内部缓存、DRAM是内存。可以看到,GPU设计者将更多的ALU作为执行单元,而不像CPU那样需要更复杂的控制器和更多的内部缓存。从存储空间来看,CPU空间的5%是ALU,而GPU空间的40%是ALU,这就是GPU计算能力超强的根本原因。
到此,大数据、深度神经网络架构和高性能的计算能力这三大深度学习的核心要素就介绍完了,我们可以踏上学习深度学习的康庄大道了。
图1.8 CPU和GPU的逻辑架构对比图