深度学习:主流框架和编程实战
上QQ阅读APP看书,第一时间看更新

t1

1.1 机器学习与深度学习

斯坦福大学终身教授、ImageNet数据库的缔造者、现任Google Cloud首席科学家的华裔科学家李飞飞认为“人工智能将成为新的生产力,成为第四次工业革命的主要推动力之一”。人工智能重在实现机器智能,实现的方式为机器学习。作为人工智能的重要分支,机器学习主要研究的是如何使机器通过识别和利用现有知识来获取新知识和新技能。自20世纪80年代以来,机器学习已经在算法、理论和应用等方面都取得巨大成功,而被广泛应用于产业界与学术界。简单来说,机器学习就是通过算法使得机器能从大量历史数据中学习规律,从而对新的样本完成智能识别或对未来做预测。

而深度学习是机器学习的一个分支和新的研究领域,如今在大数据的背景下,可用数据量的激增、计算能力的增强以及计算成本的降低为深度学习的进一步发展提供了平台,同时也为深度学习在各大领域中的应用提供了支撑。自AlphaGo被提出并成功击败职业围棋手后,“深度学习”这一概念快速进入人们的视野并在业界引起了轰动,其因强大的特征提取能力以及灵活性而在国内外各大企业中掀起一阵狂潮,在语音识别、图像识别和图像处理领域取得的成果尤为突出。深度学习的本质在于利用海量的训练数据(可为无标签数据),通过构建多隐层的模型,去学习更加有用的特征数据,从而提高数据分类效果,提升预测结果的准确性。

本节将从时期阶段发展和模型结构发展的角度介绍机器学习与深度学习之间的关系,并在此基础上从六个方面对机器学习和深度学习进行对比,从而进一步阐述二者之间的关系。

1.1.1 机器学习与深度学习的关系

机器学习的发展历程大致可以分为五个时期,而伴随着机器学习的发展,深度学习共出现三次浪潮。接下来,以机器学习的发展作为主线来介绍不同时期机器学习与深度学习之间的关系。

第一个时期从20世纪50年代持续至20世纪70年代,由于在此期间研究人员致力于用数学证明机器学习的合理性,因此称之为“推理期”。在此期间深度学习的雏形出现在控制论中,随着生物学习理论的发展与第一个模型的实现(感知机,1958年),其能实现单个神经元的训练,这是深度学习的第一次浪潮。

第二个时期从20世纪70年代持续至20世纪80年代,由于在这个阶段费根鲍姆(Edward Albert Feigenbaum)等机器学习专家认为机器学习就是让机器获取知识,因此称之为“知识期”,在此期间深度学习主要表现在机器学习中基于神经网络的连接主义。

第三个时期从20世纪80年代持续至20世纪90年代,这个时期的机器学习专家主张让机器“主动”学习,即从样例中学习知识,代表性成果包括决策树和BP神经网络,因此称这个时期为“学习期”。在此期间深度学习仍然表现为基于神经网络的连接主义,而其中BP神经网络的提出为深度学习带来了第二次浪潮。其实在此期间就存在很好的算法,但由于数据量以及计算能力的限制致使这些算法的良好效果并没有展现出来。

第四个时期从20世纪初持续至21世纪初,这时的研究者们开始尝试用统计的方法分析并预测数据的分布,因此称这个时期为“统计期”,这个阶段提出了代表性的算法——支持向量机。而此时的深度学习仍然停留在第二次浪潮中。

第五个时期从20世纪初持续至今,在这个时期神经网络再一次被机器学习专家重视。2006年Hinton及其学生Salakhutdinov发表的论文《Reducing the Dimensionality of Data with Neural Networks》标志着深度学习的正式复兴,该时期掀起深度学习的第三次浪潮,同时在机器学习的发展阶段中被称为“深度学习”时期。此时,深度神经网络已经优于与之竞争的基于其他机器学习的技术以及手工设计功能的AI系统。而在此之后,伴随着数据量的爆炸式增长与计算能力的与日俱增,深度学习得到了进一步的发展。

根据机器学习的模型结构,认为机器学习有两次里程碑式的变革。第一次变革为浅层学习,所谓浅层学习是指网络层数较少(多为一层)的人工神经网络。称其为第一次变革主要是因为在此阶段提出了反向传播算法,该算法的提出可以使人工神经网络模型从大量的训练样本中“学习”出统计规律,从而对未知事件做出预测。第二次变革为深度学习,区别于浅层神经网络,深度学习强调了模型结构的深度,同时明确突出了特征学习的重要性,即通过逐层特征变换,将样本在原空间的特征变换到一个新特征空间,从而更加容易地进行分类或预测。

总之,无论从发展历程的角度还是从模型结构的角度出发,深度学习都与机器学习息息相关,并且在机器学习领域中占有重要地位,影响着机器学习的发展趋势。

1.1.2 传统机器学习与深度学习的对比

传统机器学习与深度学习在理论与应用上都存在差异,下面将分别从数据依赖、硬件支持、特征工程、问题解决方案、执行时间以及可解释性这六个方面对传统机器学习与深度学习的差别进行比较。

数据依赖:深度学习和传统机器学习最重要的区别是前者的性能随着数据量的增加而增强。如果数据很少,深度学习算法性能并不好,这是因为深度学习算法需要通过大量数据才能很好地理解其中蕴含的模式。在这种情况下,使用人工指定规则的传统机器学习占据上风。

硬件支持:深度学习算法严重依赖于高端机,而传统机器学习在低端机上就可以运行。因为深度学习需要进行大量矩阵乘法操作,而GPU可以有效优化这些操作,所以GPU成为其中必不可少的一部分。

特征工程:特征工程将领域知识输入特征提取器,降低数据复杂度,使数据中的模式对学习算法更加明显,并得到更优秀的结果。从时间和专业性方面讲,这个过程开销很大。在机器学习中,大多数使用的特征都是由专家指定或根据先验知识来确定每个数据域和数据类型。比如,特征可以是像素值、形状、纹理、位置、方向。大多数传统机器学习方法的性能依赖于识别和抽取这些特征的准确度。

问题解决方案:当使用传统机器学习方法解决问题时,经常采取化整为零,分别解决,再合并结果的求解策略。而深度学习主张端到端的模型,即输入训练数据,直接输出最终结果,让网络自己学习如何提取关键特征。如图1-1所示为传统机器学习和深度学习对比流程图。

图1-1 传统机器学习和深度学习对比流程图

执行时间:深度学习需要进行很长时间的训练,因为深度学习中很多参数都需要进行远超正常水平的时间训练,如ResNet大概需要两周时间从零开始完成训练,而机器学习只需要从几秒到几小时不等的训练时间。测试所需要的时间就完全相反,深度学习算法运行只需要很少的时间。

可解释性:假定使用深度学习给文章自动评分,会发现性能很不错,并且接近人类评分水准,但它不能解释为什么给出这样的分数。在运行过程中可以发现深度神经网络的哪些节点被激活,但不知道这些神经元是对什么进行建模以及每层在干什么,所以无法解释结果。另一方面,机器学习算法如决策树按照规则明确解释每一步做出选择的原因,因此像决策树和线性/逻辑回归这类算法由于可解释性良好,在工业界应用很广泛。