Please enable Javascript to view the contents

机器学习

 ·  ☕ 17 分钟

机器学习

基于学习策略的分类 

学习策略是指学习过程中系统所采用的推理策略。一个学习系统总是由学习和环境两部分组成。由环境(如书本或教师)提供信息,学习部分则实现信息转换,用能够理解的形式记忆下来,并从中获取有用的信息。在学习过程中,学生(学习部分)使用的推理越少,他对教师(环境)的依赖就越大,教师的负担也就越重。学习策略的分类标准就是根据学生实现信息转换所需的推理多少和难易程度来分类的,依从简单到复杂,从少到多的次序分为以下六种基本类型:

1)机械学习 (Rote learning)

学习者无需任何推理或其它的知识转换,直接吸取环境所提供的信息。如塞缪尔的跳棋程序,纽厄尔和西蒙的LT系统。这类学习系统主要考虑的是如何索引存贮的知识并加以利用。系统的学习方法是直接通过事先编好、构造好的程序来学习,学习者不作任何工作,或者是通过直接接收既定的事实和数据进行学习,对输入信息不作任何的推理。

2)示教学习 (Learning from instruction或Learning by being told)

学生从环境(教师或其它信息源如教科书等)获取信息,把知识转换成内部可使用的表示形式,并将新的知识和原有知识有机地结合为一体。所以要求学生有一定程度的推理能力,但环境仍要做大量的工作。教师以某种形式提出和组织知识,以使学生拥有的知识可以不断地增加。这种学习方法和人类社会的学校教学方式相似,学习的任务就是建立一个系统,使它能接受教导和建议,并有效地存贮和应用学到的知识。不少专家系统在建立知识库时使用这种方法去实现知识获取。示教学习的一个典型应用例是FOO程序。

3)演绎学习 (Learning by deduction)

学生所用的推理形式为演绎推理。推理从公理出发,经过逻辑变换推导出结论。这种推理是"保真"变换和特化(specialization)的过程,使学生在推理过程中可以获取有用的知识。这种学习方法包含宏操作(macro-operation)学习、知识编辑和组块(Chunking)技术。演绎推理的逆过程是归纳推理。

4)类比学习 (Learning by analogy)

利用二个不同领域(源域、目标域)中的知识相似性,可以通过类比,从源域的知识(包括相似的特征和其它性质)推导出目标域的相应知识,从而实现学习。类比学习系统可以使一个已有的计算机应用系统转变为适应于新的领域,来完成原先没有设计的相类似的功能。
类比学习需要比上述三种学习方式更多的推理。它一般要求先从知识源(源域)中检索出可用的知识,再将其转换成新的形式,用到新的状况(目标域)中去。类比学习在人类科学技术发展史上起着重要作用,许多科学发现就是通过类比得到的。例如著名的卢瑟福类比就是通过将原子结构(目标域)同太阳系(源域)作类比,揭示了原子结构的奥秘。

5)基于解释的学习 (Explanation-based learning, EBL)

学生根据教师提供的目标概念、该概念的一个例子、领域理论及可操作准则,首先构造一个解释来说明为什该例子满足目标概念,然后将解释推广为目标概念的一个满足可操作准则的充分条件。EBL已被广泛应用于知识库求精和改善系统的性能。
著名的EBL系统有迪乔恩(G.DeJong)的GENESIS,米切尔(T.Mitchell)的LEXII和LEAP, 以及明顿(S.Minton)等的PRODIGY。

6)归纳学习 (Learning from induction)

归纳学习是由教师或环境提供某概念的一些实例或反例,让学生通过归纳推理得出该概念的一般描述。这种学习的推理工作量远多于示教学习和演绎学习,因为环境并不提供一般性概念描述(如公理)。从某种程度上说,归纳学习的推理量也比类比学习大,因为没有一个类似的概念可以作为"源概念"加以取用。归纳学习是最基本的,发展也较为成熟的学习方法,在人工智能领域中已经得到广泛的研究和应用。

基于所获取知识的表示形式分类 

学习系统获取的知识可能有:行为规则、物理对象的描述、问题求解策略、各种分类及其它用于任务实现的知识类型。
对于学习中获取的知识,主要有以下一些表示形式:

1)代数表达式参数

学习的目标是调节一个固定函数形式的代数表达式参数或系数来达到一个理想的性能。

2)决策树

用决策树来划分物体的类属,树中每一内部节点对应一个物体属性,而每一边对应于这些属性的可选值,树的叶节点则对应于物体的每个基本分类。

3)形式文法

在识别一个特定语言的学习中,通过对该语言的一系列表达式进行归纳,形成该语言的形式文法。

4)产生式规则

产生式规则表示为条件—动作对,已被极为广泛地使用。学习系统中的学习行为主要是:生成、泛化、特化(Specialization)或合成产生式规则。

5)形式逻辑表达式

形式逻辑表达式的基本成分是命题、谓词、变量、约束变量范围的语句,及嵌入的逻辑表达式。

6)图和网络

有的系统采用图匹配和图转换方案来有效地比较和索引知识。

7)框架和模式(schema)

每个框架包含一组槽,用于描述事物(概念和个体)的各个方面。

8)计算机程序和其它的过程编码

获取这种形式的知识,目的在于取得一种能实现特定过程的能力,而不是为了推断该过程的内部结构。

9)神经网络

这主要用在联接学习中。学习所获取的知识,最后归纳为一个神经网络。

10)多种表示形式的组合

有时一个学习系统中获取的知识需要综合应用上述几种知识表示形式。
根据表示的精细程度,可将知识表示形式分为两大类:泛化程度高的粗粒度符号表示、??泛化程度低的精粒度亚符号(sub-symbolic)表示。像决策树、形式文法、产生式规则、形式逻辑表达式、框架和模式等属于符号表示类;而代数表达式参数、图和网络、神经网络等则属亚符号表示类。

按应用领域分类 

最主要的应用领域有:专家系统、认知模拟、规划和问题求解、数据挖掘、网络信息服务、图象识别、故障诊断、自然语言理解、机器人和博弈等领域。
从机器学习的执行部分所反映的任务类型上看,大部分的应用研究领域基本上集中于以下两个范畴:分类和问题求解。
##(1)分类任务要求系统依据已知的分类知识对输入的未知模式(该模式的描述)作分析,以确定输入模式的类属。相应的学习目标就是学习用于分类的准则(如分类规则)。
##(2)问题求解任务要求对于给定的目标状态,??寻找一个将当前状态转换为目标状态的动作序列;机器学习在这一领域的研究工作大部分集中于通过学习来获取能提高问题求解效率的知识(如搜索控制知识,启发式知识等)。

综合分类

综合考虑各种学习方法出现的历史渊源、知识表示、推理策略、结果评估的相似性、研究人员交流的相对集中性以及应用领域等诸因素。将机器学习方法 [1] 区分为以下六类:

1)经验性归纳学习 (empirical inductive learning)

经验性归纳学习采用一些数据密集的经验方法(如版本空间法、ID3法,定律发现方法)对例子进行归纳学习。其例子和学习结果一般都采用属性、谓词、关系等符号表示。它相当于基于学习策略分类中的归纳学习,但扣除联接学习、遗传算法、加强学习的部分。

2)分析学习(analytic learning)

分析学习方法是从一个或少数几个实例出发,运用领域知识进行分析。其主要特征为:
·推理策略主要是演绎,而非归纳;
·使用过去的问题求解经验(实例)指导新的问题求解,或产生能更有效地运用领域知识的搜索控制规则。
分析学习的目标是改善系统的性能,而不是新的概念描述。分析学习包括应用解释学习、演绎学习、多级结构组块以及宏操作学习等技术。

3)类比学习

它相当于基于学习策略分类中的类比学习。在这一类型的学习中比较引人注目的研究是通过与过去经历的具体事例作类比来学习,称为基于范例的学习(case_based learning),或简称范例学习。

4)遗传算法(genetic algorithm)

遗传算法模拟生物繁殖的突变、交换和达尔文的自然选择(在每一生态环境中适者生存)。它把问题可能的解编码为一个向量,称为个体,向量的每一个元素称为基因,并利用目标函数(相应于自然选择标准)对群体(个体的集合)中的每一个个体进行评价,根据评价值(适应度)对个体进行选择、交换、变异等遗传操作,从而得到新的群体。遗传算法适用于非常复杂和困难的环境,比如,带有大量噪声和无关数据、事物不断更新、问题目标不能明显和精确地定义,以及通过很长的执行过程才能确定当前行为的价值等。同神经网络一样,遗传算法的研究已经发展为人工智能的一个独立分支,其代表人物为霍勒德(J.H.Holland)。

5)联接学习

典型的联接模型实现为人工神经网络,其由称为神经元的一些简单计算单元以及单元间的加权联接组成。

6)增强学习(reinforcement learning)

增强学习的特点是通过与环境的试探性(trial and error)交互来确定和优化动作的选择,以实现所谓的序列决策任务。在这种任务中,学习机制通过选择并执行动作,导致系统状态的变化,并有可能得到某种强化信号(立即回报),从而实现与环境的交互。强化信号就是对系统行为的一种标量化的奖惩。系统学习的目标是寻找一个合适的动作选择策略,即在任一给定的状态下选择哪种动作的方法,使产生的动作序列可获得某种最优的结果(如累计立即回报最大)。
在综合分类中,经验归纳学习、遗传算法、联接学习和增强学习均属于归纳学习,其中经验归纳学习采用符号表示方式,而遗传算法、联接学习和加强学习则采用亚符号表示方式;分析学习属于演绎学习。
实际上,类比策略可看成是归纳和演绎策略的综合。因而最基本的学习策略只有归纳和演绎。
从学习内容的角度看,采用归纳策略的学习由于是对输入进行归纳,所学习的知识显然超过原有系统知识库所能蕴涵的范围,所学结果改变了系统的知识演绎闭包, 因而这种类型的学习又可称为知识级学习;而采用演绎策略的学习尽管所学的知识能提高系统的效率,但仍能被原有系统的知识库所蕴涵,即所学的知识未能改变系统的演绎闭包,因而这种类型的学习又被称为符号级学习。

学习形式分类

1)监督学习(supervised learning)

监督学习,即在机械学习过程中提供对错指示。一般实在是数据组中包含最终结果(0,1)。通过算法让机器自我减少误差。这一类学习主要应用于分类和预测 (regression & classify)。监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。

2)非监督学习(unsupervised learning)

非监督学习又称归纳性学习(clustering)利用K方式(Kmeans),建立中心(centriole),通过循环和递减运算(iteration&descent)来减小误差,达到分类的目的。

  学习能力是智能行为的一个非常重要的特征,但至今对学习的机理尚不清楚。人们曾对机器学习给出各种定义。H.A.Simon认为,学习是系统所作的适应性变化,使得系统在下一次完成同样或类似的任务时更为有效。R.s.Michalski认为,学习是构造或修改对于所经历事物的表示。从事专家系统研制的人们则认为学习是知识的获取。这些观点各有侧重,第一种观点强调学习的外部行为效果,第二种则强调学习的内部过程,而第三种主要是从知识工程的实用性角度出发的。

 尽管如此,为了便于进行讨论和估计学科的进展,有必要对机器学习给出定义,即使这种定义是不完全的和不充分的。顾名思义, 机器学习是研究如何使用机器来模拟人类学习活动的一门学科。稍为严格的提法是:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是计算机,电子计算机,中子计算机、光子计算机或神经计算机等等。

您可以将深度学习、机器学习、人工智能想象成一组由小到大、一个套一个的俄罗斯套娃。深度学习是机器学习的子集,而机器学习则是人工智能(AI)的子集。

机器学习之所以包含“学习”二字,是因为机器学习算法会尝试优化一项特定的指标:它们一般会努力将预测的误差最小化,或者说将预测正确的概率最大化。这样的算法有三种名称:误差函数、损失函数、目标函数(因为这种算法有一个目标……)。如果有人说他们在用一种机器学习算法,那么只要问两个问题就能大致了解这种算法的价值:目标函数是什么?

怎样将误差最小化?一种方法是构建一个算法框架,通过与输入值相乘来预测输入的性质。不同的输出/预测结果是输入值与算法的乘积。初始的预测通常错误较大,如果您有和输入值相关的实际基准标签,就可以将预测结果与基准标签进行对比,衡量误差的大小,然后依据误差来调整算法。这就是神经网络的工作方式。它们会不断衡量误差、调整自身的参数,直至误差无法继续缩小。

简而言之,神经网络就是一种优化算法。如果调试得当,神经网络可以经由反复的预测来实现误差最小化。

深度学习是机器学习的一个子集。深度人工神经网络是一类在图像识别、声音识别、推荐系统等重要问题上不断刷新准确率纪录的算法。DeepMind声名远扬的AlphaGo算法在2016年早些时候击败了前世界围棋冠军李世石,这种算法当中就包含深度学习技术。更完整的神经网络介绍请参见此处。

“深度”是一个术语。它指的是一个神经网络中的层的数量。浅层神经网络有一个所谓的隐藏层,而深度神经网络则不止一个隐藏层。多个隐藏层让深度神经网络能够以分层的方式学习数据的特征,因为简单特征(比如两个像素)可逐层叠加,形成更为复杂的特征(比如一条直线)

神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,对原始输入进行标记或聚类。神经网络所能识别的模式是包含在向量中的数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。

神经网络帮助我们进行聚类和分类。可以将其理解为建立在你所存储和管理的数据之上的一个聚类与分类层。对于未标记的数据,神经网络可以按照输入样例的相似之处将数据分组;若能用已标记的数据集训练,神经网络就可以对数据进行系统分类。(更准确地说,神经网络提取特征,再输入其他算法进行聚类和分类;因此可以将深度神经网络视为更大的机器学习应用系统的一部分,这个系统中还包括强化学习、分类和回归的算法。)

分类

一切分类任务都依赖于已标记的数据集;也就是说,人类必须将自己的知识转移到数据集中,以供神经网络学习标签与数据之间的关联。这被称为有监督学习。

检测人脸,识别图像中的人物,辨识面部表情(愤怒、快乐等)
识别图像中的物体(停车标志、行人、车道线等)
辨识视频中的手势动作
检测语音,识别讲话人,语音转换为文本,识别语音中的情感等
分辨垃圾信息(电子邮件)或欺诈信息(保险理赔申请);辨识文
本中的情感(客户反馈)

任何常人可以想到的标签、任何与数据相关联的重要结果都可以用来训练神经网络。

聚类

聚类或分组就是检测相似性。深度学习用于检测相似性时不需要标签。不依赖标签的学习又称无监督学习。世界上大部分的数据都是未标记数据。机器学习的法则之一是:用于训练算法的数据越多,算法就会变得越准确。因此,无监督学习具有产生高准确率模型的潜力。

搜索:比较文档、图像和声音,发现类似的项目。
异常检测:相似性检测的反面是异常事件和异常行为检测。在许多情况下,异常行为往往与欺诈等需要及时发现和预防的事件高度相关。

预测分析

深度学习可以通过分类来发现事物间的关联,比如图像像素与人物姓名之间的关联。这可以称为静态预测。同样,如果有足够且合适的数据,深度学习网络可以发现当前事件与未来事件之间的关联。从某种意义上说,未来事件就像是标签一样。深度学习其实并不在意时间,或者某件事是否已经发生。深度学习网络可以处理一个特定的时间序列,读取一串数字,然后预测接下来最有可能出现的是什么数字。

硬件故障预测(数据中心、制造业、运输业)
健康问题预测(根据人口统计信息和可穿戴设备的数据来预测中风、心脏病发作等)
顾客流失预测(根据网页活动及元数据来预测顾客流失的可能性)
员工流动预测(同上,但用于预测雇员流失)

预测水平越高,预防和提前行动的效果就越好。如上所述,神经网络正在让我们迈向一个意外更少的未来。意外并不会完全消失,只是一定程度地减少。

顾名思义,深度学习网络与更常见的单一隐藏层神经网络的区别在于深度,即数据在模式识别的多步流程中所经过的节点层数。

传统机器学习系统主要使用由一个输入层和一个输出层组成的浅层网络,至多在两层之间添加一个隐藏层。三层以上(包括输入和输出层在内)的系统就可以称为“深度”学习。所以,深度是一个有严格定义的术语,表示一个以上的隐藏层。

在深度学习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂,因为每一层会整合并重组前一层的特征。

机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。

工智能研究中,人们曾尝试过三条路。我将它们称之为外观(extrospection)、内省(introspection)和模拟(simulation)。

所谓外观,指的是观察人的大脑工作情况,探求其原理,解明其机制,从而在计算机上“实现”人类大脑的功能。比如,计算神经学(computational
neuroscience)的研究就是基于这个动机的。然而,人脑的复杂信息处理过程很难观测和模型化。就像我们仅仅观测某个计算机内的信号传输过程,很难判断它正在做什么样的计算一样。

内省就是反思自己的智能行为,将自己意识到的推理、知识等记录到计算机上,从而“再现”人的智能,比如专家系统(expert
system)的尝试就属于这一类。内省的最大问题是它很难泛化,也就是举一反三。无论是在什么样的图片中,甚至是在抽象画中,人们能够轻而易举地找出其中的人脸。这种能力称为泛化能力。通过内省的方法很难使计算机拥有泛化能力。自己的智能原理,对人类来说很有可能是不可知的(agnostic)。笼子里的老鼠可能认为触动把手是得到食物的“原因”,但它永远也不能了解到整个笼子的食物投放机制。

模拟就是将人的智能化操作的输入与输出记录下来,用模型来模拟,使模型对输入输出给出同人类相似的表现,比如统计机器学习(statistical
machine
learning)。实践表明,统计机器学习是实现计算机智能化这一目标的最有效手段。统计学习最大的优点是它具有泛化能力;而缺点是它得到的永远是统计意义下的最优解(例如,人脸检测)。现在当人们提到机器学习时,通常是指统计机器学习或统计学习。

借鉴 Marr 的关于计算机视觉的三级论定义,我把机器学习也分为三个层次:初级、中级和高级。初级阶段是数据获取以及特征的提取。中级阶段是数据处理与分析,它又包含三个方面,首先是应用问题导向,简单地说,它主要应用已有的模型和方法解决一些实际问题,我们可以理解为数据挖掘;第二,根据应用问题的需要,提出和发展模型、方法和算法以及研究支撑它们的数学原理或理论基础等,我理解这是机器学习学科的核心内容。第三,通过推理达到某种智能。最后,高级阶段是智能与认知,即实现智能的目标。从这里,我们看到,数据挖掘和机器学习本质上是一样的,其区别是数据挖掘更接地于数据库端,而机器学习则更接近于智能端。

![图片](http://p3.pstatp.com/large/403f0001835b0bbefd64 ‘‘开发’')

机器学习就是一个新的解决问题的系统。

真的只是数学

首先我们需要理解旧系统和新系统的区别。旧的系统指的是基于规则的系统(rule-based system),需要程序员告诉机器一件事情的规则。

过去几乎所有的程序都属于基于规则,而告诉机器规则的过程就是编程。强大如曾经击败卡斯帕罗夫的深蓝 (Deep Blue),也是基于规则的。但机器学习是通过新的算法,让机器并不需要太多的编程就可以自动学习,自动创造解决问题的系统,

罗伯森使用了“自动” (Automatically) 一词,而非人工智能里的“人工” (artificial) 。

算法

机器学习就是各式各样的算法,这些算法都在做同样的事情:”根据已知,预测未知”。

所以,无论你听到任何高大上的算法缩写(LC、SVC、NBC、KNC、DTC、RFC、LR、SVR、DTR、RFR…),把它们先当作黑盒即可,不会影响我们理解机器学习自身。

https://paper.tuisec.win/detail/b8570dc3c68adce