首页 > 其他分享 >BN的可训练参数,BN批归一化操作

BN的可训练参数,BN批归一化操作

时间:2023-09-01 13:55:05浏览次数:40  
标签:缩放 特征 BN batch 参数 归一化

批归一化(Batch Normalization,简称BN)是一种深度学习中常用的正则化技术,它有一些可训练的参数,包括:

  • 缩放参数(Scale): 通常用γ表示,它用来调整每个特征的标准差,从而控制特征的缩放。
  • 偏移参数(Shift): 通常用β表示,它用来调整每个特征的平均值,从而控制特征的平移。
  • 这两个参数是可训练的,它们允许模型根据数据的分布来动态地调整每个特征的缩放和平移,以提高网络的表现能力

批归一化(Batch Normalization,简称BN)的操作可以通过以下公式来解释:

  • 假设我们有一个包含 m 个样本的 mini-batch,每个样本有 n 个特征。首先,我们计算该 mini-batch 中每个特征的均值(mean)和方差(variance):
  1. 均值计算:

    对于第 j 个特征,我们计算其均值 μ_j 如下:

    均值计算公式

    其中,x_ij 表示 mini-batch 中第 i 个样本的第 j 个特征。

  2. 方差计算:

    对于第 j 个特征,我们计算其方差 σ_j^2 如下:

    方差计算公式

    其中,x_ij 表示 mini-batch 中第 i 个样本的第 j 个特征。

然后,我们使用这些均值和方差来进行归一化操作:

  1. 归一化:

    对于 mini-batch 中的每个样本的第 j 个特征,我们使用均值和方差来进行归一化,得到归一化后的特征值 z_ij 如下:

    归一化公式

    其中,ε 是一个小的常数,用于防止方差为零的情况。

  2. 重缩放和平移:

    最后,我们使用可训练的缩放参数(γ)和偏移参数(β)来重新缩放和平移归一化后的特征:

    重缩放和平移公式

    其中,y_ij 是最终的输出特征,γ_j 是可训练的缩放参数,β_j 是可训练的偏移参数。

这个过程对于 mini-batch 中的每个特征都会执行一次,这样就完成了批归一化操作。这些可训练的参数(γ 和 β)允许模型根据数据的分布来动态地调整特征的缩放和平移,从而提高网络的训练效果和泛化性能。

标签:缩放,特征,BN,batch,参数,归一化
From: https://www.cnblogs.com/cmn-note/p/17671680.html

相关文章

  • 数组指针参数
    Constarr1:array[0..1,0..1]ofstring=(('A0B0','A1B0'),('A0B1','A1B1'));arr2:array[0..2,0..1]ofstring=(('X0Y0','X1Y0'),('X2Y0','X0Y1'),......
  • springboot 使用RestTemplate调用get api,传入参数
    getapi:@ResponseBody@ResponseStatus(HttpStatus.OK)@GetMapping(value="/checkGetApi")@ApiOperation(value="checkgetapimethod")publicJSONObjectcheckGetApi(IntegeruserName){JSONObjectresult=......
  • kafka安装以及参数
    kafka安装安装JDKyuminstall-yjava-1.8.0-openjdk.x86_64查看版本java-versionkafka是分布式的,需要多台机器,并且保证机器之间是免密登录同时需要用zookeeper集群负责管理。1、kafka版本选择,从官网下载即可,我这使用的是kafka_2.12-2.70.tgz2、brokers节点分配,注......
  • Swagger3 (OpenAPI3)自定义参数对象渲染设置ModelConverter
    Swagger2设置方法以SpringDataJPA里的分页参数Pageable为例,在使用Swagger2的时候,可以通过自定义AlternateTypeRule,修改参数对象的参数渲染;如下/***分页参数实体类参数转换,让swagger显示正常的传参**@paramresolver*@return*/@BeanpublicAlternateTy......
  • Spring Boot - 引入 validation 对参数或实体类进行校验不管用
    版本说明我的父工程版本号是3.1.0。file:[pom.xml]<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.1.0</version><relativePath/><!--......
  • SpringBoot内置Tomcat的参数值
    SpringBoot内置Tomcat,在默认设置中,Tomcat的最大线程数是200,最大连接数是10000。默认情况下,支持最大并发量为一万,也就是指支持的连接数。Tomcat有两种处理连接的模式是BIO,一个线程只处理一个Socket连接是NIO,一个线程处理多个Socket连接处理多个连接的单个线程通常不会引起太......
  • UDS之时间参数总结篇
    UDS:(UnifiedDiagnosticService)统一诊断服务协议。之所以称为统一诊断服务,则是因为该协议是建立在各种传输方式之上的应用层协议,与底层所采用的通信介质都没有关系,该协议内容在ISO14229-1中定义,目前该协议版本已更新至2020版。 AddressingMode(AM)在发送诊断指令的过程......
  • 如何将低代码平台的用户输入作为 API 输入参数
    要将低代码平台上的用户输入作为API输入参数,你需要确保你的平台能够处理API调用,并且可以获取和处理用户的输入。以下是一种可能的步骤:用户输入:首先,你需要在你的低代码平台上创建一个用户输入表单,用户可以在这里输入他们的数据。捕获输入:在用户提交表单后,你的平台需要有能力......
  • Dialog弹窗式窗口(wx.dialog)的创建以及参数的反馈
    定义一个dialog类,在设置必要的窗口属性后,可参照panel的布局方式进行排布。#自定义对话框类,新增样机信息弹窗classDetailGridDialog(wx.Dialog):def__init__(self,parent,parameter1,parameter2,parameter3):super().__init__(parent,title="详情表单",......
  • SpringBoot接收大写参数为空的问题
    以下参数请求:后台服务获取参数ABC为空原因:SpringBoot框架Post的请求放在Body中的参数会自动进行驼峰命名的格式化解决方案:对参数格式化命名@JsonProperty(value="ABC")@RestController@RequestMapping("/test")publicclassTestContoller{@PostMapping("/dat......