文档详情

深度学习案例教程 教案8.2权重初始化原理.docx

发布:2025-03-01约2.97千字共6页下载文档
文本预览下载声明

02权重初始化原理

(p7)我们来学习第二节权重初始化。那什么是权重初始化呢?在深度学习中,权重初始化是非常重要的一步,适当的权重初始化可以帮助模型更快的收敛。并获得更好的性能。错误的权重初始化可能导致,梯度消失或梯度爆炸,使模型无法学习,无法有效的表示,从而影响模型的性能和训练效果。

因此,了解权重初始化的原理和技巧,是构建和训练深度学习模型的关键知识。权重初始化是指在神经网络中,设置初始权重的过程。每个神经元的权重值起初是随机初始化的,并且这些初始值可以对模型的训练和收敛过程产生重要影响。正确的权重初始化可以帮助模型在训练过程中更好的优化和适应数据。

下面我们来看一下几种初始化方法

(p8)第一种零初始化。神经网络权重开始是没有规定的,后面通过数据不断的更新,微调,才能固定下来。既然开始不知道,那能不能就设为0呢?我们通过这个例子看一下,这个图中第一层是输入层,输入数据维度是3,然后通过线性计算得出第二层的值a1,??a2,a3.而权重就是在这个线性计算中起到作用,具体就是矩阵乘法,如果权重都是0,那么大家想一下,a1,??a2,a3这几个值会是多少呢。因为系数都是0,计算出来的a都会是0,因为a1就等于0*x1+0*x2+0*x3=0,a2,a3也一样。无论输入的数据样本值为多少,第二层的值就都会变成0,这就是很大的问题了。那可以换成别的数字吗,比如说全是1,大家想一下,如果全部都一样,无论是什么数字,只要是一样的,那么第二层的值也都会全部一样,那么后面的计算梯度更新后,这些值也还是会全部一样,造成对称的效果,就不能达到训练的效果了。

总结来说,0初始化有以下几个问题。

对称性问题:零初始化将所有的权重和偏置初始化为零,导致所有的神经元在前向传播中,执行相同的线性变换,产生相同的输出。这会导致网络中的神经元,失去独立学习的能力,无法区分和表示不同的特征。网络的表达能力受到限制,难以捕捉复杂的数据模式。

梯度消失问题:在反向传播过程中,梯度是通过链式法则逐层传递的。当权重被初始化为零时,梯度在反向传播中会变得非常小,趋近于零。这导致梯度无法有效地传播回较早的层,使得这些层的权重更新几乎没有贡献,从而导致梯度消失的问题。梯度消失会导致网络难以学习深层结构和复杂的函数关系。

缺乏多样性:零初始化使得网络中的所有神经元具有相同的初始状态。这缺乏多样性,限制了网络对不同特征的学习能力。神经元之间的权重无法以不同的方式调整,无法根据输入数据的特点进行适应性的学习。

慢速收敛:由于对称性问题和梯度消失问题,零初始化可能导致网络的收敛速度较慢。网络需要更长的时间来学习和调整权重,以适应训练数据的模式和特征。

(p9)既然0初始化效果不好,那我们随机一些数字初始化怎么样呢?我们这里做个小实验,在多层深度神经网络中,一个正向传播仅需要在每层对该层的输入和权重矩阵执行连续的矩阵乘法。这样每层的乘积成为后续层的输入,依此类推。我们假设有一个没有激活函数的简单的100层网络,就是我们代码中循环100词的意思,并且每层都有一个包含这层权重的矩阵a。为了完成单个正向传播,我们必须对每层输入和权重进行矩阵乘法,总共100次连续的矩阵乘法。我们看到开始的x向前传播100次以后,打印处理的均值和标准差已经是无穷或者nan了。通过右边的例子2,我们再做一次试验,向前传播,如果标准差是nan,就退出循环,我们可以看到,一共传播了16层,注意因为是随机数,大家试验结果可能不同,但是大概也是10几20层左右,就会是nan了,也就是说,对于网络层数稍微多一点的网络,这也不是一个很好的方法。

总结来说,随机初始化相对于0初始化,还是有很大改善的,优点有这几点:

1打破对称性:当所有参数具有相同的初始值时,神经元之间的对称性将导致它们产生相同的输出和相同的梯度。通过随机初始化参数,每个神经元的初始权重值都是不同的,从而打破了对称性。这有助于网络学习到更丰富的特征表示,提高网络的表达能力。

2增加模型的灵活性:随机初始化允许神经网络拥有更大的参数空间,这意味着网络可以表示更复杂的函数。通过增加参数的随机性,网络可以更好地适应不同的数据分布和复杂的模式。这样,网络可以更好地拟合训练数据,并具备更强的泛化能力。

3避免陷入局部最小值:当所有参数具有相同的初始值时,网络可能会陷入一个固定的模式,无法跳出局部最小值。随机初始化打破了这种固定模式,使得网络更有可能找到更好的全局最小值。通过在不同的初始状态下开始训练,网络可以探索更广泛的优化空间。

当然,他也存在很大的缺点

1参数选择的不确定性问题:由于随机初始化的存在,不同的随机初始化可能导致不同的模型结果。这使得网络的训练结果具有一定的不确定性,并且可能需要多次运行以获得更稳定的结果。选择合适的初始化方法和参数范围对于网络的性

显示全部
相似文档