第七章:网络优化与正则化(Part2)

2021/8/30 6:06:17

本文主要是介绍第七章:网络优化与正则化(Part2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

7.3 参数初始化

  神经网络的参数学习是一个非凸优化问题.当使用梯度下降法来进行优化网络参数时,参数初始值的选取十分关键,关系到网络的优化效率和泛化能力.

  梯度下降法需要在开始训练时给每一个参数赋一个初始值。

  1. 初始化为0 : 对称权重问题 所有参数为 0 $\longrightarrow$ 神经元的输出相同 $\longrightarrow$ BP梯度相同 $\longrightarrow$ 参数更新相同 $\longrightarrow$ 参数相同
  2. 初始化太小:梯度消失,使得Sigmoid型激活函数丟失非线性的能力
  3. 初始化太大:梯度爆炸,使得Sigmoid型激活函数变得饱和

  参数初始化的方式通常有以下三种:

  1. 预训练初始化:不同的参数初始值会收敛到不同的局部最优解.虽然这些局部最优解在训练集上的损失比较接*,但是它们的泛化能力差异很大.一个好的初始值会使得网络收敛到一个泛化能力高的局部最优解.通常情况下,一个已经在大规模数据上训练过的模型可以提供一个好的参数初始值,这种初始化方法称为预训练初始化(Pre-trained Initialization).预训练任务可以为监督学习或无监督学习任务.由于无监督学习任务更容易获取大规模的训练数据,因此被广泛采用.预训练模型在目标任务上的学习过程也称为精调(Fine-Tuning).
  2. 随机初始化:在线性模型的训练(比如感知器和 Logistic 回归)中,我们一般将参数全部初始化为 0.但是这在神经网络的训练中会存在一些问题.因为如果参数都为 0,在第一遍前向计算时,所有的隐藏层神经元的激活值都相同;在反向传播时,所有权重的更新也都相同,这样会导致隐藏层神经元没有区分性.这种现象也称为对称权重现象.为了打破这个*衡,比较好的方式是对每个参数都随机初始化(Random Initialization),使得不同神经元之间的区分性更好.      
  3. 固定值初始化:对于一些特殊的参数,我们可以根据经验用一个特殊的固定值来进行初始化.比如偏置(Bias)通常用 0 来初始化,但是有时可以设置某些经验值以提高优化效率.在 LSTM 网络的遗忘门中,偏置通常初始化为 1或 2,使得时序上的梯度变大.对于使用 ReLU 的神经元,有时也可以将偏置设为 0.01,使得 ReLU 神经元在训练初期更容易激活,从而获得一定的梯度来进行误差反向传播.

  虽然预训练初始化通常具有更好的收敛性和泛化性,但是灵活性不够,不能 在目标任务上任意地调整网络结构.因此,好的随机初始化方法对训练神经网络模型来说依然十分重要.这里我们介绍三类常用的随机初始化方法:基于固定方差的参数初始化、基于方差缩放的参数初始化和正交初始化方法.

7.3.1 基于固定方差的参数初始化

  一种最简单的随机初始化方法是从一个固定均值(通常为 0)和方差 $



这篇关于第七章:网络优化与正则化(Part2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程