均值方差估计
输入为x,是一个(B,Cin)的矩阵。权重是w,是一个(Cin,Cout,w,h)的矩阵。本篇文章是估计z = x*w的分布。当估计出z的均值方差后,就可以利用量化点偏移技术,省略BN层。
假设模型为:
输入x为relu的输出,假设x中每一个随机变量 X 符合N(0,1)的半波高斯分布;权重w中的每一个随机变量 W 符合N( μ w \mu_w μw, σ w 2 \sigma_w^2 σw2)的全波高斯分布。另外假设x,w中的随机变量相互独立同分布,那么 z = x ∗ w = X 1 W 1 + X 2 W 2 + . . . . X C i n W C i n = C i n X W z = x * w = X_1W_1+X_2W_2+....X_{C_{in}}W_{C_{in}}=C_{in}XW z=x∗w=X1W1+X2W2+....XCinWCin=CinXW的均值可以用下面公式计算:
E ( z ) = C i n ∗ 1 2 π ∫ 0 ∞ x e − x 2 2 d x ∗ 1 2 π σ w ∫ − ∞ ∞ w e − ( w − μ w ) 2 2 σ w 2 d w E(z) = C_{in}*\frac {1}{\sqrt{2\pi}}\int_{0}^{\infty}xe^{-\frac{x^{2}}{2}}dx *\frac{1}{\sqrt{2\pi}\sigma_{w}}\int_{-\infty}^{\infty}we^{\frac{-(w-\mu_w)^{2}}{2\sigma^2_w}}dw E(z)=Cin∗2π1∫0∞xe−2x2dx∗2πσw1∫−∞∞we2σw2−(w−μw)2dw
第一项积分为A,第二项积分为B
A = 1 2 2 π ∫ 0 ∞ e − x 2 2 d x 2 A = \frac{1}{2\sqrt{2\pi}}\int_0^{\infty}e^{-\frac{x^{2}}{2}}dx^2 A=22π1∫0∞e−2x2dx2
= 1 2 2 π ∫ 0 ∞ e − x 2 d x =\frac{1}{2\sqrt{2\pi}}\int_0^{\infty}e^{-\frac{x}{2}}dx =22π1∫0∞e−2xdx
= 1 2 π =\sqrt{\frac{1}{2\pi}} =2π1
第二项积分:
B = σ w 2 2 π ∗ σ w [ ∫ − ∞ ∞ ( w − u w σ w ) e − ( w − μ w ) 2 2 π σ w 2 d w − u w σ w + ∫ − ∞ ∞ μ w σ w e − ( w − μ w ) 2 2 π σ w 2 d w − u w σ w ] B=\frac{\sigma_{w}^2}{\sqrt{2\pi}*\sigma_w} [{\int}_{-\infty}^{\infty}(\frac{w-u_w}{\sigma_w})e^{\frac{-(w-\mu_w)^{2}}{2\pi\sigma^2_w}}d\frac{w-u_w}{\sigma_w} +\int_{-\infty}^{\infty}\frac{\mu_w}{\sigma_w}e^{\frac{-(w-\mu_w)^{2}}{2\pi\sigma^2_w}} d\frac{w-u_w}{\sigma_w}] B=2π∗σwσw2[∫−∞∞(σww−uw)e2πσw2−(w−μw)2dσww−uw+∫−∞∞σw