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

Normalization

1、BN(Batch Normalization)

深度网络参数训练时内部存在协方差偏移(Internal Covariate Shift)现 象:深度网络内部数据分布在训练过程中发生变化的现象。

训练深度网络时,神经网络隐层参数更新会导致网络输出层输出数据的分布 发生变化,而且随着层数的增加,根据链式规则,这种偏移现象会逐渐被放大。 这对于网络参数学习来说是个问题:因为神经网络本质学习的就是数据分布 (representation learning),如果数据分布变化了,神经网络又不得不学习 新的分布。为保证网络参数训练的稳定性和收敛性,往往需要选择比较小的学习 速率(learning rate),同时参数初始化的好坏也明显影响训练出的模型精度, 特别是在训练具有饱和非线性(死区特性)的网络,比如即采用 S 或双 S 激活函 数网络,比如 LSTM,GRU。

因此需要引入 Batch Normalization,作为深度网络模型的一个层,每次先 对 input 数据进行归一化,再送入神经网络输入层。 神经网络的训练过程中,更新了某一层的权重参数,后续每一层网络的输出 都可能发生变化,最终引起 loss 值的变化。所以当没有 BN 层时,loss 的收敛 就需要我们精心设计权重的初始化方法和超参数的调节方法以及等待漫长的训 练时间;但当我们在各层之间加入了 BN 层后,某层的输出仅由两个参数γ和β 决定,使用梯度下降法优化参数时,优化方法只需要调节两个参数的值来控制各 层的输出,而不需要调节各层的全部参数。这样极大地提高了收敛速度,避免了 小心翼翼的参数初始化和超参数调节过程。

Batch normalization 也可以被看做一个层面. 在一层层的添加神经网络 的时候, 我们先有数据 X, 再添加全连接层, 全连接层的计算结果会经过激活 函数成为下一层的输入, 接着重复之前的操作。Batch Normalization (BN) 就 被添加在每一个全连接和激励函数之间。

BN 的作用:

(1)加快网络的训练和收敛的速度; (2)控制梯度爆炸防止梯度消失; (3)防止过拟合。

BN 的缺陷:

(1)高度依赖于 mini-batch 的大小,实际使用中会对 mini-Batch 大小进 行约束,不适合类似在线学习(mini-batch 为 1)。 (2)不适用于 RNN 网络中 normalize 操作:BN 实际使用时需要计算并且保 存某一层神经网络 mini-batch 的均值和方差等统计信息,对于对一个固定深度 的前向神经网络(DNN,CNN)使用 BN,很方便;但对于 RNN 来说,sequence 的长度是不一致的,换句话说 RNN 的深度不是固定的,不同的 time-step 需要保存 不同的 statics 特征,可能存在一个特殊 sequence 比其的 sequence 长很多,这 样 training 时,计算很麻烦。

BN 适用于判别模型,比如图像分类模型,因为 BN 注重对每个 Batch 进行 Normalization 操作,从而保证数据分布的一致性,而判别模型的结果正是取决 于数据整体分布。但是 BN 对 BatchSize 的大小比较敏感,由于每次计算均值和 方差是在一个 Batch 上,所以如果 BatchSize 太小,则计算的均值和方差不足以 代表整个数据分布。

2、IN(Instance normalization)

IN 是作用于单张图片,但是 BN 作用于一个 Batch。IN 是针对于不同的 batch, 不同的 chennel 进行归一化。还是把图像的尺寸表示为[N, C, H, W]的话,IN 则是针对于[H,W]进行归一化。

IN 适用于生成模型中,比如图片风格迁移。因为图片生成的结果主要依赖 于某个图像实例,所以对整个 Batch 进行 Normalization 操作并不适合图像风格 化的任务,在风格迁移中适用 IN 不仅可以加速模型收敛,并且可以保持每个图 像实例之间的独立性。

3、LN(Layer Normalization)

BN 并不适用于 RNN 等动态网络和 batchsize 较小的时候效果不好。Layer Normalization(LN)的提出有效的解决 BN 的这两个问题。

Layer Normalization 的基本思想是:用同层隐层神经元的响应值作为集合 S 的范围,来求均值和方差。而 RNN 的每个时间步的都有隐层,且包含了若干神 经元,所以 Layer Normalization 可直接应用于 RNN。

LN 的方法是对于每一个 sample 中的多个 feature(也就是 channel)进行归 一化操作。把图像的尺寸表示为[N, C, H, W]的话,LN 则是对于[C,H,W]进行归 一化。相对于 BN 中所表示的同一个 feature 在不同的 batch 之间拥有同样的均 值和方差。LN 中所表示的则是在同一个 sample 中,不同的 feature 上有着相同 的均值和方差。

4、GN(Group Nomalization)

GN 介于 LN 和 IN 之间,其首先将 channel 分为许多组(group),对每一组 做归一化,及先将 feature 的维度由[N, C, H, W]reshape 为[N, G,C//G , H, W],归一化的维度为[C//G , H, W] 事实上,GN 的极端情况就是 LN 和 IN,分别对应 G 等于 C 和 G 等于 1,作者 在论文中给出 G 设为 32 较好。

GN 同样可以针对于 mini batch size 较小的情况。因为它有不受 batch size 的约束。 ,LN/IN 和 GN 都没有对 batch 作平均,所以当 batch 变化时,网络的错误 率不会有明显变化。但论文的实验显示:LN 和 IN 在时间序列模型(RNN/LSTM) 和生成模型(GAN)上有很好的效果,而 GN 在视觉模型上表现更好。

相关文章:

Normalization

1、BN(Batch Normalization) 深度网络参数训练时内部存在协方差偏移(Internal Covariate Shift)现 象:深度网络内部数据分布在训练过程中发生变化的现象。训练深度网络时,神经网络隐层参数更新会导致网络输…...

27K测试老鸟分享自己6年面试心得,四种公司、四种问题…

这里总结了下自己今年的面试情况 先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能。趁着金三银四跳槽季,面试字节跳动测试岗技术面都已经过了,本来以为是…...

中小企业数字化自动化转型的方法

自动化是我们国内未来的趋势。智能制造的实现主要依托两个基础能力,一个是工业制造技术,另一个就是工业互联网。而自动化是工业制造技术的重要组成部分,是高度智能制造装备的核心部分,与承接着制造单元与工业互联网这两大核心。懂…...

利用GPT-3 Fine-tunes训练专属语言模型

利用GPT-3 Fine-tunes训练专属语言模型 文章目录什么是模型微调(fine-tuning)?为什么需要模型微调?微调 vs 重新训练微调 vs 提示设计训练专属模型数据准备清洗数据构建模型微调模型评估模型部署模型总结什么是模型微调&#xff0…...

kubeadm方式安装k8s高可用集群(版本1.26x)

K8S官网:https://kubernetes.io/docs/setup/ 高可用Kubernetes集群规划 配置备注系统版本CentOS 7.9Docker版本20.10.xPod网段172.16.0.0/12Service网段10.103.10.0/16 主机IP说明k8s-master01 ~ 03192.168.77.101 ~ 103master节点 * 3k8s-master-lb192.168.77.2…...

分享5款堪称神器的免费软件,建议先收藏再下载

转眼间新年已经过去一个月了,最近陆陆续续收到好多小伙伴的咨询,这边也是抓紧整理出几个好用的软件,希望可以帮到大家。 1.电脑安全管家——火绒 火绒是一款电脑安全软件,病毒库更新及时,界面清晰干净,没…...

【项目实战】从0开始入门JDK源码 - LinkedList源码

一、源码位置 一般来说IDEA配置好JDK以后 ,JDK的源码其实也配置好了,本文是基于JDK1.8的源码说明 rt - java - util - LinkedList 二、 继承关系图 LinkedList public class LinkedList<E>extends AbstractSequentialList<E>implements...

Polygon zkEVM的gas定价

1. 引言 所有的zkEVM都存在一个有趣的问题&#xff1a; 如何给gas定价&#xff1f; 在Ethereum Virtual Machine (EVM)中&#xff0c;gas通过为每个计算设置economic fee&#xff0c;来保持网络安全。恶意行为&#xff0c;如拒绝服务&#xff08;DoS&#xff09;攻击&#x…...

stl中的智能指针类详解

C98/03的尝试——std&#xff1a;&#xff1a;auto_ptr C11标准废弃了std&#xff1a;&#xff1a;auto_ptr&#xff08;在C17标准中被移除&#xff09;&#xff0c;取而代之的是std&#xff1a;&#xff1a;unique_ptr, std&#xff1a;&#xff1a;auto_ptr容易让人误用的地…...

Linux 阻塞和非阻塞 IO 实验

目录 一、阻塞和非阻塞简介 1、IO 概念 2、阻塞与非阻塞 二、等待队列 1、等待队列头 2、等待队列项 3、将队列项添加/移除等待队列头 4、等待唤醒 5、等待事件 三、轮询 1、应用程序的非阻塞函数 2、Linux 驱动下的 poll 操作函数 四、阻塞IO之等待事件唤醒 添加…...

你要的react+ts最佳实践指南

本文根据日常开发实践&#xff0c;参考优秀文章、文档&#xff0c;来说说 TypeScript 是如何较优雅的融入 React 项目的。 温馨提示&#xff1a;日常开发中已全面拥抱函数式组件和 React Hooks&#xff0c;class 类组件的写法这里不提及。 前沿 以前有 JSX 语法&#xff0c;…...

软件测试人员会被替代吗?IT行业哪个方向的前景最好?字节12年测开是这样说的

互联网测试从业12年&#xff0c;前来作答。 逻辑上来说&#xff0c;软件工程最初始只需要两个岗位&#xff0c;一个是产品经理。&#xff0c;一个是研发&#xff08;开发&#xff09;&#xff0c;剩余的 所有岗位都是由他们衍生而来的。 第三个岗位大概率就是测试&#xff0c…...

十六、vue3.0之富文本编辑器的选择

在工作过程中我们会遇到很多的时候会使用到富文本编辑器,市场上流行的也是各种各样的,那么究竟如何选择呢,今天就给大家讲讲有哪一些,方便大家的选择。 一、TinyMCE TinyMCE 是富文本编辑器领域的头部玩家之一,主流富文本编辑器,功能非常全,你需要的大多数功能它都支持…...

kafka(一) 的架构,各概念

Kafka架构 Kafak 总体架构图中包含多个概念&#xff1a; &#xff08;1&#xff09;ZooKeeper&#xff1a;Zookeeper负责保存broker集群元数据&#xff0c;并对控制器进行选举等操作。 &#xff08;2&#xff09;Producer&#xff1a; 生产者负责创建消息&#xff0c;将消息发…...

【ts的常用类型】

ts的常用类型前言安装ts常见类型原始类型 、数组、 any变量上的类型注解函数对象类型联合类型类型别名接口接口和类型别名的对比前言 typescript中为了使编写的代码更规范&#xff0c;更有利于维护&#xff0c;增加了类型校验&#xff0c;安装 安装 typescript npm i typescr…...

Hyper-V与安卓模拟器不共存

一是某些新的模拟器已经开始使用新接口开发&#xff0c;支持了共存&#xff0c;安装这种新的安卓模拟器即可。 对于不支持共存的模拟器&#xff0c;只得增加一个windows开机后的系统选项&#xff0c;如果需要切换这两种不同选项使用系统&#xff0c;每次切换都需要重启windows系…...

【图像分类】卷积神经网络之ZFNet网络模型结构详解

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 1. 前言 由于AlexNet的提出,大型卷积网络开始变得流行起来,但是人们对于网络究竟为什么能表现的这么好,以及怎…...

亿级高并发电商项目-- 实战篇 --万达商城项目 十三(编写购物车、优化修改商品、下架商品方法、购物车模块监听修改商品、删除商品消息)

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

springboot 虚拟线程demo

jd19支持虚拟线程&#xff0c;虚拟线程是轻量级的线程&#xff0c;它们不与操作系统线程绑定&#xff0c;而是由 JVM 来管理。它们适用于“每个请求一个线程”的编程风格&#xff0c;同时没有操作系统线程的限制。我们能够创建数以百万计的虚拟线程而不会影响吞吐。 做个 spri…...

CTFer成长之路之逻辑漏洞

逻辑漏洞CTF 访问url: http://1b43ac78-61f7-4b3c-9ab7-d7e131e7da80.node3.buuoj.cn/ 登录页面用随意用户名密码登录 访问url&#xff1a; http://1b43ac78-61f7-4b3c-9ab7-d7e131e7da80.node3.buuoj.cn/user.php 登陆后有商品列表&#xff0c;共三个商品,点击购买flag 钱…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式与专业的 MQ&#xff08;Message Queue&#xff09;如 Kafka、RabbitMQ 进行比较&#xff0c;核心的权衡点在于&#xff1a;简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案

在大数据时代&#xff0c;海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构&#xff0c;在处理大规模数据抓取任务时展现出强大的能力。然而&#xff0c;随着业务规模的不断扩大和数据抓取需求的日益复杂&#xff0c;传统…...