引言

机器学习从本质上讲是一个多学科的领域。

学习问题的标准描述

学习的定义

对于某类任务T和性能度量P,如果一个计算机程序在T上以P度量的性能随着经验E而自我完善,那么我们称这个计算机程序在从经验E中学习

通过经验提高性能的某类程序。

设计一个学习系统

选择训练经验

选择训练经验的类型,使系统从中进行学习。

训练经验的关键属性

  • 是能否为系统的决策提供直接或间接的反馈。

    • 信用分配问题,也即程序每一步对最终结果的贡献程度。从直接的训练反馈学习要比从间接反馈学习容易。

  • 学习器可以在多大程度上控制训练样例序列。

  • 训练样例的分布能多好地表示实例分布,而最终系统的性能P是通过后者来衡量。

    • 一般而言,当训练样例的分布和将来的测试样例的分布形似时,学习具有最大的可信度。

为了完成学习系统的设计,需要选择:

  • 要学习的只是的确切类型

  • 对于这个目标知识的表示

  • 一种学习机制

选择目标函数

下一步设计选择是决定要学习的知识的确切类型以及执行程序怎样使用这些知识。

在关于机器学习的所有讨论中,我们发现可以把提高任务T的性能P的问题简化为学习某个特定的目标函数的问题。

另一个可供选择的目标函数是一个评估函数,它给某一状态赋予一个数字评分。

由于对于问题的目标函数的定义,存在不可操作的情况。这时,学习任务被简化为发现一个理想目标函数V的可操作描述。事实上,通常我们仅希望算法得到近似的目标函数,由于这个原因学习目标函数的过程常被称为函数逼近

选择目标函数的表示

确定了理想的目标函数V,接下来必须选择一个表示,它被学习程序用来描述学习的函数V^\hat{V}

选择函数逼近算法

为了学习目标函数V^\hat{V},需要一系列训练样例,每一个样例描述了特定的棋盘状态b和它的训练值Vtrain(b)V{_{train}}(b) 。换言之,每一个训练样例是形式为<b,Vtrain(b)><b, V{_{train}}(b)>的序偶。

下面描述了一个过程:先从学习器可得的间接训练经验中导出训练样例,然后调整权wiw_i ,以最佳拟合这些训练样例。

评估训练值

我们需要训练样例为每个状态赋予一个分值,但是对于中间状态具有内在的模糊性。但是,一个简单的方法却取得了良好的效果。

这种方法是把任何中间状态b的训练值Vtrain(b)V_{train}(b) 赋以 V^(Successor(b))\hat{V}(Successor(b)) ,其中,V^\hat{V} 是学习器目前采用的V的近似函数,Successor(b)Successor(b) 表示b之后下一步的状态。

这种估计训练值的方法被归纳为 训练值估计法则:

Vtrain(b)V^(Successor(b))V_{train}(b) \leftarrow \hat{V}(Successor(b))

使用当前的 V^\hat{V} 来估计训练值,这一训练值又被用来更新 V^\hat{V} 。这其实是在用后续状态 Successor(b)Successor(b) 的估计值来估计当前状态b的值。凭直觉我们可以知道,越接近结束,V^\hat{V} 越趋向精确。事实上,在特定条件下,这种基于对后继状态进行估计的迭代估计训练值方法,已被证明可以近乎完美地收敛到 VtrainV_{train} 估计值。

权值调整

剩下的事情,是为学习算法选择最适合训练样例 {<b,Vtrain(b)>}\{<b, V_{train}(b)>\} 的权 wiw_i

第一步必须定义最佳拟合训练数据的含义。一种常用的方法是把最佳假设(或权向量集合)定义为使训练值和假设 V^\hat{V} 预测出的值间的误差平方和E最小。

E<b,Vtrain(b)>  training examples(Vtrain(b)V^(b))2E \equiv \sum \limits _{<b, V_{train}(b)>\ \in\ training\ examples} (V_{train}(b) - \hat{V}(b))^2

至此,我们的目标就是寻找权值或 V^\hat{V} ,使对于观测到的训练数据 EE 值最小。

我们已经知道一些算法可以得到线性函数的权使此定义的 EE 最小化。这里需要一个算法,它可以在有了新的训练样例时进一步改进权值,并且它对估计的训练数据中的差错有更好的健壮性。一个这样的算法被称作 最小均方法(least mean squares),或叫LMS训练法则。对于每一训练样例,它把权值向减小这个训练数据误差的方向略微调整。这个算法可被看做对可能的假设(权值)空间进行随机的梯度下降搜索,以使误差平方和 EE 最小化。LMS算法定义:

LMS权值更新法则

对于每一个训练样例<b, Vtrain(b)><b,\ V_{train}(b)>​

  • 使用当前的权计算 V^(b)\hat{V}(b)

  • 对每一个权值 wiw_i 进行如下更新

    wiwi+η(Vtrain(b)V^(b))xiw_i \leftarrow w_i + \eta(V_{train}(b) - \hat{V}(b)) x_i

这里 η\eta 是一个小的常数,用来调整权值更新的幅度。在一定条件下,这种权值调整方法被证明可以收敛到 VtrainV_{train} 值的最小误差平方逼近。

最终设计

通常学习系统可以用四个通用模块来刻画:执行系统、鉴定器、泛化器和实验生成器。

  • 执行系统

    这个模块是用学会的目标函数来解决给定的任务。执行系统采用的选择下一步走法的策略是由学到的评估函数 V^\hat{V} 来决定的。

  • 鉴定器

    它以策略路线或历史记录作为输入,输出目标函数的一系列训练样例。

  • 泛化器

    它以训练样例作为输入,产生一个输出假设,作为它对目标函数的估计。它从特定的训练样例泛化,猜测一个一般函数,使其能够覆盖这些样例以及样例之外的情形。

  • 实验生成器

    它以当前的假设(当前学到的函数)作为输入,输出一个新的问题供执行系统去探索。它的作用是挑战新的实践问题,以使整个系统学习效率最大化。

机器学习的一些观点和问题

观点

  • 机器学习问题经常归结于探索问题,即对非常大的假设空间进行搜索,以确定最佳拟合观察到的数据和学习器已有知识的假设。

  • 一些基本表示(例如,线性函数、逻辑描述、决策树、人工神经网络)定义的假设空间的搜索算法。这些不同的假设表示法适合于学习不同的目标函数。对于其中的每一种假设表示法,对应的学习算法发挥不用内在结构的优势来组织对假设空间的探索。

最后更新于

这有帮助吗?