神经网络的归一化

数据归一化是神经网络训练中的一项重要步骤,它能帮助模型更快地收敛。通过消除输入数据的量纲差异,可以避免优化过程中的‘之字形’路线,改善梯度传播。归一化通常在输入数据阶段进行,也有如批归一化(BN)在每一层应用的情况。归一化到[0, 1]或[-1, 1]对模型影响不大,主要目标是保持输入值在合理范围内,防止梯度爆炸或消失。归一化的理解误区包括认为归一化仅为ReLU激活函数设计,实际上归一化旨在促进整体模型的优化。" 90182745,8539703,Servlet实现免密登录与图片验证码功能,"['servlet实现免密登录', 'web service', '登录过滤器', '编码过滤器', '验证码']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 归一化操作的对象?

 归一化是指对于输入到网络中的初始数据进行归一化

 

2. 归一化的作用是什么?

作用只有一个!

为了更容易train,让模型更好更快的收敛----而关键就在于梯度的传播

那怎么让梯度传播的更好呢?

就是消除量纲!

(1)让各个变量的变化区间长度相同,防止等高线椭圆导致的优化时之字形路线,所以收敛就更好更快了

(2)让各个变量的取值不是太跑偏(过大或者过小),因为过大或者过小可能不利于激活函数的激活,(或者导致W矩阵的值/输入输出值过大?占内存?)

还有就是在深度网络中,由于链式法则的累积效应,梯度过大或者过小会导致梯度爆炸或者消失,而梯度又是与输入值有关(原因可参考sigmoid激活函数的梯度反向传播推导部分),所以输入值保持在一个不大不小的区间比较好

 

一般会归一化到[0,1]或者[-1,1], 但是是否是以零对称对于激活函数的影响其实不大,因为还会经过liner层的计算才会输入到ReLU中,范围就不一定是以0为中心了。

3. 为什么归一化可以帮助模型收敛?

消除输入数据的量纲(即取值范围不同)

如果神经网络的输出值(x1, x2)中,x1,x2取值的区间长度有长有短,就会导致优化的时候走“之字形”路线(由于梯度的方向,见下解释),网络收敛缓慢。

为什么量纲不同会导致优化的时候走“之字形”路线?

以二维为例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值