獨家 | 一文讀懂人工神經網路
當聽到「神經」這個詞的時候,首先出現在我腦海中的是大腦中的神經元,這是我們決策過程的一部分。
這也是人類與機器人(或正常的計算機程序)主要的不同特徵之一。人類可以看到事物,分析事物,並且從中學習,以期下次做得更好。
另一方面,常規程序也遵循著同樣的指示,而不是自行發展。我們可以對其進行編程讓它們完成某些指定任務,根據指令得到理想的結果。
但是如果我們制定程序對其進行學習,我們可以做很多事情。然後它們會隨著時間的推移自行發展,這就是「機器學習」。人工神經網路(ANN)是一種用於機器學習的計算模型,它的工作方式和生物的神經元類似。
當信息到達神經元,它們(神經元)通過調整網路去感知和獲取這些信息得出一個理想的結果。通過神經元傳輸盡量多的數據會有助於得到更精準的結果。這就是神經網路中的「訓練」。
在使用神經網路之前,我們需要訓練和調試,以得到理想的決策結果。為此,我們使用測試數據,包括輸入進網路和相對應的預期的輸出。通過適當的訓練,對網路進行教學,之後就可以用它對未知的數據做出決策。
從根本上來講,人工神經網路被用於那些輸入和輸出之間存在複雜關係的非線性統計數據模型。訓練的主要目的是發現那些數據中的複雜關係和模式。
「人工神經網路(英文:artificial neural network,縮寫ANNs),簡稱神經網路(英文:neuralnetwork,縮寫NN)或類神經網路,是一種模仿生物神經網路(動物的中樞神經系統,特別是大腦)的結構和功能的數學模型或計算模型,通常是通過一個基於數學統計學類型的學習方法(LearningMethod)得以優化。——維基百科」
在需要基於計算機的預測中,神經網路非常常見。通常情況下,他們能夠做出精準的預測。一部分應用於股市趨勢的預測、手寫識別、語音識別、土地滑坡預測等。另外像Facebook這樣的社交媒體和Google這樣的搜索引擎也使用神經網路來豐富用戶體驗。
神經網路存在許多種類:
- 前饋神經網路
- 循環神經網路
- 常規反饋神經網路
- 徑向性神經網路
「前饋」網路是最早也是最簡單的一種。在這種神經網路類型中,數據從輸入層到隱藏層最後到輸出層,沒有循環或其他環形傳輸路線。
NeuralNetworkwith multiple layers (https://blog.ttro.com/wp-content/uploads/2017/01/TB010-Deep-Neural-Network.jpg)
另一方面,循環神經網路中,數據前向也後向地傳輸著。在預測次序的時候,循環神經網路的輸出也被用作輸入。
我在YouTube上找到的一個簡單例子來幫助理解這個概念(https://www.youtube.com/watch?v=ZzWaow1Rvho)。有紅色和藍色兩種花,它們的寬度和長度的樣本數據已經給出。要求使用這些已知的數據預測未知的花朵的顏色。
這裡使用前饋神經網路來預測正確的花朵(顏色)。我們將使用Python和Numpy庫來實現。你可以通過安裝「Miniconda」(https://conda.io/miniconda.html)來建立此模型。
這個簡易的神經網路有花瓣的長度和寬度兩個輸入,輸出是0或1,表示紅色或藍色。
Oursimple neural network
這個網路的最終輸出是0或1,我們使用一個特別的函數,在這裡叫做「Sigmoid」,它將任何值轉換到0和1的範圍內。根據它接近0或1的程度進行預測。
「Sigmoid函數是一個擁有「S」形曲線(sigmoid曲線)的數學函數。通常情況下sigmoid函數指的是邏輯函數的特例。」
Sigmoidfunction (https://qph.ec.quoracdn.net/main-qimg-05edc1873d0103e36064862a45566dba)
我們嘗試通過 w1 * 長度 + w2 * 寬度 +b 對給定數據建模,其中w1,w2是兩個權重,b是一個偏差。這樣的方法可以用來找出數據中的任何非線性關係。
最初,我們在訓練過程中隨機分配給w1,w2和b一些數字,改變這些值,這樣指定的模型就代表了指定的測試數據。通過使用期望值和預測值計算成本值,同時嘗試使用基本的微積分理論來降低成本值實現。在訓練的最後,我們將會得到一個精確的模型,同時我們將在未來使用這個模型來預測未知的數據。
在這個例子中,我們將成本方程用鏈式規則分別對w1,w2和b進行分解,並找到了使成本最小化的常數。這個模型很簡單,所以我們手動對它進行分析。然而,有些庫可以自動分析這些任務。最後,它們被用作找出神秘花朵的類型。
下圖顯示了訓練完成後成本是如何被降低的。它在逐步減少的同時做出了更準確的預測。
Costvariation while learning
正如上訴提及的那樣,這個例子來自一個很棒的YouTube視頻系列,想要了解更多信息,建議各位去這裡一探究竟!(https://www.youtube.com/watch?v=ZzWaow1Rvho)
作者:Sidath Asiri
翻譯:Nicola
校對:盧苗苗
原文標題:MeetArticial Neural Networks
推薦閱讀:
※大數據是個筐,什麼都能往裡裝
※大數據的價值,在「用」不在「大」
※從頭學習大數據培訓課程 任務調度工具 oozie(一)oozie 編譯和安裝
※iCloud雲上貴州,2018數博會連接2億多用戶
※讀「切莫空談大數據,解讀需要走出物流大數據應用的誤區」有感