Glorot初始化方法
Kaiming初始化
Batch Normalization
初始化器的推导依赖一下公式的推导
推导:
其中ni表示输入个数。
根据概率统计知识我们有下面的方差公式:
特别的,当我们假设输入和权重都是0均值时(目前有了BN之后,这一点也较容易满足),上式可以简化为:
进一步假设输入x和权重w独立同分布,则有:
于是,为了保证输入与输出方差一致,则应该有:
对于一个多层的网络,某一层的方差可以用累积的形式表达:
特别的,反向传播计算梯度时同样具有类似的形式:
综上,为了保证前向传播和反向传播时每一层的方差一致,应满足:
但是,实际当中输入与输出的个数往往不相等,于是为了均衡考量,最终我们的权重方差应满足:
学过概率统计的都知道 [a,b] 间的均匀分布的方差为:
(这个可以用一维区间【a,b】积分算)以上就是Glorot-Xavier 初始化过程,实际用到的就是最后面这个公式
MSRA -kaiming 初始化推导如下:
首先,用下式表示第L层卷积:
则其方差为:(假设x和w独立,且各自的每一个元素都同分布,即下式中的n_l表示输入元素个数,x_l和w_l都表示单个元素)
当权重W满足0均值时,上述方差可以进一步写为:
对于ReLU激活函数,我们有:(其中f是激活函数)
带入之前的方差公式则有:
由上式易知,为了使每一层数据的方差保持一致,则权重应满足:
的不同,就是它是只考虑前向传播或者只考虑反向传播的,然后使用高斯分布,而没有综合考虑
以上就是深度学习 参数初始化器的过程推导
写在最后,虽然是在实际用的时候是只用最后的公式,但是推导过程才是我们算法工作者关注的,因为最后公式是给施工用的
网友评论