机器学习:我们为什么要参数初始化

机器学习:我们为什么要参数初始化

为什么要初始化?
在这里插入图片描述

上图是一个神经网络的基本结构,深度学习的初始化参数指的是在网络训练之前,对各个节点的权重偏置进行初始化的过程,很多时候我们以为这个初始化是无关紧要的,不需要什么讲究,但是实际上,一个参数的初始化关系到网络能否训练出好的结果或者是以多快的速度收敛,这都是至关重要的,有时候因为参数初始化的缘故,甚至得不到好的训练结果。

我们可以先举一个栗子:
在这里插入图片描述

我们知道神经网络层中会有激活函数,假设当前激活函数为sigmoid激活函数。当x的绝对值变大时,函数值越来越平滑,趋于饱和,这个时候函数的导数趋于0,例如,在x=2时,函数的导数约为1/10,而在x=10时,函数的导数已经变成约为1/22000,也就是说,激活函数的输入是10的时候比2的时候神经网络的学习速率要慢2200倍!(步长相同的情况下,越陡,下降的速度越快)。

为了让神经网络学习得快一些,我们希望激活函数sigmoid的导数较大。我们知道,一个神经元的输入是前一层神经元的输出的加权和。因此,我们可以通过控制权重参数初始值的范围,使得神经元的输入落在我们需要的范围内,以便梯度下降能够更快的进行。
这就是我们要做初始化的原因。
传送门,本文的参考文献来源
关于初始化的方法有很多,根据我们上面的描述,我们根据不同的激活函数,会选择不同的初始化方法。
也许路线不同,但是目标一致:为了让函数可以更加高效的去学习。

发布了64 篇原创文章 · 获赞 25 · 访问量 9915

猜你喜欢

转载自blog.csdn.net/LEEANG121/article/details/102961837