Py深度学习基础|关于Batch Normalization

1. 为什么需要Batch Normalization

通常我们会在输入层进行数据的标准化处理,这是为了让模型学习到更好的特征。同样,在模型的中间层我们也可以进行normalize。在神经网络中, 数据分布对训练会产生影响。 比如我们使用tanh作为激活函数,当输入激活函数的值很大时,tanh输出值接近饱和如下所示,这样我们再增大x,输出几乎没任何变化,可以理解为模型对数据不再敏感了。这种情况在隐藏层时有发生,因此需要Batch Normalization解决。

 2. Batch Normalization层位置

 Batch Normalization (BN) 层被添加在每一个全连接和激活函数之间,如下:

3. Batch Normalization作用的形象理解

计算结果值的分布对于激活函数很重要。比如还是tanh函数,对于数据值大多分布在中间这个区间的数据, 才能进行更有效的传递。 对比下图这两个在激活之前的值的分布。上者没有进行 normalization, 下者进行了 normalization, 我们通过normalization将数据分布在tanh效果最好的区间内,这样能够更有效地利用 tanh 进行非线性化的过程

 接着,将这两个分布的数据分别通过激活函数,观察输出分布如下图所示。没有 normalize 的数据使用 tanh 激活以后, 激活值大部分都分布到了饱和阶段, 也就是大部分的激活值不是-1, 就是1, 而 normalize 以后, 大部分的激活值在每个分布区间都还有存在。再将这个激活后的分布传递到下一层神经网络进行后续计算, 每个区间都有分布的这一种对于神经网络就会更加有价值:

4. BN算法

我们引入batch normalization的公式。标准化工序就是我们在刚刚一直说的normalization, 但是公式的后面还有一个反向操作, 将 normalize 后的数据再扩展和平移。原来这是为了让神经网络自己去学着使用和修改这个扩展参数 gamma, 和 平移参数 β, 这样神经网络就能自己慢慢琢磨出前面的 normalization 操作到底有没有起到优化的作用, 如果没有起到作用, 我就使用 gamma 和 belt 来抵消一些 normalization 的操作。

 注:参考https://zhuanlan.zhihu.com/p/24810318

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/10936.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Baidu Comate智能编码助手:AI编程时代提升效率的好帮手

目录 写在前面一、如何安装二、如何使用场景需求体验步骤 三、AI 编程实战指令功能插件功能知识库功能 四、问题建议五、体验总结🚀写在最后 写在前面 Baidu Comate 是基于文心大模型的 AI编程工具,它结合百度积累多年的编程现场大数据和外部优秀开源数据…

MySQL中的多表查询

数据库设计范式(范例) 好的数据库设计,事倍功半,不会有歧义 第一范式:列保证原子性(列不可再分解) 联系方式:电话,微信,QQ,邮箱 这些都不可分解 第二范式:要…

annaconda详细解读换源文件

annaconda换源详细解读文件 annaconda换源详细解读文件 annaconda换源详细解读文件 #踩坑/annaconda换源详细解读通道问题 如何准确使用国内源高效安装GPU版本的Pytorch - 知乎 文件中的custom通道,需要自己手动添加到默认通道里面,记得后面更上/包名…

在xAnyLabeling中加载自己训练的yolov8s-obb模型进行半自动化标注

任务思路: 先使用xAnyLabeling标注一部分样本,训练出v1版本的yolov8-obb模型,然后加载yolov8-obb模型到xAnyLabeling中对其余样本进行半自动化标注。节省工作量。 任务流程: 1.准备xAnyLabeling标注工具 下载代码,…

Redis系列-3 Redis缓存问题

1.缓存的作用 数据库(如Mysql)的持久化特点带来了较低的性能,高并发的场景下,连接池很快被耗尽而出现宕机或DOS,无法继续对外提供服务。相对于数据库的硬盘IO,缓存中间件基于内存进行读写,从而具备较大的吞吐量和高并…

SpringBoot:注解详解

RequestMapping 注解在类上:表示该类中所有响应请求的方法都以此地址为父路径 value(path) 指定请求的实际访问地址,默认RequestMapping(“url”)的值url即为value的值。指定的地址可以是 URI Template 模式。 method 指定请求的method类型…

数据结构(四)——二叉树和堆(下)

制作不易,三连支持一下呗!!! 文章目录 前言一、二叉树链式结构的实现总结 前言 这篇博客我们将来了解普通二叉树的实现和应用,对大家之前分治和递归的理解有所挑战。 一、二叉树链式结构的实现 1.前置说明 在学习二叉…

Java入门——继承和多态(上)

包 包是组织类的一种方式. 使用包的主要目的是保证类的唯一性. 例如, 你在代码中写了一个 Test 类. 然后你的舍友也可能写一个 Test 类. 如果出现两个同名的类, 就会冲突, 导致 代码不能编译通过. 导入包中的类 Java 中已经提供了很多现成的类供我们使用. 例如 public cla…

服装店会员管理系统结合小程序商城帮你挖掘出潜在客户

在现代社会,随着科技的不断进步和人们消费习惯的变化,传统的服装店已经不再能够满足消费者的需求。为了更好地服务客户,提升销售业绩,许多服装店开始引入会员管理系统,并结合小程序商城,实现线上线下的无缝…

LeetCode-2079. 给植物浇水【数组 模拟】

LeetCode-2079. 给植物浇水【数组 模拟】 题目描述:解题思路一:简单的模拟题,初始化为0,考虑先不浇灌每一个植物解题思路二:初始化为n,考虑每一个植物需要浇灌解题思路三:0 题目描述&#xff1a…

在ubuntu安装Docker容器

1、进入root用户模式 sudo -i 回车后,输入root的密码即可进入root模式2、在ubuntu上安装docker (1)直接使用 apt 安装,一般这样也自动启动好了 apt install docker.io3、验证安装成功,以及启动与校验 (…

C++11:常用语法汇总

目录 🍁统一的列表初始化 { }initializer_list 🍁decltype 推导表达式类型🍁可变参数模板解析可变参数包方法一方法二 🍁lambda 表达式捕捉列表的使用运用场景举例lambda表达式 与 函数对象 🍁统一的列表初始化 { } 在…

STM32F407-驱动SHT41采集温湿度

STM32F407-驱动SHT41采集温湿度 SHT41 SHT41通过I2C方式进行驱动 从机地址: 0x44 获取数据方式 1)先发送I2C写,写入特定指令 2)延时一段时间,等待SHT41处理 3)再进行I2C读,读数据即可 一些…

Ansible(二)

一、Playbook基础 1.1 Playbook定义 Playbook其实是Ansible服务的一个配置文件,Ansible使用Playbook的YAML语言配置编写成操作需求,实现对远端主机或策略部署,实现对远端主机的控制与管理。 1.2 Playbook组成 Tasks:任务&…

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 垂直布局Vertical Layout 文章编号&#x…

skynet - spinlock 简单的自旋锁

spinlock.h 代码位于: https://github.com/cloudwu/skynet/blob/master/skynet-src/spinlock.h 该文件内,根据不同环境提供了 3 种 api 实现: pthread_mutex_t 系列函数gcc 内置原子操作函数std atomic 系列函数 看了下,效率最…

渗透测试-信息收集

网络安全信息收集是网络安全领域中至关重要的一环,它涉及到对目标系统、网络或应用进行全面而细致的信息搜集和分析。这一过程不仅有助于理解目标网络的结构、配置和潜在的安全风险,还能为后续的渗透测试、风险评估和安全加固提供有力的支持。 在网络安…

安卓开发--新建工程,新建虚拟手机,按键事件响应(含:Android中使用switch-case遇到case R.id.xxx报错)

安卓开发--新建工程,新建虚拟手机,按键事件响应 1.前言2.运行一个工程2.1布局一个Button2.2 button一般点击事件2.2 button属性点击事件2.2 button推荐点击事件(含:Android中使用switch-case遇到case R.id.xxx报错) 本…

MATLAB 多项式

MATLAB 多项式 MATLAB将多项式表示为行向量,其中包含按幂次降序排列的系数。例如,方程P(x) X 4 7 3 - 5 9可以表示为 p [1 7 0 -5 9]; 求值多项式 polyval函数用于求一个特定值的多项式。例如,在 x 4 时,计算我们之前的多项式…

HTTP URL 详解

概述 URL 提供了一种定位因特网上任意资源的手段&#xff0c;大多数 URL 语法都由以下九个结构的通用格式组成&#xff1a; <scheme>://<user>:<password><host>:<port>/<path>;<params>?<query>#<frag> 方案&#…