PRML读书笔记(2) - 深度理解机器学习之决策论(Decision Theory)

2019-03-28 11:32:40 浏览数 (1)

「总结自经典教材《Pattern Recognition and Machine Learning》以及김동국教授的人工神经网络纯理论课程。在此感谢作者及教授的辛苦教学。本篇内容很多东西没有很明确地说明,仅限于本人记录复习使用」

前一篇文章从概率论的角度总结了一些与机器学习相关的核心知识。这篇文章将从决策论的角度,来总结一些关联知识。当其与概率论相结合时,能够帮助我们在涉及不确定性的情况下做出最优决策。

概述

假设我们有一个输入向量 x,已经一个目标变量 t。我们的目标就是当给定一个新变量 x 的时候,可以预测出 t。在分类问题中,t 是一个离散值,代表一个类别标签;在回归问题中,t 是一个连续值。联合概率分布 p(x, t) 提供了与这些变量相关的不确定性的完整总和。从一组训练数据中确定 p(x, t) 是一个推断 (inference) 问题的例子,这通常是一个非常难的问题,其解决方案构成了 PRML 整本书的主题。

举一个简单的癌症检测的例子。我们将根据病人的一张 X-ray 图片,来判断该病人是否患癌症。在这个例子中,输入向量 x 就是一张图片的线性值表示,输出变量 t 就是表示是否患癌症。t 将被表示成 C1 和 C2 这两个值。C1 表示患癌症,C2 表示不患癌症。在实际应用中,t 将被表示成二进制,即 0 表示 C1,1 表示 C2。一般的推断问题涉及到确定联合分布 p(x, Ck) 或等价的 p(x, t),这给了我们对这种情况最完整的概率描述。虽然这可能是一个非常有用和信息丰富的量,但最后我们必须决定其中之一,即给病人治疗与否,我们希望这个选择在某种适当的意义上是最优的。一旦我们解决了推理问题,我们将看到决策阶段通常是非常简单的。

首先,可以考虑一下,概率在决策中是如何发挥作用。当我们得到一个病人的 X-ray 图片的时候,我们的目标是将其分类为其中一个类别。这时候会对两个类别的概率感兴趣,即对 p(x, Ck) 感兴趣。使用贝叶斯定理,概率将会被表达成:p(Ck|x) = p(x|Ck)p(Ck) / p(x) 。需要注意的是,贝叶斯定理中出现的任何一个量都可以从联合分布 p(x, Ck) 中得到,方法是对相应的变量进行边缘化或条件作用。将 p(Ck) 解释成类别 Ck 的先验概率,p(Ck|x) 则是对应的后验概率。因此, p(C1) 表示在我们进行 x 射线测量之前,即一个人患癌症的概率。同样,p(C1|x) 是对应的后验概率,是根据 X-ray 中包含的信息,用贝叶斯定理修正后得到的概率。如果我们的目标是最小化分配 x 到错误类别的机会,那么根据直觉我们会选择具有较高后验概率的类别。上面的过程证明了这种直觉是正确的,在后面还将讨论决策的更一般的标准。

最小化误分类率

假设我们的目标是尽可能的减小误分类。我们需要一个规则把每个 x 值指向可能的类别中去。这个规则会讲驶入空间划分为 Rk 个决策领域(decision regions),每个领域表示为一个类别。每个类别之间的边界,称为决策边界(decision boundary)。 为了找到最优的决策规则,首先考虑二元分类的问题,例如上面的癌症检测的问题。错误分类的情况是:原本是 C1 的类别却指向了 C2,反之亦然。这样的话,错误分类的概率如下所示:

为了最小化这个概率,我们应该应该讲每个 x 值分配给上式中具有最小积分值的类别。因此,当 p(x, C1) > p(x, C2) 的时候,给定的 x 的值,将被指定为 C1 类别。概率的乘法公式为: p(x,Ck) = p(Ck|x)p(x) ,因为 p(x) 是相同的因子,所以可以重述一下结论:最小化错分类概率就是将每个 x 值指向后验概率 p(Ck|x) 最大的类。

推广至 k 类别的话,使用正确分类的概率将更容易,概率公式如下所示:

这个时候需要最大化这个正确概率,和上面一样,也可以得出这个结论:将 x 指向后验概率 p(Ck|x) 最大的类。

最小化期望损失

对于许多应用来说,我们的目标将比简单地最小化错误分类的数量更复杂。现在再次思考一下癌症检测这个问题。可以注意到,如果没有患癌症的患者被错误地诊断为患有癌症,则后果可能是增加某些患者的痛苦以及需要进一步调查。相反,如果患有癌症的患者被诊断为健康,则后果可能是由于缺乏治疗而过早死亡。可以看出,这两类错误的后果会大不相同。很显然,减少第二种错误显然会更​好。这时候,可以通过引入损失函数(loss function),也称为成本函数(cost function)来正式化这些问题,这是对采取任何决策或行动所引起的损失的单一,总体的衡量标准。所以,我们的目标是尽量减少总损失。 假设我们有一些 x 值,其真正的类别是 Ck,但是我们将其指向了 Cj,这样就会导致一些损失,损失表示为 Lkj,可以看做是损失矩阵 L 的第 kj 个元素。如下图所示,是一个损失矩阵。这个特殊的损失矩阵表明,如果做出正确的决定,就不会发生损失;如果健康的患者被诊断为患有癌症则会损失 1;而如果患有癌症的患者被诊断为患有癌症则会损失 1000。

最佳解决方案是最小化损失函数。但是,损失函数取决于真实的类,这个对于我们来说是未知的。对于给定的输入向量 x,我们在真实类别中的不确定性通过联合概率分布 p(x,Ck) 来表示,因此我们寻求最小化平均损失,其中平均值是相对于该分布计算的,如下所示:

每个 x 可以独立地分配给决策区域 Rj 之一。我们的目标是选择区域 Rj ,以最大限度地减少预期损失。这意味着对于每个 x,我们应该最小化 ΣkLkj p(x,Ck)。又因为 p(x,Ck) = p(Ck|x)p(x) ,其中 p(x) 是相同的因子。所以,使预期损失最小化的决策规则是将每个新的 x 赋给 j 类,而 j 类的计算结果是最小的。

推断和决策

可以将分类问题分为两个阶段,一个是推断阶段,一个是决策阶段。在推断阶段,我们使用训练数据来学习关于 p(ck|x) 的模型。在决策阶段,我们使用后验概率来做出最优的类指向。还有一种绝对的方法可以同时解决这两个阶段的问题,即简单的学习一个方程,这个方程直接将 x 映射到对应的决策上去。这样的方程称之为 判别方程(discriminant function)

实际上,总结来说,有 3 种方法可以解决决策问题:

  • Generative Approach:Using Bayes Rule
  • Discriminative Approach:model p(ck|x) direcly!
  • Discriminant function:Find a function, called discriminant function, which maps each input x directly onto a class label.

回归问题的决策

前面讨论为内容都是关于分类问题的,现在讨论回归问题。在回归问题的决策阶段,需要选择 y(x),即对于输入的各个 x 值,其关于目标值 t 的评估值。假设正在寻求 y(x),损失为 L(t,y(x))。所以,平均或者期望损失为:

在回归问题中,经常使用如下平方差损失函数

所以有:

现在,我们的目标是选择 y(x) 使得 E[L] 最小。如果假设该 y(x) 是完全柔和的,我们可以通过如下方式来求解:

然后,依据概率的乘法和加法法则,可以得到:

所以,从求解结果上,可以得知如果想要使回归问题的损失最小,那么要使 y(x)Et[t|x],即回归问题的最优解为 y(x) = Et[t|x]

0 人点赞