学习理论、模型选择、特征选择——斯坦福CS229机器学习个人总结(四)

本文主要是介绍学习理论、模型选择、特征选择——斯坦福CS229机器学习个人总结(四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一份总结里的主要内容不是算法,是关于如何对偏差和方差进行权衡、如何选择模型、如何选择特征的内容,通过这些可以在实际中对问题进行更好地选择与修改模型。

1、学习理论(Learning theory)

1.1、偏差/方差(Bias/variance)

这里写图片描述
图一

对一个理想的模型来说,它不关心对训练集合的准确度,而是更关心对从未出现过的全新的测试集进行测试时的性能,即泛化能力(Generalization ability)。
有的模型用在用一个样本集训练过后,再用同一个样本集做预测,这样得到的模型的准确率非常高。但是,当用这个模型去预测新的数据的时候,效果却非常不理想。这就是泛化能力弱的表现,这样的模型非常容易过拟合。

图一最左边的图,用线性模型去拟合一个二次模型,无论该训练集中有多少样本,都会不可避免地出现较大的误差,这种情况被称为欠拟合,对应着高偏差;
图一最右边的图,用高次模型去拟合一个二次模型,虽然它能够让图中每个样本点都经过该曲线,但是对于新来的数据可能会强加上一些它们并不拥有的特性(一般是训练样本带来的),这会让模型非常的敏感,这种情况被称为过拟合,对应着高方差。

如何选择一个模型使得它在偏差与方差之间取得一个平衡,是学习理论要解决的问题。在下面“一致收敛的推论”一节中,会得到一个用来权衡偏差、方差的公式,接下来会从头开始推导这个公式。

1.2、准备知识

开始推导之前要先把一些准备知识提出来,这样从“一致收敛”中开始的推导会很顺利。

联合界引理(The union bound)

引理: A1,A2,,Ak 是k个事件,组合成k集,它们可能相互独立,也可能步相互独立,对此,我们有:

P(A1Ak)P(A1)++P(Ak)(1)

它要表达的意思是“K集事件之一发生的概率最多是K集发生的概率之和”。
比如当 P(A1Ak)=P(A1) ,它的概率最多是K集发生的概率之和。

霍夫丁不等式(Hoeffding inequality)

引理: Z1,Z2,Zm 为m个独立同分布事件,它们都服从伯努利分布,则有:

P(Zi=1)=ϕ,P(Zi=0)=1ϕ

并用 Zi 的平均值来得到一个 ϕ 的估计值 ϕ^
ϕ^=mi=1Zim(2)

接着对于任意的固定值 γ>0 ,存在:
P(ϕϕ^>γ)2exp(2γ2m)(3)

以上就是霍夫丁不等式,也称为切尔诺夫界(Chernoff bound)。
这个定理的意义在于,随着 m 的增长,右式的指数会持续下降,左式中对参数 ϕ^ 的估计会越来越接近真实值 ϕ (画个 ex 的图像就知道了)。

经验风险最小化(Empirical risk minimization)

下面以二分类问题进行说明。
给定一个训练集 S{(x(i),y(i));i=1,2,,m} (x(i),y(i)) 是服从概率分布 D 的独立同分布变量,那么对于一个假设h,我们将假设 h 训练误差(Training error)——也称为经验风险(Empirical risk)或者是经验误差(Empirical error)——定义为:

ε^=1mi=1mI{h(x(i))y(i)}(4)

它表示:在训练样本中,用假设 h 进行分类,分类失败数占总数的百分比。注意它在表示上 有带帽符号

相对应的有一般风险,也称为一般误差(Generalization error)

ε=PD(h(x)y)(5)

PD 表示 (x,y) 服从 D 分布。
式(5)表示:实际分类中,使用了假设 h 进行分类,样本不服从 D 分布的概率。它在表示上 无带帽符号

在我的理解中,训练误差是训练中产生的误差,一般误差是实际预测、分类中产生的误差。接下来的推导中它们会一直出现,可能会搞混,要一直理解到它们的意思才行。

假设模型集合为:

H={hθ:hθ(x)=I{θTx0},θRn+1}(6)

集合 H 中,每一个成员都是一个假设函数 h ,且它们都是线性分类器。

由式(4)经验风险的形式化定义,有经验风险最小化(简称ERM)为:

θ=argminθε^(hθ)(7)

它表示:选择一个参数 θ ,它所对应的假设函数 h ,使得经验风险最小。

还有另外一种ERM的等价表示方法,其ERM的定义为:

h^=argminhHε^(h)(8)

它表示:选择一个假设函数 h ,使得经验风险最小。

1.3、一致收敛(Uniform convergence)

此处的一致收敛有两个前提。一是由第二种ERM推导,二是式(6)中假设函数的数量是有限的情况下的。
一致收敛的意义是:训练误差与一般误差的差值大于某阈值的概率存在着上界。还有一点扩展就是这个上界会因样本数量的上升而急速下降。由一致收敛我们可以推导出偏差/方差权衡的方式。

首先,假设类的集合H={h1,h2,,hk<

这篇关于学习理论、模型选择、特征选择——斯坦福CS229机器学习个人总结(四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/546021

相关文章

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx