神经网络之Initialization

1、前言

    参考文献:https://zhuanlan.zhihu.com/p/25110150

    以及:https://arxiv.org/pdf/1702.08591.pdf   https://arxiv.org/pdf/1511.06422.pdf

    神经网络参数众多,权值w的初始化对网络训练影响很大,好的初始化可以加快网络训练的速度,也有可能可以使得网络收敛到更小的误差点。前面学习的时候我们使用了服从(0,1)正态分布的随机初始化方法,网络也基本可以用,使用正态分布的原因是均值为0的正态分布能够让大部分的参数接近0,能加速训练速度。

    一个极端的情况就是,w全部使用0来初始化,这个是行不通的,原因是每个神经元的参数都一样的话训练过程也完全一样,所以每个神经元的功能也完全一样,设置再多的层数、每层神经元再多也没有任何作用。同样,如果神经元的参数w全部初始化为相同的值,得到的效果也一样。这就是w需要随机初始化的原因。

2、Xavier initialization和He Initialization

    吴恩达课程中提到的初始化方法有Xavier initialization和He Initialization两种方法。在保证初始化为随机初始化的前提下,Xavier initialization另初始化的权值w服从(0,sqrt(1./layers_dims[l-1]))的正态分布,而He Initialization则另初始的权值w服从(0,sqrt(2./layers_dims[l-1]))的正态分布,十分相似。

    parameters['W' + str(l)] = np.random.randn(layers_dims[l], layers_dims[l-1]) * np.sqrt(2. / layers_dims[l-1])

3、效果比较

 (1)zero Initialization

    神经网络之Initialization_第1张图片

神经网络之Initialization_第2张图片

    训练没有任何进展,没有看到优化

(2)random Initialization

神经网络之Initialization_第3张图片

神经网络之Initialization_第4张图片

(3)He Initialization

神经网络之Initialization_第5张图片

神经网络之Initialization_第6张图片

    可以看到不仅最后的效果好,而且损失曲线平滑。



你可能感兴趣的:(机器学习)