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

过拟合、归一化、正则化、鞍点

过拟合

过拟合的本质原因往往是因为模型具备方差很大的权重参数

定义一个有4个特征的输入X,特征向量为[x_1,x_2,x_3,x_4],定义一个模型,其只有4个参数,表示为[w_1,w_2,w_3,w_4]。当模型过拟合时,这四个权重参数的方差会很大,可以假设为[w_1=0,w_2=1,w_3=12,w_4=2]。当X经过这个模型后,产生输出x_1*0+x_2*1+x_3*12+x_4*2,由输出可知,这个模型过分地强调了特征x_3的影响,从而导致模型的输出结果由x_3主导,因为其对应的权重参数w_3很大。这样会使得模型的容错很小,即泛化很差,只要特征x_3稍有波动,模型的输出结果就会产生很大地变化。这就是过拟合的本质现象。

归一化

归一化是从特征本身出发,解决过拟合现象

同样考虑输入X=[x_1=1,x_2=3,x_3=16,x_4=1],模型参数W=[w_1,w_2,w_3,w_4]。在进行梯度下降时,模型输出Y对模型参数的梯度分别为,\frac{\partial Y}{\partial w_1}=x_1=1,\frac{\partial Y}{\partial w_2}=x_2=3,\frac{\partial Y}{\partial w_3}=x_3=16,\frac{\partial Y}{\partial w_4}=x_4=1,很容易发现,x_3对应的权重参数w_3的梯度最大,在梯度更新时,输出Y偏向于沿w_3方向更新,从而导致模型收敛后,w_3与其它参数的差异较大,进而发生过拟合。同时整个梯度方向大幅度偏向w_3方向,使得梯度下降的路线成“之”字形,到达收敛点的迭代次数会变多。

这种现象是由于X的特征方差过大,特征之间的分布差异过大。为了解决这种现象,就需要将X的特征分布转化成方差为1,均值为0的分布,减小特征分布差异。

当被归一化处理后的X作为模型输入时,每个权重参数的梯度相差不大,使得每个权重参数的更新步幅基本一致,当模型收敛后,权重参数的方差就会很小

正则化

为了防止模型权重参数的方差过大,从而引起过拟合。正则化是从权重参数出发,解决过拟合现象。

不管模型有多复杂,输入的每个特征值在模型中都会与特定的权重参数相乘或相加,这就使得每个权重参数在前向传播或反向传播时,只与输入的部分特征值有关。如果权重参数分布差异大,就会导致对输入的每个特征产生不平衡的注意力倾斜,最终的输出结果就会由权值较大的参数主导,那些权值较小的参数就将变得毫无作用,因为有无它们都对输出结果产生不了影响。正则化就是要消除这种差异性,使得所有权重参数都同样重要(也会存在差异,只是这种差异被转化到了一个很小的量纲中了,被削弱了),且尽可能小

常用的L2正则化会使得每个权重参数趋近于0,使得输入的所有特征值都显得同样重要,这时如果输入中存在异常的特征值(值很大),由于其对应的权重参数都很小,接近于0,它也不会对模型的输出造成太大的影响。

另外,L2正则化能够减小数据分布不同带来的影响。假设存在数据集A和B,A和B的分布不同。当模型在A数据集上训练好后,模型的权重参数将匹配A的特征分布。如果不用正则化进行训练,模型在B数据集上的表现会很差,这是因为权重参数的分布已经匹配上了A的特征分布,如果模型接受一个与A分布差异太大的B,就会使得模型输出结果产生很大的偏差。如果使用了L2正则化,每个权重参数都很小,就会使得这种偏差不那么大,从而提高泛化能力

鞍点

鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。

模型越复杂(参数量越多),鞍点就越多,训练时收敛在鞍点的可能性就越大。因为鞍点既不是局部最优点,更不是全局最优点,所以越复杂的模型达到最优点的速度越慢,因为它们很大可能被困于鞍点。

相关文章:

过拟合、归一化、正则化、鞍点

过拟合 过拟合的本质原因往往是因为模型具备方差很大的权重参数。 定义一个有4个特征的输入,特征向量为,定义一个模型,其只有4个参数,表示为。当模型过拟合时,这四个权重参数的方差会很大,可以假设为。当经过这个模型后…...

【python画图】:从入门到精通绘制完美柱状图

目录 Python数据可视化:从入门到精通绘制完美柱状图一、基础篇:快速绘制柱状图1.1 使用Matplotlib基础绘制1.2 使用Pandas快速绘图 二、进阶篇:专业级柱状图定制2.1 多系列柱状图2.2 堆叠柱状图2.3 水平柱状图 三、专业参数速查表Matplotlib …...

基础知识:离线安装docker、docker compose

(1)离线安装docker 确认版本:Ubuntu 18.04 LTS - bionic 确认架构:X86_64 lsb_release -a uname -a 官方指南:https://docs.docker.com/engine/install/ 选择Ubuntu,发现页面上最低是Ubuntu20.04, 不要紧...

畅游Diffusion数字人(27):解读字节跳动提出主题定制视频生成技术Phantom

畅游Diffusion数字人(0):专栏文章导航 前言:主题定制视频生成,特别是zero-shot主题定制视频生成,一直是当前领域的一个难点,之前的方法效果很差。字节跳动提出了一个技术主题定制视频生成技术Phantom,效果相比于之前的技术进步非常显著。这篇博客详细解读一下这一工作。 …...

《Adaptive Layer-skipping in Pre-trained LLMs》- 论文笔记

作者:Xuan Luo, Weizhi Wang, Xifeng Yan Department of Computer Science, UC Santa Barbara xuan_luoucsb.edu, weizhiwangucsb.edu, xyancs.ucsb.edu 1. 引言与动机 1.1 背景 LLM 的成功与挑战: 大型语言模型 (LLMs) 在翻译、代码生成、推理等任务上取得巨大成…...

阅读分析Linux0.11 /boot/head.s

目录 初始化IDT、IDTR和GDT、GDTR检查协处理器并设置CR0寄存器初始化页表和CR3寄存器,开启分页 初始化IDT、IDTR和GDT、GDTR startup_32:movl $0x10,%eaxmov %ax,%dsmov %ax,%esmov %ax,%fsmov %ax,%gslss _stack_start,%espcall setup_idtcall setup_gdtmovl $0x1…...

android11 DevicePolicyManager浅析

目录 📘 简单定义 📘应用启用设备管理者 📂 文件位置 🧠 DevicePolicyManager 功能分类举例 🛡️ 1. 安全策略控制 📷 2. 控制硬件功能 🧰 3. 应用管理 🔒 4. 用户管理 &am…...

《前端性能优化秘籍:打造极致用户体验》

在当下,网站和应用的性能表现直接关乎用户去留。快速加载、流畅交互的页面能让用户沉浸其中,反之,缓慢的响应速度则会让他们毫不犹豫地离开。对于前端开发者而言,性能优化不仅是技术追求,更是提升用户体验、增强产品竞…...

微信小程序实现table样式,自带合并行合并列

微信小程序在代码编写过程好像不支持原生table的使用&#xff0c;在开发过程中偶尔又得需要拿table来展示。 1.table效果展示 1.wxml <view class"table-container"><view class"table"><view class"table-row"><view cla…...

学习笔记十二——Rust 高阶函数彻底入门(超详细过程解析 + 每步数值追踪)

&#x1f4a1; 彻底搞懂 Rust 高阶函数&#xff01;新手最容易卡住的语法 调用流程全讲透&#xff08;含逐步拆解&#xff09; Rust 函数式编程中有一个常见却经常让人懵的概念&#xff1a;高阶函数&#xff08;Higher-Order Function&#xff09; 一看到 fn(i32) -> i32、…...

电脑的品牌和配置

我的笔记本是2020年买的&#xff0c;之前的订单找不到了&#xff0c;就知道是联想&#xff0c;不清楚具体的配置。 本文来源&#xff1a;腾讯元宝 检查系统信息&#xff08;Windows&#xff09; 这通常是 ​​联想&#xff08;Lenovo&#xff09;​​ 的型号代码。 81XV 是联想…...

Redis面试——常用命令

一、String &#xff08;1&#xff09;设置值相关命令 1.1.1 SET 功能&#xff1a;设置一个键值对&#xff0c;如果键已存在则覆盖旧值语法&#xff1a; SET key value [EX seconds] [PX milliseconds] [NX|XX]EX seconds&#xff1a;设置键的过期时间为 seconds 秒 PX milli…...

Swin-Transformer-UNet改进:融合Global-Local Spatial Attention (GLSA) 模块详解

目录 1.模块概述 2.swinUNet网络 3. 完整代码 1.模块概述 Global-Local Spatial Attention (GLSA) 是一种先进的注意力机制模块,专为计算机视觉任务设计,能够同时捕捉全局上下文信息和局部细节特征。 该模块通过创新的双分支结构和自适应融合机制,显著提升了特征表示能…...

ubuntu 向右拖动窗口后消失了、找不到了

这是目前单显示器的设置&#xff0c;因为实际只有1个显示器&#xff0c;之前的设置如下图所示&#xff0c;有2个显示器&#xff0c;一个主显示器&#xff0c;一个23寸的显示器 ubuntu 22.04 系统 今天在操作窗口时&#xff0c;向右一滑&#xff0c;发现这个窗口再也不显示了、找…...

大语言模型(LLMs)中的强化学习(Reinforcement Learning, RL)

第一部分&#xff1a;强化学习基础回顾 在深入探讨LLMs中的强化学习之前&#xff0c;我们先快速回顾一下强化学习的核心概念&#xff0c;确保基础扎实。 1. 强化学习是什么&#xff1f; 强化学习是一种机器学习范式&#xff0c;目标是让智能体&#xff08;Agent&#xff09;…...

2025最新版微软GraphRAG 2.0.0本地部署教程:基于Ollama快速构建知识图谱

一、前言 微软近期发布了知识图谱工具 GraphRAG 2.0.0&#xff0c;支持基于本地大模型&#xff08;Ollama&#xff09;快速构建知识图谱&#xff0c;显著提升了RAG&#xff08;检索增强生成&#xff09;的效果。本文手把手教你如何从零部署&#xff0c;并附踩坑记录和性能实测…...

泛型算法——只读算法(一)

在 C 标准库中&#xff0c;泛型算法的“只读算法”指那些 不会改变它们所操作的容器中的元素&#xff0c;仅用于访问或获取信息的算法&#xff0c;例如查找、计数、遍历等操作。 accumulate std::accumulate()是 C 标准库**numeric**头文件中提供的算法&#xff0c;用于对序列…...

Redis的常见数据类型

Redis 提供了多种数据类型&#xff0c;以满足不同的应用场景。以下是 Redis 的主要数据类型及其应用场景&#xff1a; 字符串&#xff08;String&#xff09;&#xff1a; 描述&#xff1a;最基本的数据类型&#xff0c;存储单个键值对&#xff0c;值可以是字符串、整数或浮点数…...

Mybatis中dao(mapper)层几种传参方式

一、SQL语句中接收参数的方式有两种&#xff1a; 1、 #{}预编译 &#xff08;可防止sql注入&#xff09; 2、${}非预编译&#xff08;直接拼接sql&#xff0c;不能防止sql注入&#xff09; #{}和${}的区别是什么? #{} 占位符&#xff0c;相当于?&#xff0c;sql预编译&…...

网络安全知识点2

1.虚拟专用网VPN&#xff1a;VPN用户在此虚拟网络中传输私网流量&#xff0c;在不改变网络现状的情况下实现安全&#xff0c;可靠的连接 2.VPN技术的基本原理是利用隧道技术&#xff0c;对传输报文进行封装&#xff0c;利用VPN骨干网建立专用数据传输通道&#xff0c;实现报文…...

libevent服务器附带qt界面开发(附带源码)

本章是入门章节&#xff0c;讲解如何实现一个附带界面的服务器&#xff0c;后续会完善与优化 使用qt编译libevent源码演示视频qt的一些知识 1.主要功能有登录界面 2.基于libevent实现的服务器的业务功能 使用qt编译libevent 下载这个&#xff0c;其他版本也可以 主要是github上…...

智能体数据分析

数据概览&#xff1a; 展示智能体的累计对话次数、累计对话用户数、对话满意度、累计曝光次数。数据分析&#xff1a; 统计对话分析、流量分析、用户分析、行为分析数据指标&#xff0c;帮助开发者完成精准的全面分析。 ps&#xff1a;数据T1更新&#xff0c;当日12点更新前一天…...

[特殊字符] UnionFS(联合文件系统)原理解析:容器背后的存储技术

&#x1f50d; UnionFS&#xff08;联合文件系统&#xff09;原理解析&#xff1a;容器背后的存储技术 &#x1f4a1; 什么是 UnionFS&#xff1f; UnionFS&#xff08;联合文件系统&#xff09; 是一种可以将多个不同来源的文件系统“合并”在一起的技术。它的核心思想是&am…...

STM32(M4)入门: 概述、keil5安装与模板建立(价值 3w + 的嵌入式开发指南)

前言&#xff1a;本教程内容源自信盈达教培资料&#xff0c;价值3w&#xff0c;使用的是信盈达的405开发版&#xff0c;涵盖面很广&#xff0c;流程清晰&#xff0c;学完保证能从新手入门到小高手&#xff0c;软件方面可以无基础学习&#xff0c;硬件学习支持两种模式&#xff…...

采用若依vue 快速开发系统功能模块

文章目录 运行若依项目 科室管理科室查询-后端代码实现科室查询-前端代码实现科室名称状态搜索科室删除-后端代码实现科室删除-前端代码实现科室新增-后端代码实现科室新增-前端代码实现科室修改-后端代码实现前端代码实现角色权限实现 运行若依项目 运行redis 创建数据库 修改…...

HTML:表格数据展示区

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>人员信息表</title><link rel"styl…...

WIN11运行游戏时出现“ms-gamingoverlay”弹框的问题

针对WIN11运行游戏时出现“ms-gamingoverlay”弹框的问题&#xff0c;以下是经过验证的多种解决方法&#xff0c;结合不同场景需求提供对应方案&#xff1a; 一、关闭系统内置的游戏录制功能 禁用Xbox Game Bar及游戏录制 • 进入系统设置&#xff08;WinI&#xff09;→ 左侧选…...

Oracle测试题目及笔记(单选)

所有题目来自于互联网搜索 当 Oracle 服务器启动时&#xff0c;下列哪种文件不是必须的&#xff08;D&#xff09;。 A&#xff0e;数据文件 B&#xff0e;控制文件 C&#xff0e;日志文件 D&#xff0e;归档日志文件 数据文件、日志文件-在数据库的打开阶段使用 控制文件-在数…...

Jmeter创建使用变量——能够递增递减的计数器

Jmeter创建使用变量——能够递增递减的计数器 如下图所示&#xff0c;创建一个 取值需限定为0 2 4这三个值内的变量。 Increment&#xff1a;每次迭代后 递增的值&#xff0c;给计数器增加的值 Maximum value&#xff1a;计数器的最大值&#xff0c;如果超过最大值&#xff0…...

【LeetCode基础算法】滑动窗口与双指针

定长滑动窗口 总结&#xff1a;入-更新-出。 入&#xff1a;下标为 i 的元素进入窗口&#xff0c;更新相关统计量。如果 i<k−1 则重复第一步。 更新&#xff1a;更新答案。一般是更新最大值/最小值。 出&#xff1a;下标为 i−k1 的元素离开窗口&#xff0c;更新相关统计量…...