全文共2047字,預計學習時長6分鐘
圖源:unsplash
如果人類已經造出了人造大腦,你會想讓它做什麼呢?寫作業,稱霸股市,還是霸佔世界?人造大腦的可能性是無窮的。事實上,在一定程度上我們已經做到了!人造大腦不像我們的大腦那麼複雜,卻是能改變世界的強有力工具,它就是神經網絡。
神經網絡是什麼?
神經網絡(簡稱NN)是能夠接收、處理並輸出信息的一組連接節點。我們的大腦也是一種神經網絡!它的內部有許許多多生物神經元連接,能夠獲取信息(屏幕上的文字),並將其處理、輸出(理解文字並儲存信息)。
生物神經網絡:
生物神經的簡圖
理解生物神經的工作機制是直觀理解人造神經的關鍵。我們先來看看生物神經的物質構造,再將其與人造神經進行比較。生物神經的構造如下:
· 樹突:接收其它神經的輸入信號。
· 胞體:聯合樹突收集的所有信息並進行計算,它能根據計算判斷是否輸出信號(會根據強度有所差異)。
· 軸突:接受胞體的計算並傳輸信號。
· 軸突末端:向其它神經元輸出信號。
人工神經網絡:
人工神經網絡不是像人腦一樣實體的神經網絡(但它們可以是!),它們實際上只是電腦中運行的軟體!我們先來看看人工神經網絡的構造,再來深究它們是如何相互作用的。
簡化的神經網絡
神經網絡的構成:
· 節點:接收之前節點的輸入,進行計算並輸出。節點與生物意義上神經網絡的胞體、樹突和軸突末端類似。
· 突觸:將一個節點輸出的信號傳輸到下一個節點進行輸入,類似生物神經網絡的軸突。
· 輸入層:輸入數據(以數字的形式)嵌入的部位。
· 隱藏層:不參與輸入輸出的層級(好處:如果層級多於1個,神經網絡就會由簡單神經網絡升級成深度神經網絡)。
· 輸出層:參與神經網絡最終輸出的層。
神經網絡如何工作?
神經網絡的實際工作機制:
· 首先要將輸入數據以數字的形式放置在輸入層中。
· 數據會通過突觸傳送。數據在從節點傳輸到突觸的過程中,會通過參數放大,就會產生一個偏差。這樣就放大或者抑制了信號。
· 這個信號會被歸於下一個節點,會同其它所有的信號整合,傳遞到突觸中。
· 在各個層級中重複「計算+傳送」的步驟。
· 最終的輸出會是一系列數字,能夠轉化為我們想要的結果。
這5個步驟(+另外一個後續會提到的步驟)就是我們的大腦在處理信息時會遵循的步驟。人工神經網絡是模仿我們的大腦建成的!
更複雜些的神經網絡
這張圖片看起來有些複雜,每個層有很多個節點,節點又通過許多突觸連接,但它仍不能反映真實的神經網絡。實際生活中,神經網絡有幾十個層,每一層有上千個節點。雖然過程都是相同的,但仍有這樣的問題存在:電腦是如何將所有數據一一計算出來的呢?
給神經網絡編程
神經網絡中只存在數字,它們由向量(數字列表)表示,以點積的方式相互作用。這樣做是因為計算機處理向量和點積非常迅速。這次再運用矩陣瀏覽一下整個過程:
· 輸入層是輸入數據的向量表示(例如:屬性的單個圖像或單個列表)。
· 在下一層裡,向量會被傳遞給每一個節點。
· 每個節點中會有參數向量來取代突觸。兩個。向量之間會以點乘的方式來產生一個數字。這個數字會產生一個偏差形成輸出
· 整個層會得出很多個輸出結果,結合在一起形成向量。
· 這個向量會被傳送出去。這個過程會一直重複到最後一個層。
有注意到在步驟3中,通過常數放大了輸入,又添加了另一個常數嗎?這聽起來像是9年級學的線性函數!這個函數中需要記憶的等式y=mx+b(在最後)有一個實際運用。y是輸出,m是參數,x是輸入,b是偏差!所以又把步驟3叫做線性層。
你或許還會注意到這個問題:神經網絡中的眾多線性層可以整合為1個層,為什麼還要那麼多層級呢?這是個很好的想法,會在缺失的一個關鍵步驟——非線性中得到處理。
非線性函數:
線性整流函數是最簡單最常見的非線性函數
通過在每個線性層之間添加非線性的方法,就能將它們分隔開!所要做的只是將非線性函數運用到線性層的所有輸出。非線性函數的數量很多。最簡單常用的叫做線性整流函數。瞄準這個函數,因為它理解起來很容易,需要的時間很短。(注意:非線性函數層叫做激活層。)
那麼,為什麼一定要有這麼多層呢?1個層不可以嗎?答案是:通用近似定理。通用近似定理描述了如果有足夠的線性層和非線性層,就可以以任意精度近似任意函數。也就是說,神經網絡可以做任何事。
到這裡,你就已經了解了神經網絡的工作方式,可以深入研究其訓練過程啦!
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範