2.4 深度学习实践
2.4.1 建模工具
深度学习网络内部建模过程如图2-15所示。
深度学习工具是一套灵活的建模框架。使用深度学习工具,在大数据集与大运算量下,采用一些基本框架,避免很多人工干预和手动编程,实现过程的自动化。
一个神经网络模型主要包括数据输入、神经层处理、损失函数计算、反向梯度计算、训练与验证。神经层处理包括网络结构、连接关系,以及激励函数的选择。
2.4.2 软硬件工具
图2-15 深度学习网络内部建模过程
各家互联网巨头都推出了相应的软件工具,主要有谷歌公司的TensorFlow、脸书公司的Torch、微软公司的CNTK,以及亚马逊公司支持的MXNET。这些框架将以上的模块和过程自动化,大大促进了深度学习技术的普及。
深度学习软硬件工具如图2-16所示。
图2-16 深度学习软硬件工具
深度学习工具一直是深度学习研究进展的一个副产品。国际上对深度学习的研究,呈现出群雄逐鹿的局面,其中当前几个实力雄厚的团队如下。
(1)由Jeff Dean领导的Googel Brain团队,包括深度学习领军人物Geoffrey Hinton。
(2)由Yann LeCun领导的Facebook AI Research。
(3)由Ilya Sutskever领导的OpenAI。
从硬件层面,底层硬件包括可编程逻辑阵列(FPGA)、通用图形处理器(GPGPU)、通用处理器(CPU)群集。因为运行效率的问题,目前主要采用通用图形处理器、FPGA和定制化的方法。
例如,NVIDIA公司提出的Pascal系列、Tesla系列等通用图形处理器。英特尔公司收购了Nervana和Altera公司,推出的Phi处理器等。谷歌公司更是推出了定制化ASIC的TPU(TensorFlow Processing Unit)。
微软、亚马逊和谷歌都推出了带通用图形处理器的云主机,大大方便了深度学习的使用。几家公司又推出了带可编程逻辑阵列(FPGA)的云主机,大大方便了定制化的神经网络训练和部署。