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

CAU人工智能class4 批次归一化

归一化

在对输入数据进行预处理时会用到归一化,将输入数据的范围收缩到0到1之间,这有利于避免纲量对模型训练产生的影响。
但当模型过深时会产生下述问题:
在这里插入图片描述
当一个学习系统的输入分布发生变化时,这种现象称之为“内部协变量偏移”(Internal Covariate Shift)。

内部协变量偏移

内部协变量偏移借鉴了统计学中的“协变量偏移”概念, 协变量(Covariate)指的是在分析某一因变量与其关系时,除了自变量以外,可能影响因变量的其他变量。

协变量的存在可能混淆自变量和因变量之间的因果关系,故在研究中通常对协变量进行控制或校正。模型在训练时遇到数据分布发生变化,会影响模型的泛化能力。

内部协变量偏移的影响

需要较低的学习率

如果某一层的输入分布突然变化(例如均值或方差大幅波动),则该层的参数更新可能会破坏之前学到的特征。为了稳定训练,必须使用较小的学习率,这会显著减慢训练速度。

参数初始化敏感

参数初始化不合理会直接影响到模型的收敛速度、训练效率以及最终模型的性能。
原因:

  • 引发梯度消失/爆炸问题:在计算梯度时会计算激活函数的倒数(斜率),而特别时饱和的激活函数的斜率在某些位置接近于0(或很大),这就会导致梯度消失或爆炸问题。
  • 更快的模型收敛:更快的模型收敛
有利于训练的参数初始化

在这里插入图片描述
训练一个深度学习模型,如果希望模型有比较好的收敛效果,需要的前提
条件是每一层的输入数据有稳定的数据分布

批次归一化

批次归一化是对一个 batch 的数据在网络各层的输出做标准化处理,固定小批量里面的均值和方差,使得在不同层数据保持相同分布,即满足标准正态分布。

优点

  • 批规一化允许使用更高的学习率
  • 并且对初始化的要求不那么严格
  • 它还起到了正则化的作用,在某些情况下甚至可以消除对 Dropout 的需求

步骤

𝐵𝑎𝑡𝑐ℎ𝑁𝑜𝑟𝑚 主要思路是在训练时按 𝑚𝑖𝑛𝑖 − 𝑏𝑎𝑡𝑐ℎ 为单位,对神经元的数值进行归一化,使数据的分布满足 均值为 0,方差为 1。具体计算过程如下(4步):

  1. 计算 𝑚𝑖𝑛𝑖 − 𝑏𝑎𝑡𝑐ℎ 内样本的均值
    在这里插入图片描述
  2. 计算 𝑚𝑖𝑛𝑖 − 𝑏𝑎𝑡𝑐ℎ 内样本的方差
    在这里插入图片描述
  3. 归一化
    在这里插入图片描述

    其中 𝜖 是一个微小值(例如 1e−7)
  4. 对标准化的输出进行缩放和平移
    如果强行限制输出层的分布满足标准正态化,使得数据集中在激活函数中心的线性区域,反而使激活函数丧失了非线性特性。
    在这里插入图片描述
    可能会导致某些特征模式的丢失。因此在 BN 操作中为每个卷积核引入了两个可训练参数:缩放 (𝑆𝑐𝑎𝑙𝑒)因子 𝛾 和偏移(𝑆ℎ𝑖𝑓𝑡)因子 𝛽。
    在这里插入图片描述
    其中γ 和β 是可学习的参数,可以赋初始值 𝛾 = 1,β = 0 , 在训练过程中不断学习调整。而均值 𝜇𝐵 和方差 𝜎𝐵2 是计算得到的。
    调节的原理:
    γ 的作用:γ 可以调整归一化后数据的方差,使其恢复到原始数据的尺度。
    在这里插入图片描述
    β 的作用:β 可以调整归一化后数据的均值,使其恢复到原始数据的均值。在这里插入图片描述
    这样通过调节这两个参数可以保留一部分原数据的分布。

批量归一化的位置

放在激活函数前面

激活函数是类似于 sigmoid 有一定饱和区域的函数。则可以把归一化层放在激活函数之前,在一定程度上可以缓解梯度消失问题
在这里插入图片描述
如上图所示:假设未经过 BN 调整。
正态分布均值: −6
方差: 1
意味着 95 % 的值落在位于两个标准差[−2, 2] 的区间内,即 [−8, −4] 之间,而对应的 Sigmoid 函数的值明显接近于 0 ,这是典型的梯度饱和区。意味着梯度变化很小甚至消失。
而当落在的区间比较大时,计算出的梯度同样很小。
在这里插入图片描述
问题:
在这里插入图片描述
因此要对分布区间进行一定的变换,使其大部分落在函数敏感区间。
在这里插入图片描述
在这里插入图片描述

放在激活函数之后

如果激活函数是类似于 relu 这样的激活函数,那么可以把归一化层放在激活函数之后,可以有效避免数据在激活之前被转化成相似的模式,从而使得非线性特征分布趋于同化。

批归一化与dropout的冲突

当 Dropout 和 BN 这两个强大的方法在实际上结合使用的时候,反而经常无法获得性能上额外的增益。事实上,当主流卷积网络在同时配备 BN 和 Dropout 时,在很多情况下它们的性能甚至会变得更差。

方差偏移

每层的输入分布由于上一层的参数更新变得不稳定(方差不一致),随着信号变深,最终预测的数值偏差可能会被不断的放大,从而降低系统的性能.
在这里插入图片描述
从图中可以看到,没有使用dropout的模型每层的方差变化不大(蓝线),而使用了dropout的红线方差极不稳定(红线)

解决方法

在这里插入图片描述

相关文章:

CAU人工智能class4 批次归一化

归一化 在对输入数据进行预处理时会用到归一化,将输入数据的范围收缩到0到1之间,这有利于避免纲量对模型训练产生的影响。 但当模型过深时会产生下述问题: 当一个学习系统的输入分布发生变化时,这种现象称之为“内部协变量偏移”…...

Android11以上通过adb复制文件到内置存储让文件管理器可见

之前Android版本如果需要将文件通过adb push放到内置存储,push到/data/media/10下的目录即可,直接放/sdcard/文件管理器是看不到的。 现在最新的Android版本直接将文件放在/sdcard或/data/media/10下文件管理器也看不到 可以将文件再复制一份到一下路径…...

Keepalived 与 LVS 集成及多实例配置详解

一、Keepalived 扩展功能:LVS 集成与多实例管理 1. Keepalived LVS:四层负载均衡高可用方案 1.1 集成原理与架构 核心逻辑:Keepalived 通过 VRRP 实现 LVS 负载均衡节点的高可用,同时利用 LVS 的 IP 负载均衡技术(N…...

篇章二 需求分析(一)

目录 1.知名MQ 2.需求分析 2.1 核心概念 2.2 生产者消费者模型的类别 2.3 BrokerServer 内部的关键概念(MQ) 1.虚拟主机(Virtual Host) 2.交换机(Exchange) 3.队列(Queue) 4…...

汽车充电过程中--各个电压的关系(DeepSeek)

在电动汽车的充电过程中,电池的充电机制涉及多个电压参数的协调控制,以下从原理到实际应用逐步分析: 1. 充电基础原理 电动汽车电池(通常为锂离子电池组)的充电本质是通过外部电源向电池注入电能,使锂离子…...

图解深度学习 - 机器学习简史

前言 深度学习并非总是解决问题的最佳方案:缺乏足够数据时,深度学习难以施展;某些情况下,其他机器学习算法可能更为高效。 若初学者首次接触的是深度学习,可能会形成一种偏见,视所有机器学习问题为深度学…...

Gmsh 代码深度解析与应用实例

在科学计算与工程仿真领域,Gmsh 是一款广受欢迎的开源有限元网格生成器,它不仅支持复杂的几何建模,还能高效生成高质量的网格,并具备强大的后处理功能。本文将深入解析几段具有代表性的 Gmsh 代码,从基础几何创建到高级…...

49页 @《人工智能生命体 新启点》中國龍 原创连载

《 人工智能生命体 新启点 》一书,以建立意识来建立起生命体,让其成为独立、自主的活动个体;也就可以理解为建立生命体的思想指导。 让我们能够赋予他灵魂!...

量化研究---bigquant策略交易api研究

api接口来平台的代码整理,原理是读取bigquant的模拟测试信号,下单,可以完美的对接qmt交易,我优化了交易api的部分内容 我开发对接qmt的交易系统 看api源代码 源代码 # 导入系统包 import os import json import requests from ty…...

编译原理 期末速成

一、基本概念 1. 翻译程序 vs 编译程序 翻译程序的三种方式 编译:将高级语言编写的源程序翻译成等价的机器语言或汇编语言。(生成文件,等价)解释:将高级语言编写的源程序翻译一句执行一句,不生成目标文件…...

echarts之漏斗图

vue3echarts实现漏斗图 echarts中文官网&#xff1a;https://echarts.apache.org/examples/zh/index.html 效果图如下&#xff1a; 整体代码如下&#xff1a; <template><div id"funnelChart" style"width:100%;height:400px;"></div&g…...

零基础设计模式——第二部分:创建型模式 - 原型模式

第二部分&#xff1a;创建型模式 - 5. 原型模式 (Prototype Pattern) 我们已经探讨了单例、工厂方法、抽象工厂和生成器模式。现在&#xff0c;我们来看创建型模式的最后一个主要成员——原型模式。这种模式关注的是通过复制现有对象来创建新对象&#xff0c;而不是通过传统的…...

Honeywell TK-PRS021 C200

Honeywell C200/C200E 是一款高性能的集成控制与安全系统&#xff08;ICSS&#xff09;&#xff0c;采用紧凑型 A 系列机箱 设计&#xff0c;适用于工业自动化、过程控制和批处理管理。C200 控制器最初随 PlantScape R200 发布&#xff0c;而 C200E 则与 Experion PKS R400 兼容…...

java 进阶 1.0.3

Thread API说明 自己滚去看文档 CPU线程调度 每一个线程的优先使用权都是系统随机分配的&#xff0c;人人平等 谁先分配到就谁先用 也可以耍赖&#xff0c;就是赋予某一个线程拥有之高使用权&#xff1a;优先级 这样的操作就叫做线程调度 最基本的是系统轮流获得 java的做法是抢…...

从 Docker 到 runC

从 Docker 到 runC:容器底层原理详解 目录 1. Docker 与 runC 的关系 2. Docker 的核心组件 3. runC 的核心功能 4. 实战示例:从 Docker 到 runC 4.1 示例场景:运行一个简单容器 4.2 Docker 底层调用 runC 的流程 4.3 查看 runC 的调用 4.4 直接调用 runC 创建容器 …...

PET,Prompt Tuning,P Tuning,Lora,Qlora 大模型微调的简介

概览 到2025年&#xff0c;虽然PET&#xff08;Pattern-Exploiting Training&#xff09;和Prompt Tuning在学术界仍有探讨&#xff0c;但在工业和生产环境中它们已基本被LoRA/QLoRA等参数高效微调&#xff08;PEFT&#xff09;方法取代 。LoRA因其实现简单、推理零开销&#…...

02-jenkins学习之旅-基础配置

0 配置主路径 jenkins安装目录下找到jenkins.xml文件&#xff0c;C:\ProgramData\Jenkins\.jenkins目录下会存放jenkins相关的配置信息。 1 jdk配置 jenkins是java开发开源的项目&#xff0c;进而服务器需要jdk环境 1.1 服务器安装jdk 1.2 jenkins jdk配置 2 git配置 在je…...

互联网大厂Java求职面试:云原生架构与AI应用集成解决方案

互联网大厂Java求职面试&#xff1a;云原生架构与AI应用集成解决方案 场景一&#xff1a;短视频与直播平台的高并发架构设计 面试官提问 面试官&#xff08;技术总监&#xff09;&#xff1a; 郑薪苦&#xff0c;你有处理过千万级用户同时在线的直播系统吗&#xff1f;如何设…...

Python爬虫实战:研究Crawley 框架相关技术

1. Crawley 框架相关定义 1.1 网络爬虫定义 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。它通过 HTTP 协议与 Web 服务器进行交互,获取网页内容并进行解析处理,是数据采集和信息检索的重要工具。 1.2 Crawley 框架定义 Crawley 是一个基于 Pytho…...

C#实现List导出CSV:深入解析完整方案

C#实现List导出CSV&#xff1a;深入解析完整方案 在数据交互场景中&#xff0c;CSV文件凭借其跨平台兼容性和简洁性&#xff0c;成为数据交换的重要载体。本文将基于C#反射机制实现的通用CSV导出方案&#xff0c;结合实际开发中的痛点&#xff0c;从基础实现、深度优化到生产级…...

Appium+python自动化(三)- SDK Manager

简介 一开始打算用真机做的&#xff0c;所以在前边搭建环境时候就没有下载SDK&#xff0c;但是考虑到绝大多数人都没有真机&#xff0c;所以顺应民意整理一下模拟器。SDK顾名思义&#xff0c;Android SDK Manager就是一个Android软件开发工具包管理器&#xff0c;就像一个桥梁&…...

3D Gaussian Splatting for Real-Time Radiance Field Rendering——文章方法精解

SfM → Point-NeRF → 3D Gaussian Splatting &#x1f7e6;SfM Structure-from-Motion&#xff08;运动恢复结构&#xff0c;简称 SfM&#xff09;是一种计算机视觉技术&#xff0c;可以&#xff1a; 利用多张从不同角度拍摄的图像&#xff0c;恢复出场景的三维结构和相机的…...

主成分分析基本概念及python代码使用

目录 1. 前言 2. 主成分分析的基本概念 3. PCA的适应场景 4. PCA算法的理论基础 4.1 标准化数据 4.2 计算协方差矩阵 4.3 求解特征值和特征向量 4.4 选择主成分 4.5 投影到新坐标系 5. 完整的PCA示例 5.1 使用手写数字数据集 5.2 可视化降维后的数据 6. PCA的优缺…...

MCP如何助力智能交通系统?从数据融合到精准决策

MCP如何助力智能交通系统?从数据融合到精准决策 近年来,智能交通系统(ITS)正在全球范围内快速发展,它结合人工智能(AI)、物联网(IoT)和数据分析,致力于提高交通效率、减少拥堵、增强安全性。而MCP(Multi-Constraint Pathfinding,多约束路径寻优)技术作为一种复杂…...

什么是抽象类?是所有函数都是纯虚函数吗?

什么是抽象类&#xff1f; 抽象类&#xff08;Abstract Class&#xff09;是一种特殊的类&#xff0c;它不能被直接实例化&#xff0c;但可以作为基类被其他类继承。抽象类的主要用途是定义一组接口规范&#xff0c;这些规范由派生类实现。 在C中&#xff0c;抽象类是通过包含…...

计算机视觉与深度学习 | Python实现ARIMA-WOA-CNN-LSTM时间序列预测(完整源码和数据

以下是一个结合ARIMA、鲸鱼优化算法(WOA)、CNN和LSTM进行时间序列预测的Python实现框架。由于完整代码和数据量较大,此处提供核心代码结构和示例数据集,您可根据需求扩展。 1. 数据准备(示例数据) 使用airline-passengers.csv(航空乘客数据集): import pandas as pd…...

【Unity实战笔记】第二十四 · 使用 SMB+Animator 实现基础战斗系统

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/146409453 作者&#xff1a;CSDN|Ringleader| 1 结构 1.1 状态机 1.2 SMB 2 代码实现 2.1 核心控制 Player_Base_SMB 继承 StateMachineBehaviour &#xff0c;控制变量初始…...

C/C++的OpenCV 进行图像梯度提取

使用 C/OpenCV 进行图像梯度提取 图像梯度表示图像中像素强度的变化率和方向。它是图像分析中的一个基本概念&#xff0c;广泛应用于边缘检测、特征提取和物体识别等任务。OpenCV 提供了多种计算图像梯度的函数。本文将介绍几种常用的梯度算子及其在 C/OpenCV 中的实现。 预备…...

Redis 缓存使用的BigKey问题

一、什么是 BigKey&#xff1f; BigKey 指在 Redis 中存储的 单个 Key 对应的 Value 过大&#xff0c;通常表现为&#xff1a; String 类型&#xff1a;Value 长度 > 10KB。Hash/List/Set/ZSet&#xff1a;元素数量 > 5,000 或总大小 > 10MB。 二、BigKey 的危害 问…...

【Java高阶面经:消息队列篇】22、消息队列核心应用:高并发场景下的解耦、异步与削峰

一、消息队列:分布式系统的核心枢纽 在分布式架构日益普及的今天,消息队列(Message Queue, MQ)已成为解决系统复杂性的核心组件。它通过异步通信、系统解耦和流量控制等能力,有效应对高并发场景下的数据流动挑战。 1.1 核心特性:异步、解耦与弹性 1.1.1 异步通信:释放…...