在机器学习领域,主要有三类不一样的学习方法:算法
监督学习:经过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。网络
非监督学习:直接对输入数据集进行建模,例如聚类。数据结构
半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。框架
是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。机器学习
标签,简而言之,就是样本的分类标签,是不重合的,好比男/女,价值/非价值。函数
举个例子,判断一支股票是价值型仍是非价值型。咱们有三只股票:性能
如今要作一个分类系统,很显然,那就是若是PE-Ratio(市盈率)大于3,就是价值型股票。学习
分类系统作好了,如今新来一支股票,PE-Ratio是4,系统判断4>3,那就是价值股票。测试
监督学习最多见的是分类问题,由于目标每每是让计算机去学习已经建立好的分类系统,例如数字识别。更通常地说,对于那些有用的、容易判断的分类系统,分类学习都适用。在某些状况下,若是Agent能自行计算分类的话,Agent可能不须要事先给出分类。这将在后面成为无监督学习上下文分类的一个例子。人工智能
监督学习是训练神经网络和决策树的最多见技术。这两种技术(神经网络和决策树)高度依赖于事先肯定的分类系统给出的信息。对于神经网络来讲,分类系统用于判断网络的错误,而后调整网络适应它;对于决策树,分类系统用来判断哪些属性提供了最多的信息,如此一来能够用它解决分类系统的问题。咱们将会看到这二者(神经网络和决策树)更多的细节,但在目前,它们用预先肯定分类方法的形式来“监督”就足够了。
使用隐马尔科夫模型和贝斯网络的语音识别系统也依赖于某些监督的要素,那一般是为了调节系统的参数以便于最小化给定输入中的错误。
请注意这里提到的一个问题:在分类问题中,学习算法的目标是把给定输入中的错误最小化。这些输入一般被称做“训练集”(原文为training set,译者注),它们是Agent尝试学习的样本。可是,学习训练集表现良好并不必定是件好事。例如,若是我试图教你学习exclusive-or(及逻辑或,译者注),但仅仅给出由一个真和一个假构成的组合,而不把同时为真或为假的组合告诉你,那么根据你学到的规则,你可能对任何问题回答都为真。一样,对于机器学习算法,一个一般的问题是过适合(原文为over-fitting,译者注)数据,以及主要记忆训练集,而不是学习过多的通常分类技术。
你能够这样设想,并非全部的训练集的输入都分类正确。若是使用的算法有足够强的记忆力,但这显然是“特例”,不适合通常的原则,所以会出现问题。这一点也可能致使过适合。不但要在学习复杂函数时足够强大,并且能产生可归纳的结论,寻找这样的算法的确是一个挑战。
训练资料是由输入物件(一般是向量)和预期输出所组成。函数的输出能够是一个连续的值(称为回归分析),或是预测一个分类标签(称做分类)。
一个监督式学习者的任务在观察完一些训练范例(输入和预期输出)后,去预测这个函数对任何可能出现的输入的值的输出。
要达到此目的,学习者必须以"合理"(见概括偏向)的方式从现有的资料中通常化到非观察到的状况。在人类和动物感知中,则一般被称为概念学习(concept learning)。
监督式学习有两种形态的模型。最通常的,监督式学习产生一个全域模型,会将输入物件对应到预期输出。而另外一种,则是将这种对应实做在一个区域模型。(如案例推论及最近邻居法)。
为了解决一个给定的监督式学习的问题(手写辨识),必须考虑如下步骤:
另外对于监督式学习所使用的词汇则是分类。如今有各类各样的分类器,各自都有强项或弱项。分类器的表现很大程度上地跟要被分类的数据特征有关。并不存在一个适用于全部问题的分类器。决定适合某一问题的分类器仍旧是一项艺术,而非科学。
目前最普遍被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。
非监督学习看起来很是困难:目标是咱们不告诉计算机怎么作,而是让它(计算机)本身去学习怎样作一些事情。非监督学习通常有两种思路。第一种思路是在指导Agent时不为其指定明确的分类,而是在成功时采用某种形式的激励制度。须要注意的是,这类训练一般会置于决策问题的框架里,由于它的目标不是产生一个分类系统,而是作出最大回报的决定。这种思路很好的归纳了现实世界,Agent能够对那些正确的行为作出激励,并对其余的行为进行处罚。
强化学习的一些形式经常能够被用于非监督学习,因为没有必然的途径学习影响世界的那些行为的所有信息,所以Agent把它的行为创建在前一次奖惩的基础上。在某种意义上,全部的这些信息都是没必要要的,由于经过学习激励函数,Agent不须要任何处理就能够清楚地知道要作什么,由于它(Agent)知道本身采起的每一个动做确切的预期收益。对于防止为了计算每一种可能性而进行的大量计算,以及为此消耗的大量时间(即便全部世界状态的变迁几率都已知),这样的作法是很是有益的。另外一方面,在尝试出错上,这也是一种很是耗费时间的学习。
不过这一类学习可能会很是强大,由于它假定没有事先分类的样本。在某些状况下,例如,咱们的分类方法可能并不是最佳选择。在这方面一个突出的例子是Backgammon(西洋双陆棋)游戏,有一系列计算机程序(例如neuro-gammon和TD-gammon)经过非监督学习本身一遍又一遍的玩这个游戏,变得比最强的人类棋手还要出色。这些程序发现的一些原则甚至令双陆棋专家都感到惊讶,而且它们比那些使用预分类样本训练的双陆棋程序工做得更出色。
一种次要的非监督学习类型称之为聚合(原文为clustering,译者注)。这类学习类型的目标不是让效用函数最大化,而是找到训练数据中的近似点。聚合经常能发现那些与假设匹配的至关好的直观分类。例如,基于人口统计的聚合个体可能会在一个群体中造成一个富有的聚合,以及其余的贫穷的聚合。
无监督式学习(Unsupervised Learning )是人工智能网络的一种算法(algorithm),其目的是去对原始资料进行分类,以便了解资料内部结构。有别于监督式学习网络,无监督式学习网络在学习时并不知道其分类结果是否正确,亦即没有受到监督式加强(告诉它何种学习是正确的)。其特色是仅对此种网络提供输入范例,而它会自动从这些范例中找出其潜在类别规则。当学习完毕并经测试后,也能够将之应用到新的案例上。
无监督学习里典型的例子就是聚类了。聚类的目的在于把类似的东西聚在一块儿,而咱们并不关心这一类是什么。所以,一个聚类算法一般只须要知道如何计算类似度就能够开始工做了。
半监督学习的基本思想是利用数据分布上的模型假设, 创建学习器对未标签样本进行标签。
形式化描述为:
给定一个来自某未知分布的样本集S=L∪U, 其中L 是已标签样本集L={(x1,y1),(x2,y2), … ,(x |L|,y|L|)}, U是一个未标签样本集U={x’1,x’2,…,x’|U|},但愿获得函数f:X → Y能够准确地对样本x预测其标签y,这个函数多是参数的,如最大似然法;多是非参数的,如最邻近法、神经网络法、支持向量机法等;也多是非数值的,如决策树分类。其中, x与x’ 均为d 维向量, yi∈Y 为样本x i 的标签, |L| 和|U| 分别为L 和U 的大小, 即所包含的样本数。半监督学习就是在样本集S 上寻找最优的学习器。如何综合利用已标签样例和未标签样例,是半监督学习须要解决的问题。
半监督学习问题从样本的角度而言是利用少许标注样本和大量未标注样本进行机器学习,从几率学习角度可理解为研究如何利用训练样本的输入边缘几率 P( x )和条件输出几率P ( y | x )的联系设计具备良好性能的分类器。这种联系的存在是创建在某些假设的基础上的,即聚类假设(cluster assumption)和流形假设(maniford assumption)。
非监督学习已经得到了巨大的成功,例如西洋双陆棋程序world-champion calibre以及自动驾驶技术。当有一种为行为赋予权值的简单方法时,它能够成为一项强大的技术。当有足够的数据构成聚类(尽管有时这很是困难),聚合可能会很是有用,特别是一个聚类中关于成员的附加数据因为这些附加的数据能够用于产生更多的结果。
若是有恰当的分类系统(例如疾病处理程序,它通常会在实施自动诊断以后直接决定设计),分类学习也会很是强大,或者当分类是一件很是简单的事情,此时咱们很是乐于让计算机为咱们进行识别。若是经过算法做出的决定须要输入别的地方,这时分类学习是必要的。不然,对于须要输入的一方来讲,计算它的含义将会很是困难。
这两种技术都很是有价值,你须要根据当时的状况决定须要选用哪种技术——要解决什么类型的问题,解决它须要多少时间(一般来讲,监督学习和聚合要比强化学习更快),以及是否监督学习更有可能解决这个问题。