BN 层的作用, 为什么有这个作用?
BN 层(Batch Normalization)——这是深度神经网络中非常重要的一环,它大大改善了网络的训练速度、稳定性和收敛效果。
🧠 一句话理解 BN 层的作用:
Batch Normalization(批归一化)通过标准化每一层的激活值,让训练过程更稳定、更快、更容易收敛。
🧩 为什么需要 BN 层?
在深度网络中,随着层数增加,每层的输入分布会发生变化(称为 internal covariate shift):
• 比如某一层开始习惯输入是 [-1, 1] 的分布;
• 但由于前面参数更新,下一次训练时输入可能变成 [0, 10];
• 导致该层“适应不过来”,训练变慢,甚至梯度消失或爆炸。
🎯 BN 是怎么解决这个问题的?
✅ 它做了两步处理:
1. 标准化(Standardization):
• 对 mini-batch 的每个神经元,减去均值、除以标准差,使输出是均值为 0、方差为 1。
• 类似 z-score:
2. 线性变换(恢复表达能力):
• 引入两个可学习参数 γ(scale)和 β(shift):
• 这一步确保即使你归一化了,也不会失去模型拟合能力(BN 不是简单的“压缩”,而是“规范+再建”)。
🌟 BN 的作用总结:
| 功能 | 解释 |
|---|---|
| 📉 减少内部协变量偏移 | 让每层输入分布更稳定,网络更容易学习 |
| ⚡ 加快收敛速度 | 训练更快、效果更好(可以用更大学习率) |
| 📐 缓解梯度消失/爆炸 | 标准化后激活不会太大太小,梯度更稳 |
| 🧲 一定程度正则化 | 每次用 mini-batch,会引入噪声,有点像 Dropout |
| 🚀 更深网络也能稳定训练 | 尤其适用于 ResNet、VGG 等大网络结构 |
🎨 类比记忆:
想象你在一个楼梯上训练爬楼,如果每一层的高度都在不断变(有的高有的矮),你会训练得很累;BN 就像把每一层都“规范化”为标准的高度,让你更容易上楼。
🧪 使用场景:
• 常用于卷积层或全连接层后,激活函数前后都可以(通常是前)。
• 训练时用 batch 均值和方差,推理时用滑动平均。
相关文章:
BN 层的作用, 为什么有这个作用?
BN 层(Batch Normalization)——这是深度神经网络中非常重要的一环,它大大改善了网络的训练速度、稳定性和收敛效果。 🧠 一句话理解 BN 层的作用: Batch Normalization(批归一化)通过标准化每一…...
JavaScript 中常见的鼠标事件及应用
JavaScript 中常见的鼠标事件及应用 在 JavaScript 中,鼠标事件是用户与网页进行交互的重要方式,通过监听这些事件,开发者可以实现各种交互效果,如点击、悬停、拖动等。 在 JavaScript 中,鼠标事件类型多样࿰…...
【nginx】Nginx的功能特性及常用功能
目录 1.核心功能特性1.1 高并发处理能力1.2 反向代理与负载均衡1.3 静态资源服务1.4 缓存加速1.5 SSL/TLS支持1.6 动态模块扩展1.7 流媒体服务1.8 高可用性 2.常用功能场景2.1 反向代理与负载均衡2.2 静态资源服务2.3 缓存加速2.4 HTTPS支持2.5 API网关2.6 微服务网关 3.优势总…...
make_01_Program_01_makefile .SECONDARY .dirstamp 是什么功能
在 Makefile 中,.SECONDARY 和 .dirstamp 与 GNU Make 处理文件和目标的方式有关。让我们分别解释这两个部分,以及它们结合在一起时的功能。 .SECONDARY 功能:.SECONDARY 是一个特殊的伪目标,用于告诉 make 保留所有中间目标文件…...
金仓数据库KCM认证考试介绍【2025年4月更新】
KCM(金仓认证大师)认证是金仓KES数据库的顶级认证,学员需通过前置KCA、KCP认证才能考KCM认证。 KCM培训考试一般1-2个月一次,KCM报名费原价为1.8万,当前优惠价格是1万(趋势是:费用越来越高&…...
在 macOS 上安装和配置 Aria2 的详细步骤
在 macOS 上安装和配置 Aria2 的详细步骤: 1.安装 Aria2 方式一:使用 Homebrew Homebrew 是 macOS 上的包管理器,可以方便地安装和管理软件包。 • 打开终端。 • 输入以下命令安装 Aria2: brew install aria2• 检查安装是否…...
如何通过句块训练法(Chunks)提升英语口语
真正说一口流利英语的人,并不是会造句的人,而是擅长“调取句块”的人。下面我们从原理、方法、场景、资源几个维度展开,告诉你怎么用“句块训练法(Chunks)”快速提升英语口语: 一、什么是“句块”ÿ…...
[ctfshow web入门]burpsuite的下载与使用
下载 吾爱破解网站工具区下载burpsuite https://www.52pojie.cn/thread-1544866-1-1.html 本博客仅转载下载链接,下载后请按照说明进行学习使用 打开 配置 burpsuite配置 burpsuite代理设置添加127.0.0.1:8080 浏览器配置 如果是谷歌浏览器,打开win…...
文章记单词 | 第25篇(六级)
一,单词释义 mathematical:形容词,意为 “数学的;数学上的;运算能力强的;关于数学的”trigger:名词,意为 “(枪的)扳机;(炸弹的&…...
vscode集成deepseek实现辅助编程(银河麒麟系统)【详细自用版】
针对开发者用户,可在Visual Studio Code中接入DeepSeek,实现辅助编程。 可参考我往期文章在银河麒麟系统环境下部署DeepSeek:基于银河麒麟桌面&&服务器操作系统的 DeepSeek本地化部署方法【详细自用版】 一、前期准备 (…...
【CMake】《CMake构建实战:项目开发卷》笔记-Chapter8-生成器表达式
第8章 生成器表达式 生成器表达式(generator expression)是由CMake生成器进行解析的表达式,因此,这些表达式只有在CMake的生成阶段才被解析为具体的值。 CMake在生成阶段,能够根据具体选用的构建系统生成器生成特定…...
elementui的默认样式修改
今天用element ui ,做了个消息提示,发现提示的位置总是在上面,如图: 可是我想让提示的位置到下面来,该怎么办? 最后还是看了官方的api 原来有个自定义样式属性 customClass 设置下就好了 js代码 css代码 效…...
基于STM32的智能门禁系统设计与实现
一、项目背景与功能概述 在物联网技术快速发展的今天,传统门锁正在向智能化方向演进。本系统基于STM32F103C8T6微控制器,整合多种外设模块,实现了一个具备以下核心功能的智能门禁系统: 密码输入与验证(4x3矩阵键盘&a…...
基于SpringBoot的河道水情大数据可视化分析平台设计与实现(源码+论文+部署讲解等)
需要资料,请文末联系 一、平台介绍 水情监测数据大屏 - 平台首页 日均水位 日均水速 二、论文内容 摘要(中文) 本文针对河道水情监测领域的数据管理和可视化分析需求,设计并实现了一套河道水情大数据可视化分析平台。该平台基…...
日志统计(双指针)
题目描述 小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有 NN 行。其中每一行的格式是: ts idts id 表示在 tsts 时刻编号 idid 的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖…...
广告推荐算法:COSMO算法与A9算法的对比
COSMO算法与A9算法的概念解析 1. A9算法 定义与背景: A9算法是亚马逊早期为电商平台研发的核心搜索算法,主要用于优化商品搜索结果的排序和推荐,其核心逻辑围绕产品属性与关键词匹配展开。自2003年推出以来,A9通过分析商品标题…...
Java进阶之旅-day05:网络编程
引言 在当今数字化的时代,网络编程在软件开发中扮演着至关重要的角色。Java 作为一门广泛应用的编程语言,提供了强大的网络编程能力。今天,我们深入学习了 Java 网络编程的基础知识,包括基本的通信架构、网络编程三要素、IP 地址、…...
Vue 3 的响应式原理
Vue 3 的响应式原理可以比喻为“智能监控系统”:当数据变化时,它能自动追踪依赖关系并触发更新。以下是通俗解释和核心机制: 一、核心原理:Proxy 代理 Vue 3 的响应式系统基于 JavaScript 的 Proxy 对象实现(Vue 2 使…...
Python解决“组成字符串ku的最大次数”问题
Python解决“组成字符串ku的最大次数”问题 问题描述测试样例解题思路代码 问题描述 给定一个字符串 s,该字符串中只包含英文大小写字母。你需要计算从字符串中最多能组成多少个字符串 “ku”。每次可以随机从字符串中选一个字符,并且选中的字符不能再使…...
【JS】使用滑动窗口得到无重复字符的最长子串
题目 思路 本题采用滑动窗口思想,定义左右指针作为滑动窗口的边界,使用Set数据结构处理重复字符,需要注意的是:每次遍历时采用Math.max方法实时更新最长子串的长度;当左指针移动时,set要删除对应字符。 步…...
libreoffice-help-common` 的版本(`24.8.5`)与官方源要求的版本(`24.2.7`)不一致
出现此错误的原因主要是软件包依赖冲突,具体分析如下: ### 主要原因 1. **软件源版本不匹配(国内和官方服务器版本有差距) 系统中可能启用了第三方软件源(如 PPA 或 backports 源),导致 lib…...
2025-04-05 吴恩达机器学习4——逻辑回归(1):基础入门
文章目录 1 分类问题1.1 介绍1.2 线性回归与分类1.2 逻辑回归 2 逻辑回归2.1 介绍2.2 Sigmoid 函数2.3 逻辑回归模型 3 决策边界3.1 概念3.2 线性决策边界3.3 非线性决策边界 4 代价函数4.1 不使用平方误差4.2 损失函数4.3 整体代价函数 5 梯度下降5.1 参数更新5.2 逻辑回归 vs…...
P1125 [NOIP 2008 提高组] 笨小猴
#include<bits/stdc.h> using namespace std; int a[300],ma,mi105;//数组用来记录每个字符出现的次数,将mi初始为一个比较大的值 bool is_prime(int x){if(x0||x1)return false;for(int i2;i*i<x;i){if(x%i0)return false;}return true; }//判断是否为质…...
Linux systemd 服务全面详解
一、systemd 是什么? systemd 是 Linux 系统的现代初始化系统(init)和服务管理器,替代传统的 SysVinit 和 Upstart。它不仅是系统启动的“总指挥”,还统一管理服务、日志、设备挂载、定时任务等。 核心作用 服务管理…...
SortedSet结构之用户积分实时榜单实战
Redis 中的SortedSet结构非常适合用于实现实时榜单的场景,它根据成员的分数自动进行排序,支持高效的添加、更新和查询操作。 SortedSet实时榜单的一些典型应用场景: 游戏中的玩家排行榜:在多人在线游戏中,使用 Sorte…...
C++_类和对象(中)
【本节目标】 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载const成员函数取地址及const取地址操作符重载 1. 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什…...
#SVA语法滴水穿石# (007)关于 $past 的用法
今天,我们要学习比较重要的一个关键字。$past 的用法,今天系统学习。 1. $past 函数的核心作用 $past 用于 获取某个信号在过去指定时钟周期前的值,通常用于检查历史状态是否符合预期。 其语法如下: $past(signal, [num_cycles], [gating_condition], [clock], [reset])…...
学习笔记—C++—入门基础()
目录 C介绍 参考文档 C第一个程序 命名空间namespace namespace的价值 namespace的定义 namespace使用 指定命名空间访问 using将命名空间中某个成员展开 展开命名空间中全部成员 输入和输出 缺省参数 函数重载 引用 引用的概念 应用 const引用 指针和引用的关…...
kotlin函数类型
一 函数类型定义 1 定义 函数类型就是 (Int, Int) -> Int 函数类型其实就是将函数的 “参数类型” 和 “返回值类型” 抽象出来 2 示例 : (Int, Int) -> Int 表示接收两个 Int 参数并返回 Int 的函数类型; (String) -> Unit 表示接收 Strin…...
大数据Spark(五十七):Spark运行架构与MapReduce区别
文章目录 Spark运行架构与MapReduce区别 一、Spark运行架构 二、Spark与MapReduce区别 Spark运行架构与MapReduce区别 一、Spark运行架构 Master:Spark集群中资源管理主节点,负责管理Worker节点。Worker:Spark集群中资源管理的从节点,负责任务的运行…...
