date: 2024-10-29
title: "Weight Initialization"
status: DONE
author:
- AllenYGY
tags:
- NOTE
- CV
- Weight-Initialization
- DeepLearning
publish: True
Weight Initialization
Variance
- One layer variance scaled by
- Many layers variance scaled by
Xavier Initialization
Xavier Initialization for Fully Connected Network
Consider Forward and Backward
Xavier Initialization for ConvNet
The number of connections feeding into/out of a node:
Kaiming Initialization
Kaiming Initialization for ReLU
Consider Forward and Backward
Summary
Initialization Methods |
Activation Function |
Weight Variance |
Target |
Xavier Initialization |
Sigmoid, Tanh |
|
平衡前向和反向传播的方差 |
Kaiming Initialization |
ReLU, Leaky ReLU |
|
补偿 ReLU 截断负值信号,确保方差不衰减 |
1. Signals can be exploding/vanishing
- 信号可能会爆炸或消失:在深度神经网络中,前向传播和反向传播的信号经过多层网络时,如果初始化不当,信号的方差可能会逐渐变大(梯度爆炸)或逐渐减小到接近零(梯度消失)。这种现象会导致网络训练困难:
- 梯度消失:早期层几乎没有梯度更新,导致模型难以学习到深层特征。
- 梯度爆炸:梯度过大,导致训练不稳定,甚至网络无法收敛。
因此,适当的权重初始化可以在一定程度上缓解梯度消失或爆炸的问题。
2. Product of scaling factors
- 缩放因子的乘积:在多层网络中,信号的方差会受到每一层的缩放因子的影响,这些缩放因子包括权重的方差和输入连接的数量。多层网络中每一层的方差会累积(即每一层的缩放因子相乘),最终导致信号变得过大或过小。因此,初始化中的缩放因子(即权重的方差)需要精心设置,以确保信号的稳定传递。
3. Initialization is driven by normalization
- 初始化依赖于归一化:初始化的设计通常依赖于信号在不同层之间的方差归一化(Normalization)。例如,Xavier 和 Kaiming 初始化方法都根据层输入或输出的数量来选择合适的方差,从而在前向和反向传播中保持信号的方差平衡。归一化使得信号在层与层之间不会失去平衡,从而避免梯度消失或爆炸。
4. Initialization is based on strong assumptions
- 初始化基于强假设:权重初始化通常假设输入和输出分布具有一定的独立性和零均值。例如,Xavier 和 Kaiming 初始化假设每个输入和输出的分布是独立同分布(iid),并且权重的期望值为零。这些假设有助于推导出初始化方差的公式,但在实际应用中,这些假设可能不完全成立。因此,初始化并不能完全解决深度网络的训练难题。
5. Initialization is necessary, but often not sufficient
- 初始化是必要的,但往往不够:虽然合适的权重初始化对稳定训练非常重要,但在深度网络中,仅仅靠初始化往往是不够的。为了进一步改善训练,通常还需要其他技术的配合,比如:
- Batch Normalization:在每一层对信号进行归一化,进一步防止梯度消失或爆炸。
- 残差连接(Residual Connections):允许信号绕过若干层,减少梯度消失问题。
- 更高级的优化算法(例如 Adam、RMSProp):帮助更快地收敛,并且在初始化不完美的情况下提供一定的鲁棒性。