谈谈学习模型的评估1

1统计角度窥视模型概念

什么是模型?

李航《统计学习方法》一书:统计学习方法是由模型、策略和算法构成的,即统计学习方法的三要素构成,简化:方法=模型+策略+算法

维基百科对数学模型描述:数学模型是对所描述的对象用数学语言所作出的描述和处理。

百度百科对策略描述:策略是学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的,按照学习中使用推理的多少,机器学习所采用的策略大体上可分为4种——机械学习、通过传授学习、类比学习和通过事例学习。学习中所用的推理越多,系统的能力越强。

单纯定义看,不免让人一头雾水,究竟何为模型?还是没有明确的概念,下文将以数学描述+形式化阐述这个问题。首先解决了什么是模型,咱们才能进行模型好坏指标的评价,进而选择适合的学习模型。

模型:所有学习的条件概率分布或者决策函数。

模型的假设空间:包含所有有可能的条件概率分布或者决策函数。

实例解析

假设决策函数是输入变量的线性函数,模型的假设空间就是这些线性函数构成的函数集合,假设空间中的模型一般为无穷多个。【现实应用:假设解决序列词性标注的的函数模型M,模型的假设空间的由不同参数构成的M模型。(不是很严谨,辅助理解。)】

形式化表示:假设空间F表示,假设空间可以为决策函数的集合:

x,y在输入空间X和输出空间Y上的变量,这时F通常由一个参数向量决定的函数族:

参数向量θ取值于n维欧氏空间

,称为参数空间。

假设空间也可以定义为条件概率集合:

其中x和y是定义在输入空间X和Y上的随机变量,这时F通常是一个参数向量的决定的条件概率分布族:

参数向量θ取值于n维欧氏空间

,称为参数空间。

注意:由决策函数表示的模型为非概率模型(如上述F函数),由条件概率表示的模型为概率模型(如上述y=f(x)函数)。

2 模型评估和模型选择

训练误差和测试误差

好的模型的特征:对已知数据和未知数据都有很好的预测能力。

学习方法评估标准:基于损失函数的模型的训练误差和测试误差为指标。

假设学习到的模型

,训练误差是模型

关于训练数据集的平均损失:

其中N是训练样本容量。

测试误差是模型 关于测试数据集的平均损失:

其中N’是训练样本容量。

实例

若损失函数是0-1损失时候(0-1损失参考具体相关知识),测试误差就变成了常见的测试数据集上的误差率。

,这里的I是指示函数,即

时为1,否则为0。

相应的,常见的测试数据集上的准确率是:

,这里的I是指示函数,即

时为1,否则为0。

显然:

实例解析

根据误差率和准确率可知,测试误差反映了学习方法对未知情况的测试数据集的预测能力,测试误差小的方法具有很好的预测能力,更有效的预测。通常将学习方法对未知数据的预测能力称为泛化能力。

由此我们可以应用到现实想NLP模型中,诸如分类模型,当测试误差更小的时候,分类更加准确。聚类模型中,当测试误差较小时候,聚类效果更好等等。那么,在追去测试误差较小时候,就要在训练上下功夫。一味苛求训练效果好,训练误差小,以至于所选择的模型复杂度非常高,这样的低训练误差,能换回好的预测?其实这就容易出现过拟合,如何避免过拟合选择更好的模型?下节继续。

3 过拟合与模型选择

何时进行模型选择?

当假设空间含有不同的复杂度(如,不同的参数个数)的模型时,就要面临模型选择问题,以期我们所表达的模型与真实的模型(参数个数)相同或相近。

过拟合:一味追求提高对训练数据的预测能力,所选择模型的复杂度往往比真实模型高,此现象就是过拟合。

过拟合指学习时选择的模型包含的参数过多,以至于出现模型对已经数据预测的好,但是对未知数据预测能力较差。模型选择准则是避免过拟合并且去提高模型预测的能力。

实例

给出一个训练数据集

和一个M次多项式的模型

完成下面10个数据点的拟合。

是输入序列集x的观察值

是输出序列集y的观察值

M 次项式是解决问题的模型

W为参数

解决如上问题按照经验风险最小化策略求解参数即可,即数学表达:

损失函数为平方损失,1/2是便于计算。然后将模型公式和训练数据代入风险最小化公式:

,最后采用最小二乘法(过程略)求解。

实例分析

如上图给出M=0,1,3,9的多项式函数的拟合情况,当M=0时,多项式为一个常数,数据拟合很差,当M=1时,多项式曲线为一条直线,拟合依旧差;当M=9时,多项式通过每一个点,训练误差0,从训练数据拟合角度分析,效果最好,但是训练数据本身很多噪音,对未来数据预测能力差,达不到预期的效果。这就是过拟合,虽然训练数据好但是未知数据差。当M=3时,多项式曲线对训练数据拟合效果比较好,对未知数据拟合也很好,其模型也简单,可以选择。总结:模型选择时,不仅仅考虑对已知数据的预测能力,还有考虑对未知数据的预测能力。

训练误差和测试误差与模型复杂度的关系如下图:

可知,当模型复杂度增大时候,训练误差会逐渐减少趋近于0,而测试误差会先减小到最小值后又增大。当选择模型复杂度过大时,过拟合问题就会出现。

补充知识

NLP序列句子识别标注实例更好理解本节。(以下实例便于理解假设的,不是特别严谨)

训练数据集T={(南 B),(海 I),(是 I), (中 I),(国 I),(领 I), (土 I),(。 O) }未知数据P={(不 B), (容 I),(争I),( 议 I),(。 O)}采用BIO标注,B代表句子开始,I代表中间连续词,O代表句子。结束。假设采用模型M识别, M次多项式的模型

完成下面句子识别。

结果分析:

M=0时候,模型一个常数效果很差,识别如下:

M=1时候,模型一条直线效果很差,识别如下:

M=3时候,模型曲线拟合基本合理,且未知数据预测较好,识别如下:

M=9时候,模型一条直线效果很差,识别如下:

训练数据集:

实验可知:左侧为训练模型的数据,右侧为测试模型的数据。当M=0时,训练误差和测试误差都很大;当M=1时,训练误差和测试误差较大;当M=3时,训练误差比M=9的训练误差大,总体训练误差还好,但是,预测误差却小于M=9时的预测误差。综合比较,选择M=3的模型效果会更好。综上,旨在让大家更好理解概念理论知识。

4 参考文献

  1. 数据挖掘概念与技术(364--386) 韩家炜
  2. 数据挖掘:R语言实战(274--292) 黄文、王正林
  3. 统计自然语言处理基础 (166—169) 宛春法等译
  4. 统计学习方法(10---13) 李航

文末:文章来源机器学习和自然语言处理(ID:datathinks),作者:机器学习和自然语言处理。本公众号旨在技术传播与分享,未经授权不能转载发布。

原文发布于微信公众号 - 机器学习和自然语言处理(datathinks)

原文发表时间:2017-09-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李智的专栏

PRML笔记

其中,除以NN让我们能够以相同的基础对比不同大小的数据集,平方根确保了ERMSE_{RMS}与目标变量tt使用相同的规模和单位进行度量。

892
来自专栏SIGAI学习与实践平台

机器学习算法地图

很多同学在学机器学习和深度学习的时候都有一个感受:所学的知识零散、不系统,缺乏整体感,这是普遍存在的一个问题。在这里,SIGAI对常用的机器学习和深度学习算法进...

3563
来自专栏机器之心

学界 | FAIR提出用聚类方法结合卷积网络,实现无监督端到端图像分类

预训练的卷积神经网络,或称卷积网络,已经成为大多数计算机视觉应用的基础构建模块 [1,2,3,4]。它们能提取极好的通用特征,用来提高在有限数据上学习的模型的泛...

1461
来自专栏机器学习入门

PRML系列:1.3 Model Selection

PRML系列:1.3 Model Selection 模型选择 模型选择一般采用交叉验证,本节提到了S-fold cross-validation,原理如下,把...

2138
来自专栏数据科学与人工智能

【机器学习】参数和非参数机器学习算法

什么是参数机器学习算法并且它与非参数机器学习算法有什么不同? 本文中你将了解到参数和非参数机器学习算法的区别。 让我们开始吧。 ? 学习函数 机器学习可以总结...

3495
来自专栏IT技术精选文摘

深入浅出谈人脸识别技术

在深度学习出现后,人脸识别技术才真正有了可用性。这是因为之前的机器学习技术中,难以从图片中取出合适的特征值。轮廓?颜色?眼睛?如此多的面孔,且随着年纪、光线、拍...

4356
来自专栏AI研习社

新手必看的十种机器学习算法

AI 研习社按:在神经网络的成功的带动下,越来越多的研究人员和开发人员都开始重新审视机器学习,开始尝试用某些机器学习方法自动解决可以轻松采集数据的问题。然而,在...

37110
来自专栏专知

【论文分享】中科院自动化所多媒体计算与图形学团队NIPS 2017论文提出平均Top-K损失函数,专注于解决复杂样本

【导读】损失函数的设计一直是机器学习和模式识别中的核心问题。目前中国科学院自动化研究所和美国纽约州立大学奥尔巴尼分校合作提出了一种新的聚合损失函数,即平均 ? ...

3535
来自专栏贾志刚-OpenCV学堂

卷积神经网络(CNN)概念解释

卷积神经网络(CNN)概念解释 传统对象识别-模式识别 传统的模式识别神经网络(NN)算法基于梯度下降,基于输入的大量样本特征数据学习有能力识别与分类不同的目...

3696
来自专栏SIGAI学习与实践平台

机器学习中的目标函数总结

几乎所有的机器学习算法最后都归结为求解最优化问题,以达到我们想让算法达到的目标。为了完成某一目标,需要构造出一个“目标函数”来,然后让该函数取极大值或极小值,从...

6161

扫码关注云+社区