机器学习-初探

2017-09-12  本文已影响0人  指尖上的魔术师

积跬步以致千里,积怠惰以致深渊

注:本篇文章在整理时主要参考了 周志华 的《机器学习》。

主要内容

对机器学习进行简单介绍,并引出机器学习基本概念。

什么是机器学习(MachineLearning)

“朝霞不出门,晚霞行千里”

人从以往积累的经验学习总结得出,早上有红色云霞的话就预示今天有雨,晚上太阳下山的时候有红色云霞的话预示明天晴天。同样,我们赋予计算机(在此我们理解Machine为计算机)拥有通过对经验的利用,能够做出有效决策的能力,称之为机器学习。

如何赋予计算机“学习”能力

定义:针对经验E (experience) 和一系列的任务T (tasks) 和一定表现的衡量P,如果随之经验E的积累,针对定义好的任务T可以提高表现P,就说计算机具有学习能力。

在计算机系统中,“经验”通常以“数据”的形式存在。通过设计“学习算法”使得计算机能够从数据中产生数据之间潜在的规律和联系(例:朝霞与今天下雨,晚霞与明天晴天),我们将这种规律和联系统称为“模型”。首先我们把经验数据提供给计算机,计算机就能基于这些数据和学习算法产生模型然后做出有效决策;在面对新的情况时(例如朝霞),模型会给我们提供相应的判断(例如今天会下雨)。

机器学习算法

我们先了解一下科学推理的两大基本手段:归纳(induction)演绎(deduction)。前者是从特殊到一般的“泛化”(generalization)过程,即从具体事实归结出一般性规律;后者是从一般到特殊的“特化”(specialization)过程,即从基础性原理推演出具体状况。

假定我们收集了一批关于西瓜的数据,例如(色泽=青绿,根蒂=蜷缩,敲声=浊响),(色泽=乌黑,根蒂=稍蜷,敲声=沉闷),(色泽=浅白,根蒂=硬挺,敲声=清脆)...,每对括号内是一条记录,“=”意思是“取值为”。

机器学习的过程其实就是上边的归纳过程,我们以挑西瓜为例

机器学习的过程就是从具体数据集中“泛化”的过程,即通过对训练集中瓜的学习以获得对没见过的瓜进行判断的能力。我们可以把学习过程看作一个在所有假设(hypothesis)组成的空间中进行搜索的过程,搜索目标是找到与训练集“匹配”(fit)的假设,即能够将训练集中的瓜判断正确的假设。

例如在表1.1的训练集上,我们可以找到匹配训练样本的假设列表,展示如下:

(色泽=*,根蒂=蜷缩,敲声=*)     -> 好瓜   (1)

(色泽=*,根蒂=*,敲声=浊响)     -> 坏瓜   (2)

(色泽=*,根蒂=蜷缩,敲声=浊响) -> 坏瓜   (3)

算法选择依据

从上文中我们可以得知在同一个训练集上进行匹配,有可能会匹配出多个假设,那么机器学习的具体过程中算法的选择依据是什么呢?

在现实问题中我们常面临很大的假设空间,可学习过程是基于有限样本训练集进行的,因此,可能有多个假设与训练集一致,即存在着一个与训练集一致的“假设集合”,我们称之为“版本空间”,上边的假设(1)(2)(3)即在西瓜数据集上“泛化”出的假设空间。

那么当我们遇到一个新收来的瓜(色泽=青绿,根蒂=蜷缩,敲声=沉闷),那么我们该选用哪个假设来进行判断呢?如果使用假设(1)时,这是一个好瓜,可如果使用假设(2)(3)时,这就是一个坏瓜了。

这时候的选择偏好被称为“归纳偏好”,而任何一个有效的机器学习算法必有其归纳偏好,否则它必然被假设空间中等效的假设所迷惑,而无法产生确定的学习结果。

一种常用的、自然科学研究中最基本的“正确的”偏好原则是“奥卡姆剃刀”(Occam's razor)原则

奥卡姆剃刀原则:若有多个假设与观察一致,则选最简单的那个

事实上,归纳偏好对应了学习算法本身所做出的关于“什么样的模型更好”的假设。在具体的现实问题中,算法的归纳偏好是否与问题本身匹配,大多数时候直接决定了算法能否取得好的性能。

举个例子,在下边回归学习的1.3图示中,每个训练样本是图中的一个点,要习得一个和训练集一致的模型,相当于找到一条穿过所有训练样本点的曲线。显然,这样的曲线有很多条。如果使用奥卡姆剃刀偏好原则的话,更为平滑的曲线A会比曲线B要好。

可实际情况,A曲线却并不一定比B曲线好,因为用来训练的样本只是全量数据的一部分,真正的数据到底是更贴近曲线A还是曲线B是无法得知的。如图1.4所示,真实的数据是两种情况都有可能出现。换言之,对于一个学习算法a,若它在某些问题上比学习算法b好,则必然存在另一些问题,在那里b比a好。

可NFL定理有一个重要前提:所有“问题”出现的机会相同、或所有问题同等重要。但实际情况并不是这样的,很多时候,我们只关注自己正在试图解决的问题。比如,要找到快速从A地到B地的算法,如果我们考虑A地是南京鼓楼、B地是南京新街口,那么“骑自行车”是很好的解决方案;但是这个方案对A地是南京鼓楼、B地是北京新街口的情形显然很糟糕,但我们对此并不关心。

所以,NFL定理最重要的寓意,是让我们清楚意识到,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的算法都一样好。针对具体问题选择具体的算法和归纳偏好才是正确的做法。

基础概念

1)基本术语

数据集:对于这组数据的集合;(即,关于西瓜的数据)

示例或样本:每条记录关于一个事件或对象的描述;(例,(色泽=乌黑,根蒂=稍蜷,敲声=沉闷))

属性或特征:反应事件或对象在某方面的表现或性质的事项;(即,“色泽”、“根蒂”,“敲声”)

属性空间:属性张成的空间;(即,我们把“色泽”、“根蒂”,“敲声”作为三个坐标轴,则它们张成一个用于描述西瓜的三维空间,也称“样本空间”或“输入空间”)

特征向量:每个样本在属性空间中对应的坐标向量;

学习或训练:从数据中学得模型的过程,通过执行某个学习算法来完成;

训练数据:训练过程中使用的数据;

训练样本:训练数据中每个样本;

训练集:训练样本组成的集合;

如果希望学得一个能帮助我们判断没剖开的是不是“好瓜”的模型,仅有前面的示例数据显然是不够的。要建立这样的关于“预测”(prediction)的模型,我们需要获得训练样本的“结果”信息,例如“((色泽=青绿,根蒂=蜷缩,敲声=浊响),好瓜)”。

标记(label):关于示例结果的信息;(例如,好瓜)

样例(example):拥有了标记信息的示例;

测试:用已学得的模型进行预测的过程;

测试样本:被预测的样本;

2)算法分类

分类(classification):目标标记为类别型数值(category);(例如“好瓜”“坏瓜”)

回归(regression):目标标记为连续性数值(continuous numeric value);(例如西瓜成熟度0.95、0.37)

监督学习(supervised learning):是利用已知类别的样本(即有标记的样本 labeled sample,已知其相应的类别),调整分类器的参数,训练得到一个最优模型,使其达到所要求性能,再利用这个训练后的模型,将所有的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,这样,即可以对未知数据进行分类。

通俗的来讲,我们给计算机一堆选择题(训练样本),并同时提供了它们的标准答案,计算机努力调整自己的模型参数,希望自己推测的答案与标准答案越一致越好,使计算机学会怎么做这类题。然后再让计算机去帮我们做没有提供答案的选择题(测试样本)。

无监督学习(unsupervised learning):实现没有有标记的、已经分类好的样本,需要我们直接对输入数据集进行建模,例如聚类,最直接的例子就是我们常说的『人以群分,物以类聚』。我们只需要把相似度高的东西放在一起,对于新来的样本,计算相似度后,按照相似程度进行归类就好。

通俗的来讲,我们给计算机一堆选择题(训练样本),但是不提供标准答案,计算机尝试分析这些题目之间的关系,对题目进行分类,计算机也不知道这几堆题的答案分别是什么,但计算机认为每一个类别内的题的答案应该是相同的。

强化学习:所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动作。

通俗的来讲,我们给计算机一堆选择题(训练样本),但是不提供标准答案,计算机尝试去做这些题,我们作为老师批改计算机做的对不对,对的越多,奖励越多,则计算机努力调整自己的模型参数,希望自己推测的答案能够得到更多的奖励。不严谨的讲,可以理解为先无监督后有监督学习。

迁移学习:考虑到大部分数据或任务是存在相关性的,所以通过transfer learning我们可以将已经学到的parameter 分享给新模型从而加快并优化模型的学习不用像之前那样learn from zero。把已学训练好的模型参数迁移到新的模型来帮助新模型训练数据集。

机器学习应用

语音识别、自动驾驶、语言翻译、计算机视觉、推荐系统、无人机、识别垃圾邮件

总结

1、如果说计算机科学是研究关于“算法”的学问,那么类似的,可以说机器学习是研究关于“学习算法”的学问。

2、机器学习的本质是构建起输入和输出之间的关系模型,并利用这个关系模型来解决未知的情况。

3、机器学习的学习过程是对数据集的泛化过程。

4、并没有绝对好的机器学习算法,脱离具体问题,空泛地谈论“什么学习算法更好”毫无意义,因为若考虑所有潜在的问题,则所有的算法都一样好。

5、针对具体问题选择具体的算法和归纳偏好才是正确的做法。

上一篇下一篇

猜你喜欢

热点阅读