人工智能/机器学习基础知识——参数初始化

参数初始化

预训练初始化

Pre-trained Initialization

固定值初始化

  • 对于一些特殊的参数,例如偏置(Bias)可以用一些经验固定值来初始化

随机初始化

Random Initialization

  • 为什么不能将参数简单的全部初始化为0?

    导致对称权重问题

    • 假设神经网络 y = f ( x ) y=f(x) y=f(x),其中包含关于参数 w 1 , w 2 , . . . w_1, w_2, ... w1,w2,...的一次项,二次项等等,以及一个常数项。此时若将参数初始化为0,那么第一次反向传播到各参数的梯度都等于相同的常数,更新后的各新参数值也都是一样的。但在第二次反向传播之后,由于参数的不同幂次,各参数更新的梯度就有所不同。

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

Fixed Variance

  • 高斯分布初始化:使用一个高斯分布 N ( 0 , σ 2 ) N(0, σ^2) N(0,σ2)对每个参数进行随机初始化

  • 均匀分布初始化:在一个给定的区间 [ − r , r ] [-r, r] [r,r]内采用均匀分布来初始化参数

    • 假设随机变量 x x x在区间 [ a , b ] [a, b] [a,b]内均匀分布,则其方差为

      var ⁡ ( x ) = ( b − a ) 2 12 \operatorname{var}(x)=\frac{(b-a)^{2}}{12} var(x)=12(ba)2
      因此,若使用区间为 [ − r , r ] [-r, r] [r,r]的均匀分布来采样,并满足 v a r ( x ) = σ 2 var(x) = σ^2 var(x)=σ2时,则 r r r的取值为
      r = 3 σ 2 r=\sqrt{3 \sigma^{2}} r=3σ2

  • 一般配合逐层归一化使用

基于方差缩放的参数初始化

Variance Scaling

  • 根据神经元的连接数量来自适应地调整初始化分布的方差
Xavier Initialization

Glorot Initialization

  • 核心思想:尽可能保持每个神经元的输入和输出方差一致

  • 推导流程

    • 假设在某神经网络中,第 l l l层的一个神经元为 a ( l ) a^{(l)} a(l),其接收前一层的 M l − 1 M_{l-1} Ml1个神经元的输出 a i ( l − 1 ) , 1 ≤ i ≤ M l − 1 a_i^{(l-1)}, 1 \leq i \leq M_{l-1} ai(l1),1iMl1

    a ( l ) = f ( ∑ i = 1 M l − 1 w i ( l ) a i ( l − 1 ) ) a^{(l)}=f\left(\sum_{i=1}^{M_{l-1}} w_{i}^{(l)} a_{i}^{(l-1)}\right) a(l)=f(i=1Ml1wi(l)ai(l1))
    其中, f ( ⋅ ) f(·) f()为激活函数, w i ( l ) w_i^{(l)} wi(l)为参数, M l − 1 M_{l-1} Ml1为第 l − 1 l-1 l1层神经元个数,这里暂时假定激活函数为恒等函数,即 f ( x ) = x f(x)=x f(x)=x

    • 假设 w i ( l ) w_i^{(l)} wi(l) a i ( l − 1 ) a_i^{(l-1)} ai(l1)的均值都为0,并且互相独立,则 a ( l ) a^{(l)} a(l)的均值为

    E [ a ( l ) ] = E [ ∑ i = 1 M l − 1 w i ( l ) a i ( l − 1 ) ] = ∑ i = 1 M l − 1 E [ w i ( l ) ] E [ a i ( l − 1 ) ] = 0 \mathbb{E}\left[a^{(l)}\right]=\mathbb{E}\left[\sum_{i=1}^{M_{l-1}} w_{i}^{(l)} a_{i}^{(l-1)}\right]=\sum_{i=1}^{M_{l-1}} \mathbb{E}\left[w_{i}^{(l)}\right] \mathbb{E}\left[a_{i}^{(l-1)}\right]=0 E[a(l)]=E[i=1Ml1wi(l)ai(l1)]=i=1Ml1E[wi(l)]E[ai(l1)]=0

    • a ( l ) a^{(l)} a(l)的方差为

    var ⁡ ( a ( l ) ) = var ⁡ ( ∑ i = 1 M l − 1 w i ( l ) a i ( l − 1 ) ) = ∑ i = 1 M l − 1 var ⁡ ( w i ( l ) ) var ⁡ ( a i ( l − 1 ) ) = M l − 1 var ⁡ ( w i ( l ) ) var ⁡ ( a i ( l − 1 ) ) \begin{aligned} \operatorname{var}\left(a^{(l)}\right) &=\operatorname{var}\left(\sum_{i=1}^{M_{l-1}} w_{i}^{(l)} a_{i}^{(l-1)}\right) \\ &=\sum_{i=1}^{M_{l-1}} \operatorname{var}\left(w_{i}^{(l)}\right) \operatorname{var}\left(a_{i}^{(l-1)}\right) \\ &=M_{l-1} \operatorname{var}\left(w_{i}^{(l)}\right) \operatorname{var}\left(a_{i}^{(l-1)}\right) \end{aligned} var(a(l))=var(i=1Ml1wi(l)ai(l1))=i=1Ml1var(wi(l))var(ai(l1))=Ml1var(wi(l))var(ai(l1))
    也就是说,经过一层网络后,方差被缩放了 M l − 1 var ⁡ ( w i ( l ) ) M_{l-1} \operatorname{var}\left(w_{i}^{(l)}\right) Ml1var(wi(l))倍。为了保持方差一致,令缩放倍数为1,即
    var ⁡ ( w i ( l ) ) = 1 M l − 1 \operatorname{var}\left(w_{i}^{(l)}\right)=\frac{1}{M_{l-1}} var(wi(l))=Ml11
    同理,为了使在反向传播中,误差也不被缩放太剧烈,故
    var ⁡ ( w i ( l ) ) = 1 M l \operatorname{var}\left(w_{i}^{(l)}\right)=\frac{1}{M_{l}} var(wi(l))=Ml1
    同时考虑前向与反向传播,作为折中,可设置
    var ⁡ ( w i ( l ) ) = 2 M l − 1 + M l \operatorname{var}\left(w_{i}^{(l)}\right)=\frac{2}{M_{l-1}+M_{l}} var(wi(l))=Ml1+Ml2

  • 在计算出参数的理想方差后,可以通过高斯分布或均匀分布来随机初始化参数

    var ⁡ ( w i ( l ) ) = 2 M l − 1 + M l \operatorname{var}\left(w_{i}^{(l)}\right)=\frac{2}{M_{l-1}+M_{l}} var(wi(l))=Ml1+Ml2
    M l M_l Ml代表第 l l l层神经元个数(上式假设激活函数为恒等函数,但同样适用于Sigmoid或Tanh,只不过要乘一个缩放因子)

    • 高斯分布: N ( 0 , 2 M l − 1 + M l ) \mathcal{N}\left(0, \frac{2}{M_{l-1}+M_{l}}\right) N(0,Ml1+Ml2)

    • 均匀分布:区间 r r r 6 M l − 1 + M l \sqrt{\frac{6}{M_{l-1}+M_{l}}} Ml1+Ml6

He Initialization

Kaiming Initialization

  • 当第 l l l层神经元使用ReLU激活函数时,通常有一半的神经元输出为0,因此其分布的方差也近似为使用恒等函数时的一半,这样只考虑前向传播时,参数的理想方差为

    var ⁡ ( w i ( l ) ) = 2 M l − 1 \operatorname{var}\left(w_{i}^{(l)}\right)=\frac{2}{M_{l-1}} var(wi(l))=Ml12

    • 高斯分布: 2 M l − 1 \frac{2}{M_{l-1}} Ml12

    • 均匀分布:区间 r = 6 M l − 1 r=\sqrt{\frac{6}{M_{l-1}}} r=Ml16

在这里插入图片描述

正交初始化

Orthogonal Initialization

  • 核心思想:由于采样的随机性,采样出的权重矩阵仍可能存在梯度消失或梯度爆炸问题。为了避免在训练之初就出现梯度消失或梯度爆炸,我们希望误差项在反向传播中具有范数保持性(Norm-Preserving)

  • 流程

    • 用均值为0,方差为1的高斯分布初始化权重矩阵

    • 用奇异值分解得到两个正交矩阵,并使用其中一个作为权重矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值