仅显示标题浏览

Bati's eHome of Tech

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::
  174 随笔 :: 0 文章 :: 32 评论 :: 0 引用

原文作者:不祥
原文链接: Machine Learning, Part I: Types of Learning Problems
译者:commondata

在开始学习各种不同类型的机器学习算法之前,首先了解一下背景材料是很有帮助的。它们包括各种算法的执行目标是什么,以及它们适用于人工智能领域的哪些方面。这篇文章将涵盖通常的人工智能研究中的各种学习类型,为每种学习方式提供Example,并且我将尝试为不同的学习算法提供适当的检验。这是机器学习系列的第一篇文章,是之后一系列文章的引论,目的是让我们对有关机器学习算法中特定概念有一些了解。

·机器学习的类型问题

在人工智能领域,有几类主要的问题,机器学习就是其中之一。机器学习的目标并不完全是寻找意识那么刺激,不过从某些方面说,它更有可能接近达到传统人工智能研究的目标。机器学习的目的是:设计一种算法,可以让计算机进行学习。

学习当然并不一定是指意识学习。它更像是从数据中寻找统计规律,或者发现一些模式。因此,在接到一个学习任务时,很多机器学习算法很难像用你那种方式去工作。然而,学习算法却可以在那些难以学习的环境中赋予其洞察力。

·分类和决策问题

学习算法分为几个不同的类别。一类是预期的结果来自算法。例如一些分类问题。你可以从一些公共资料中了解这些问题;一个通常的分类问题的例子是让计算机学习怎样识别笔迹。事实上,现在的笔迹识别方法非常完善,一些特定解决方案的识别率可以达到百分之九十九以上(如果排除一些零乱笔迹的话非常好)。大部分数字识别的工作可以由神经网络来完成,但最近支持向量机也被证明可以在分类方面做得更好。

监督学习也可以被用于医学诊断——例如给计算机输入潜在癌症患者的症状,以及患者是否真的感染了癌症的信息,计算机将会学习怎样区分癌症患者,以及患者是否被误诊。这种学习可以使用神经网络或者支持向量机,不过用决策树也可以实现类似的功能。

决策树是一类相对比较简单的分类技术,它的决策依赖于一个由问题和答案构成的树:如果对于问题的答案是“yes”,则算法执行下一个分枝;如果回答为“no”,则算法转向其他的分枝。最终,算法抵达的叶子节点就是最终分类。

与神经网络相比,学习决策树不需要频繁的调试工作参数,并且相当简单明确。此外还有一些算法,比如ada-boost等可以迅速提高它的性能。在下文中我们将看到决策树和神经网络的详细介绍。现在我们只需要知道,即使是简单明确的算法也可以做很多事情。你可以在几乎任何条件下使用决策树,你只需要适当数目的标志以及一个分类系统,就可以期待合理的结果(尽管很有可能无法解决)。

最后一个让你开胃的分类学习例子是语音识别——通常计算机将得到一套由声音构成的训练实例,以及与声音相对应的单词。这种类型的学习通常交给神经网络来完成,虽然很难想象,但用决策树来完成这类问题也很简单。另一种机器学习的方法被称为隐马尔科夫模型,为了处理这类时间序列数据,它经过了特别的设计,因此在语音识别方面该模型表现颇佳。

另外一些常见的学习类型不是被设计用于为输入创建分类,而是作出决定;它们统称决策问题。通常来说,决策问题需要根据世界的状态作出一些假设,并使它们易于处理。决策程序可能是一次性的,在这种情况下仅仅需要作出单一的决定,也可能是重复的,在这种情况下计算机可能需要做出多重决定。如果今后需要作出多重决策的话,决策程序将变得更加棘手,因为它不但需要考虑到行为的直接后果,而且要兼顾通过某种渠道获取信息的可能行为。

决策问题中有一类用于理解的通用框架借用了一个经济学概念,称作效用函数。它为计算机(或“智能体”,即Agent,译者注)执行一项操作赋予某些分值。效用函数并非事先知道(此处应指效用函数事先不清楚行为的后果,或不知道赋予多少分值合适,译者注)——智能体必须学习那些是有效的,可以带来回报的行为,以及哪些是无效的,或者带来负回报的行为。

对于诸如世界状态以及智能体行为是否按照预期进行的可能性这类问题,效用函数通常要结合概率进行处理。比如,如果你编写了一个在丛林中勘查的机器人程序,你不可能总是精确的得知机器人的位置,而且机器人在向前行进的途中有可能会撞上一棵树并且向左转。前一种情况,机器人不清楚世界的精确状态,第二种情况,机器人不能确认它的行为是否符合预期的目标。

在通常的架构中世界状态都是用概率分布来描述的,另外一种是对智能体采取的每种行为导致可能的后果进行描述,并且由效用函数来决定当好的状态或坏的状态下采取何种行为,直到智能体对模型完全掌握。例如,它了解它的效用,但不知道世界看起来像什么,这可能是勘查机器人遇到的一种情况,或者它了解世界的状态,但不知道它的行为会获得多少分值(分值的概念见上文,译者注),如果智能体在学习玩游戏,比如西洋双陆棋时同样也可能发生这种情况。

一旦这些不同的函数(例如概率分布)都被掌握,智能体就会很容易判断哪一种行为会让预期效用最大化,并据此选择正确的行为。预期效用的计算方法是用每次支付分值的概率乘以支付的分值,然后对其进行累加。从某种意义上说,这是在计算将要采取的某项行为的平均值。为了计划后面多个步骤,当可能的世界状态数目不算太多时,通常用到一种被称作马尔科夫决策过程的算法。(它不能在例如象棋或围棋这样的博弈游戏中工作,这些棋类博弈的状态太多了,不过如果仅仅在3X3的范围内活动,用它还做还不算太坏。)

在某些情形下,避免对效用的实际计算对使用学习算法有利,事实上具体的信息学习可以在没有预先计划的情况下对行为作出正确的决断。强化学习是这种情况下的常用技术,而更多的传统情形下需要使用效用函数。

请注意,一些决策问题可以用以下几种途径重新定义为分类问题:每一个决策实际上是用最适合那种状态的行为对世界的某一个状态进行分类!诀窍在于要为你的问题制定最正确的结构,这样一来你就会知道哪一种技术最有可能适合这种情况。也许用决策树来学习如何在丛林中勘查是非常愚蠢的,但用它们在餐馆中选取食物却非常合适。

posted on 2008-04-11 20:30 Bati 阅读(...) 评论(...) 编辑 收藏