[PyTorch][chapter 3][李宏毅深度学习-偏差,方差,过拟合,欠拟合]

news2025/1/21 18:40:00

前言:

         这章的目的主要是通过诊断错误的来源,通过错误的来源去优化,挑选模型。

通过本章掌握 过拟合(overfitting)和欠拟合(underfitting)出现原因及解决方案.

 

目录:

    1    概述

    2    方差,偏差现象

    3   过拟合和欠拟合

    4  模型选择

    5  概率论回顾


一  概述

   

    如上图:

     红色空间:真实的数据和标签之间存在一个映射函数\hat{f}(标签)

     绿色空间: 

     通过训练集上的数据训练出最优的映射函数f^{*}  在数据集\begin{Bmatrix} x^1,& x^2 ,& ... &x^N \end{Bmatrix} 进行采样

      f^{*} 和\hat{f} 差异称为偏差 bias

      f^{*}之间分布称为方差variance

1.2 estimate 

        假设x的期望值为 u,方差为 \sigma^2

        我们通过采样N个样本采样来估计u,\sigma^2

        \begin{Bmatrix} x^1,& x^2 ,& ... &x^N \end{Bmatrix}

        样本均值:  \bar{x}=\frac{1}{N}\sum x^{n}

         样本均值方差: var(\bar{x})=\frac{\sigma^2}{N}

          通过增大样本数,可以降低样本均值方差.所以我们训练的时候

一般使用批量梯度下降.

     


二  方差 偏差现象

   

红色部分: 真实的映射空间

蓝色空间:在训练得到的模型空间上,通过采样得到不同的分布

有4种关系

2.1   低偏差,低方差

         训练得到的模型 f^{*} 和真实 \hat{f} 空间一致,此刻偏差方差都很小

         理想情况。

 2.2  低偏差,高方差

       ​​​​​​​

          模型f^{*} 比真实的\hat{f} 空间复杂,此刻偏差小,但是方差大。

         E(f^{*})=\bar{f}

  2.3  高偏差,第方差

         比如预测模型比较简单 f(x)=2 ,方差为0,

          真实的\hat{f}(x)=2x

        但是跟真实的偏差很大.

2.4  高偏差,高方差

            最糟糕的情况.


三  过拟合 和 欠拟合

     3.1 欠拟合

           当模型在训练集上表现的很糟糕,bias 偏差很大

           高偏差现象,要想办法降低偏差:

          增加模型的复杂度,或者重新设计模型,增加特征。

      3.2 过拟合

            模型在训练集的数据集上表现很好,但是在测试的时候

     很糟糕。

          这就是低偏差,高方差现象.要想办法降低方差

           解决方案:

          降低模型复杂度,正规化

          增加数据集


四  模型选择

      4.1  方案1 

     我们在train集上训练出来的模型和验证集上面得到Error 一般都是不一样的。

比如train 集上训练出多个model: model1,model2,model3

需要根据验证集上的表现综合考量,当选出最优模型可以,可以增加

数据集上的数据量再训练一次,降低模型方差,使得其在测试集上有更好的表现.

4.2  N-fold Cross Validation

 把数据集分为三份,通过不同的划分方式 依次训练出模型1,2,3

  根据Val Data 上的Error ,挑选出Error 平均值最小的。


五  概率论回顾

      1.1  数学期望 

            u=E(x)=\sum_{i=1}^{\infty } x_i p(x_i)

       1.2  方差

             用 var(x) or  D(x) 表示

              var(x)=E(x-u)^2

                             =E(x^2-2xu+u^2)

                            =E(x^2)-2 E(x)u+u^2

                           =E(x^2)-u^2

                  其中 

                   u=E(x)
 

      1.2  标准差,总体方差

            方差描述随机变量对于数学期望的偏离程度

              \sigma^2=\frac{1}{n}\sum_{i=1}^{n}(x_i-u)^2

     1.3 样本方差

              有偏估计   s^2=\frac{1}{n}\sum_{i}(x_i -\bar{x})^2

              无偏估计  s^2=\frac{1}{n-1}\sum_{i}(x_i -\bar{x})^2

               \bar{x}=\frac{1}{n}\sum_{i}^n x_i

       1.4  Var(\bar{x})

                var(\bar{x})=D(\frac{1}{n}\sum_{i}x_i)

                             =\frac{1}{n^2}D(\sum_{i}x_i)

                              =\frac{1}{n^2}(n \sigma^2)

                               =\frac{\sigma^2}{n}

      1.5  样本方差和标准差的联系

                 \sigma^2=\frac{n}{n-1}E(s^2)

      证明:

          所以

           \sigma^2=\frac{n}{n-1}E(s^2)

                     =\frac{n}{n-1}\frac{1}{n}\sum_{i}(x_i -\bar{x})^2

                      =\frac{1}{n-1}\sum (x_i-\bar{x})^2

参考:

(史上最全总结)总体方差,样本方差,标准差,抽样方差,标准误差,均方误差,协方差 ...........-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1268760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序获取手机号上限,怎么处理比较省钱

微信新规 微信2023年改了规则,原本免费的小程序获取手机号,现在如果要获取要1分钱一条。 有些小程序的用户非常恐怖, 比如一些工具类的, 群发类的。如果进入小程序就必须要获取小程序,就像是无底洞,让运营…

基于Java SSM框架实现高校二手交易平台系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现高校二手交易平台系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个高校二手交易平台,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将…

token认证机制,基于JWT的Token认证机制实现,安全性的问题

文章目录 token认证机制几种常用的认证机制HTTP Basic AuthOAuthCookie AuthToken AuthToken Auth的优点 基于JWT的Token认证机制实现JWT的组成认证过程登录请求认证 对Token认证的五点认识JWT的JAVA实现 基于JWT的Token认证的安全问题确保验证过程的安全性如何防范XSS Attacks…

网络篇---第七篇

系列文章目录 文章目录 系列文章目录前言一、什么是长连接和短连接?二、长连接和短连接的优缺点?三、说说长连接短连接的操作过程前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…

鸿蒙4.0开发笔记之ArkTS装饰器语法基础@Builder组件内自定义构建函数与@Styles自定义组件重用样式(十)

文章目录 一、Builder自定义构建函数1、什么是自定义构建函数2、组件内定义构建函数3、组件外定义构建函数4、Builder装饰器练习 二、Styles重用样式函数1、重用样式的作用2、组件内定义Styles3、组件外定义4、Styles装饰器练习5、注意要点 一、Builder自定义构建函数 1、什么…

hql面试题之上海某资深数仓开发工程师面试题-求不连续月份的月平均值

1.题目 A,B两组产品的月平均值,月平均值是当月的前三个月值的一个平均值,注意月份是不连续的,如果当月的前面的月份不存在,则为0。如A组2023-04的月平均值为2023年1月的数据加2023-02月的数据的平均值,因为没有其他月…

redis的过期策略以及定时器的实现

Redis是客户端服务器结构的程序,客户端与服务器通过网络通信,所以对于keys *这种的操作在大型企业中不太建议,生产环境下的key会非常多,Redis是但现成的服务器,执行keys*的时间非常长,就会导致redis服务器阻…

Linux系统-----进程管理(进程的创建与控制)

目录 前言 进程 1.基本概念 2.特征 3.Linux系统的进程 进程的创建 1. fork()函数 2. 多进程的创建与输出 进程的控制 1. exec()系列 2. wait() 函数 3. execl( )和fork( )联合使用 4. exit( ) 前言 前面我们学习了Linux系统的基本指令以及如…

软文推广中什么样的热点值得追?

只要媒体存在一日,那世界上就不会缺热点,追热点应该是每个运营er的必备技能,但是市面上的热点层出不穷,什么样的热点才值得追呢?接下来媒介盒子就和大家聊聊:判断热点值不值得追的三大要素。 一、 事件属性…

【机器学习 | 可视化】回归可视化方案

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

Redis 通用命令和数据类型

get和set get和set两个命令是最基本也是最常用的命令,主要用于操作字符串类型的数据。 1.SET 命令: SET 命令用于设置指定 key 的值。如果 key 已经持有其他值,SET 就覆写旧值,无视类型。具体的命令格式如下: SET key value例如…

在PyCharm中配置PyQt5环境

在PyCharm中配置PyQt5环境 文章目录 1.安装第三方库2.PyQt5设计器3.PyUIC转换工具 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ&#x1…

redis 内存机制探索篇

info memory 查看redis 内存使用情况出现的问题,公司在导入大量redis key 的时候,想要看一下redis 内存使用情况 ,发现used_memory_peak_perc 和 used_memory_dataset_perc 马上达到100%,这个时候很慌张,是不是当前red…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-12:内存管理)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。 注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

王道p18 04.从有序顺序表中删除其值在给定值s与1之间(要求s<1)的所有元素,若s或t不合理或顺序表为空,则显示出错信息并退出运行。(c语言代码实现)

视频讲解在这里哦(感谢支持!)👇 p18 第四题王道数据结构课后算法题(c语言代码实现)_哔哩哔哩_bilibili 本题代码如下 void deletest(struct sqlist* L, int s, int t) {int i 0;int j 0;if (s > t …

使用 graph_tool 绘制网络关系图

目标 使用python的graph_tool包,根据以下表格,生成网络关系图。 采样方法大类小类低空遥感解译地面裸土地,人工地面地面影像解译水生植物水葫芦,荷叶,苦草,黑藻,水华,水白菜RTK测量禾本植物狗牙根,华克拉莎,斑茅,苔草,芦苇,芦竹,杂茅RTK测量竹风箱树,马…

LESS的叶绿素荧光模拟实现——任意波段荧光模拟

目录 前言一、任意波段荧光模拟的实现二、需要注意的输入参数 前言 此专栏默认您对LESS (LargE-Scale remote sensing data and image Simulation framework) 模型和叶绿素荧光(Sun-Induced chlorophyll Fluorescence, SIF)有一定的了解。当然,您也可以在这里下载中…

NX二次开发UF_CURVE_create_joined_feature 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_create_joined_feature Defined in: uf_curve.h int UF_CURVE_create_joined_feature(UF_STRING_p_t uf_curve_string, int creation_method, tag_t * joined_curve_featur…

kafka C++实现生产者

文章目录 1 Kafka 生产者的逻辑2 Kafka 的C API2.1 RdKafka::Conf2.2 RdKafka::Message2.3 RdKafka::DeliveryReportCb2.4 RdKafka::Event2.5 RdKafka::EventCb2.6 RdKafka::PartitionerCb2.7 RdKafka::Topic2.8 RdKafka::Producer(核心) 3 Kafka 生产者…