深度 關於人工神經網絡,你應該知道的一切都在這裡了

2021-02-25 機器之心

來自medium

作者:Aaron

機器之心編譯出品

參與:趙雲峰,孟婷,汪汪

對人工智慧領域來說,2015年是值得紀念的一年。不僅計算機「學」得更多更快了,我們也懂得了如何改進計算機系統。一切都在步入正軌,因此,我們正目睹著前所未有的重大進步:我們有了能用圖片來講故事的程序,有了無人駕駛汽車,甚至有了能夠創作藝術的程序。如果你想要了解2015年的更多進展,請一定要讀一讀這篇文章。AI技術已逐步成為許多技術的核心,所以,理解一些常用術語和工作原理成為了一件很重要的事。

人工智慧的很多進步都是新的統計模型,其中絕大多數來自於一項稱作「人工神經網絡」(artificial neural networks)的技術,簡稱ANN。這種技術十分粗略地模擬了人腦的結構。值得注意的是,人工神經網絡和神經網絡是不同的。很多人為了方便起見而把「人工神經網絡」中的人工二字省略掉,這是不準確的,因為使用「人工」這個詞正是為了與計算神經生物學中的神經網絡相區別。以下便是真實的神經元和神經突觸。


我們的ANN中有稱作「神經元」的計算單元。這些人工神經元通過「突觸」連接,這裡的「突觸」指的是權重值。這意味著,給定一個數字,一個神經元將執行某種計算(例如一個sigmoid函數),然後計算結果會被乘上一個權重。如果你的神經網絡只有一層,那麼加權後的結果就是該神經網絡的輸出值。或者,你也可以配置多層神經元,這就是深度學習的基礎概念。

人工神經網絡不是一個新概念。事實上,它們過去的名字不叫神經網絡,它們最早的狀態和我們今天所看到的也完全不一樣。20世紀60年代,我們把它稱之為感知機(perceptron),是由McCulloch-Pitts神經元組成。我們甚至還有了偏差感知機。最後,人們開始創造多層感知機,也就是我們今天通常聽到的人工神經網絡。


一個簡單的多層感知機

如果神經網絡開始於20世紀60年代,那為什麼它們直到今天才流行起來?這是個很長的故事,簡單來說,有一些原因阻礙了ANN的發展。比如,我們過去的計算能力不夠,沒有足夠多的數據去訓練這些模型。使用神經網絡會很不舒服,因為它們的表現似乎很隨意。但上面所說的每一個因素都在變化。如今,我們的計算機變得更快更強大,並且由於網際網路的發展,我們可使用的數據多種多樣。

上面我提到了運行計算的神經元和神經突觸。你可能會問:「它們如何學習要執行何種計算?」從本質上說,答案就是我們需要問它們大量的問題,並提供給它們答案。這叫做有監督學習。藉助於足夠多的「問題-答案」案例,儲存在每個神經元和神經突觸中的計算和權值就能慢慢進行調整。通常,這是通過一個叫做反向傳播(backpropagation)的過程實現的。


一個簡單的反向傳播算法

想像一下,你在沿著人行道行走時看到了一個燈柱,但你以前從未見過它,因此你可能會不慎撞到它並「哎呦」慘叫一聲。下一次,你會在這個燈柱旁邊幾英寸的距離匆匆而過,你的肩膀可能會碰到它,你再次「哎呦」一聲。直到第三次看到這個燈柱,你會遠遠地躲開它,以確保完全不會碰到它。但此時意外發生了,你在躲開燈柱的同時卻撞到了一個郵箱,但你以前從未見過這個郵箱,你徑直撞向它——「燈柱悲劇」的全過程又重現了。這個例子有些過度簡化,但這實際上就是反向傳播的工作原理。一個人工神經網絡被賦予多個類似案例,然後它試著得出與案例答案相同的答案。當它的輸出結果錯誤時,這個錯誤會被重新計算,每個神經元和神經突觸的值會通過人工神經網絡反向傳播,以備下次計算。此過程需要大量案例。為了實際應用,所需案例的數目可能達到數百萬。

既然我們理解了人工神經網絡以及它們的部分工作原理,我們可能會想到另外一個問題:我們怎麼知道我們需要多少神經元?為什麼前文要用粗體標出「多層」一詞?其實,每層人工神經網絡就是一個神經元的集合。在為ANN輸入數據時我們有輸入層,同時還有許多隱藏層,這正是魔法誕生之地。最後,我們還有輸出層,ANN最終的計算結果放置於此供我們使用。



一個層級本身是神經元的集合。在多層感知機的年代,我們起初認為一個輸入層、一個隱藏層和一個輸出層就夠用了。那時是行得通的。輸入幾個數字,你僅需要一組計算,就能得到結果。如果ANN的計算結果不正確,你再往隱藏層上加上更多的神經元就可以了。最後我們終於明白,這麼做其實只是在為每個輸入和輸出創造一個線性映射。換句話說,我們了解了,一個特定的輸入一定對應著一個特定的輸出。我們只能處理那些此前見過的輸入值,沒有任何靈活性。這絕對不是我們想要的。

如今,深度學習為我們帶來了更多的隱藏層,這是我們如今獲得了更好的ANN的原因之一,因為我們需要數百個節點和至少幾十個層級,這帶來了亟需實時追蹤的大量變量。並行程序的進步也使我們能夠運行更大的ANN批量計算。我們的人工神經網絡正變得如此之大,使我們不能再在整個網絡中同時運行一次迭代。我們需要對整個網絡中的子集合進行批量計算,只有完成了一次迭代,才可以應用反向傳播。

在今天所使用的深度學習中,人工神經網絡有很多種不同的結構。典型的ANN中,每個神經元都與下一層的每個神經元相連接。這叫做前饋人工神經網絡(儘管如此,ANN通常來說都是前饋的)。我們已經知道,通過將神經元與其他神經元按特定模式相連接,在處理一些特定情景的問題時,我們就會得出更好的結論。

遞歸神經網絡(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)中的例子。

卷積神經網絡(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/ 。

我想要探討的最後一種 ANN的類型是強化學習(Reinforcement Learning)。強化學習是一個專業術語,用來描述計算機在嘗試將某種回報最大化時所表現出來的行為,這意味著它本身不是一個人工神經網絡的結構。然而,你能用強化學習或遺傳算法來構建你以前從沒想過要用的人工神經網絡結構。 YouTube用戶SethBling上傳的用強化學習系統來構建可以自己玩Mario遊戲的人工神經網絡的視頻就是個很好的例子。


另一個強化學習的例子是DeepMind公司的視頻中展示的能教程序玩各種Atari遊戲。

強化學習

現在,你應該對目前最先進的人工智慧有了一定的了解。神經網絡正在驅動你能想到的幾乎所有事情,包括語言翻譯、動物識別、圖片捕捉、文本摘要等等。在未來,你將越來越多地聽到它的名字。

©本文由機器之心原創編譯,轉載請聯繫本公眾號獲得授權

✄---

機器之心是Comet Labs旗下的前沿科技媒體。Comet Labs是由聯想之星發起、獨立運作的全球人工智慧和智能機器加速投資平臺,攜手全球領先的產業公司和投資機構,幫助創業者解決產業對接、用戶拓展、全球市場、技術整合、資金等關鍵問題。旗下業務還包括:Comet舊金山加速器、Comet北京加速器、Comet垂直行業加速器。

加入機器之心(全職記者/實習生):hr@almosthuman.cn

投稿或尋求報導:editor@almosthuman.cn

廣告&商務合作:bd@almosthuman.cn

↓↓↓點擊「閱讀原文」查看機器之心網站,獲取更多精彩內容。

相關焦點

  • 生物神經網絡與人工神經網絡的遞歸性
    然而,隨著用於實際應用的人工神經網絡(ANN)越來越複雜,在某些方面更像生物神經網絡(BNNs),雖然整體上仍有很大不同) ,這種差異正在縮小。        深度學習社區所說的循環連接類似於神經科學社區所說的橫向連接。即,局部區域中的互連神經元。    在神經科學界,遞歸網絡是一種連接性很強的網絡,包括前饋、橫向和反饋連接。
  • MATLAB人工神經網絡教程
    然後,你需要將數據集分割,保留1/3的數據用作模型評估,僅用2/3的數據來訓練我們的人工神經網絡模型。如果你單擊「Next」並進入「Save Results」(結果保存)界面,你可以保存所創建的模型和對應腳步。我將這個簡單的腳本保存為myNNscript.m。這是你通過圖片識別工具創造的人工神經網絡模型圖表。他有784個輸入神經元, 100個隱藏層神經元,以及10個輸出層神經元。你的人工神經網絡模型學會了通過訓練權重來生產正確的輸出。
  • 從生物學到神經元:人工神經網絡 ( ANN ) 簡介
    這也是人工神經網絡 ( ANN ) 思想的根本來源。不過,雖然飛機的發明受鳥類的啟發,但是它並不用扇動翅膀來飛翔。同樣,人工神經網絡和它的生物版本也有很大差異。甚至有些研究者認為應該放棄對生物類比的使用 ( 比如,稱其為"單元"而不是"神經元" ),以免我們將創造力限制在生物學上。
  • 乾貨拿走:MATLAB人工神經網絡教程
    1 2 3            :0 數據集中的樣本是按列保存而不是按行保存的,所以你需要對數據進行轉置。然後,你需要將數據集分割,保留1/3的數據用作模型評估,僅用2/3的數據來訓練我們的人工神經網絡模型。
  • 「人工神經網絡」人工神經網絡之BP算法
    人工神經網絡(Artificial Neural Network,ANN)是在受到了生物學的啟發後創建的,在某種程度上它是對生物大腦的一種模擬。人們仿照生物神經網絡的結構,使用簡單運算單元模擬神經元,並將大量運算單元按某種形式密集連接,便構成了人工神經網絡。結構如圖:人工神經網絡(ANN)模型帶有權重值(w1,w2,...
  • 深度學習背後的基礎-神經網絡揭秘
    最近, 深度學習三傑獲得了計算機界最重要的圖靈獎, 它們的貢獻都集中在對深度學習的根據神經網絡的理論突破。
  • 機器學習與人工神經網絡(一)
    但是這些程序有一個共通點:程序設計者必須要對特定問題進行深度的分析,歸納出一套準則讓計算機來運作。但當問題變得更難,除了計算機計算能力有限之外,程序設計者也難以歸納出一套規則處理極度複雜的問題。近年來,機器學習 (Machine Learning) 中的「人工神經網絡 (Artificial Neural Network)」因能解決這個困境而變得越來越流行。
  • 深度學習和深度神經網絡
    深度學習深度學習是眾多機器學習方法中的一種。主要是通過神經網絡來實現。「深度」是指神經網絡的層數。
  • 反之亦然,科學家開始用深度神經網絡解釋人類大腦
    丹尼爾和他的團隊目前在史丹福大學有獨屬的實驗室,致力於用深度神經網絡來解構生物大腦,並試圖理解生物大腦內的任務分配。目前大多數人都知道大腦不同的區域負責我們生活中不同的任務,但其實大腦的複雜性遠遠不止如此。比如,大腦有一個區域可以識別一般的物體,但也有一個區域是專門用來識別人類的面孔。這背後的原因非常值得探索。
  • 遞歸神經網絡之父:打造無監督式通用神經網絡人工智慧
    在接受InfoQ的採訪時,Schmidhuber 講述了他對深度學習及人工智慧發展趨勢的看法。他一直以來的目標都是「打造一個比我更聰明的人工智慧」,目前,他的新創公司也致力於研究通用神經網絡人工智慧,而要實現這一目標,Schmidhuber 認為需要的不僅僅是普通的深度學習。---近來,機器學習已經成為媒體上的熱門詞彙。
  • Nature子刊批判人工神經網絡:先天結構比後天訓練更重要,應該借鑑動物大腦
    也就是說,通過反思當前的研究方式能夠發現,我們現在關於深度學習的研究從出發點的側重似乎就搞錯了,先天架構比後天訓練重要得多。這個結論一出現,就在推特上引發了巨大的反響,不到一天,點讚數超過了1.8K,各大論壇上也少不了各種討論。不少網友表示,文章讓人有一種醍醐灌頂的感覺。
  • 《神經網絡和深度學習》系列文章四:神經網絡的結構
    使用神經網絡識別手寫數字感知機sigmoid神經元神經網絡的結構用簡單的網絡結構解決手寫數字識別通過梯度下降法學習參數實現我們的網絡來分類數字關於深度學習反向傳播算法是如何工作的改進神經網絡的學習方法神經網絡能夠計算任意函數的視覺證明
  • 人工神經網絡與Stata應用
    人工神經網絡簡介1.1 基本介紹人工神經網絡(Artificial Neural Networks,簡寫為ANNs)是一種模仿動物神經網絡行為特徵,進行分布式並行信息處理的算法數學模型。這種網絡依靠系統的複雜程度,通過調整內部大量節點之間相互連接的關係,從而達到處理信息的目的,並具有自學習和自適應的能力。
  • CICC科普欄目|從感知機到深度神經網絡,帶你入坑深度學習
    為了了解神經網絡是如何工作的,我們先來看看一個叫感知機的簡單的人工神經網絡。對我而言,感知機是我見過的機器學習中最優雅的算法之一。它於 1950 年代被提出,儘管很簡單,但它可以說是很多重要的機器學習算法的起點了,例如 logistic 回歸、支持向量機甚至深度神經網絡。那麼感知機怎麼工作暱?我們以圖 2 展開討論。
  • 人工神經網絡在這六大領域的表現已經超越了人類
    研究人員在能夠解讀圖像的軟體的準確性上有了一次突如其來但大幅度的飛躍,其背後的人工神經網絡支撐了我們現在在人工智慧行業所看到的繁榮景象。深度神經網絡已經學會了交談、駕駛汽車、玩電子遊戲、下圍棋、畫畫,以及幫助探索科學發現。 在以下六個領域中,人工神經網絡已經證明,它們可以超越人類智能。
  • 【大白話科普①】人工神經網絡中的神經元
    在初識人工神經網絡之時,也被其非凡的名稱所困惑,相信有類似感覺的小夥伴一定不少。因此大白話科普系列上線了,我們將分多篇文章,逐一對人工智慧所涉及到的技術與數學原理進行大白話式的科普。不用擔心沒有數學基礎,小編偷偷告訴你,作者連高數的書長啥樣都不知道。
  • Women Who Code帶你探秘深度卷積神經網絡(DCNN)
    2016年是人工智慧技術大爆發的一年,那邊AlphaGo打敗人類頂尖棋手的餘威未消,這邊的自動駕駛技術又宣布未來已來,AI科技究竟會怎樣改變我們的明天
  • 人工智慧-Andrew Ng版|神經網絡和深度學習|深度學習概述
    About this Course這裡列一下本系列深度學習專項課程有哪些:第一門課程 Nerual Networks and Deep Le arning 神經網絡和深度學習將學習神經網絡和深度學習將學習如何建立神經網絡(
  • 變種神經網絡的典型代表:深度殘差網絡
    隨著人們對於神經網絡技術的不斷研究和嘗試,每年都會誕生很多新的網絡結構或模型。這些模型大都有著經典神經網絡的特點,但是又會有所變化。你說它們是雜交也好,是變種也罷,總之對於神經網絡創新的各種辦法那真叫大開腦洞。而這些變化通常影響的都是使得這些網絡在某些分支領域或者場景下的表現更為出色(雖然我們期望網絡的泛化性能夠在所有的領域都有好的表現吧)。
  • 關於TensorFlow你應該知道的9件事
    它處理的是特別大的神經網絡。從某種意義來說,它就是數據科學中的工業車床,而不是瑞士軍刀。這意味著,如果你要做的是通過 20x2 的電子表格生成一條回歸線,那麼你很可能不需要再讀下去了。如果你追求的是大型項目,那麼你就準備雀躍歡呼吧!