机器学习介绍
1. 什么是机器学习
在李老师的机器学习课程中说到,人工智慧是我们想要达成的目标,而机器学习是想要达成目标的手段,希望机器通过学习方式,他跟人一样聪明。这种说法真的十分通俗易懂,但如果要探究机器学习背后更深的渊源,了解这门学科的发展历程也是十分有帮助的。
计算机科学中,每一门技术的出现都有着其需求的背景,机器学习也不例外,作为一门独立的学科,机器学习受到重视是在人工智能发展的第三阶段,其作用在于帮助计算机归纳知识。在20世纪50年代至70年代,计算机科学蓬勃发展,当时人们想象力及勇气都处于很高的阶段(有多高呢,大概三四楼那么高)。那时的人们和现在的人想法一样,想赋予机器以智能,于是人工智能这一庞大课题就出现了。要知道,早在1950年,阿兰·图灵就提出了图灵测试机,大意是将人和机器放在一个小黑屋里与屋外的人对话,如果屋外的人分不清对话者是人类还是机器,那么这台机器就拥有像人一样的智能。
早期人工智能以赋予机器推理逻辑能力的研究为主,可能当时人们逻辑思考和推理能力是智能的本质,于是在这方面进行了大量的研究,这一阶段也取得了很重要的成功,比如当时的==“逻辑理论家”程序在1952年证明了《数学原理》中的38条定理,并在1963年证明了全部52条定理,其中定理2.85甚至比罗素和怀特海的证明更巧妙。这一阶段就是“推理期”==。
”推理期“的成就显然是振奋人心的,人们怀着热情继续研究下去,1964年,首台聊天机器人也诞生了,以至于当时,有很多学者认为:“二十年内,机器将能完成人能做到的一切。”,但很显然,人们低估了这一工作的难度,碰壁在所难免。随着把逻辑推理推向更一般,也更复杂的场景时,人们发现之前的推理规则过于简单,面对稍微一般的场景就有点束手无策了。而且仅有逻辑推理能力也是远远不能实现人工智能的,一个专家除了有推理能力,更重要的是他有过往的经验,经验就是知识。于是在这段时间,及20世纪70年代开始,人工智能进入了==“知识期”==,这一阶段的成果就是大量的专家系统的诞生。
但很快,知识期的人工智能研究马上也遇到了瓶颈,就是人们要教计算机知识实在太费劲了,于是人们就想,如果计算机能自己学习知识那该多好,于是机器学习就在这个时候受到青睐而蓬勃发展,人工智能在这一阶段的发展就是==“学习期”==。
现在回顾一下,人工智能发展经历了推理期 -> 知识期 ->学习期 三个阶段,而机器学习 受到重视是在第三阶段,其目的是为解决知识工程瓶颈的问题,让计算机能自己学习知识。
2. 机器学习的发展及分类
机器学习的发展也是一波三折,从最开始的连接主义,到符号主义,统计主义,再到最近的深度学习领域,目前已成为一个庞大的学科领域。(说如今是机器学习时代感觉也不是不可以)
机器学习是现阶段解决很多人工智能问题的主流方法,作为一个独立的方向,正处于高速发展之中。最早的机器学习算法可以追溯到20世纪初,到今天为止,已经过去了100多年。从1980年机器学习称为一个独立的方向开始算起,到现在也已经过去了近40年。在这100多年中,经过一代又一代人的努力,诞生出了大量经典的方法,总体上,机器学习算法可以分为有监督学习,无监督学习,强化学习3种类型。
算法的分类
总体上,机器学习算法可以分为有监督学习,无监督学习,强化学习3种类型。半监督学习可以认为是有监督学习与无监督学习的结合,不在本文讨论的范围之类。
有监督学习通过训练样本学习得到一个模型,然后用这个模型进行推理。例如,我们如果要识别各种水果的图像,则需要用人工标注(即标好了每张图像所属的类别,如苹果,梨,香蕉)的样本进行训练,得到一个模型,接下来,就可以用这个模型对未知类型的水果进行判断,这称为预测。如果只是预测一个类别值,则称为分类问题;如果要预测出一个实数,则称为回归问题,如根据一个人的学历、工作年限、所在城市、行业等特征来预测这个人的收入。
无监督学习则没有训练过程,给定一些样本数据,让机器学习算法直接对这些数据进行分析,得到数据的某些知识。其典型代表是聚类,例如,我们抓取了1万个网页,要完成对这些网页的归类,在这里,我们并没有事先定义好的类别,也没有已经训练好的分类模型。聚类算法要自己完成对这1万个网页的归类,保证同一类网页是同一个主题的,不同类型的网页是不一样的。无监督学习的另外一类典型算法是数据降维,它将一个高维向量变换到低维空间中,并且要保持数据的一些内在信息和结构。
强化学习是一类特殊的机器学习算法,算法要根据当前的环境状态确定一个动作来执行,然后进入下一个状态,如此反复,目标是让得到的收益最大化。如围棋游戏就是典型的强化学习问题,在每个时刻,要根据当前的棋局决定在什么地方落棋,然后进行下一个状态,反复的放置棋子,直到赢得或者输掉比赛。这里的目标是尽可能的赢得比赛,以获得最大化的奖励。
总结来说,这些机器学习算法要完成的任务是:
-
分类算法-是什么?即根据一个样本预测出它所属的类别。
-
回归算法-是多少?即根据一个样本预测出一个数量值。
-
聚类算法-怎么分?保证同一个类的样本相似,不同类的样本之间尽量不同。
-
强化学习-怎么做?即根据当前的状态决定执行什么动作,最后得到最大的回报。
----------------------------------------------------------------------------------------分割线-------------------------------------------------------------------------------------
有监督学习
首先来看有监督学习,这是机器学习算法中最庞大的一个家族。下图列出了经典的有监督学习算法(深度学习不在此列):
聚类
聚类算法的历史与有监督学习一样悠久。层次聚类算法出现于1963年,这是非常符合人的直观思维的算法,现在还在使用。
数据降维
下面来说数据降维算法。经典的PCA算法诞生于1901年,这比第一台真正的计算机的诞生早了40多年。LDA在有监督学习中已经介绍,在这里不再重复。
概率图模型
概率图模型是机器学习算法中独特的一个分支,它是图与概率论的完美结合。在这种模型中,每个节点表示随机变量,边则表示概率。因为晦涩难以理解,让很多同学谈虎色变,但如果你悟透了这类方法的本质,其实并不难。
赫赫有名的隐马尔可夫模型[21]诞生于1960年,在1980年代,它在语音识别中取得了成功,一时名声大噪,后来被广泛用于各种序列数据分析问题,在循环神经网络大规模应用之前,处于主导地位。
深度学习
虽然真正意义上的人工神经网络诞生于1980年代,反向传播算法也早就被提出,卷积神经网络、LSTM等早就别提出,但遗憾的是神经网络在过去很长一段时间内并没有得到大规模的成功应用,在于SVM等机器学习算法的较量中处于下风。原因主要有:算法本身的问题,如梯度消失问题,导致深层网络难以训练。训练样本数的限制。计算能力的限制。直到2006年,情况才慢慢改观。
强化学习
相比有监督学习和无监督学习,强化学习在机器学习领域的起步更晚。虽然早在1980年代就出现了时序差分算法[42-44],但对于很多实际问题,我们无法用表格的形式列举出所有的状态和动作,因此这些抽象的算法无法大规模实用。
参考
1.机器学习-周志华