机器学习算法原理、实现与实践——机器学习的三要素

1 模型

在监督学习中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是这些线性函数构成的函数的集合。

假设空间用$\mathcal{F}$表示。假设空间可以定义为决策函数的集合
$$\mathcal{F}=\{f|Y=f(X)\}$$

其中,$X$和$Y$是定义在输入空间$\mathcal{X}$和输出空间$\mathcal{Y}$上的变量。这时$\mathcal{F}$通常是由一个参数向量决定的函数族
$$\mathcal{F}=\{f|Y=f_{\theta}(X),\theta\in \mathbf{R}^n\}$$

参数向量$\theta$取值于$n$维欧氏空间$\mathbf{R}^n$,称为参数空间(parameter space)。

假设空间也可以定义为条件概率的集合
$$\mathcal{F}=\{P|P(Y|X)\}$$

其中,$X$和$Y$是定义在输入空间$\mathcal{X}$和输出空间$\mathcal{Y}$上的变量。这时$\mathcal{F}$通常是由一个参数向量决定的条件概率分布族

$$\mathcal{F}=\{P|P_{\theta}(Y|X),\theta\in \mathbf{R}^n\}$$

称由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型

2 策略

有了模型的假设空间,机器学习接着要考虑的是按照什么样的准则学习或选择最优的模型。
首先引入损失函数风险函数的概念。损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。

2.1 损失函数与风险函数

对于给定的输入$X$和假设空间$\mathcal{F}$中选择的决策函数模型$f$,由$f(X)$给出相应的输入$Y$,这个输出的预没值$f(X)$与真实值$Y$可能一致,也可能不一致,用一个损失函数或代价函数来度量预测的错误程度。损失函数是$f(x)$和$Y$的非负实值函数,记作$L(Y,f(X))$

几种常用的损失函数:

1) 0-1损失函数(0-1 loss function)
$$L(Y,f(X)) = \begin{cases}1, &Y\neq f(X) \\ 0, & Y=f(X)\end{cases}$$

2) 平方损失函数(quadratic loss function)
$$L(Y,f(X)) = (Y – f(X))^2$$

3)绝对损失函数(absolute loss function)
$$L(Y,f(X)) = |Y-f(X)|$$

4) 对数损失函数(logarithmic loss function)或对数似然损失函数
$$L(Y,P(Y|X)) = –logP(Y|X)$$

损失函数值越小,模型就越好。由于模型的输入、输出$(X,Y)$是随机变量,遵循联合分布$P(X,Y)$,所以损失函数的期望是
$$R_{exp}(f)=E_P[L(Y,f(X))]=\int_{\mathcal{X}\times\mathcal{Y}}L(y,f(x))P(x,y)dxdy$$

这是理论上模型$f(X)$关于联合分布$P(X,Y)$的平均意义下的损失,称为风险函数(risk function)或期望损失(expected loss)。

学习的目标就是选择期望风险最小的模型。由于联合分布$P(X,Y)$是所有样本所遵循的统计规律,它是未知的,所以$R_{exp}(f)$不能直接计算。实际上如果知道了联合分布,那么可以直接计算出$P(Y|X) = \int_{\mathcal{X}}P(x,y)dx$,也就不需要学习了。
所以用上面那种方式定义风险函数是不行的,那样的话监督学习变成了一个病态问题。

对于给定的训练数据集
$$T={(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)}$$

模型$f(X)$关于训练数据集的平均损失称为经验风险(empirical risk)或经验损失(empirical loss),记作$R_{emp}$:
$$R_{emp}(f) = \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))$$

期望风险$R_{exp}(f)$是模型关于联合分布的期望损失,经验风险$R_{emp}(f)$是模型关于训练样本集的平均损失。根据大数定律,当样本容量$N$趋于无穷时,经验风险$R_{emp}(f)$趋向于期望风险$R_{exp}(f)$

所以,一个很自然的想法是用经验风险估计期望风险。但是,由于现实中训练样本数目很有限,所以用经验风险估计期望风险常常不理想,要对经验风险进行一定的矫正。这就关系到监督学习的两个基本策略:经验风险最小化结构风险最小化

2.2 经验风险最小化与结构风险最小化

在假设空间、损失函数以及训练数据集确定的情况下,经验风险函数式就可以确定。经验风险最小化的策略认为,经验风险最小的模型就是最优的模型。根据这一策略,按照经验风险最小化求最佳模型就是求解最优化问题:
$$\min_{f\in\mathcal{F}}\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))$$

其中$\mathcal{F}$是假设空间。

当样本容量足够大时,经验风险最小化能保证有很好的学习效果,在现实中广泛采用。比如极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计。
但是当样本容量很小时,经验风险最小化学习效果就未必很好,会产生“过拟合(over-fitting)”现象。

结构风险最小化(structural risk minimization SRM)是为了防止过拟合而提出来的策略。结构风险最小化等价于正则化。结构风险在经验风险上加上表示模型复杂度的正则化项或罚项。在假设空间,损失函数以及训练样本集确定的情况下,结构风险的定义是
$$R_{srm}(f) = \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)$$

其中$J(f)$为模型的复杂度,是定义在假设空间$\mathcal{F}$上的泛函。模型$f$越复杂,复杂度$J(f)$就越大;反之,模型$f$越简单,复杂度$J(f)$就越小。也就是说复杂度表示了对复杂模型的惩罚。$\lambda\ge 0$是系数,用以权衡经验风险和模型的复杂度。结构风险小需要经验风险与模型复杂度同时小。结构风险小的模型往往对训练数据以及未知的测试数据都有较好的预测。
比如,贝叶斯估计中的最大后验概率估计(maximum posterior probability estimation,MAP)就是结构风险最小化的例子。当模型是条件概率分布、损失函数就是对数损失函数、模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概率估计。

结构风险最小化的策略认为结构风险最小的模型是最优的模型。所以求最优化模型时,就是求解最优化问题:

$$\min_{f\in\mathcal{F}}\frac{1}{N}L(y_i,f(x_i))+\lambda J(f)$$

这样,监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验或结构风险函数是最优化的目标函数。

3 算法

从上面可以看出,在确定寻找最优模型的策略后

机器学习的问题归结为最优化的问题。机器学习讨论的算法问题就成为了求解最优化模型解的算法。而且往往最优化模型没有的解析解,需要用数值计算的方法求解,我们要确保找到全局最优解,以及使求解的过程非常高效。

ML 03、机器学习的三要素的更多相关文章

  1. 4.机器学习——统计学习三要素与最大似然估计、最大后验概率估计及L1、L2正则化

    1.前言 之前我一直对于“最大似然估计”犯迷糊,今天在看了陶轻松.忆臻.nebulaf91等人的博客以及李航老师的<统计学习方法>后,豁然开朗,于是在此记下一些心得体会. “最大似然估计” ...

  2. 机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables)

    机器学习(三)--------多变量线性回归(Linear Regression with Multiple Variables) 同样是预测房价问题  如果有多个特征值 那么这种情况下  假设h表示 ...

  3. Web Service基础——规范及三要素

    1. Java中的Web Service规范 Java 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC).JAX-RS.JAXM&SAAJ(废弃). 1.1 JAX- ...

  4. AI Boot Camp 分享之 ML.NET 机器学习指南

    今天在中国七城联动,全球134场的AI BootCamp胜利落幕,广州由卢建晖老师组织,我参与分享了一个主题<ML.NET 机器学习指南和Azure Kinect .NET SDK概要>, ...

  5. 小白学习之pytorch框架(3)-模型训练三要素+torch.nn.Linear()

    模型训练的三要素:数据处理.损失函数.优化算法    数据处理(模块torch.utils.data) 从线性回归的的简洁实现-初始化模型参数(模块torch.nn.init)开始 from torc ...

  6. 【腾讯Bugly干货分享】彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/qOMO0LIdA47j3RjhbCWUEQ 作者:李 ...

  7. SEO基础问题:1. 关于网站的三要素你知道多少?

    800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style ...

  8. Http协议:彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法

    转载:http://mp.weixin.qq.com/s/uWPls0qrqJKHkHfNLmaenQ 导语 Http 缓存机制作为 web 性能优化的重要手段,对从事 Web 开发的小伙伴们来说是必 ...

  9. 移动web开发之屏幕三要素

    × 目录 [1]屏幕尺寸 [2]分辨率 [3]像素密度 前面的话 实际上,并没有人提过屏幕三要素这个词,仅是我关于移动web开发屏幕相关部分总结归纳的术语.屏幕三要素包括屏幕尺寸.屏幕分辨率和屏幕像素 ...

随机推荐

  1. MVC中使用Tuple完成匿名类数据存储

    使用MVC时,会遇到从Controller传递到View的数据只是某几个表中的几个字段的数据,有很多人都会想到能否把这几个字段组成一个匿名类传到View,但是这样好像行不通,所以有些时候我们会针对这几 ...

  2. [Socket网络编程]一个封锁操作被对 WSACancelBlockingCall 的调用中断。

    原文地址:http://www.cnblogs.com/xiwang/archive/2012/10/25/2740114.html记录在此,方便查阅. C#中在使用UDPClient循环监听端口,在 ...

  3. Oracle 11g客户端在Linux系统上的配置步骤详解

    Oracle 11g客户端在Linux系统上的配置步骤详解 2011-07-26 10:47 newhappy2008 CSDN博客 字号:T | T 本文我们主要介绍了Oracle 11g客户端在L ...

  4. C语言异常处理和连接数据库

    #include <stdio.h> #include <setjmp.h> jmp_buf j; void Exception(void); double diva(doub ...

  5. ubuntu下手把手教你搭建SVN服务器

    序,我的ubuntu服务器版本是14.04 ,x64(64位)操作系统,服务器在国内. 目录 一.安装SVN服务器 1 安装svn2 创建目录3 创建版本仓库4 配置5 启动SVN服务器6 验证svn ...

  6. 老项目的#iPhone6与iPhone6Plus适配#iOS8无法开启定位问题和#解决方案#

    本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4020359.html,转载请注明出处. iOS8的定位和推送的访问都发生了变化, 下面是iOS7和iOS8申 ...

  7. 机器学习公开课笔记(8):k-means聚类和PCA降维

    K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis ...

  8. LR调用DLL(加密测试等)

    利用LoadRunner实现加密测试,哇咔咔2015-05-12 10:17:06标签:编译器 加密 用户在进行LoadRunner打压时,有时候请求的参数是加密的,而加密的法则是通过调用一段DLL来 ...

  9. MFC 最大化 的时候控件 按比例变大

    在dlg类头文件中声明CPoint Old; 在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()声明一个映射:ON_WM_SIZE() 这样以后就可以在M_SIZE事件的时候 ...

  10. 他们在军训,我在搞 OI(四)

    (怎么自动变成两天一更了?) ——因为我菜啊 T_T Day 5 今天上午刷得爽啊!5 道 NOIP,前四题直接 1A,然而最后一题还是 WA 了一发才 A... 第一题是个简单的贪心,题意大概是 n ...