1.1 机器学习与深度学习
人工智能、机器学习、深度学习是近年来非常流行的三个词。三者之间的关系如图1-1所示。
图1-1 人工智能、机器学习与深度学习之间的关系
从图1-1可知,可以将深度学习、机器学习、人工智能想象成一组由小到大、一个套一个的俄罗斯套娃。深度学习是机器学习的一个子集,而机器学习则是人工智能的一个子集。
人工智能、机器学习、深度学习三者的定义可以用以下较通俗的语言进行阐述。
- 人工智能(Artificial Intelligence,AI):人工智能涵盖的内容非常广泛,从广义上讲,任何能够从事某种智能活动的计算机程序都是人工智能。
- 机器学习(Machine Learning,ML):利用计算机、概率论、统计学等知识,输入数据,让计算机学会新知识。机器学习的过程,就是训练数据去优化目标函数的过程。
- 深度学习(Deep Learning,DL):是一种特殊的机器学习,具有强大的能力和灵活性。它通过学习将世界表示为嵌套的层次结构,每个表示都与更简单的特征相关,而抽象的表示则用于计算更抽象的表示。
机器学习与深度学习的区别在于,传统的机器学习需要定义一些人工特征,从而有目的地去提取目标信息,非常依赖任务的特异性以及设计特征的专家经验。深度学习可以先从大数据中学习简单的特征,并从其中逐渐学习到更为复杂抽象的深层特征,而不依赖人工的特征工程,这也是深度学习在大数据时代受欢迎的一大原因。
机器学习是通过复杂的算法来分析大量的数据,识别数据中的模式,并据此做出判断和预测。按照主流方法,机器学习的算法又可以分为分类、回归、聚类和关联规则等。其中聚类分析常用于客户分群和异常值侦测场景,关联规则常用于购物篮分析场景,分类和回归算法多用于预测场景。表1-1给出了机器学习常用分类和回归算法的基本原理及R语言实现。
表1-1 算法基本原理及R语言实现
从表1-1可知,对于一些主流算法,R语言提供了不只一种方法实现。曾经有人抱怨R语言的扩展包太多、学习难度大,不如Python的sklearn算法库系统。其实R语言caret扩展包中的train()函数就提供了上百种机器学习算法,能满足绝大部分机器学习算法需求。
深度学习作为人工智能领域的重大突破,推动计算机智能取得长足进步。它用大量的数据和计算能力来模拟深度神经网络。从本质上说,这些网络可以模仿人类大脑的连通性,对数据集进行分类,并发现它们之间的相关性。通过深度学习,机器可以处理大量数据,识别复杂的模式,并提出深入的见解。
深度人工神经网络算法是一类在图像识别、声音识别、推荐系统等重要问题上不断刷新准确率纪录的算法。DeepMind声名远扬的AlphaGo算法在2016年早些时候击败了前世界围棋冠军李世石,该算法就包含深度学习技术。深度是一个术语,指的是一个神经网络中层的数量。浅层神经网络有一个所谓的隐藏层,而深度神经网络则有不只一个隐藏层。多个隐藏层让深度神经网络能够以分层的方式学习数据的特征,因为简单特征(比如两个像素)可逐层叠加,形成更复杂的特征(比如一条直线)。