1
人工智能
1.7.6 6.深度学习存在的问题和遇到的挑战

6.深度学习存在的问题和遇到的挑战

大数据和高性能的计算能力,让深度学习技术开始超越人类。随着深度学习技术在应用上已经取得的快速发展,有人开始认为,科技既然能够通过互联网,让全世界实现信息共享,那么,随着以深度学习为代表的人工智能技术的发展,有理由相信,未来将会有比人的智力更高的新物种被创造出来。

不过,在众人普遍看好深度学习技术的发展前景时,也有业内专业人士指出,深度技术在发展方面还存在着不少问题。这些问题主要体现在以下几个方面。

(1)理论问题。

深度学习的理论问题主要体现在统计学和计算两个方面。对于任意一个非线性函数,都能找到一个浅层网络和深度网络来表示。深度模型比浅层模型对非线性函数具有更好的表现能力。但深度网络的可表示性并不代表可学习性。要了解深度学习样本的复杂度,要了解需要多少训练样本才能学习到足够好的深度模型,就必须知道,通过训练得到更好的模型需要多少计算资源,理想的计算优化是什么。由于深度模型都是非凸函数,也就让深度学习在这方面的理论研究变得非常困难。

(2)建模问题。

工业界曾经有一种观点:“在大数据条件下,简单的机器学习模型会比复杂模型更有效。”在实际的大数据应用中,很多最简单的模型得到大量使用的情形也在一定程度上印证着这种观点。但是,随着深度学习的快速发展,人们不得不重新思考这种观点。因为在大数据情形下,往往只有比较复杂或表达能力强的模型,才能充分挖掘海量数据中的信息。随着深度模型变得更强大,从大数据中发掘出的信息往往更有价值。

大数据需要深度模型。比如说,语音识别所涉及的是大数据机器学习问题。其声学建模所面临的是高达十亿到千亿级别的样本训练。Google公司在一个语音识别实验中发现,训练后的DNN,训练样本上的预测误差,竟然与测试样本的预测误差基本相当。而在通常模型上,训练样本上的预测误差要明显小于测试样本。这是因为大数据里含有丰富的信息维度,从而让DNN这样高容量的复杂模型处于欠拟合状态。由此也就表明大数据需要深度学习。

浅层模型模拟人工经验抽取样本特征,其功能主要是负责分类或预测。在这种情形下,特征的好坏就成为整个系统性能的关键。为此,为了发掘更好的特征,开发人员就得对需要解决的问题有深入的理解。要做到这一点,就需要反复摸索,这在时间上往往要花费数年。这就表明,人工设计样本特征在可扩展性上欠佳。

深度学习的实质是学习更有用的特征,最终提升分类或预测的准确性。其方法是构建深度模型和海量训练数据。可以说,特征学习是目的,深度模型是手段。相对浅层学习来说,深度学习具有多达5层、6层,甚至是10多层的隐层节点,还突出了特征学习的重要性。深度学习通过逐层特征变换,让分类或预测变得更容易。

利用大数据来学习特征,比通过人工规则来构造规则更能刻画数据的内在信息。那么,在推进深度学习的学习理论与计算理论时,能不能提出新的具有强大表示能力的分层模型呢?在具体应用上,又该怎样设计一个用来解决问题的最合适的深度模型呢?还有,是否存在可能建立一个通用的深度模型或者是建模语言呢?这些都是深度学习必须面对的问题。

(3)工程问题。

对于从事深度学习技术研发的人来说,首先要解决的是利用并行计算平台来实现海量数据训练的问题。深度学习需要频繁迭代,传统的大数据平台无法适应这一点。随着互联网服务的深入,海量数据训练的重要性日益凸显。而现有的DNN训练技术通常所采用的随机梯度法,不能在多个计算机之间并行。采用CPU进行传统的DNN模型训练,训练时间非常漫长,一般训练声学模型就需要几个月的时间。这样缓慢的训练速度明显不能满足互联网服务应用的需要。目前,提升模型训练速度,成为许多大公司研发者的主攻方向。比如谷歌公司,搭建起了DistBelief这个深度学习并行计算平台。通过采用异步算法,实现随机梯度下降算法的并行化,从而加快模型训练速度。不过,工程方面尽管取得了一定的进展,但对解决各种服务需求来说,仍然有很长的一段路要走。

深度学习引领着“大数据+深度模型”时代的到来。尤其是在推动人工智能和人机交互方面取得了长足的进步。同时也应该看到,深度学习在理论、建模和工程方面仍面临着一系列的难题。而在具体应用方面,深度学习也面临着一些挑战。

人工智能神经网络建设从最初的设想到成为信息技术中的应用,花了超过50年的时间。在克服传统计算机性能不足方面,神经网络算法较其他算法更具有先进性。在早期的实验中,网络训练方法是:“迭代地调整每个神经元施加到其输入的数据,来尽量减少整个网络的输出与所希望的结果之间的误差。”这样的训练虽然较过去有所改善,但让深度学习在规模上面临着一个挑战。

2006年,多伦多大学开发的训练技术能用于包含多个隐藏层的网络,其中的一种技术叫作“预训练”。这种方法能让上层提取高级特征,但无法解决规模问题。处在较高层的神经元,需要巨大的计算能力。如用于图像处理应用程序的第一层所需要分析的像素就多达一百万个。深度网络的多个层连接的数量非常巨大,每个图像的连接就达几十亿甚至上千亿。训练这样的大型网络,需要数千亿的浮点运算。这样的巨大规模,让神经网络的训练变得非常缓慢。

另外,深度学习的形式也存在一定的限制。谷歌公司通过电脑游戏来评估深度神经网络应对不同类型问题的性能时发现,深度神经网络无法处理类似穿越迷宫这样的情况。当然,面对挑战,各种应对措施也相应实施。比如AMD和nVidia公司,他们通过提供并行执行能力,从而在图形处理单元(GPU)上大大节约了训练时间。在寻找生物细胞分裂视觉特征的实验中,他们只花了三天时间,而在传统CPU上的训练时间则要达五个月。

可以展望的是,人工智能将引领未来的技术和系统革命,而随着深度学习存在的问题和面临的挑战被逐渐攻破,人工智能前行的步伐将会越来越快。