卷积神经网络的深入理解-归一化篇(Batch Normalization具体实例)

2023-11-08

标准化/归一化(神经网络中主要用在激活之前,卷积之后)(持续补充)

归一化在网络中的作用

1、去除量纲的干扰,防止数值过小的特征被淹没
[年龄:20 ,身高:180,收入:10000],收入和年龄相差较大,训练网络的时候可能会将年龄这个特征淹没。
2、保证数据的有效性
稳定网络训练时前向传播和反向传播过程的梯度,网络训练本质上训练的是参数,当数据差异过大(比如输入一个是1,另一个是100000),模型参数会不稳定,模型难以收敛。
数据在未进行归一化时,可能会有大部分处在激活函数的饱和区,这样会影响前向传播的激活值,同时也会影响反向传播的梯度。当进行归一化后,如下图,归一化后的数值能够很好的映射到激活函数上。
在这里插入图片描述
画图代码

import math

import matplotlib.pyplot as plt
import numpy as np

m = 0  # 均值
n = 1  # 标准差
x = np.linspace(-5,5)
y = np.exp(-(x-m)**2/(2*n**2))/(math.sqrt(2*math.pi)*n)
x_sigmoid = np.linspace(-10,10)
y_sigmoid = 1/(1+np.exp(-x_sigmoid))
plt.plot(x,y,label='standard normal distribution')
plt.plot(x,y_sigmoid,label='sigmoid')
plt.legend()
plt.grid()
plt.show()

3、稳定数据的分布
当深层网络中数据分布若在某一层开始有明显的偏移,会使得接下来这一问题加剧。

1、线性归一化(进行线性拉伸,可以增加对比度)

在这里插入图片描述

2、零均值归一化((像素值-均值)/方差)

在这里插入图片描述
经过处理的数据符合标准正态分布。

3、Batch Normalization(批标准化方法)

这里给一个链接Batch Normalization 学习笔记,讲的很清楚,这里我先暂且空下,后续补充。

Batch Normalization的好处(提高训练速度,稳定模型训练):

这里给一个链接Batch Normalization 学习笔记,讲的比较清楚,但具体代码中处理的过程不太详细下面给出我的理解(图片制作不易,如需原图请私信联系):
在这里插入图片描述
1、减轻了对参数初始化的依赖,前向激活值和反向梯度更加有效;
2、平滑了优化目标函数曲面,梯度更加稳定,可以使用更高的学习率,从而跳出局部极值,增强了泛化能力。

Batch Normalization的缺点及改进

缺点:
1、要求固定的Batch长度和均匀采样;
2、当batch过小时计算不稳定。
改进:
采用Batch Renormalization(后续遇到进行补充)。先使用Batch Normalization训练网络到一个相对稳定的状态,稳定后采用Batch Renormalization。

4、其它归一化方法

方法(特点) 归一化范围
Batch Normalization(通用) N*H*W
Layer Normalization(适合非特定长输入) C*H*W
Group Normalization (适合小的batch输入) G*H*W
Instance Normalization (适合图像生成以及风格迁移类应用) H*W
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

卷积神经网络的深入理解-归一化篇(Batch Normalization具体实例) 的相关文章

随机推荐

  • vue 自定义函数

    vue 自定义函数 存储localStorage export const setStore name content gt if name return if typeof content string content JSON stri
  • Chisel基础之Scala

    前言 Scala is yet another programming language which supports common programming paradigms We chose to use it for several
  • 格式装换到OFD

    https www yozodcs com page example html
  • 【6月第一周学习记录】Utrecht University Game&Media Technology-Computer vision计算机视觉(0):一点Linear Algebra基础

    1 Matrix rotation and translation 矩阵四则运算和平移旋转 2 homogeneous coordinates geomatric operations 齐次坐标系中的一些几何变换操作方法 平移和缩放 剪切变
  • laravel8框架-语言包的安装和配置

    1 查找 laravel框架语言包地址 根目录 resources lang 默认有个 en 语言包 2 下载 和 安装 下载地址 https packagist org 搜索 laravel lang 参考网址 https packagi
  • Spring MVC教程第一篇

    转自 Spring MVC教程第一篇 Spring MVC是Java平台下的一个框架 Spring MVC是一个开源框架 它用于开发Java Web应用程序 Spring框架由Rod Johnson编写 在2003年6月采用Apache 2
  • 西米支付:微信支付接口(申请与介绍)

    据统计 2022年微信全球用户数超12 8亿 其中微信支付使用人数达到6亿 而且微信支付在中国移动支付的市场份额超过40 无论是在线上购物 还是线下收款 都能看到微信支付的身影 微信支付已经融入到我们的日常生活中 所以 商家在接入支付接口的
  • 【Linux】linux系统很卡排除

    1 背景 今天操作linux感觉有点卡 然后就去排查 1 1 查看内存使用情况 root localhost dataMocker free g total used free shared buff cache available Mem
  • vscode html文件自动补充html骨架失效

    vscode html文件自动补充html骨架失效 输入 Tab键补全html骨架失效 解决办法 1 让html文件处于编辑状态 按下快捷键ctrl shift p 2 在跳转的对话框里面输入change language mode 在下拉
  • 什么是动态库?什么又是静态库?(如何生成/如何使用 ! ! !)

    动态库 静态库 目录 一 gcc g 的链接方式 1 动态链接 2 静态链接 二 库的优缺点 1 动态库的优点 2 静态库的优点 三 库的生成 四 库的使用 目录 一 gcc g 的链接方式 对于我们编译一段程序经常会需要调用一个函数库 就
  • 浅谈对于servlet的见解

    众所周知 我们创建一个javaweb项目后 在客户端想要访问服务器 得发起http请求 服务器对请求会进行响应 看似简单的请求和响应有很大的门道 虽然我们都会用servlet但是不乏有人不懂其中的原理 接下来我就浅谈一下servlet的一些
  • 获取当前IP地址,跳转到对应城市网站。

    博客迁移 时空蚂蚁http cui cuihongbo com 1 代码 index php
  • COCO-stuff用法

    COCO stuff API 1 是 COCO API 2 的扩展 安装见 3 这里研究一下 COCO stuff 的用法 Files 下载链见 4 image 训练集图片 train2017 zip 验证集图片 val2017 zip 分
  • Vue+ElementUI实现将数据库中的数字展示成对应汉字

    需求 数据库中存的是数字类型 需要展示成对应的汉字 其中 1 gt 部级 2 gt 省级 3 gt 市级 4 gt 其他 dvIdxIndexList里面是从后台查到的结果集 我们首直接用map遍历后台返回的结果集 利用里面的回调对数据进行
  • 在windows10的系统下安装MySQL

    简单介绍一下 Mysql workbench的安装教程 官方网址 https www mysql com downloads 下拉到最下面 点击进去 下载这两个软件 分别是 mysql的具体网址 https dev mysql com do
  • 记一次在forEach循环中使用异步代码无效

    背景 代码如下 const res1 await getOrderPackage XM LX 95 入院检查套餐 const res2 await getOrderPackage XM LX 98 入院检验套餐 const res res1
  • 将windows10 的编码修改为UTF-8

    临时修改 只作用于当前窗口 先进入cmd命令窗口 快捷键win键 R 直接输入 chcp 65001 然后回车键 Enter键 执行 这时候本次打开的窗口编码就已经是UTF 8了 永久修改 win键 R 然后在输入框输入regedit 确定
  • mediapipe教程5:在安卓上运行mediapipe的handTracking

    一 前言和准备见mediapipe教程4 这篇博客开门见山 直接来步骤 二 在安卓上运行mediapipe的handTracking 参考网址 步骤 https google github io mediapipe getting star
  • 手游服务器微信互通,9月14日部分服务器数据互通公告

    尊敬的轩辕勇士们 轩辕传奇手游 开放测试以来人气沸腾 各种战斗的激烈程度也随之升级 为了让勇士们尽享更刺激 更热血的战斗 我们计划于9月14日6 00 9 00期间进行数据互通操作 数据互通期间 相关服务器将暂时无法进入 造成您的不便 恳请
  • 卷积神经网络的深入理解-归一化篇(Batch Normalization具体实例)

    卷积神经网络的深入理解 归一化篇 标准化 归一化 神经网络中主要用在激活之前 卷积之后 持续补充 归一化在网络中的作用 1 线性归一化 进行线性拉伸 可以增加对比度 2 零均值归一化 像素值 均值 方差 3 Batch Normalizat