为什么使用 sqrt(6) 来计算 epsilon 以进行神经网络的随机初始化?

机器算法验证 机器学习 神经网络 随机生成
2022-03-25 03:48:40

Andrew Ng 的 Coursera 机器学习课程的第 5 周讲义中给出了以下公式来计算用于用随机值初始化ϵΘ

用于计算随机初始化的 epsilon-init 的论坛

练习中,进一步澄清:

选择的一种有效策略 是基于网络中的单元数量。的一个不错的选择 ,其中相邻的层中的单元数ϵinitϵinitϵinit=6LinLoutLin=slLout=sl+1Θ(l)

为什么这里使用常数为什么不6576.1

1个回答

我相信这是 Xavier归一化初始化(在几个深度学习框架中实现,例如 Keras、Cafe 等),来自Xavier Glorot 和 Yoshua Bengio的了解训练深度前馈神经网络的难度。

请参阅相关论文中的方程 12、15 和 16:它们旨在满足方程 12:

Var[Wi]=2ni+ni+1

中均匀 RV 的方差(均值为零,pdf =所以方差[ϵ,ϵ]ϵ2/31/(2ϵ)=ϵϵx212ϵdx