2017年8月23日 星期三

Weight initial for neural network

        正確的Weight initial 對Deep network 非常重要。只有1~2層時,weights 的初始化並不是太大問題,高斯分佈的標準差不要太大造成training 無法收斂就行。但當層數再四層以上,就不是這麼回事了,原因是每一層的運算,都會讓輸出值的分佈放大或是縮小(相對於輸入),所以愈到後面層,分佈範圍就會被放大愈多或是縮小愈多。下面為公式推導:X 為輸入,W為weights,S為輸出,n 為輸入層的neurons 個數

























這邊是假設輸入以及weight 都以0為平均,所以第3步的E(wi) 及 E(xi) 都是0 。可以看到輸出的分佈除了會被輸入的分佈影響外,還會被neurons 個數跟 weights 分佈影響。nVar(w) 過大,隨著層數會多,越發散。反之就愈來愈趨近於0 。