[Xavier] Understanding the difficulty of training deep feedforward neural networks

Glorot X, Bengio Y. Understanding the difficulty of training deep feedforward neural networks[C]. international conference on artificial intelligence and statistics, 2010: 249-256.

@article{glorot2010understanding,
title={Understanding the difficulty of training deep feedforward neural networks},
author={Glorot, Xavier and Bengio, Yoshua},
pages={249--256},
year={2010}}

本文提出了Xavier参数初始化方法.

主要内容

在第i=1,,d层:

si=ziWi+bizi+1=f(si),

其中zi是第i层的输入, si是激活前的值, f()是激活函数(假设其在0点对称, 且f(0)=1 如tanh).

Var(zi)=nlVar(wizi),

0附近近似成立(既然f(0)=1), 其中zi,wi,分别是zi,Wi的某个元素, 且假设这些{wi}之间是独立同分布的, wi,zi是相互独立的, 进一步假设E(wi)=0,E(x)=0(x是输入的样本), 则

Var(zi)=nlVar(wi)Var(zi),

0点附近近似成立.

Var(zi)=Var(x)i=0i1niVar(wi)

其中ni表示第i层输入的节点个数.

根据梯度反向传播可知:

(2)Costski=f(ski)Wk,i+1Costsi+1

(3)Costwl,ki=zliCostski.

于是

(6)Var[Costski]=Var[Costsd]i=idni+1Var[wi],

Var[Costwi]=i=0i1niVar[wi]i=idni+1Var[wi]×Var(x)Var[Costsd],

当我们要求前向进程中关于zi的方差一致, 则

(10)i,niVar[wi]=1.

当我们要求反向进程中梯度的方差Costsi一致, 则

(11)ini+1Var[wi]=1.

本文选了一个折中的方案

Var[wi]=2ni+1+ni,

并构造了一个均匀分布, wi从其中采样

wiU[6ni+1+ni,6ni+1+ni].

文章还有许多关于不同的激活函数的分析, 如sigmoid, tanh, softsign... 这些不是重点, 就不记录了.

posted @   馒头and花卷  阅读(420)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2019-04-23 Robust PCA via Outlier Pursuit
点击右上角即可分享
微信分享提示