1.maxout networks
研究maxout的動機是在研究用DehazeNet去霧時,發現其中有一層網絡是它,是以想把它解釋清楚。
以下是二郎的了解
maxout=隐含層+激活函數
隐含層
激活函數
好了,咱們可以分開讨論了——
隐含層,直覺的感覺是有把很多直線方程寫為矩陣形式,這隻是一個表達的不同,實質還是很多直接方程。
1.一堆直線方程放在一起
2.同一個輸入節點:x相同
3.同一個輸出節點:幾個z的運算
同一輸出節點的結果,其最簡單的形式為是多個神經元輸出結果的加和
輸出=z1+z2+z3+……zn
4.比直接加和複雜一點:激活函數
maxout 的激活函數為
找到最大的z作為輸出,在圖中會發現
随着x的變化,最大的z落在向下凸的折線上,如果我們的線再密一下(隐含層神經元再多一些),折線就可以近似為曲線。
maxout networks可以實作曲線的拟合,在特征提取中有較好的應用
類似激活函數,但不是激活函數
多個神經元的輸入并未進行加和(藍色圓形),再到激活函數,而是直接在藍色圓形的位置做了取最大值的處理。
這裡也可以看出,激活函數是在資料加和後才起的作用,下圖能很好地說明這一點。
2.ReLU激活函數
既然講到了激活函數,就捎帶着講一下ReLU,這個激活函數挺有意思
最初未改進的ReLU對于輸入的值小于0的全為0,輸入值大于0的正常輸出
換句話說:它能幹掉一部分神經元,不讓他們參加到運算中。
這裡可能會問了,訓練的第一次被幹掉了,第二次沒被幹掉,第三次又幹掉了……這個有啥用?
二郎小課堂開課了(有異議可以留言):
深度學習是一個機率統計問題
對于所有輸入的特征來說,總有那麼一些輸入對我們的目的沒有任何貢獻,他們也就很榮幸地貢獻值小于了0,或者接近于0,這些有時候還不在少數,他們的存在大大增加了我們的計算成本。雖然訓練時不會每次這些貢獻小的都會被ReLU剔除,但是它們被剔除的機率較大,是以整體的網絡也逐漸向着這些特征直接被剔除的情況靠攏(w和b不斷變更),讓這些特征更容易出現加和小于等于0的情況。