Model-Based Machine Learning 中的文章

[译]基于模型的机器学习 - 2.6 学习猜测概率

你可能以为,推断猜测概率需要用到与我们目前所用完全不同的技术。事实上,我们的做法将完全相同:我们把想要学习的概率值作为新的连续随机变量加入模型,并用概率推断来计算它们的后验分布。这展示了基于模型方法的威力——每当我们想知道某个东西时,我们就把它作为一个随机变量引入模型,然后用概率推断去求出它。

让我们看看如何修改模型,把猜测概率作为随机变量纳入进来。为了保持一致,我们也会为犯错概率(实际上是不犯错概率)添加一个变量,但我们会把它固定在 10% 的犯错几率上。首先,我们要改变书写 AddNoise 因子的方式。

图 2.25a

(a) 内置概率的自定义因子

图 2.25b

(b) 通用的 Table 因子

图 2.25:书写 AddNoise 因子的两种方式:(a) 作为一个把猜测和犯错概率“内置”其中的自定义因子。(b) 使用一个通用的 Table 因子,它带有两个参数:给定父节点为 false 时子节点为 true概率(左参数),以及给定父节点为 true 时子节点为 true概率(右参数)。这种书写因子的方式让我们可以把这些概率作为变量提供给因子

图 2.25 展示了如何把现有的 AddNoise 因子(其中猜测和不犯错概率被硬编码为 0.2 和 0.9)替换为一个通用的 Table 因子,后者把这些概率作为额外的参数。然后我们可以用两个新的随机变量来设置这些参数,我们把它们命名为 probGuessprobNoMistake。推断这些变量的后验分布,就会给出我们所需的猜测和不犯错概率的学习值——但为此,我们首先需要一种能表示这类变量不确定性的分布。

……

阅读全文

[译]基于模型的机器学习 - 2.5 诊断问题

当一个机器学习系统不工作时,通常有三个可能的原因:坏数据坏模型坏推断。以下是这三个类别下各自一些常见的问题成因:

  • 坏数据(Bad data):数据项被错误地录入、存储或加载;数据项不完整或标注错误;数据值噪声太大而无用;数据有偏或不能代表系统将被使用的方式;这是任务的错误数据;数据不足以做出准确预测。
  • 坏模型(Bad model):一个或多个建模假设是错的——即与实际生成数据的过程不一致;模型做了太多简化假设;给定可用数据量,模型包含的假设不足以做出准确预测。
  • 坏推断(Bad inference)推断代码含有 bug;消息传递调度不好;推断尚未收敛;存在数值问题(例如舍入、溢出);近似推断算法不够准确。

在我们的情形中,我们可以相当有信心地认为数据是好的,因为我们已经仔细地检查和可视化过它。所以看起来问题很可能出在模型推断上。我们将从检查推断算法——即循环置信传播——是否正确工作开始。

……

阅读全文

[译]基于模型的机器学习 - 2.4 迁移到真实数据

既然我们已经在示例数据上充分试验过模型,现在就可以用一些真实数据来工作了。我们请了 22 位志愿者完成一份由 48 道题组成的测评测试,用以评估七种不同的开发技能。许多题目需要两项技能,因为它们既需要某个软件开发概念的知识(例如面向对象编程),又需要该题所用编程语言的知识(例如 C#)。

除了完成测试之外,我们还请每位志愿者说明他们认为自己具备哪些开发技能。这些自评技能将作为技能变量的真实标注(ground truth)——也就是说,我们把它们当作变量的真实取值。这类真实标注数据将用于评估我们的系统从志愿者答案中自动推断技能的准确性。真实标注数据应当相当可靠,因为志愿者没有夸大自己技能的动机:结果是匿名的,所报告的技能和答案无法与任何特定志愿者关联。然而,某些志愿者也有可能高估或低估自己的技能,我们在用这些数据评估准确性时需要牢记这一点。

……

阅读全文

[译]基于模型的机器学习 - 2.3 有环性

现在让我们把模型稍微扩展一下,添加第四道需要两项技能的题目。这张新的因子图如图 2.14 所示,我们为这道新题添加了新的 isCorrect4hasSkills4 变量。在这张仅仅略微变大的图上,我们当然也可以用置信传播来做推断吧?其实,我们不能。

飞机航迹环

环可能很棘手。

问题在于,置信传播只有在某个(未观测)节点的所有其它边上都收到了消息之后,才能从该节点发出一条消息(算法 2.1)。在这个约束下,只有当图中没有环时,我们才能把图中的所有消息都发送出去;这里的是指一条穿过图、从同一个节点出发又回到该节点的路径(且不重复经过同一条边)。如果图中有一个环,那么我们无法沿着环上的任何一条边发送消息,因为这总是要求先计算出环上的另一条消息。

……

阅读全文

[译]基于模型的机器学习 - 2.2 试验模型

构建好一个模型之后,首先要做的就是用一些简单的示例数据来试验它,检查它的行为是否合理。假设有一位候选人懂 C# 但不懂 SQL——我们会预期他答对第一题,而答错另外两题。那么让我们针对这种情况试验一下模型,看看对于这样的答题模式它会推断出哪些技能。为方便起见,我们用 isCorrect 来指代数组 [isCorrect1, isCorrect2, isCorrect3],因此我们要考虑的是 isCorrect[true, false, false] 的情形。

我们想在给定这一组特定的 isCorrect 取值的条件下,推断候选人具备 csharpsql 技能的概率。这是一个推断查询的例子,它由我们想要推断的变量(csharpsql)以及我们所条件化的变量(isCorrect)连同它们的观测值共同定义。由于这个例子相当小,我们可以用手工方式求出这个推断查询的答案。

手动进行推断

作为开始,我们先来看看在只给定第一题答案的情况下,如何推断 csharp 技能的概率。舍去其它变量后,就得到图 2.6 所示的简化因子图

……

阅读全文

[译]基于模型的机器学习 - 2.1 模型即一组假设

在为某些数据设计模型时,我们必须对产生这些数据的过程做出假设。事实上,我们可以说,模型就是这组假设,而这组假设就是模型。模型与它所表示的假设之间的关系如此重要,值得强调:

模型 = 关于数据的一组假设

选择在模型中包含哪些假设,是模型设计的关键环节。错误的假设会导致模型给出不准确的预测,正是这些有缺陷的假设造成了这种结果。然而,不做任何假设是不可能建立模型的——至少必须做出一些假设。

正如你在第 1 章中所见,本书将使用因子图来表示我们的模型。随着阅读的深入,你将学会如何构建对一组选定假设进行编码的因子图。同样,你也将学会观察一张因子图并推断出它所表示的假设。你可以把因子图看作一组假设的精确数学表示。例如,在第 1 章中,我们构建了一张因子图来表示关于一起谋杀之谜的一组精确假设。对于当前这个应用,我们需要对“一个具备特定技能集的候选人如何回答一组测试问题”这一过程做出假设。这将定义候选人的潜在技能与其测试答案之间的关系,随后我们可以将其反转,从测试答案中推断出他们的技能。

在设计因子图时,我们首先要选择希望图中包含哪些变量。图中至少必须包含表示我们实际拥有的数据的变量(候选人是否答对了每道题),以及我们想要了解的变量(技能)。正如我们将看到的,引入其它中间变量往往也很有用。选定变量之后,我们就可以开始向图中添加因子,以编码这些变量在答题过程中如何相互影响。通常从我们想要了解的变量(技能)开始,沿着这个过程一路推进,直到我们真正能够测量的变量(候选人是否答对了题目),这样做往往会很有帮助。

那么,从技能变量开始,这是我们的第一个假设:

1 每位候选人要么已掌握某项技能,要么没有掌握。

假设 2.1 意味着我们可以把候选人的技能表示为一个二值(true/false)变量:如果候选人掌握了该技能,则为 true;否则为 false。像我们目前见过的所有变量那样,只能取一组固定值之一的变量,称为离散变量。在本章后面,我们会遇到连续变量,它可以在一段连续取值范围内取任意值,例如 0 到 1 之间的任意实数。正如我们将看到的,连续变量在学习事件概率等许多用途上都非常有用。

……

阅读全文

[译]基于模型的机器学习 - 第二章 评估人们的技能

在我们的一生中,我们不断评估周围人的技能和能力。我应该雇用谁?谁应该在团队中比赛?我可以向谁寻求帮助?我如何最好地教导这个人?综合我们对某人的所有了解,并弄清楚他们能做什么和不能做什么,这对我们大多数人来说都是很自然的。但是我们如何使用基于模型的机器学习来自动完成这项工作呢?

在本章中,我们将开发我们的第一个针对真实世界数据的模型。我们将解决评估需要特定技能的工作候选人的问题。其想法是候选人将参加多项选择测试,我们将使用基于模型的机器学习来确定每个候选人具有哪些技能(以及具有什么概率),这些信息基于他们在测试中的答案。然后,我们可以使用这些信息来执行诸如选择很可能具有一组必要技能的候选人的初选名单等任务。

……

阅读全文

[译]基于模型的机器学习 - 1.4 扩展模型

贝叶斯博士掏出她可靠的放大镜,继续在犯罪现场调查。她在布莱克先生尸体附近的地板上,发现了一根落在血泊上的头发。“啊哈!”贝叶斯博士惊呼,“这根头发一定属于谋杀发生时在房间里的人!”她仔细观察这根头发,发现它既不是奥本小姐那一头鲜艳红发的色泽,也不是受害者乌黑的头发,而是格雷少校那种沉稳的银灰色!

……

阅读全文

[译]基于模型的机器学习 - 1.3 谋杀模型

1.3 谋杀模型

为了侦破谋杀案,我们需要整合更多来自犯罪现场的证据。每一条新证据都将为我们的联合分布添加一个新的随机变量。为了管理这个不断增长的变量数量,我们现在将引入本书的核心概念:概率模型。概率模型包括:

  • 一组随机变量,
  • 这些变量上的一个联合概率分布(即一个为这些变量的每种配置分配一个概率的分布,使得所有可能配置的概率总和为1)。

一旦我们有了概率模型,我们就可以对它包含的变量进行推理,进行预测,了解一些随机变量在给定其他变量值的情况下的值,并且通常可以回答任何可以用模型中包含的随机变量来陈述的可能问题。这使得概率模型成为进行机器学习的极其强大的工具。

……

阅读全文

[译]基于模型的机器学习 - 1.2 更新我们的可信部分

贝叶斯博士仔细搜查了图书馆,在书柜里发现了一颗子弹。“嗯,有意思,”她说,“我想这可能是一条重要的线索。”

Image

所以看起来凶器是左轮手枪,而不是匕首。我们的直觉是,这条新证据更强烈地指向格雷少校,而不是奥本小姐,因为格雷少校凭借其年龄和军事背景,比奥本小姐更有可能拥有使用左轮手枪的经验。但我们如何利用这些信息呢?

……

阅读全文

最近文章

分类

标签

友情链接

其它