基于模型的机器学习 Model Based Machine Learning - PRML大神、微软剑桥研究院院长

机器学习
微软
标签: #<Tag:0x00007f6080d9f840> #<Tag:0x00007f6080d9f700>

(think) #1

什么是 基于模型的机器学习 Model-Based Machine Learning (MBML)?

机器学习领域已经看到了数以千计的学习算法的发展。 通常,科学家们会从这些算法中选择解决具体问题。 他们的选择往往受到他们对这些算法的熟悉程度的限制。 在经典/传统的机器学习框架中,科学家们不得不做出一些假设以便使用现有的算法。 这与基于模型的机器学习方法形成对比,该方法旨在创建针对每个新问题定制的定制解决方案。

MBML的目标是“提供支持创建各种定制模型的单一开发框架”。 这个框架来自三个关键思想的重要汇合:

  1. 采用贝叶斯观点,
  2. 使用因子图(一种概率图模型),和
  3. 快速,确定,有效和近似推理算法的应用。

核心思想是关于问题域的所有假设都以模型的形式明确。 在此框架中,模型只是一组关于以概率图形格式表示的世界的假设,其中所有参数和变量表示为随机分量。

MBML的关键思想

1. 贝叶斯推理 (Bayesian Inference)

基于模型的机器学习,这种不同的机器学习框架能得到启用,其第一个关键思想是贝叶斯推理/学习。 在MBML中,潜在/隐藏参数表示为具有概率分布的随机变量。 这允许对模型参数中的不确定性进行量化的连贯且有原则的方式。 一旦模型中观察到的变量固定到它们的观测值,将使用贝叶斯定理更新最初假设的概率分布(即先验)。

The first key idea enabling this different framework for machine learning is Bayesian inference/learning. In MBML, latent/hidden parameters are expressed as random variables with probability distributions. This allows for a coherent and principled manner of quantification of uncertainty in the model parameters. Once the observed variables in the model are fixed to their observed values, initially assumed probability distributions (i.e. priors) are updated using the Bayes’ theorem.

This is in contrast to the traditional/classical machine learning framework where model parameters are assigned average values that are determined by optimizing an objective function. Bayesian inference on large models over millions of variables is similarly implemented using the Bayes’ theorem but in a more complex manner. This is because Bayes’ theorem is an exact inference technique that is intractable over large datasets. In the past decade, the increase in processing power of computers has enabled research and development of fast and efficient inference algorithms that can scale to large data like Belief Propagation (BP), Expectation Propagation (EP), and Variational Bayes (VB).

2. Factor Graphs

The second cornerstone to MBML is the use of Probabilistic Graphical Models (PGM), particularly factor graphs. A PGM is a diagrammatic representation of the joint probability distribution over all random variables in a model expressed as a graph. Factor graphs are a type of PGM that consist of circular nodes representing random variables, square nodes for the conditional probability distributions (factors), and vertices for conditional dependencies between nodes (Figure 1). They provide a general framework for modeling the joint distribution of a set of random variables.

The joint probability P ( μ , X ) over the whole model in Figure 1 is factorized as:

P ( μ , X )= P ( μ )* P ( X | μ )

Where μ is the model parameter and X are the set of observed variables.

image

Figure 1: A Factor Graph

In factor graphs, we treat the latent parameters as random variables and learn their probability distributions using Bayesian inference algorithms along the graph. Inference/learning is simply the product of factors over a subset of variables in the graph. This allows for easy implementation of local message passing algorithms.

3. Probabilistic Programming (PP)

There’s a revolution in Computer Science called Probabilistic programming (PP) where programming languages are now built to compute with uncertainity in addition to computing with logic. This means that existing programming languages can now support random variables, constraints on variables and inference packages. Using a PP language, you can now describe a model of your problem in a compact form with a few lines of code. Then an inference engine is called to automatically generate inference routines (and even source code) to solve that problem. Some notable examples of PP languages include Infer.Net, Stan, BUGS, church, Figarro and PyMC. In this blog post, we will access Stan algorithms through the R interface.

Stages of MBML

There are 3 steps to model based machine learning, namely:

  1. Describe the Model : Describe the process that generated the data using factor graphs.
  2. Condition on Observed Data : Condition the observed variables to their known quantities.
  3. Perform Inference : Perform backward reasoning to update the prior distribution over the latent variables or parameters. In other words, calculate the posterior probability distributions of latent variables conditioned on observed variables.

(think) #2

PRML大神、微软剑桥研究院院长Chris Bishop与John Winn的机器学习新书。最入门级别的机器学习图书, 全书从实际案例开始讲,数学公式很少,非常适合当做读PRML之前的入门。这个专集记录这本书的读书笔记,可能会断更,但是希望能把这本书读完。这本书目前放出来前6章,后面还会有两章陆续放出。
传送门:http://www.mbmlbook.com/toc.html

How can machine learning solve my problem?

这是本书的早期访问版本,因此我们可以在编写时获得对该书的反馈。 完成的书将有其他章节,以及每章的源代码。 请发送反馈,因为它将帮助我们塑造和改进本书!

在过去几年中,机器学习领域已经成为技术领域的中心舞台。 今天,成千上万的科学家和工程师正在将机器学习应用到一个非常广泛的领域。 然而,在实践中有效利用机器学习可能是令人生畏的,特别是对于该领域的新手。 以下是尝试使用机器学习解决实际问题时遇到的一些主要挑战:
“我对机器学习方法和技术的选择感到不知所措。 有太多东西需要学习!“

“我不知道使用哪种算法,或者为什么我的问题会比另一种更好。”

“我的问题似乎不符合任何标准算法。”

在本书中,我们从一个新的角度来看机器学习,我们称之为基于模型的机器学习。 这一观点有助于解决所有这些挑战,并使创建有效机器学习解决方案的过程更加系统化。 它适用于全方位的机器学习技术和应用领域,并将帮助指导您构建成功的机器学习解决方案,而无需掌握有关机器学习的大量文献。

What is model-based machine learning?

在过去的五十年中,研究人员已经创建了数千种机器学习算法。 传统上,想要使用机器学习来解决问题的工程师必须选择这些算法中的一个或多个来尝试或以其他方式尝试发明新的算法。 在实践中,他们对算法的选择可能受到他们碰巧熟悉的算法的限制,或者受特定软件的可用性的限制,并且可能不是他们的问题的最佳选择。

相比之下,基于模型的方法旨在为每个新应用创建量身定制的解决方案。 在基于模型的机器学习中,您可以精确地设计算法以适应您的问题,而不必将您的问题转换为适合某些标准算法。

基于模型的机器学习的核心思想是,关于问题域的所有 假设 都以 模型 的形式明确。事实上,模型只是由这组假设组成,以精确的数学形式表达。这些假设包括问题域中变量的数量和类型,哪些变量相互影响,以及更改一个变量对另一个变量的影响。例如,在下一章中,我们构建了一个模型来帮助我们解决一个简单的谋杀之谜。该模型的假设包括可疑罪犯名单,可能的谋杀武器,以及不同嫌疑人偏爱特定武器的倾向。然后,该模型用于创建特定于模型的算法,以解决特定的机器学习问题。基于模型的机器学习几乎可以应用于任何问题,其通用方法意味着您不需要学习大量的机器学习算法和技术。

那么为什么模型的假设起着如此关键的作用呢? 事实证明,机器学习不能仅仅根据数据生成解决方案。 任何算法都内置了假设,尽管这些假设通常都不是明确的。 不同的算法对应于不同的假设集,并且当假设是隐含的时,决定哪种算法可能给出最佳结果的唯一方法是根据经验进行比较。 这是耗时且低效的,并且它需要比较所有算法的软件实现。 如果所尝试的算法都不能提供良好的结果,那么找出如何创建更好的算法就更难了。

Models versus algorithms

让我们更仔细地看一下模型和算法之间的关系。 我们可以将标准机器学习算法看作是一个单片盒,它接收数据并产生结果。 该算法必须进行假设,因为正是这些假设将特定算法与其他数千个算法区分开来。 但是,在算法中,这些假设是隐含的和不透明的。

现在考虑基于模型的视图。 该模型包含我们对问题域所做的一系列假设。 为了从模型到一组预测,我们需要获取数据并计算我们希望知道其值的变量。 这个计算过程我们称之为推理。 有几种技术可用于推理,我们将在本书的过程中讨论。 模型和推理过程的组合共同定义了机器学习算法,如图0.1所示。

image.png

图0.1 在基于模型的机器学习视图中,算法源于模型和推理方法的特定组合。 这里,模型中的彩色形状代表包含该特定模型的假设。 即使推理方法保持不变,对假设的改变也会产生不同的机器学习算法。

虽然推理方法有多种选择,但通过将模型与推理分离,我们可以将相同的推理方法应用于各种模型。例如,本书中讨论的大多数案例研究都是使用一种推理方法解决的。

基于模型的机器学习可用于执行任何标准机器学习任务,例如分类(第4章)或聚类(第6章),同时提供对这些任务执行方式的额外见解和控制。使用基于模型的机器学习解决这些任务提供了一种处理任务扩展或提高准确性的方法,通过对模型进行更改 - 我们将在第4章中查看此示例。此外,您正在做的假设问题域在模型中清晰地展示出来,因此更容易弄清楚为什么一个模型比另一个模型工作得更好,与其他人沟通模型正在做什么,以及了解出现问题时发生的事情。使用模型还可以更轻松地共享其他人的解决方案,以便适应,扩展或组合它们。

An example: predicting skills

假设您希望跟踪在线游戏服务中玩家技能的变化(这是我们将在第3章中详细探讨的问题)。 机器学习教科书可能会告诉您,有一种称为“卡尔曼滤波器”的算法可用于解决这些问题。 假设您决定尝试使用一些卡尔曼滤波器软件来预测玩家的技能如何随着时间的推移而演变。 首先,您必须弄清楚如何将技能预测任务转换为标准卡尔曼滤波器的形式。 完成后,如果您幸运的话,该软件可能会提供足够好的解决方案。 但是,使用现成算法的结果通常无法达到实际应用程序所需的准确度。 您将如何修改算法和相应的软件,以达到更好的效果? 看来你必须成为卡尔曼滤波器算法的专家,并深入研究软件实现,以取得进展。

将其与基于模型的方法进行对比。首先列出解决方案必须满足的假设。这定义了您的模型。然后,您可以使用此模型创建相应的机器学习算法,这是一个可以自动化的机械过程。如果您的假设恰好与卡尔曼滤波器中隐含的假设相对应,那么您的算法将精确对应卡尔曼滤波算法(即使您从未听说过卡尔曼滤波器,也会发生这种情况)。但是,您的特定应用程序的模型可能有一些不同的假设。在这种情况下,您将获得适合您的应用的卡尔曼滤波器的变体。如果您的目标是找到问题的最佳解决方案,那么这种变体是否已经存在,或者它是否是一种新颖的算法是无关紧要的。假设您尝试基于模型的算法,结果再次达不到您的要求。现在,您有了一个框架,通过检查和修改假设来改进结果,以生成更好的模型,以及相应的改进算法。作为领域专家,理解和更改假设比直接修改机器学习算法更容易,更直观。即使你的目标只是理解卡尔曼滤波器,那么从模型假设开始是迄今为止最简单和最简单的方法来推导滤波算法,并了解卡尔曼滤波器的全部内容。

Tools for model-based machine learning

将算法分解为模型和单独的推理方法具有另一个强有力的结果。 如果只给出模型的定义和推理方法的选择,就可以创建一个自动生成机器学习算法的软件框架。 这允许应用程序开发人员专注于特定于域的模型的创建,并使他们不需要成为推理过程的内部工作的专家。

十多年来,我们一直致力于微软研究院的这种软件框架,名为 Infer.NET [Minka et al., 2014].因为模型只包含一组假设,所以可以用非常紧凑的代码表示,这相对容易理解和修改。 然后自动生成算法的相应代码,该代码通常要复杂得多。 本书中的所有模型都是使用Infer.NET创建的,相应的模型源代码可在线获取。 但是,这些解决方案同样可以通过手工或使用替代的基于模型的框架来实现 - 它们并非特定于Infer.NET。 实现基于模型的机器学习理念的替代软件框架的示例包括BUGS [Lunn et al., 2000],Church,[Goodman et al., 2008] 和Stan [Stan Development Team, 2014]

Who is this book for?

这本书对于机器学习教科书来说是不寻常的,因为我们不会回顾几十种不同的算法。 相反,我们通过一系列涉及实际应用的案例研究介绍了所有关键思想。 案例研究起着核心作用,因为只有在应用程序环境中讨论建模假设才有意义。 因此,每一章都介绍了一个案例研究,该案例研究来自使用基于模型的方法解决的实际应用。 唯一的例外是第一章探讨了涉及谋杀之谜的简单虚构问题。

每章还有助于介绍各种机器学习概念,而不是作为抽象概念,而是作为应用程序需求驱动的具体技术。 您可以将这些概念视为构建模型的构建块。 虽然您需要花一些时间来完全理解这些概念,但您很快就会发现可以从相对较少的构建块构建各种各样的模型。 通过本书中的案例研究,您将学习如何使用这些组件,并希望充分了解基于模型的方法的强大功能和灵活性,以便您解决机器学习问题。

深入探究
本书适用于任何想要使用机器学习来解决实际问题的技术人员 - 本书的重点是设计解决问题的模型。 但是,一些读者还希望了解模型如何转化为推理算法的数学细节。 我们将本书的这些部分(需要更高级的数学)分成深入剖面推理,这些部分将用这样的面板标记。
深入探究部分是 可选 的 - 您可以在没有它们的情况下阅读本书。 如果您计划使用像Infer.NET这样的软件框架,或者只想专注于建模,则可以跳过这些部分。

How to read this book

本书中的每个案例研究都描述了从问题陈述到解决方案的过程。 你可能不想一次性跟随这个旅程。 为了解决这个问题,每个案例研究分为几个部分 - 我们建议一次阅读一个部分,并暂停消化您在每个部分结尾处学到的内容。 为了解决这个问题,一节中介绍的机器学习概念将用 粗体 表示,并将在每个部分的末尾进行审核(如下所示)。 我们的目标是提供每个概念的足够细节,以便能够理解案例研究,以及与外部资源的链接,例如 Bishop [2006],如果您对特定主题感兴趣,可以获得更多详细信息。
现在,进行第一个案例研究!

Review of concepts introduced on this page
model-based machine learning :一种机器学习方法,其中关于问题域的所有假设都以模型的形式明确。 然后,该模型用于创建特定于模型的算法,以学习或推理域。 该过程的算法创建部分可以自动化。
model :关于问题域的一组假设,以精确的数学形式表示,用于创建机器学习解决方案。
Infer.NET :Microsoft Research Cambridge开发的软件框架,可以根据模型定义自动执行基于模型的机器学习。 可从以下网址下载 the Infer.NET website.

References
  1. [Minka et al., 2014] Minka, T., Winn, J., Guiver, J., Webster, S., Zaykov, Y., Yangel, B., Spengler, A., and Bronskill, J. (2014). Infer.NET 2.6. Microsoft Research Cambridge. http://research.microsoft.com/infernet.
  2. [Lunn et al., 2000] Lunn, D., Thomas, A., Best, N., and Spiegelhalter, D. (2000). WinBUGS – a Bayesian modelling framework. Statistics and Computing, 10:325–337. MRC Biostatistics Unit. http://www.mrc-bsu.cam.ac.uk/software/bugs.
  3. [Goodman et al., 2008] Goodman, N., Mansinghka, V. K., Roy, D. M., Bonawitz, K., and Tenenbaum, J. B. (2008). Church. MIT. http://projects.csail.mit.edu/church/wiki/Church.
  4. [Stan Development Team, 2014] Stan Development Team (2014). Stan: A C++ Library for Probability andSampling, Version 2.5.0.
  5. [Bishop, 2006] Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.

作者:博士伦2014
来源:简书


(think) #3

Model-based Machine Learning Chris Bishop分享PPT (1.6 MB)