去均值操作及初始化權重的作用

2021-07-31 23:50:52 字數 946 閱讀 8373

如果做過dnn的實驗,大家可能會發現在對資料進行預處理,例如白化或者zscore,甚至是簡單的減均值操作都是可以加速收斂的,例如下圖所示的乙個簡單的例子:

圖中紅點代表2維的資料點,由於影象資料的每一維一般都是0-255之間的數字,因此資料點只會落在第一象限,而且影象資料具有很強的相關性,比如第乙個灰度值為30,比較黑,那它旁邊的乙個畫素值一般不會超過100,否則給人的感覺就像雜訊一樣。由於強相關性,資料點僅會落在第一象限的很小的區域中,形成類似上圖所示的狹長分布。

而神經網路模型在初始化的時候,權重w是隨機取樣生成的,乙個常見的神經元表示為:relu(wx+b) = max(wx+b,0),即在wx+b=0的兩側,對資料採用不同的操作方法。具體到relu就是一側收縮,一側保持不變。

隨機的wx+b=0表現為上圖中的隨機虛線,注意到,兩條綠色虛線實際上並沒有什麼意義,在使用梯度下降時,可能需要很多次迭代才會使這些虛線對資料點進行有效的分割,就像紫色虛線那樣,這勢必會帶來求解速率變慢的問題。更何況,我們這只是個二維的演示,資料佔據四個象限中的乙個,如果是幾百、幾千、上萬維呢?而且資料在第一象限中也只是佔了很小的一部分區域而已,可想而知不對資料進行預處理帶來了多少運算資源的浪費,而且大量的資料外分割面在迭代時很可能會在剛進入資料中時就遇到了乙個區域性最優,導致overfit的問題。

這時,如果我們將資料減去其均值,資料點就不再只分布在第一象限,這時乙個隨機分介面落入資料分布的概率增加了多少呢?2^n倍!如果我們使用去除相關性的演算法,例如pca和zca白化,資料不再是乙個狹長的分布,隨機分介面有效的概率就又大大增加了。

不過計算協方差矩陣的特徵值太耗時也太耗空間,我們一般最多只用到z-score處理,即每一維度減去自身均值,再除以自身標準差,這樣能使資料點在每維上具有相似的寬度,可以起到一定的增大資料分布範圍,進而使更多隨機分介面有意義的作用。

對於權重初始化的研究

權重初始化對於神經網路來說十分重要,乙個好的權重初始化的方法能夠幫助神經網路更快的找到最優解決方案。之前在tensorflow的基本使用 1 建立簡單神經網路這篇筆記中提到使用截斷正態分佈的方法隨機初始化權重,在學習了weight initialization這門課後有了更直觀的理解。按照一般思路和...

初始化列表的作用

我糾結的問題都在primer上有很好的解答 之前突然想到,為什麼要存在冒號這種初始化方法,在google被牆,沒辦法只能求助於度娘。冒號這種初始化方法,也叫做,初始化列表,也就是變數初始化的時候呼叫的 意味著,在乙個類當中,乙個成員變數只能在初始化賦值。比如 const,比如引用 舉個例子 clas...

vector的初始化及常用操作

1.vector 的初始化 可以有五種方式 舉例說明如下 1 vectora 10 定義了10 個整型元素的向量 尖括號中為元素型別名,它可以是任何合法的資料型別 但沒有給出初值,其值是不確定的。2 vectora 10,1 定義了10 個整型元素的向量 且給出每個元素的初值為1 3 vectora...