赞
踩
Environment
数据在神经网络模型的层与层之间传播,数据过大或或小都会使训练遇上麻烦。合理的参数初始化和 Normalization 能够使模型中数据分布合理,让训练能够顺利地进行。
PyTorch 中的 torch.nn.init
模块提供了十种初始化的方式,这里简单记录一下。
为改善梯度消失和爆炸的问题,需要保证神经网络中数据分布在合适的范围,这就是方差一致性。经典的 Xavier 和 kaiming 初始化都是从这个原则得来。
对于两个独立随机变量,它们乘积的方差为
D ( X Y ) = 方 差 的 定 义 E [ ( X Y − E ( X Y ) ) 2 ] = E [ X 2 Y 2 − 2 X Y E ( X Y ) + E 2 ( X Y ) ] = 期 望 的 线 性 性 质 E ( X 2 Y 2 ) − 2 E 2 ( X Y ) + E 2 ( X Y ) = E ( X 2 Y 2 ) − E 2 ( X Y ) D(XY) \overset{方差的定义}= E[(XY - E(XY))^2] \\ \ \\ = E[X^2 Y^2 - 2XY E(XY) + E^2(XY)] \\ \ \\ \overset{期望的线性性质}= E(X^2 Y^2) - 2E^2(XY) + E^2(XY) = E(X^2 Y^2) - E^2(XY) D(XY)=方差的定义E[(XY−E(XY))2] =E[X2Y2−2XYE(XY)+E2(XY)] =期望的线性性质E(X2Y2)−2E2(XY)+E2(XY)=E(X2Y2)−E2(XY)
因为,当 X, Y 相互独立时
E ( X Y ) = E ( X ) E ( Y ) , E ( X 2 Y 2 ) = E ( X 2 ) E ( Y 2 ) E(XY) = E(X) E(Y), E(X^2 Y^2) = E(X^2) E(Y^2) E(XY)=E(X)E(Y),E(X2Y2)=E(X2)E(Y2)
所以,
D ( X Y ) = E ( X 2 ) E ( Y 2 ) − [ E ( X ) E ( Y ) ] 2 D(XY) = E(X^2) E(Y^2) - [E(X)E(Y)]^2 D(XY)=E(X2)E(Y2)−[E(X)E(Y)]2
又因
E ( X 2 ) = D ( X ) + E 2 ( X ) , E ( Y 2 ) = D ( Y ) + E 2 ( Y ) E(X^2) = D(X) + E^2(X), E(Y^2) = D(Y) + E^2(Y) E(X2)=D(X)+E2(X),E(Y2)=D(Y)+E2(Y)<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。