什麼是人工神經網絡(ANN)?

作者 | Ben Dickson
編譯 | CDA數據分析師

過去十年中最具影響力的技術之一是人工神經網絡,它是深度學習算法的基本組成部分,是人工智能的前沿。

每天使用神經網絡的應用程序有很多,例如Google的翻譯服務,Apple的Face ID iPhone鎖和Amazon的Alexa AI驅動的助手。神經網絡也在其他領域的一些重要人工智能突破背後,例如診斷皮膚和乳腺癌,讓目光投向自動駕駛汽車。

人工神經網絡背後的概念和科學已經存在了數十年。但是直到最近幾年,神經網絡的承諾才變爲現實,並幫助AI行業擺脫了漫長的冬季。

儘管神經網絡幫助AI取得了飛躍,但它們也常常被誤解。這時您需要了解的有關神經網絡的所有信息。

人工和生物神經網絡之間的相似性

人工智能先驅的最初願景是複製人類大腦的功能,這是自然界最聰明,最複雜的已知創造。這就是爲什麼該領域從人類心靈的形體和功能派生出其大部分術語(包括“人工智能”一詞)的原因。

人工神經網絡的靈感來自其生物學對應物。大腦的許多功能仍然是個謎,但是我們知道的是,生物神經網絡使大腦能夠以複雜的方式處理大量信息。

大腦的生物神經網絡由大約1000億個神經元組成,這是大腦的基本處理單元。神經元通過彼此之間巨大的連接(稱爲突觸)來執行其功能。人腦大約有100萬億個突觸,每個神經元約有1,000個。

大腦的每個功能都涉及在大量此類神經元中運行的電流和化學反應。

人工神經網絡如何運作

人工神經網絡的核心成分是人工神經元。每個神經元接收來自其他幾個神經元的輸入,將它們乘以分配的權重,將它們相加,然後將總和傳遞給一個或多個神經元。一些人工神經元可能在將輸出傳遞給下一個變量之前將激活函數應用於輸出。

人工神經元的結構,人工神經網絡的基本組成部分(來源:維基百科)

從本質上講,這聽起來像是一個非常瑣碎的數學運算。但是,當您將成千上萬的神經元多層放置並堆疊在一起時,您將獲得一個人工神經網絡,可以執行非常複雜的任務,例如對圖像進行分類或識別語音。

人工神經網絡由一個輸入層和一個輸出層組成,其中輸入層從外部源(數據文件,圖像,硬件傳感器,麥克風等)接收數據,一個或多個隱藏層處理數據,輸出層提供一個或多個數據點基於網絡的功能。例如,檢測人,汽車和動物的神經網絡將具有一個包含三個節點的輸出層。對銀行在安全和欺詐之間進行交易進行分類的網絡將只有一個輸出。

神經網絡由多層組成

訓練人工神經網絡

人工神經網絡首先爲神經元之間的連接權重分配隨機值。ANN正確而準確地執行其任務的關鍵是將這些權重調整爲正確的數字。但是找到合適的權重並不是一件容易的事,特別是當您處理多層和成千上萬的神經元時。

通過對帶有註釋示例的網絡進行“培訓”來完成此校準。例如,如果您要訓練上述圖像分類器,則可以爲其提供多張照片,每張照片均標有其相應的類別(人,汽車或動物)。當您爲它提供越來越多的訓練示例時,神經網絡會逐漸調整其權重,以將每個輸入映射到正確的輸出。

基本上,訓練期間發生的事情是網絡進行自我調整以從數據中收集特定模式。同樣,對於圖像分類器網絡,當您使用質量示例訓練AI模型時,每一層都會檢測到特定的特徵類別。例如,第一層可能檢測到水平和垂直邊緣,第二層可能檢測到拐角和圓形。在網絡的更深處,更深的層次將開始挑選出更高級的功能,例如面部和物體。

神經網絡的每一層都將從輸入圖像中提取特定特徵。

當您通過訓練有素的神經網絡運行新圖像時,調整後的神經元權重將能夠提取正確的特徵並準確確定圖像屬於哪個輸出類別。

訓練神經網絡的挑戰之一是找到正確數量和質量的訓練示例。而且,訓練大型AI模型需要大量的計算資源。爲了克服這一挑戰,許多工程師使用“ 轉移學習”(一種培訓技術),您可以採用預先訓練的模型,並使用針對特定領域的新示例對其進行微調。當已經有一個與您的用例接近的AI模型時,轉移學習特別有效。

神經網絡與經典AI

傳統的基於規則的AI程序基於經典軟件的原理。計算機程序旨在對存儲在存儲單元中的數據運行操作,並將結果保存在其他存儲單元中。程序的邏輯是順序的,確定性的,並基於明確定義的規則。操作由一個或多箇中央處理器運行。

但是,神經網絡既不是順序的也不是確定性的。另外,無論底層硬件如何,都沒有中央處理器來控制邏輯。相反,邏輯分佈在成千上萬個較小的人工神經元上。人工神經網絡不運行指令;相反,他們對輸入執行數學運算。開發模型行爲的是他們的集體行動。

神經網絡不是通過手動編碼的邏輯表示知識,而是在權重和激活的總體狀態下對知識進行編碼。特斯拉AI負責人安德烈·卡帕蒂(Andrej Karpathy)在一篇出色的媒體文章“ 軟件2.0 ” 中雄辯地描述了神經網絡的軟件邏輯:

我們都熟悉Software 1.0的“經典堆棧”, 它是用Python,C ++等語言編寫的。它由程序員編寫的對計算機的明確指令組成。通過編寫每一行代碼,程序員可以識別程序空間中具有某些所需行爲的特定點。

相比之下, Software 2.0 可以用更加抽象的,人類不友好的語言(例如神經網絡的權重)來編寫。沒有人蔘與編寫此代碼,因爲權重很多(典型的網絡可能有數百萬個),而直接用權重編碼有點困難(我嘗試過)。

神經網絡與其他機器學習技術

人工神經網絡只是執行機器學習的幾種算法之一,而 機器學習是人工智能的分支,它根據經驗來發展行爲。還有許多其他機器學習技術,它們可以在數據中找到模式並執行諸如分類和預測之類的任務。其中一些技術包括迴歸模型,支持向量機(SVM),k最近方法和決策樹。

但是,在處理雜亂且非結構化的數據(例如圖像,音頻和文本)時,神經網絡的性能優於其他機器學習技術。

例如,如果要使用經典的機器學習算法執行圖像分類任務,則必須進行大量複雜的“功能工程”,這是一個複雜而艱鉅的過程,需要數名工程師和領域專家的共同努力。神經網絡和深度學習算法不需要特徵工程,只要訓練得當,就可以自動從圖像中提取特徵。

但是,這並不意味着神經網絡可以替代其他機器學習技術。其他類型的算法需要較少的計算資源,並且較不復雜,這使得它們在嘗試解決不需要神經網絡的問題時更可取。

其他機器學習技術也是可以解釋的(在下文中有更多介紹),這意味着更容易研究和更正他們做出的決策。這可能使它們在解釋性比準確性更重要的用例中更可取。

神經網絡的侷限性

儘管有人工神經網絡的名稱,但其與人類等效的神經網絡卻有很大不同。儘管神經網絡和深度學習是當今AI的最先進技術,但與人類智能仍然相距甚遠。因此,神經網絡將在您希望從人類的思想中想到的許多事情上失敗:

  • **神經網絡需要大量數據:**與人腦可以通過很少的示例學習做事的人腦不同,神經網絡需要成千上萬個示例。
  • **神經網絡在概括方面很不好:**神經網絡將在經過培訓的任務上準確執行,但在其他任何方面都表現不佳,即使它與原始問題相似。例如,接受過數千張貓圖片訓練的貓分類器將無法檢測到狗。爲此,它將需要成千上萬張新圖像。與人類不同,神經網絡不會在符號(耳朵,眼睛,鬍鬚,尾巴)方面發展知識,它們會處理像素值。這就是爲什麼他們將無法從高級功能上了解新對象,因此需要從頭開始對其進行重新培訓。
  • **神經網絡是不透明的:**由於神經網絡通過神經元的權重和激活來表達其行爲,因此很難確定其決策背後的邏輯。這就是爲什麼它們經常被稱爲黑匣子。這使得很難確定他們是否基於錯誤的因素做出決策。

人工智能專家和神經科學家Gary Marcus 在去年的一份深入研究論文中解釋了深度學習和神經網絡的侷限性。

而且,在邏輯和推理很明確並且可以編入不同規則的問題中,神經網絡也不能替代老式的基於規則的AI。例如,在求解數學方程式時,神經網絡的性能非常差。

爲了克服神經網絡的侷限性,人們進行了許多努力,例如由DARPA資助的創建可解釋的AI模型的計劃。其他有趣的發展包括開發 結合了神經網絡和基於規則的AI的混合模型,以創建可解釋且需要較少訓練數據的AI系統。

儘管要實現人類級AI的目標(如果我們能夠實現),還有很長的路要走,但是神經網絡使我們更加接近。看看下一個AI創新將是什麼會很有趣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章