学习理论、模型选择、特征选择——斯坦福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

相关文章

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

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo