积跬步以至千里,积怠惰以至深渊算法
注:本篇文章在整理时主要参考了 周志华 的《机器学习》。机器学习
对机器学习进行简单介绍,并引出机器学习基本概念。函数
“朝霞不出门,晚霞行千里”性能
人从以往积累的经验学习总结得出,早上有红色云霞的话就预示今天有雨,晚上太阳下山的时候有红色云霞的话预示明天晴天。一样,咱们赋予计算机(在此咱们理解Machine为计算机)拥有经过对经验的利用,可以作出有效决策的能力,称之为机器学习。学习
定义:针对经验E (experience) 和一系列的任务T (tasks) 和必定表现的衡量P,若是随之经验E的积累,针对定义好的任务T能够提升表现P,就说计算机具备学习能力。测试
在计算机系统中,“经验”一般以“数据”的形式存在。经过设计“学习算法”使得计算机可以从数据中产生数据之间潜在的规律和联系(例:朝霞与今天下雨,晚霞与明天晴天),咱们将这种规律和联系统称为“模型”。首先咱们把经验数据提供给计算机,计算机就能基于这些数据和学习算法产生模型而后作出有效决策;在面对新的状况时(例如朝霞),模型会给咱们提供相应的判断(例现在天会下雨)。优化
咱们先了解一下科学推理的两大基本手段:概括(induction)与演绎(deduction)。前者是从特殊到通常的“泛化”(generalization)过程,即从具体事实归结出通常性规律;后者是从通常到特殊的“特化”(specialization)过程,即从基础性原理推演出具体情况。spa
假定咱们收集了一批关于西瓜的数据,例如(色泽=青绿,根蒂=蜷缩,敲声=浊响),(色泽=乌黑,根蒂=稍蜷,敲声=沉闷),(色泽=浅白,根蒂=硬挺,敲声=清脆)...,每对括号内是一条记录,“=”意思是“取值为”。翻译
机器学习的过程其实就是上边的概括过程,咱们以挑西瓜为例设计
机器学习的过程就是从具体数据集中“泛化”的过程,即经过对训练集中瓜的学习以得到对没见过的瓜进行判断的能力。咱们能够把学习过程看做一个在全部假设(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.9五、0.37)
监督学习(supervised learning):是利用已知类别的样本(即有标记的样本 labeled sample,已知其相应的类别),调整分类器的参数,训练获得一个最优模型,使其达到所要求性能,再利用这个训练后的模型,将全部的输入映射为相应的输出,对输出进行简单的判断,从而实现分类的目的,这样,便可以对未知数据进行分类。
通俗的来说,咱们给计算机一堆选择题(训练样本),并同时提供了它们的标准答案,计算机努力调整本身的模型参数,但愿本身推测的答案与标准答案越一致越好,使计算机学会怎么作这类题。而后再让计算机去帮咱们作没有提供答案的选择题(测试样本)。
无监督学习(unsupervised learning):实现没有有标记的、已经分类好的样本,须要咱们直接对输入数据集进行建模,例如聚类,最直接的例子就是咱们常说的『人以群分,物以类聚』。咱们只须要把类似度高的东西放在一块儿,对于新来的样本,计算类似度后,按照类似程度进行归类就好。
通俗的来说,咱们给计算机一堆选择题(训练样本),可是不提供标准答案,计算机尝试分析这些题目之间的关系,对题目进行分类,计算机也不知道这几堆题的答案分别是什么,但计算机认为每个类别内的题的答案应该是相同的。
强化学习:所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不一样于链接主义学习中的监督学习,主要表如今教师信号上,强化学习中由环境提供的强化信号是对产生动做的好坏做一种评价(一般为标量信号),而不是告诉强化学习系统RLS(reinforcement learning system)如何去产生正确的动做。
通俗的来说,咱们给计算机一堆选择题(训练样本),可是不提供标准答案,计算机尝试去作这些题,咱们做为老师批改计算机作的对不对,对的越多,奖励越多,则计算机努力调整本身的模型参数,但愿本身推测的答案可以获得更多的奖励。不严谨的讲,能够理解为先无监督后有监督学习。
迁移学习:考虑到大部分数据或任务是存在相关性的,因此经过transfer learning咱们能够将已经学到的parameter 分享给新模型从而加快并优化模型的学习不用像以前那样learn from zero。把已学训练好的模型参数迁移到新的模型来帮助新模型训练数据集。
语音识别、自动驾驶、语言翻译、计算机视觉、推荐系统、无人机、识别垃圾邮件
一、若是说计算机科学是研究关于“算法”的学问,那么相似的,能够说机器学习是研究关于“学习算法”的学问。
二、机器学习的本质是构建起输入和输出之间的关系模型,并利用这个关系模型来解决未知的状况。
三、机器学习的学习过程是对数据集的泛化过程。
四、并无绝对好的机器学习算法,脱离具体问题,空泛地谈论“什么学习算法更好”毫无心义,由于若考虑全部潜在的问题,则全部的算法都同样好。
五、针对具体问题选择具体的算法和概括偏好才是正确的作法。