您正在使用IE低版浏览器,为了您的雷锋网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
AI开发 正文
发私信给思颖
发送

0

模式识别与机器学习第一讲(上)

本文作者:思颖 2017-09-30 17:37
导语:本文主要涉及机器学习的分类,以及一些基础定义,如误差函数、正则化等。

雷锋网(公众号:雷锋网) AI科技评论按,本文作者Frankenstein,首发于知乎专栏闲敲棋子落灯花,雷锋网 AI科技评论获其授权转载。

关键词:有监督学习、无监督学习、强化学习、回归、分类、误差函数、泛化、正则化、超参数、验证集。

序言

从去年5月入坑以来,线上线下都上过机器学习的课(线上是看了Coursera的课入门,线下上了DS-GA 1003 Machine Learning and Computational Statistics),但从没有完整读过一本书。

暑假和小伙伴们约好一起读Pattern Recognition and Machine Learning(模式识别与机器学习,下简称PRML)。初步打算每周读一章,大家轮流主讲。开了专栏以后一直没写过东西,第一部分内容就准备贡献给PRML了。

可能有用的链接:

  1. Christopher Bishop at Microsoft Research (https://www.microsoft.com/en-us/research/people/cmbishop/)在这里可以找到部分章节的PPT、书的勘误、部分答案。

  2. PRML/PRMLT (https://github.com/PRML/PRMLT)陈默(他也上知乎,没关注的可以关注一发)用MATLAB给出了书里的所有模型实现。

  3. scikit-learn/scikit-learn (https://github.com/scikit-learn/scikit-learn)视情况我可能会给出少量代码,但大部分内容还是会更加侧重模型的理论和动机,结合适当的数学推导。如果想要了解一些代码的实现的话,scikit-learn应该还是现在最常用的实现,可以考虑学习一下它的模型源代码。

书的完整答案理论上是只对教师开放的,但由于大家都可以想见的原因搜一下就可以搜到了。

华盛顿大学的Pedro Domingos教授认为机器学习有以下几个门派:

  • 基于逻辑、哲学,出发点为填补现存知识中空白的符号学派

  • 基于神经科学,出发点为模拟大脑的联结学派

  • 基于进化生物学,出发点为模拟进化的进化学派

  • 基于统计,出发点为系统的降低不确定性的贝叶斯学派

  • 基于心理学,出发点为发现新旧事物之间相似度的类推学派

在这之外还有基于动物学习、最优控制、动态规划的强化学习以及更加接近传统频率学派的期望最大化。Domingos的slides(https://learning.acm.org/webinar_pdfs/PedroDomingos_FTFML_WebinarSlides.pdf)里有更多这方面的内容。他的《终极算法--机器学习和人工智能如何重塑世界》一书详细科普了五个学派,挺有意思的,感兴趣的可以去看一下(提醒:翻译的不怎么样)。

PRML就是贝叶斯学派的一本经典教科书,从贝叶斯学派的视角系统梳理了机器学习的知识,给人一种万物皆可贝叶斯化的感觉。

在这一系列笔记里,我希望梳理每一章节里比较重要的内容,并结合一些我到目前为止对机器学习的理解做一些适当的拓展和探究。这些内容基本假设读者上过一节机器学习入门课,可能不是self-contained的,可能不适合完全不了解的人阅读,但希望对有一些初步了解的读者能有帮助,也欢迎大家不吝指正。

如无另外点明,每一讲内容都有参考PRML,每一讲其余的参考内容会列在文章末尾。

第一章节(1. Introduction)内容始于多项式曲线拟合的例子,终于信息论。

从机器学习里主流的三类问题——有监督学习、无监督学习、强化学习的定义开始,Bishop用一个有监督学习里的回归问题引出了对误差函数、泛化、模型复杂度、正则化、过拟合、验证集等核心概念。PRML这本书号称是self-contained的,只假设读者具备多元微积分、线性代数水准的数学能力,因此不严格地介绍了概率论里的基本知识以保证读者具备读完余下内容的基础知识。当然还是存在一些小的问题,比如随机变量到底是什么?误差条又是什么?当然瑕不掩瑜,在大部分情况下,本书很好展现了方法和问题的动机。

正文

1. Introduction

机器学习问题可以做如下分类:

  1. 有监督学习(supervised learning): Applications in which the training data comprises examples of the input vectors along with their corresponding target vectors.

    1. 分类(classification): to assign each input vector to one of finite number of discrete categories.

      1. 例子:识别手写数字并将其标记为0~9这10个数字中的一个。

    2. 回归(regression): the desired output consists of one or more continuous variables.

      1. 例子:基于反应物、温度、压力预测化学制造过程的产出。

  2. 无监督学习(unsupervised learning): Pattern recognition problems in which the training data consists of a set of input vectors 模式识别与机器学习第一讲(上) without any corresponding target values.

    1. 聚类(clustering): to discover groups of similar examples within the data

    2. 密度估计(density estimation): to determine the distribution of data within the input space

    3. 降维(dimensionality reduction): to project the data from a high-dimensional space down to two or three dimensions

    4. 数据点/样本生成(data point/sample generation): to obtain new samples from the probability distribution that is close to the underlying probability distribution of the data points/samples

  3. 强化学习(reinforcement learning): Problems about finding suitable actions to take in a given situation in order to maximize a reward, where optimal outputs are unknown.

    1. 例子:Play the game of backgammon to a high standard with a neural network using appropriate reinforcement learning techniques (Tesauro, 1994). (这可能是深度强化学习最早成功的案例之一了。)

    2. 上面的案例也可作为credit assignment的一个例子。具体地说,在一局游戏结束后,胜利或失败被以某种形式归因于游戏中采取的所有行动。个人认为这里credit assignment是指在一个episodic task结束后,如何恰当的给特定行动,或者在某个特定状态采取特定行动赋予合适的reward。

    3. 这里也有提到explore v.s. exploit和trial and error的思想。但总的来说因为本书基本没怎么触及强化学习,讲的不是特别好。如果要比较好了解强化学习的话还是应该看Sutton & Barto (http://incompleteideas.net/sutton/book/bookdraft2016sep.pdf)那本书。

本章主要介绍了一些最重要的概念和一些简单的例子。在这之中包括将贯穿全书的三个工具:概率论、决策论以及信息论。

1.1 Example: Polynomial Curve Fitting

Example/Motivation: (a simple regression problem)

Given a real-valued target variable t, we wish to use this observation to predict the value of a real-valued target variable t. In particular, given N observations of x written as模式识别与机器学习第一讲(上) together with corresponding observations of t written as 模式识别与机器学习第一讲(上), can we fit the data so that we can make predictions of the value 模式识别与机器学习第一讲(上) of the target variable for some new value 模式识别与机器学习第一讲(上) of the input variable?

这是一个典型的二维回归问题。上过Andrew Ng Coursera 公开课的朋友们应该还记得一上来遇到的那个给定住宅面积预测住宅价格的问题。Bishop这里给的训练数据则是 模式识别与机器学习第一讲(上)模式识别与机器学习第一讲(上)模式识别与机器学习第一讲(上)个均匀分布点上的取值加以基于同一高斯分布产生的随机噪声。如下图是模式识别与机器学习第一讲(上) 时的情况。

模式识别与机器学习第一讲(上)

首先我们考虑用一个模式识别与机器学习第一讲(上)阶多项式拟合数据,

模式识别与机器学习第一讲(上) , 模式识别与机器学习第一讲(上) (1.1)

模式识别与机器学习第一讲(上) 是一个关于 模式识别与机器学习第一讲(上) 的线性方程。

定义:关于未知参数的线性方程被称为线性模型(linear models)。

我们基于训练数据决定模式识别与机器学习第一讲(上)的取值,一个潜在的假设是我们需要预测的模式识别与机器学习第一讲(上) 和训练数据来自同一分布或两者分布非常接近,否则就没有意义了。

a. 误差函数

怎样的模式识别与机器学习第一讲(上) 取值是好的呢?我们需要一把尺子来度量,这就是误差函数(error function)。通过累加每一个训练数据的预测目标变量模式识别与机器学习第一讲(上)相对真实目标变量模式识别与机器学习第一讲(上)的偏移程度,误差函数负责衡量训练好的模型,即模式识别与机器学习第一讲(上) 和训练数据分布之间的相似程度,其取值一般为非负。误差函数的值越大,对于训练数据而言模型越糟。

例子:模式识别与机器学习第一讲(上)(平方误差函数)

很自然地,在回归问题中,当模型完美拟合训练数据时,误差一般会降到0。但值得注意的是在分类问题中,即便分类完美无缺误差也可能不为0。

以下图为例,我们有一个二元分类问题。在二维平面上有一个红色类和一个蓝色类。假设我们想用一条直线(在第二讲里我们会提到,它们被称为决策边界)来把它们分开。图中同样①和②都完美进行了分类,但我们会更希望模型训练得到的是①而不是②因为①离两个类最短距离之和要大于②。直觉来说当我们有更多数据样本而不只是眼前6个的时候①成功的可能性更高。这个问题的正式名称是泛化,我们在后面会提到。因此我们可能设计一个误差函数使得②的误差高于①。因此同样①、②在数据上都能没有错误地进行分类,②的误差可能仍然不为0。

模式识别与机器学习第一讲(上)

训练模型的过程中,我们希望调整模式识别与机器学习第一讲(上) 来减少误差函数的值,可以说是面向减少误差建模,故用模式识别与机器学习第一讲(上)来表示误差的值。

对于某些误差函数(涉及函数的convexity,凸性),如平方误差,我们可以通过对表达式关于未知参数(如模式识别与机器学习第一讲(上)之于模式识别与机器学习第一讲(上))进行求导,令求导后的表达式等于0来得到最优参数模式识别与机器学习第一讲(上),这样得到的参数有闭型(有限次常见运算组合给出的表达式)。

b. 由泛化而来的模型选择问题

现在我们知道了对于一个给定的正整数M,如何拟合训练数据。一个接踵而来的问题是我们要如何决定M的取值。

考虑模式识别与机器学习第一讲(上)的四种情况,对于每一种情况,我们都基于平方误差找到拟合训练数据最好的多项式,如下图。红线为多项式图形,绿线为模式识别与机器学习第一讲(上)的图形。

模式识别与机器学习第一讲(上)

由上图可知,模式识别与机器学习第一讲(上)越大,多项式拟合数据的能力越强。当模式识别与机器学习第一讲(上)时,多项式甚至完美拟合了所有数据。然而我们从形状上可以发现此时多项式的形状与模式识别与机器学习第一讲(上)相去甚远。可以预见当我们