当前位置: 首页 > news >正文

过拟合与正则化

Location Beijing

过拟合

对于一个模型 A A A,解向量空间为 θ \theta θ,误差函数用式1表示
J ( θ ) = J a c c = [ y θ ( x ) − y ] 2 (1) J(\theta)=J_{acc}=[y_\theta(x)-y]^2\tag{1} J(θ)=Jacc=[yθ(x)y]2(1)
首先我们考虑用模型 A A A拟合下图Fig. 1这些点(数据集)
在这里插入图片描述

Fig. 1 数据集

首先用一个模型去拟合这个曲线 y = a + b x + c x 2 + d x 3 y=a+bx+cx^2+dx^3 y=a+bx+cx2+dx3,可得如下图Fig. 2
在这里插入图片描述

Fig. 2 100%准确

简直完美,因为误差 J ( θ ) J(\theta) J(θ)=0。然而当我预测 x = 4 x=4 x=4的函数值时,发现预测值比真实值稍微大一丢丢,虽然感觉不对劲但是还可以接受;但当我预测 x = 20 x=20 x=20的函数值时,发现预测值大的离谱。
具体原因可以从上图Fig. 2看出,模型认为数据集中的点所有 x x x及其对应的 y y y都是百分百对应的,过分相信了数据集的准确性,忽略了数据集的误差。实际上可以看出,比如上图Fig. 2数据集中的 x = 2 x=2 x=2的点对应的函数值大概是 y = 2 y=2 y=2,然而数据集却把这一项标注成了 y = 1 y=1 y=1。模型A太牛逼直接把带误差的数据集学通透了。
这里也可以看出为什么说过拟合的表现是 J ( θ ) J(\theta) J(θ)很小,但是预测新数据的能力很差,因为过拟合的模型太复杂,另外数据集标注太烂

正则化

接下来看用正则化解决这个问题。
具体方法式在 J ( θ ) J(\theta) J(θ)后面加一个正则化项,对于加入L1正则化的误差函数如公式2,加入L2正则化项的误差函数如公式3
J L 1 ( θ ) = J a c c + L 1 = [ y θ ( x ) − y ] 2 + [ ∣ θ 1 ∣ + ∣ θ 2 ∣ . . ] (2) J_{L1}(\theta)=J_{acc}+L_1=[y_\theta(x)-y]^2+[|\theta_1|+|\theta_2|..]\tag{2} JL1(θ)=Jacc+L1=[yθ(x)y]2+[θ1+θ2∣..](2)
J L 2 ( θ ) = J a c c + L 2 = [ y θ ( x ) − y ] 2 + [ θ 1 2 + θ 2 2 + . . ] (3) J_{L2}(\theta)=J_{acc}+L_2=[y_\theta(x)-y]^2+[\theta_1^2+\theta_2^2+..]\tag{3} JL2(θ)=Jacc+L2=[yθ(x)y]2+[θ12+θ22+..](3)
从公式2、3可以看出所谓正则化就是想以“牺牲”一些准确率的代价,来避免模型的复杂度。这里“牺牲”加引号的原因可以从第一章看出,这点损失的“准确率”事实上是象征着数据集的不准确性。让模型更有泛化能力。
至于为什么说L1正则化更容易得到稀疏的向量解空间,可以通过图Fig. 3看出,假设 θ \theta θ是一个二维向量,包含两个元素{ θ 1 \theta_1 θ1, θ 2 \theta_2 θ2}。(一个模型肯定不止两个参数,这里举两个参数的例子是比较好画)
在这里插入图片描述

Fig. 3 解空间

图Fig. 3中每个蓝色椭圆上的点表示不同的 θ \theta θ使 J ( θ ) J(\theta) J(θ)(注意不是 J a c c ( θ ) J_{acc}(\theta) Jacc(θ))相同的点。如点 K K K, L L L, M M M, N N N, O 2 O_2 O2是解空间 θ \theta θ使含L2正则化项的误差函数 J L 2 ( θ ) J_{L2}(\theta) JL2(θ)相同的点,这一批点中显然点 O 2 O_2 O2的L2正则化项最小;再比如点 K K K, L L L, M M M, N N N, O 1 O_1 O1是解空间 θ \theta θ使含L1正则化项的误差函数 J L 1 ( θ ) J_{L1}(\theta) JL1(θ)相同的点,这一批点中显然点 O 1 O_1 O1的L1正则化项最小。(从公式2、3可以看出,相同的 J ( θ ) J(\theta) J(θ),正则化项越小, J a c c ( θ ) J_{acc}(\theta) Jacc(θ)越大,所以尽量保留正则化较小的 θ \theta θ解)
从这里可以看出L1正则化更容易使正则化项最小的同时, J a c c ( θ ) J_{acc}(\theta) Jacc(θ)最大,而且还带来了一个效果,由于L1正则化尖尖的探出的部分,更容易使 θ \theta θ中的某一项为0,这就造成了L1正则化解空间的稀疏性。如果还想更稳妥,把这个正则化项改成非凸函数,特定情况下在成稀疏性的概率更大。
reference
[1] 莫烦Python 2017 什么是 L1 L2 正规化 正则化 Regularization (深度学习 deep learning)

相关文章:

过拟合与正则化

Location Beijing 过拟合 对于一个模型 A A A,解向量空间为 θ \theta θ,误差函数用式1表示 J ( θ ) J a c c [ y θ ( x ) − y ] 2 (1) J(\theta)J_{acc}[y_\theta(x)-y]^2\tag{1} J(θ)Jacc​[yθ​(x)−y]2(1) 首先我们考虑用模型 A A A拟合下…...

VMware挂载NAS存储异常处理

问题概述 由于非法关机或恢复,NFS存储可能会出现以下问题: 数据存储处于挂起状态或无法正常识别。虚拟机的配置文件或虚拟磁盘仍然注册在异常数据存储上。系统误认为有虚拟机在使用该数据存储。 问题对策 下面是详细的排查步骤和解决对策&#xff1a…...

Redis 7.x 系列【4】命令手册

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 说明2. 命令手册2.1 Generic2.2 数据类型2.2.1 String2.2.2 Hash2.2.3 List2.2.4 S…...

走进Elasticsearch

什么是ES 是一个分布式、RESTful风格的搜索和数据分析引擎 中文参考文档: 《Elasticsearch中文文档》 | Elasticsearch 技术论坛 elasticSearch官网: Functions and Operators | Elasticsearch Guide [7.11] | Elastic查询方式 Kibana查询(原…...

QT TCP服务器和客户端示例程序

下面是一个简单的 Qt TCP 服务器和客户端示例&#xff0c;演示了如何使用 vSetDriver、vSetListener 和 vTcpServerStart 函数。假设 vSetDriver 和 vSetListener 是你定义的自定义函数。 TCP 服务器部分 tcpserver.h #ifndef TCPSERVER_H #define TCPSERVER_H#include <QT…...

Xlua三方库Android编译出错解决办法

Xlua三方库Android编译出错解决办法 最近听老师的热更教程&#xff0c;讲到xlua编译android平台会报错&#xff0c;也是看了老师的博客&#xff0c;按照方法去解决&#xff0c;然而问题并没有解决。应该是因为代码更新或者版本不一样&#xff0c;在此简单记录一下解决过程。 参…...

美国犹他州立大学《Nature Geoscience》(IF=18)!揭示草本植物对土壤有机碳的重要贡献!

随着全球变暖的影响越来越显著&#xff0c;碳固定成为了一个备受关注的话题。在这个背景下&#xff0c;热带草原被认为是一个潜在的碳固定区域。然而&#xff0c;目前的研究主要关注于在热带草原中种植树木&#xff0c;以期望增加土壤有机碳含量。但是&#xff0c;热带草原中的…...

高考专业抉择计算机专业热度不减,兴趣、实力与挑战并存。

作为一名即将步入大学校门的高考生&#xff0c;我对于计算机相关专业是否仍是热门选择感到困惑。在过去几年里&#xff0c;计算机科学与技术、人工智能、网络安全、软件工程等专业一直备受追捧&#xff0c;吸引了无数学生。然而&#xff0c;随着市场竞争加剧和市场饱和度提高&a…...

Flask-RQ

Flask-RQ库教程 Flask-RQ 是一个用于在 Flask 应用中集成 RQ&#xff08;Redis Queue&#xff09;的扩展。RQ 是一个简单的 Python 库&#xff0c;用于将任务排入 Redis 队列并异步执行这些任务。这对于处理长时间运行的任务&#xff08;如发送电子邮件、生成报告等&#xff0…...

LeetCode 58. 最后一个单词的长度

LeetCode 58. 最后一个单词的长度 你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串 示例 1&#xff1a; 输入&#xff1a;s “Hello World”…...

3阶段提交协议(3pc)

3阶段提交协议&#xff08;3pc&#xff09; 1 简介 三阶段提交协议是一个强一致、中心化的原子提交协议。解决了分布式事务、副本容错等分布式问题。其核心思想是将2PC的二阶段提交协议的“准备阶段”一分为二&#xff0c;形成了由CanCommit、PreCommit、DoCommit三个阶段组成…...

802.11中的各种帧

在无线网络中&#xff0c;802.11协议定义了三种类型的帧&#xff1a;管理帧&#xff08;Management Frames&#xff09;、控制帧&#xff08;Control Frames&#xff09;和数据帧&#xff08;Data Frames&#xff09;。每种类型的帧都有其特定的功能&#xff0c;帮助维护和管理…...

SAP PP学习笔记21 - 计划策略的Customize:策略组 > 策略 > 需求类型 > 需求类(消费区分,计划区分)

上面几章讲了MTS&#xff0c;MTO&#xff0c;ATO的计划策略。 本章来讲一下它的后台 Customize。 1&#xff0c;Customizeing&#xff1a;Planned Indep.Reqmts Management 这是配置计划策略的整个过程&#xff1a; - Requirements Type / Class 需求类型 / 需求类 - Plann…...

axure9设置组件自适应浏览器大小

问题&#xff1a;预览时不展示下方的滚动条 方法一&#xff1a;转化为动态面板 1.在页面上创建一个矩形 2.右键-转化为动态面板 3.双击进入动态面板设置 4.设置动态面板矩形的颜色 5.删除原来的矩形 6.关闭动态面板&#xff0c;点击预览 7.此时可以发现底部没有滚动条了 方法…...

示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选

一、目的&#xff1a;在绑定TreeView的功能中经常会遇到需要在树节点前增加勾选CheckBox框&#xff0c;勾选本节点的同时也要同步显示父节点和子节点状态 二、实现 三、环境 VS2022 四、示例 定义如下节点类 public partial class TreeNodeBase<T> : SelectBindable<…...

C++ explicit关键字的用法

在C中&#xff0c;explicit关键字用于构造函数和转换运算符&#xff0c;以防止隐式转换。它可以帮助我们避免意外的类型转换&#xff0c;从而提高代码的安全性和可读性。explicit关键字只能用于单参数构造函数和转换运算符。 使用explicit的场景 单参数构造函数&#xff1a; 当…...

51.Python-web框架-Django开始第一个应用的增删改查

目录 1.概述 2.创建应用 创建app01 在settings.py里引用app01 3.定义模型 在app01\models.py里创建模型 数据库迁移 4.创建视图 引用头 部门列表视图 部门添加视图 部门编辑视图 部门删除视图 5.创建Template 在app01下创建目录templates 部门列表模板depart.ht…...

Redis之线程IO模型

引言 Redis是个单线程程序&#xff01;这点必须铭记。除了Redis之外&#xff0c;Node.js也是单线程&#xff0c;Nginx也是单线程&#xff0c;但是他们都是服务器高性能的典范。 Redis单线程为什么能够这么快&#xff01; 因为他所有的数据都在内存中&#xff0c;所有的运算都…...

针对微电网中可时移,柔性,基础负荷的电价响应模型---代码解析

前言&#xff1a; 在上两篇帖子中&#xff0c;讲解了我对于粒子群算法的理解&#xff0c;站在巨人的肩膀上去回望&#xff1a;科研前辈们确实非常牛逼&#xff0c;所以它才成为了非常经典的算法。这篇帖子主要是想分享一下&#xff0c;对于微电网、电力系统的论文中&#xff0c…...

git使用http协议时免密pull和push方法

1、创建文件 在项目目录下创建.git-credentials文件&#xff0c;内容如下&#xff0c;填入自己的用户名和密码即可&#xff0c;如果是gitlab&#xff0c;把地址换成自己的gitlab的地址即可。 https://{用户名}:{密码}github.com2、终端执行 git config --global credential.…...

编译期间生成代码(Lombok原理)

通过在编译期间&#xff0c;修改Java的AST(Abstract Syntax Tree)树&#xff0c;可以往类中&#xff0c;添加/修改&#xff08;覆盖&#xff09;方法、属性等。 现在比较常见的三方依赖例子有&#xff1a;Lobbok的Data可以生成get、set方法&#xff0c;Sl4j2可以生成静态常量l…...

第2讲:pixi.js 绘制HelloWorld

基于第0讲和第1讲&#xff0c;我们增添了vite.config.ts文件。并配置了其他的http端口。 此时&#xff0c;我们删除掉没用的东西。 删除 conter.ts、typescript.svg 在main.ts中改成如下内容&#xff1a; import {Application, Text} from pixi.js import ./style.css// 指明…...

golang HTTP2 https测试POST变GET问题小记

概述 因为工作需要协助修改某个golang程序&#xff0c;添加双向认证。但是在调整的过程遇到一个HTTP POST请求变成GET诡异的问题&#xff0c;最后各种搜索&#xff0c;总算解决&#xff0c;博文记录&#xff0c;用于备忘。 代码 服务端 因工作内容&#xff0c;代码有删减&a…...

Linux下的lvm镜像与快照

lvm镜像(mirror) (1)划分三个PV&#xff0c;其中2个PV大小要一模一样 Disk /dev/sdb: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units cylinders of 16065 * 512 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/…...

嵌入式linux系统中SPI子系统原理分析01

大家好,今天给大家分享一下,如何使用linux系统中的SPI通信协议,实现主从设备之间的信息传递。 SPI是一种常见的设备通用通信协议。它是一个独特优势就是可以无中断发送数据,可以连续发送或接收任意数量的位。而在I2C和UART中,数据以数据包的形式发送,有限定位数。 …...

Part 4.2 背包动态规划

->背包模型模板(0/1,分组&#xff0c;完全&#xff0c;多重)<- [NOIP2018 提高组] 货币系统 题目背景 NOIP2018 提高组 D1T2 题目描述 在网友的国度中共有 n n n 种不同面额的货币&#xff0c;第 i i i 种货币的面额为 a [ i ] a[i] a[i]&#xff0c;你可以假设每…...

Elasticsearch-使用Logstash同步Mysql

1.安装logstash es服务器版本必须和logstash版本一致 7.9.2 在/usr/local/src/下新建logstash文件夹&#xff0c;解压 下载logstash后查看是否安装成功&#xff0c;在logstash的bin目录下输入指令&#xff1a; ./logstash -e input { stdin { } } output { stdout {} }2.my…...

6.17作业

升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确&#xff0c;则实现登录界面关闭&#xff0c;另一个应用界面显示。 //发送端头文件…...

算法思想个人总结(结合生活理解)

主要思想: 结合生活和游戏理解思想,先知道什么场景用什么算法,然后再理解就能记住 遇到问题可以考虑选择使用,这样才是学活了 https://www.yuque.com/yuqueyonghu5znoyv/ifb5ga/nfcvg3ft9ryuqeem?singleDoc# 《元启发式算法》...

openh264 帧间预测编码过程源码分析

openh264 OpenH264 是一个开源的 H.264 编码和解码器&#xff0c;由思科系统开发并维护。它专为实时应用程序如 WebRTC 设计&#xff0c;提供了从基础到高级特性的广泛支持。OpenH264 的编码器支持从 Constrained Baseline Profile 到 5.2 级别&#xff0c;允许任意分辨率的编…...

哪个网站能看到学做标书/西安百度竞价托管公司

我们都知道&#xff0c;当您开始使用 Mac 时&#xff0c;一切都会完美运行且运行顺畅。您可以轻松找到所需的一切&#xff0c;而且您的 Mac 速度快如闪电。 但是&#xff0c;一旦您使用它一段时间&#xff0c;它就会变慢&#xff0c;变得杂乱无章&#xff0c;并且使用它不再有…...

沈阳网络建网站/西安seo教程

对于海量数据的插入和更新,ADO.NET确实不如JDBC做到好,JDBC有统一的模型来进行批操作.使用起来非常方便: PreparedStatement ps conn.prepareStatement("insert or update arg1,args2...."); 然后你就可以 for(int i0;i<1000000000000000;i){ ps.setXXX(realArg…...

大型的网站后台用什么做/网站排名seo软件

额&#xff0c;该死的博客园&#xff0c;没有像QQ邮箱一样的自动保存功能。。。。 说到老张让我看篇甲基化的文章。。。。所以又得拾起上学期学的web of science的使用了 首先让我们快速了解老张最近发的文献&#xff0c;了解下老张是做什么的&#xff08;好写最后的文献综述&a…...

本地网站环境搭建/怎么在网上推销产品

文章目录GitHub官网官网Demo指引zuul概念zuul功能授权和安全认证监控统计动态路由压测Load shadding [降低负载]Static Response handling [静态响应处理]Multiregion Resiliency1.zuul是一个提供动态路由&#xff0c;监控&#xff0c;弹性&#xff0c;安全等网关服务;GitHub官…...

网站建设付款分期付款协议/电脑培训班一般多少钱

后缀为axd 的文件 - 2012-03-28 21:54其实扩展名为ashx与为axd基本上是一样的&#xff0c;都是用于写web handler&#xff0c;可以通过它来调用IHttpHandler类&#xff0c;它免去了普通.aspx页面的控件解析以及页面处理的过程。 唯一不同的地方是&#xff1a;axd扩展名的必须要…...

个人域名备案网站名称/搜索引擎优化的基本原理

第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第9章 第10章 第11章 第12章 第13章 第14章 第15章 第16章 第17章...