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

网站制作模版/seo优

网站制作模版,seo优,深圳网站建设公司有哪些内容,推广的含义如是我闻: Batch Normalization(批归一化,简称 BN) 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。 它的核心思想是:在每一层的输入进行归一化,使其均值接近 0&…

如是我闻: Batch Normalization(批归一化,简称 BN)2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。

它的核心思想是:在每一层的输入进行归一化,使其均值接近 0,方差接近 1,从而减少不同批次数据的分布变化(Internal Covariate Shift),提高训练效率,并降低对超参数的敏感性。

在这里插入图片描述


1. 为什么需要 Batch Normalization?

(1) 训练过程中数据分布会变化

  • 在深度神经网络中,每一层的输入数据并不是固定的,而是来自前一层的输出。
  • 随着训练进行,前几层的权重不断变化,导致后面层的输入数据分布发生变化(即 Internal Covariate Shift)。
  • 这种变化会让网络不断适应新的数据分布,影响收敛速度,甚至可能导致梯度消失或梯度爆炸问题

(2) 归一化输入可以加速收敛

  • 在训练神经网络时,通常对输入数据进行归一化(标准化),即让输入数据的均值为 0,方差为 1:
    x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x=σxμ
  • 但是,如果只对输入数据归一化,而不对隐藏层的输入归一化,那么后续层仍然可能受到数据分布变化的影响。

(3) Batch Normalization 解决了什么问题?

减少 Internal Covariate Shift,让每层的输入分布更加稳定。
加速收敛,使网络能够使用更大学习率进行训练。
减少梯度消失和梯度爆炸问题,提高深度网络的训练稳定性。
减少对超参数(如学习率、权重初始化)的依赖,使得网络更容易调参。
有一定的正则化效果,降低过拟合的风险。


2. Batch Normalization 的计算过程

假设当前网络有一层的输入是 x x x,Batch Normalization 计算过程如下:

(1) 计算均值和方差

对一个 batch 的数据 B = { x 1 , x 2 , . . . , x m } B = \{ x_1, x_2, ..., x_m \} B={x1,x2,...,xm},计算该 batch 的均值 μ B \mu_B μB 和方差 σ B 2 \sigma_B^2 σB2
μ B = 1 m ∑ i = 1 m x i \mu_B = \frac{1}{m} \sum_{i=1}^{m} x_i μB=m1i=1mxi
σ B 2 = 1 m ∑ i = 1 m ( x i − μ B ) 2 \sigma_B^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_B)^2 σB2=m1i=1m(xiμB)2

(2) 归一化数据

用均值和标准差对数据进行标准化:
x ^ i = x i − μ B σ B 2 + ϵ \hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} x^i=σB2+ϵ xiμB
其中 ϵ \epsilon ϵ 是一个很小的数,防止除以 0。

(3) 线性变换(可学习参数)

为了保证 BN 不会限制网络的表达能力,我们引入两个可学习参数:

  • 缩放参数 γ \gamma γ(scale):控制归一化后的分布的尺度。
  • 平移参数 β \beta β(shift):让归一化后的数据能够恢复到合适的分布。

最终输出:
y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β

这样,BN 既能保证数据的稳定性,又能让网络学到适当的分布。


3. Batch Normalization 在网络中的作用

BN 层通常可以添加到 全连接层或卷积层之后,ReLU 之前

  • 在全连接网络(MLP)中
    z = W x + b z = Wx + b z=Wx+b 之后,加入 Batch Normalization:
    z ^ = z − μ B σ B 2 + ϵ \hat{z} = \frac{z - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} z^=σB2+ϵ zμB
    然后乘以 γ \gamma γ 并加上 β \beta β
    y = γ z ^ + β y = \gamma \hat{z} + \beta y=γz^+β
    最后再经过激活函数(如 ReLU)。

  • 在 CNN 里,对每个通道的特征图进行归一化:
    μ B = 1 m ⋅ h ⋅ w ∑ i = 1 m ∑ j = 1 h ∑ k = 1 w x i , j , k \mu_B = \frac{1}{m \cdot h \cdot w} \sum_{i=1}^{m} \sum_{j=1}^{h} \sum_{k=1}^{w} x_{i, j, k} μB=mhw1i=1mj=1hk=1wxi,j,k
    其中 m m m 是 batch 大小, h , w h, w h,w 是特征图的高度和宽度。


4. Batch Normalization 的优缺点

✅ 优点

  1. 加速训练(可以使用更大学习率)。
  2. 减少梯度消失/梯度爆炸问题
  3. 提高网络的泛化能力,有一定的正则化效果(但不完全等同于 Dropout)。
  4. 降低对权重初始化的敏感性

❌ 缺点

  1. 对小 batch 不友好(因为均值和方差计算会不稳定)。
  2. 在 RNN 里效果不好(时间序列数据的统计特性不同)。
  3. 推理时计算均值和方差会增加计算量

6. BN 和其他归一化方法的对比

归一化方法应用场景归一化维度适用于 RNN?
Batch NormalizationCNN, MLP在 batch 维度计算均值和方差
Layer NormalizationRNN, Transformer在特征维度归一化(不依赖 batch)
Instance Normalization风格迁移在每个样本的特征图上归一化
Group Normalization小 batch CNN在多个通道分组归一化

7. 总的来说

  • Batch Normalization(BN)是深度学习中的一个重要归一化技术,它的目标是减少 Internal Covariate Shift,提高训练速度和稳定性
  • 核心步骤
    1. 计算 batch 均值和方差。
    2. 归一化数据,使其均值 0,方差 1。
    3. 使用可学习参数 γ \gamma γ β \beta β 进行缩放和平移。
  • BN 主要作用
    • 加速收敛,可以使用更大学习率。
    • 减少梯度消失/梯度爆炸问题,提高稳定性。
    • 有一定的正则化作用,降低过拟合
  • 缺点
    • 小 batch 训练效果较差
    • 在 RNN 里效果不好

以上

相关文章:

深度学习|表示学习|卷积神经网络|Batch Normalization在干什么?|19

如是我闻: Batch Normalization(批归一化,简称 BN) 是 2015 年由 Ioffe 和 Szegedy 提出 的一种加速深度神经网络训练并提高稳定性的技术。 它的核心思想是:在每一层的输入进行归一化,使其均值接近 0&…...

Go基础之环境搭建

文章目录 1 Go 1.1 简介 1.1.1 定义1.1.2 特点用途 1.2 环境配置 1.2.1 下载安装1.2.2 环境配置 1.2.2.1 添加环境变量1.2.2.2 各个环境变量理解 1.2.3 验证环境变量 1.3 包管理工具 Go Modules 1.3.1 开启使用1.3.2 添加依赖包1.3.3 配置国内包源 1.3.3.1 通过 go env 配置1.…...

echarts、canvas这种渲染耗时的工作能不能放在webworker中做?

可以将 ECharts、Canvas 等渲染耗时的工作放在 Web Worker 中进行处理。Web Worker 允许在后台线程中运行 JavaScript,从而将计算密集型任务从主线程中分离出来,避免阻塞用户界面。以下是一些关键点: 优势 性能提升:将耗时的渲染…...

Android学习21 -- launcher

1 前言 之前在工作中,第一次听到launcher有点蒙圈,不知道是啥,当时还赶鸭子上架去和客户PK launcher的事。后来才知道其实就是安卓的桌面。本来还以为很复杂,毕竟之前接触过windows的桌面,那叫一个复杂。。。 后面查了…...

antd pro框架,使用antd组件修改组件样式

首先用控制台的指针找到组件的类名 然后找到项目的src/global.less文件 在里面进行修改,切记:where(.css-dev-only-do-not-override-5fybr3).ant-input:placeholder-shown这种格式,把where(.css-dev-only-do-not-override-5fybr3)删掉,使用…...

响应式编程_05 Project Reactor 框架

文章目录 概述响应式流的主流实现框架RxJavaReactor Project Reactor 框架Reactor 异步数据序列Flux 和 Mono 组件FluxMono 操作符背压处理 小结 概述 响应式编程_02基本概念:背压机制 Backpressure介绍了响应式流规范以及 Spring 框架中的响应式编程技术&#xff…...

RabbitMQ 从入门到精通:从工作模式到集群部署实战(一)

#作者:闫乾苓 文章目录 RabbitMQ简介RabbitMQ与VMware的关系架构工作流程RabbitMQ 队列工作模式及适用场景简单队列模式(Simple Queue)工作队列模式(Work Queue)发布/订阅模式(Publish/Subscribe&#xff…...

导出依赖的几种方法

在 Python 中,你可以使用以下方法导出项目的依赖: 1. 使用 pip freeze pip freeze 可以列出当前环境中安装的所有包及其版本,并将结果保存到 requirements.txt 文件中。 pip freeze > requirements.txt2. 使用 pipreqs pipreqs 可以根…...

CS 与 BS 架构的差异

在数字化的今天,选择软件架构模式对系统的性能、维护、安全和成本都有很大影响。BS架构和CS架构是最常见的两种模式,了解它们的区别和特点对开发人员和企业决策者都很重要。 CS架构最早出现,当时用户直接从主机获取数据。随着客户端和服务端…...

OpenCV YOLOv11实时视频车辆计数线:让车辆进出有条理!

前言 大家好!今天我们聊个超级有趣的课题——如何用OpenCV结合YOLOv11进行实时视频车辆计数。是不是很炫酷?车辆进出全都清晰可见,连“跑车”都能精确统计!不过,别急,这可不仅仅是数车那么简单,背后还有许多实际问题等着你去搞定,比如计数线、车速、误检这些麻烦的小问…...

配置@别名路径,把@/ 解析为 src/

路径解析配置 webpack 安装 craco npm i -D craco/craco 项目根目录下创建文件 craco.config.js ,内容如下 const path require(path) module.exports {webpack: {// 配置别名alias: {// 约定: 使用 表示src文件所在路径: path.resolve(__dirname,src)…...

java 进阶教程_Java进阶教程 第2版

第2版前言 第1版前言 语言基础篇 第1章 Java语言概述 1.1 Java语言简介 1.1.1 Java语言的发展历程 1.1.2 Java的版本历史 1.1.3 Java语言与C/C 1.1.4 Java的特点 1.2 JDK和Java开发环境及工作原理 1.2.1 JDK 1.2.2 Java开发环境 1.2.3 Java工作原理 1.…...

Windows Docker笔记-安装docker

安装环境 操作系统:Windows 11 家庭中文版 docker版本:Docker Desktop version: 4.36.0 (175267) 注意: Docker Desktop 支持以下Windows操作系统: 支持的版本:Windows 10(家庭版、专业版、企业版、教育…...

hot100(7)

61.31. 下一个排列 - 力扣(LeetCode) 数组问题,下一个更大的排列 题解:31. 下一个排列题解 - 力扣(LeetCode) (1)从后向前找到一个相邻的升序对(i,j),此时…...

DeepSeek辅助学术写作【对比概念】效果如何?

DeepSeek-R1在论文写作细节方面有很多好的应用。我们下面通过具体案例来逐一展示这些功能。 DeepSeek-R1在提问方面,可以简化提示词也能给出精准得答案。我们来一探究竟! 对比概念(功能指数:★★★★★) DeepSeek-R1在概念对比方面的功能也非常强大。由…...

基础相对薄弱怎么考研

复习总体规划 明确目标 选择专业和院校:根据你的兴趣、职业规划和自身实力,选择适合自己的专业和院校。可以参考往年的分数线、报录比、复试难度等。了解考试科目:不同专业考试科目不同,一般包括: 公共课&#xff1a…...

kakailio官网推荐的安装流程ubuntu 22.04

https://kamailio.org/docs/tutorials/6.0.x/kamailio-install-guide-git/ # 非必须项 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/kamailio.gpg在/etc/apt/sources.list文件追加以下内容 deb [signed-by/usr/sh…...

DeepSeek:全栈开发者视角下的AI革命者

目录​​​​​​​ DeepSeek:全栈开发者视角下的AI革命者 写在前面 一、DeepSeek的诞生与定位 二、DeepSeek技术架构的颠覆性突破 1、解构算力霸权:从MoE架构到内存革命 2、多模态扩展的技术纵深 3、算法范式的升维重构 4、重构AI竞争规则 三、…...

协同探索与导航文献整理

文章目录 1.SOAR:异构无人机协同探索与拍摄以实现快速自主重建2. RACER: 一种使用分散式无人机群进行快速协同探索的方法3. 使用协作式纳米无人机在非结构化环境中进行最小感知探索4.GVP-MREP:通过动态拓扑图上的 Voronoi 分区进行快速且通信高效的多无人机探索5.森林的快速多无…...

C#结合html2canvas生成切割图片并导出到PDF

目录 需求 开发运行环境 实现 生成HTML范例片断 HTML元素转BASE64 BASE64转图片 切割长图片 生成PDF文件 小结 需求 html2canvas 是一个 JavaScript 库,它可以把任意一个网页中的元素(包括整个网页)绘制到指定的 canvas 中&#xf…...

AI安全最佳实践:AI云原生开发安全评估矩阵(上)

保护生成式 AI:生成式 AI 安全范围矩阵简介 生成式人工智能(生成式 AI)正在吸引各大企业的关注,并在全球各行各业中重塑客户体验。这一 AI 能力的飞跃,由数十亿参数的大语言模型(LLM)和Transfo…...

[ Spring ] Spring Boot Mybatis++ 2025

文章目录 StructureMyBatis Controller AbilitiesConfigure Plugins and RepositoriesApply Plugins and Add DependenciesMyBatis Spring PropertiesMyBatis ApplicationMyBatis BeansMyBatis MapperMyBatis Query Builder Structure this blog introduce 3 ways using mybat…...

JAVAweb学习日记(九) MySQL-事务索引

一、事务-介绍 示例代码: 二、事务-四大特性 三、索引-介绍 无索引:全表扫描(对应字段逐一比较) 有索引:根据索引结构高效获取数据 优缺点: 四、索引-结构 五、索引-操作语法...

企业加密软件(天锐绿盾)

天锐绿盾是一款功能强大的企业加密软件,以下是对其的详细介绍: 一、产品概述 天锐绿盾(又名绿盾信息安全管理软件),专注于企业数据防泄密,致力于为企业提供全方位的数据安全保障。其官网为www.drhchina.c…...

Python实现监督学习与无监督学习

在机器学习中,算法被广泛应用于解决实际问题。监督学习与无监督学习是其中两种重要的学习范式。监督学习通过已标注的数据进行训练,目标是学会预测未知数据的标签。而无监督学习不需要数据的标签,它专注于数据的结构和模式,通常用于聚类或降维等任务。 本教程的目标是帮助…...

Python网络自动化运维---批量登录设备

文章目录 目录 文章目录 前言 实验准备 一.批量登录 IP 连续的设备 1.1.1 实验代码 1.1.2 代码分段分解 1.1.3 实验结果验证 二.批量登录 IP 不连续的设备 2.2.1 实验代码 2.2.2 代码分段分解 2.2.3 实验结果验证 前言 在生产环境中,我们通常需要登录多个设备…...

如何抓取酒店列表: 揭开秘密

搜索酒店列表是一种强大的工具,可以从各种在线资源中收集有关住宿、价格和可用性的综合数据。无论您是要比较价格、分析市场趋势,还是要创建个性化的旅行计划,搜索都能让您有效地汇编所需的信息。在本文中,我们将介绍如何搜索酒店…...

day32-文件共享服务ftp与smb

文件共享服务方案有很多,了解即可 ftp(简单文件传输服务) 提供用户认证机制 可以输入账号密码 python -m SimpleHTTPServer nginx也提供了文件下载的功能 提供用户认证机制 反向代理,负载均衡 web服务器,静态文件…...

快速傅里叶离散变换FFT (更新中)

声明:参考了 y y c yyc yyc 的 blog 和 PPT (from smwc) ,以及 w z r wzr wzr 的 blog 。 目录 Part 1 多项式Part 2 FFT概论Part 3 点值与插值Part 4 复数,单位根Part 5 Part 1 多项式 定义:对于有限数列 A 0 A_{0} A0​~ n…...

【从零开始入门unity游戏开发之——C#篇48】C#补充知识点——静态导入、异常捕获和异常筛选器、nameof运算符

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...