第1章绪论
可见,Samuel给出了一个比较直观的定义,机器学习就是研究如何让计算机在不被明确地编程的情况下具有学习能力。这就不是机关术那么简单,而是具有类人的智能了。Mitchell的定义比较正式,因而得到了广泛引用。但这段英文实在是佶屈聱牙,有点像英文绕口令。其实不必担心,这段定义里有三个重要的概念,分别是经验E、任务T和性能指标P。如果一个计算机程序能够通过经验E改进其在任务T上的性能指标P,则称其具有学习能力。这是一个非常重要的定义,定义了机器学习的一个通用模型。从后文中可以看到,经验E、任务T和性能指标P贯穿机器学习的始终,在求解机器学习问题时都有着明确的数学表示。
Mitchell的定义对于初学者来说依然比较难以理解。其实可以参考人类学习的过程,经验E就是从大量历史数据中总结出的规律,任务T一般为对新事物的识别和新形势的预测,P当然指的就是识别和预测的准确率。古谚“老马识途”比喻的是阅历丰富的人对事物的走向把握得比较准确,也就是因为其“历史数据”很多,从而能够总结出比较客观的规律而已。
那么深度学习又是什么呢?关于深度学习的定义有很多,但有一点是肯定的,那就是深度学习是机器学习的一个子域(subfield)或分支(branch)。深度学习兴起于2006年,也被称为深度结构化学习(deepstructuredlearning)、层次化学习(hierarchicallearning)或深度机器学习(deepmachinelearning)[1,2]。虽然学术界尚无对深度学习的统一定义,在此可以提供几个权威的定义供读者参考。
定义1深度学习方法是多层表示的表示学习方法,多层表示由一个从低到高的非线性简单模块网络获得,每个模块将表示从一个层次(起始于原始输入)转化至另一个更高的、更抽象的层次[3]。
定义2深度学习是机器学习的一个分支,基于一个尝试使用多复杂结构处理层或多非线性变化来模型化高层次抽象的算法集[4]。
定义3深度学习是一类机器学习算法:
使用多层非线性处理单元级联来进行特征抽取和转换。每个后续层使用之前层的输出作为输入。算法可能是监督的或非监督的,应用包括模式分析(非监督)和分类(监督)。
是基于多层数据特征或表示的(非监督)学习。高层特征来自低层特征以形成层级表示。
是更广的机器学习领域中的数据表示学习部分。
学习对应于不同层抽象的多层表示,不同层组成了概念的不同层级。
以上定义有两个共同点:(1)多层非线性处理单元;(2)每层中的监督或非监督特征表示学习,各层组成从低层特征到高层特征的层次结构。
定义4深度学习是机器学习中的一个算法集,在多个层次上进行学习,对应不同层次的抽象。通常使用人工神经网络。学习的统计模型中不同的层次对应不同层次的概念,高层次的概念由低层次的概念定义,相同低层次的概念可帮助定义许多高层次的概念。
第一个定义是机器学习界的大神Hinton在其发表于Nature上的文章“Deeplearning”中给出的定义,第二和第三个定义是维基百科给出的定义,第四个定义出自LiDeng的DeepLearningMethodsandApplications一书。这是四个足以令初学者失去继续学习勇气的定义。不过没关系,随着后面对例子的讲解,读者会对深度学习有一个直观的认识,那时再回过头来看看上述定义,就会有所理解。在此之前,只需要知道两点就足够了:(1)深度学习是机器学习的一种;(2)深度学习使用深度神经网络为主要工具,这也是其得名的原因。
1.2基本概念
在有关深度学习的文献阅读中,经常会遇到一些术语和概念。对于初学者来说,快速入门的方法莫过于对其中某些关键概念的掌握。把握整个领域的知识架构,提纲挈领地学习,避免陷入只见树木,不见森林的困境。本节意在以浅显而非专业化的语言描述机器学习、深度学习中一些关键的概念,梳理整个领域的知识架构,为进一步了解深度学习的原理和应用做好铺垫。
首先从一些基本的概念说起。随着人工智能领域在近些年的火爆,科技工作者的微信朋友圈经常被人工智能相关的新闻和技术帖刷屏。人工智能、机器学习、深度学习等名词成了圈内的高频词汇。这些概念都是什么意思,又有什么关系呢?
蒙特利尔大学深度学习大神YoshuaBengio在其即将于MIT出版社出版的Deeplearning[6]一书中对这些概念进行了阐述,借用其文氏图表示这些概念的关系如图1.1所示。