有幾種類型?
在今天所使用的深度學習中,人工神經網絡有很多種不同的結構。典型的ANN中,每個神經元都與下一層的每個神經元相連接。這叫做前饋人工神經網絡(盡管如 此,ANN通常來說都是前饋的)。我們已經知道,通過將神經元與其他神經元按特定模式相連接,在處理一些特定情景的問題時,我們就會得出更好的結論。
1、遞歸神經網絡
遞歸神經網絡(RNN)的設計初衷是為了解決神經網絡不能基于過去知識做出決策的缺陷。典型的ANN已經在訓練中學會了基于文本做出決策,但是一旦它開始為實用做決策,這些決定之間就是彼此獨立的。
一個遞歸神經網絡
為什么我們會想要這樣的東西?好吧,想一想玩21點游戲。如果一開始你得到4和5,你就會知道2以下的牌都不在牌堆中。這種信息會幫助你決定是否要拿牌。 RNN在自然語言處理中十分有用,因為前文的字詞有助于理解文中其他詞語的含義。雖然有不同類型的實現方式,但是目的都是一樣的。我們想要保留信息。為了 達到這一目的,我們可以通過雙向遞歸神經網絡( bi-directional RNN)或執行一個能根據每次前饋來進行調整的遞歸隱藏層。如果你想學習更多有關RNN的知識,可以查閱這篇博 客:http://karpathy.github.io/2015/05/21/rnn-effectiveness/。
說到這里,就不得不提到記憶網絡( Memory Networks),這一概念是說,如果我們想要理解諸如電影或者書中那些構筑于彼此之上的事件時,就必須記住比一個RNN或LSTM(長短期記憶人工神經網絡,一種時間遞歸神經網絡)更多的信息。
Sam走進廚房。
Sam拿起蘋果。
Sam走進臥室。
蘋果掉到了地上。
問:蘋果在哪兒?
答:臥室里。
這是這篇論文(http://arxiv.org/pdf/1503.08895v5.pdf)中的例子。
2、卷積神經網絡
卷積神經網絡(CNN)有時被稱為LeNets(以Yann LeCun命名),是層間隨機相連的人工神經網絡。然而,以這樣的方式設置突觸是為了有助于減少需要優化的參數量。通過標記神經元連接的某種對稱性,你能 「重新使用」神經元以得到完全相同的副本,而不需要同等數量的突觸。由于CNN能識別出周圍像素的模式,因此它通常用于圖像處理。當你將某一像素與其周圍 的像素進行比較時,會包含冗余信息。由于存在對稱性,你可以壓縮類似信息。這聽起來像是CNN的完美情況,Christopher Olah也有一篇關于理解 CNNs和其他類型的ANNs的優質博客(http://colah.github.io/posts/2014-07-Conv-Nets- Modular/ )。還有一篇關于CNN的博客:http://www.wildml.com/2015/11/understanding- convolutional-neural-networks-for-nlp/ 。
3、強化學習
我想要探討的最后一種 ANN的類型是強化學習(Reinforcement Learning)。強化學習是一個專業術語,用來描述計算機在嘗試將某種回報最大化時所表現出來的行為,這意味著它本身不是一個人工神經網絡的結構。然 而,你能用強化學習或遺傳算法來構建你以前從沒想過要用的人工神經網絡結構。 YouTube用戶SethBling上傳的用強化學習系統來構建可以自己玩Mario游戲的人工神經網絡的視頻就是個很好的例子。
另一個強化學習的例子是DeepMind公司的視頻中展示的能教程序玩各種Atari游戲。
結論
現在,你應該對目前最先進的人工智能有了一定的了解。神經網絡正在驅動你能想到的幾乎所有事情,包括語言翻譯、動物識別、圖片捕捉、文本摘要等等。在未來,你將越來越多地聽到它的名字。
評論
查看更多