当我们在谈深度学习时,到底在谈论什么(一)--转
原文地址:http://suanfazu.com/t/topic/13741
深度學習最近兩年在音頻分析,視頻分析,游戲博弈等問題上取得了巨大的成果。由于微軟,谷歌等科技巨頭的推動及應用上的可見突破,使得深度學習成為目前學術界和工業界的超熱門話題。包括國內很多公司也樂見其成,適時宣布自己的產品或算法也擁抱了深度學習。不過對于具體如何使用,達到了什么效果等問題諱莫如深。
事實上,關于深度學習的大量研究成果在上世紀已經完成,包括卷積神經網絡(CNN)、長短時記憶網絡(LSTM),多層網絡的表達能力等。宣稱自己在使用某個算法工具其實并不具備天然的正義性,如何能將工具用好,解決關鍵場景才是我們應該關心的問題。
為提升對非結構化數據的處理,玻森(bosonnlp.com)4內部也在開展深度學習的討論。接下來的一段時間,我們將不定期更新深度學習的討論 notes。
我們不談情懷,不討論人工智能是否要統治人類,也不論奇點是否臨近。我們就談點落地的深度學習基礎數學理論,及背后的幾何直觀。世界太大,認知有限,這點上我們遵從維特根斯坦的觀點,“凡能夠說的,都能夠說清楚;凡不能談論的,就應該保持沉默”。
什么是感知機
人類大腦的神經系統相當復雜,其具體的工作機制至今仍是前沿的生物課題。在1957年時由Cornell大學的學者 Frank Rosenblatt 博士所提出的感知機(Perceptron)模型可以認為是對人類神經系統的一個高度簡化概括:
其中w和b作為模型的參數。
Frank Rosenblatt 博士恐怕是史上對人工智能貢獻最大的心理學家。他的興趣不僅停留在從數學上抽象出感知機和提出相應的學習算法,還親自打造了下面這臺被稱之為Mark I Perceptron的“實體”感知機,其具備512個隱藏單元哦!
當加權求和輸入值時,感知機會與0做對比,以確定自己是否處于激發狀態。實際的神經元在人腦中數以百億計。上式中神經元所輸出的狀態非0即1,而實際在計算機所建立的模型中,往往將其泛化:
f為激活函數(activation function)。
神經網絡可以看做是感知機的一種泛化形式,通過遞歸嵌套及選擇不同的激活函數,我們可以不斷將原始數據x進行變換,或特征抽取。
通過對上述式子的嵌套,我們可以構造具有更為復雜表達能力的函數。如兩層嵌套形式:
注意到感知機實際上相當于采用Step函數作為激活函數。其他常用的激活函數有Sigmoid, Tanh, ReLU等。其中Sigmoid函數
在早期的神經網絡研究文獻中被廣泛使用。目前對于大多非結構化數據,人們發現分段線性(piece-wise linear)函數
具備更好的魯棒性,并能夠更快收斂。常見的激活函數可以參見下表。
常見的神經網絡類型
無環結構:
一層神經元的輸出作為下一層神經元的輸入,信息總是向前反饋。這一類型的神經網絡也叫 Feed-forward Nerual Network。卷積網絡(Convolutional Nerual Network)也包括在其中。
有環結構:
一層神經元的輸出可以作為當前神經元的輸入,即產生了反饋循環(feedback loop)。反饋環表示了神經網絡的內部狀態,使得網絡的輸出與之前的輸入數據相關。如果把時間維度展開的話,有環結構也相當于隨著時間走的無環結構。這一類型的神經網絡也叫 Recurrent Neural Network (RNN)。
隨機梯度下降
對于給定的網絡拓撲結構,具體網絡參數的確定其實是一個標準的優化問題。我們通過定義一個損失函數(cost function),來衡量當前神經網絡的輸出與我們期望的輸出之間的距離。
我們構造的 Net(x, w) 以 w 為參數的,x 為輸入的網絡的輸出值。而對 w 參數的尋找,在深度學習中最常用的是隨機梯度下降法(Stochastic Gradient Descent)。其基本思想仍然是讓變量沿著損失函數在目前參數的盡可能下降的方向進行調整
η?稱之為學習率,用以控制修改參數的激進程度。后面的討論中我們會提到,其實嚴格按照梯方向更新并無必要,只需要確保更新能夠降低損失函數即可。這個觀察與Liang Huang etc.在前些年所發表的Structured Perceptron with Inexact Search1可以進行類比。
如果我們能夠得到參數?w?的 Hessian 矩陣,可以規避選擇的問題,但對于只采用梯度這樣一階信息的優化方法,如何選擇學習率,是否能利用某個參數的歷史更新信息來估算Hessian矩陣等,都是比較有意思的研究問題。有興趣的朋友可以參考Schaul etc.的?No More Pesky Learning Rates。
轉載于:https://www.cnblogs.com/davidwang456/articles/5606999.html
總結
以上是生活随笔為你收集整理的当我们在谈深度学习时,到底在谈论什么(一)--转的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis之Oracle增删查改示例
- 下一篇: 当我们在谈深度学习时,到底在谈论什么(二