2. 深层神经网络(Deep Neural Networks)
2.1 深層神經網絡(Deep L-layer neural network)
有一個隱藏層的神經網絡,就是一個兩層神經網絡。當我們算神經網絡的層數時,我們不算輸入層,我們只算隱藏層和輸出層。
2.2 為什么使用深層表示?(Why deep representations?)
首先,深度網絡究竟在計算什么?如果在建一個人臉識別或是人臉檢測系統,深度神經網絡所做的事就是,當輸入一張臉部的照片,然后可以把深度神經網絡的第一層,當成一個特征探測器或者邊緣探測器。在這個例子里,會建一個大概有20個隱藏單元的深度神經網絡。隱藏單元就是這些圖里這些小方塊(第一張大圖),舉個例子,這個小方塊(第一行第一列)就是一個隱藏單元,它會去找這張照片里“|”邊緣的方向。那么這個隱藏單元(第四行第四列),可能是在找(“—”)水平向的邊緣在哪里。可以先把神經網絡的第一層當作看圖,然后去找這張照片的各個邊緣。可以把照片里組成邊緣的像素們放在一起看,然后它可以把被探測到的邊緣組合成面部的不同部分(第二張大圖)。比如說,可能有一個神經元會去找眼睛的部分,另外還有別的在找鼻子的部分,然后把這許多的邊緣結合在一起,就可以開始檢測人臉的不同部分。最后再把這些部分放在一起,比如鼻子眼睛下巴,就可以識別或是探測不同的人臉(第三張大圖)。
可以直覺上把這種神經網絡的前幾層當作探測簡單的函數,比如邊緣,之后把它們跟后幾層結合在一起,那么總體上就能學習更多復雜的函數。還有一個技術性的細節需要理解的是,邊緣探測器其實相對來說都是針對照片中非常小塊的面積。就像這塊(第一行第一列),都是很小的區域。面部探測器就會針對于大一些的區域,但是主要的概念是,一般你會從比較小的細節入手,比如邊緣,然后再一步步到更大更復雜的區域,比如一只眼睛或是一個鼻子,再把眼睛鼻子裝一塊組成更復雜的部分。
2.3 參數VS超參數(Parameters vs Hyperparameters)
如何尋找超參數的最優值?
走Idea—Code—Experiment—Idea這個循環,嘗試各種不同的參數,實現模型并觀察是否成功,然后再迭代。
今天的深度學習應用領域,還是很經驗性的過程,通常有個想法,比如可能大致知道一個最好的學習率值,可能說最好,我會想先試試看,然后你可以實際試一下,訓練一下看看效果如何。然后基于嘗試的結果你會發現,你覺得學習率設定再提高到0.05會比較好。如果你不確定什么值是最好的,你大可以先試試一個學習率,再看看損失函數J的值有沒有下降。然后你可以試一試大一些的值,然后發現損失函數的值增加并發散了。然后可能試試其他數,看結果是否下降的很快或者收斂到在更高的位置。你可能嘗試不同的并觀察損失函數這么變了,試試一組值,然后可能損失函數變成這樣,這個值會加快學習過程,并且收斂在更低的損失函數值上(箭頭標識),我就用這個值了。
總結
以上是生活随笔為你收集整理的2. 深层神经网络(Deep Neural Networks)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信收费的真相,你不可不知道!
- 下一篇: SYN_RECV的意思