一、固定的初始化神经网络权重可能带来的问题
在训练神经网络的时候,初始化权重如果全部设置为0或某个过大值/过小值。会导致一些问题:
- **对称权重问题:**全为0的初始化权重会导致神经网络在前向传播时接收到的信号输入相同。每个神经网络节点中的公式都是一样的,这种对称性会导致所有节点的输出完全一致,故而无法实现特征的多样性和区分度。这样一来一群节点和一个节点没什么区别。
- **梯度消失/爆炸:**初始化权重过大或过小,可能会导致训练初期的梯度更新剧烈,引发梯度爆炸;反之,若权重过小,梯度则可能在反向传播过程中逐渐减小至接近于0,造成梯度消失。这两种情况都会严重影响网络的学习能力。
二、随机初始化神经网络权重的好处
(1)打破对称性
初始化神经网络的权重很像是给一个舞台剧的导演在剧开始前分配角色。如果所有角色一开始都是一样的,那么剧情将无法展开,因为每个演员都会做出完全相同的表演。相似地,如果我们给所有的神经网络权重相同的起始值,神经元将无法学习到不同的特征,因为在每次迭代中,每个神经元都会以相同的方式更新。这种现象称为对称权重问题。
随机初始化权重就像是为每个角色随机分配一种性格和背景。这虽然可能会有一定的混乱,但也为剧情发展提供了多样性和丰富性,每个演员能够为剧情提供独特的贡献。同样,在神经网络中,随机初始化权重能够打破权重的对称性,确保每个神经元可以学习到不同的特征。
随机初始化打破了这种对称性,每个神经元将以不同的初始权重开始训练,使得每个神经元从一开始就有独特的"视角"来处理输入数据,从而促进网络学习到更丰富的特征表示。
(2)避免梯度消失/爆炸
就如同为一辆赛车精心调整引擎转速,既不过热也不熄火,以确保其能在赛道上稳健加速。
随机初始化有助于分散权重的大小,使其既不太大也不太小,有利于保持梯度在合理的范围内波动,确保训练过程的稳定性。一般在使用Sigmoid激活函数和Tanh激活函数的神经网络中,通常设置成0.01。
(3)促进模型收敛
就像在广阔的森林中随机放置多个起点,让多个猎人同时出发寻找最优路线,比所有人都从同一个地方出发更容易快速找到通往猎物的最佳路径。
随机初始化为神经网络提供了广泛的搜索空间,使得模型在训练初期就能探索多种潜在的解决方案。随着训练的进行,模型通过反向传播和优化算法逐步调整这些初始权重,最终收敛到一个有效拟合训练数据的局部极小点。