脈衝神經網路(SNN)概述
https://www.toutiao.com/a6701844289518830091/
主要討論脈衝神經網路的拓撲結構、資訊的脈衝序列編碼方法、脈衝神經網路的學習演算法和進化方法等。
一、脈衝神經網路的拓撲結構
同傳統的人工神經網路一樣,脈衝神經網路同樣分為三種拓撲結構。它們分別是前饋型脈衝神經網路(feed-forward spiking neural network)、遞迴型脈衝神經網路(recurrent spiking neural network)和混合型脈衝神經網路(hybird spiking neural network)。
1. 前饋型脈衝神經網路
在多層前饋脈衝神經網路結構中,網路中的神經元是分層排列的,輸入層各神經元的脈衝序列表示對具體問題輸入資料的編碼,並將其輸入脈衝神經網路的下一層。最後一層為輸出層,該層各神經元輸出的脈衝序列構成網路的輸出。輸入層和輸出層之間可以有一個或者多個隱藏層。
此外,在傳統的前饋人工神經網路中,兩個神經元之間僅有一個突觸連線,而脈衝神經網路可採用多突觸連線的網路結構,兩個神經元之間可以有多個突觸連線,每個突觸具有不同的延時和可修改的連線權值。多突觸的不同延時使得突觸前神經元輸入的脈衝能夠在更長的時間範圍對突觸後神經元的脈衝發放產生影響。突觸前神經元傳遞的多個脈衝再根據突觸權值的大小產生不同的突觸後電位。
2. 遞迴型脈衝神經網路
遞迴型神經網路不同於多層前饋神經網路和單層神經網路,網路結構中具有反饋迴路,即網路中神經元的輸出是以前時間步長上神經元輸出的遞迴函式。遞迴神經網路可以模擬時間序列,用來完成控制、預測等任務,其反饋機制一方面使得它們能夠表現更為複雜的時變系統;另一方面也使得有效學習演算法的設計及其收斂性分析更為困難。傳統遞迴人工神經網路的兩種經典學習演算法分別為實時遞迴學習(real-time recurrent learning)演算法和隨時間演化的反向傳播(backpropagation through time)演算法,這兩種演算法都是遞迴地計算梯度的學習演算法。
遞迴脈衝神經網路是指網路中具有反饋迴路的脈衝神經網路,由於其資訊編碼及反饋機制不同於傳統遞迴人工神經網路,由此網路的學習演算法構建及動力學分析較為困難。遞迴脈衝神經網路可應用於諸多複雜問題的求解中,如語言建模、手寫數字識別以及語音識別等。遞迴脈衝神經網路可分為兩大類:全域性遞迴脈衝神經網路(fully recurrent spiking neural network);另一類是區域性脈衝神經網路(locally recurrent spiking neural network)。
3. 混合型脈衝神經網路
混合型脈衝神經網路即包括前饋型結構,又包含遞迴型結構。
二、資訊的脈衝序列編碼方法
從神經科學的角度來看,第二代人工神經網路是一種基於“發放頻率”的神經元計算方式。隨著研究的深入,神經科學家指出生物神經系統採用神經元的脈衝時序來編碼資訊,而不僅僅是用神經元脈衝的“發放頻率”來編碼資訊。實際上,神經元的脈衝發放頻率不能完全捕獲脈衝序列中包含的資訊。例如,已經發現初級聽覺皮層神經元群體能在短時間內通過分組相鄰脈衝來協調動作電位的相對時間,並沒有改變每秒發放的脈衝數量,這樣,神經元甚至可以在平均發放頻率沒有改變的情況下給出特定的刺激訊號。
更具有生物可解釋性的脈衝神經網路,採用精確定時的脈衝序列來編碼神經資訊。神經網路內部的資訊傳遞是由脈衝序列完成的,脈衝序列是由離散的脈衝時間點組成的時間序列,因此,在進行脈衝神經網路的模擬與計算時,包含以下步驟:①當輸入資料或神經元受到外界刺激時,經過特定的脈衝序列編碼方法,可將資料或外界刺激編碼成特定的脈衝序列;②脈衝序列在神經元之間傳遞並經過一定的處理,處理之後將輸出的脈衝序列通過特定的解碼方法進行解碼並給出具體的響應。
對於神經資訊的脈衝序列編碼問題,借鑑生物神經元的資訊編碼機制,研究者提出了許多脈衝神經網路的脈衝序列編碼方法。例如,首脈衝觸發時間編碼方法、延遲相位編碼方法、群體編碼方法等。
三、 脈衝神經網路的學習演算法
學習是人工智慧領域的核心問題,對於SNN來說,基於脈衝時間層次的學習方法研究,對於通過理論模型來驗證生物神經系統的資訊處理和學習機制是必須的。通過生物可解釋的方式建立人工神經系統,科學家希望可以通過神經科學和行為實驗來達到預期目的。大腦中的學習可以理解為突觸連線強度隨時間的變化過程,這種能力稱為突觸可塑性(synaptic plasticity)。脈衝神經網路的學習方式主要包括無監督學習(unsupervised learning)、監督學習(supervised learning)和強化學習(reinforcement learning)等。
1. 無監督學習演算法
無監督學習演算法在人類和動物的學習中佔據主導地位,人們通過觀察能夠發現世界的內在結構,而不是被告知每一個客觀事物的名稱。人工神經網路無監督學習演算法的設計主要是針對無標籤資料集的訓練,要求應用無監督學習規則對神經網路中的連線權值或結構進行自適應的調整。也就是說,在沒有“教師”訊號的監督下,神經網路必須自己從輸入資料中發現規律性(如統計特徵、相關性或類別等),並通過輸出實現分類或決策。一般來說,只有當輸入資料集中存在冗餘性時,無監督學習才有意義,否則,無監督學習不能很好地發現輸入資料中的任何模式或特徵,即冗餘性提供了知識。
脈衝神經網路的無監督學習演算法大多是借鑑傳統人工神經網路的無監督學習演算法,是在Hebb學習規則不同變體的基礎上提出的。神經科學的研究成果表明,生物神經系統中的脈衝序列不僅可引起神經突觸的持續變化,並且滿足脈衝時間依賴可塑性(spike timing-dependent plasticity,STDP)機制。在決定性時間視窗內,根據突觸前神經元和突觸後神經元發放的脈衝序列的相對時序關係,應用STDP學習規則可以對突觸權值進行無監督方式的調整。
2. 脈衝神經網路的監督學習
脈衝神經網路的監督學習是指對於給定的多個輸入脈衝序列和多個目標脈衝序列,尋找脈衝神經網路合適的突觸權值矩陣,使神經元的輸出脈衝序列與對應的目標脈衝序列儘可能接近,即兩者的誤差評價函式最小。對於脈衝神經網路來說,神經資訊以脈衝序列的形式表示,神經元內部狀態變數及誤差函式不再滿足連續可微的性質,構建有效的脈衝神經網路監督學習演算法非常困難,同時也是該領域的一個重要的研究方向。
根據監督學習所採用的基本思想不同,可以將現有的監督學習演算法分為三類:
- 基於梯度下降的監督學習演算法的基本思想是利用神經元目標輸出與實際輸出之間的誤差以及誤差反向傳播過程,得到梯度下降計算結果作為突觸權值調整的參考量,最終減小這種誤差。基於梯度下降的監督學習演算法是一種數學分析方法,在學習規則的推導過程中,要求神經元模型的狀態變數必須是有解析的表示式,主要採用固定閾值的線性神經元模型,如脈衝響應模型(spike response model)和Integrate-and-Fire神經元模型等。
- 基於突觸可塑性的監督學習演算法的基本思想是利用神經元發放脈衝序列的時間相關性所引起的突觸可塑性機制,設計神經元突觸權值調整的學習規則,這是一種具有生物可解釋性的監督學習。
- 基於脈衝序列卷積的監督學習演算法通過脈衝序列內積的差異構造脈衝神經網路的監督學習演算法,突觸權值的調整依賴於特定核函式的卷積計算,可實現脈衝序列時空模式的學習。
3. 脈衝神經網路的強化學習
強化學習是從環境狀態到行為對映的學習,以使智慧體行為從環境中獲得的累積獎賞值最大。基於生物啟發的學習機制,人工神經網路強化學習的研究重點在於探索智慧體的自適應優化策略,是近年來神經網路和智慧控制領域的主要方法之一。強化學習關注的是智慧體如何在環境中採取一系列行為,通過強化學習,一個智慧體應該知道在什麼狀態下應該採取什麼行為。可以看到,強化學習和監督學習的區別主要在於以下兩點:
- 強化學習是試錯學習,由於沒有直接的“教師”指導資訊,智慧體要不斷與環境互動,通過試錯的方式來獲得最佳策略;
- 延遲迴報,強化學習的指導資訊很少,而且往往是在事後(最後一個狀態)才給出的,這就導致了一個問題,即獲得正回報或者負回報以後,如何將彙報分配給前面的狀態。
四、脈衝神經網路的進化方法
進化演算法(evolutionary algorithm)是模擬生物進化過程的計算模型,是一類基於自然選擇和遺傳變異等生物進化機制的全域性性概率搜尋演算法,主要包括遺傳演算法(genetic algorithm)、進化規劃(evolutionary programming)和進化策略(evolutionary strategy)等。雖然這些演算法在實現方面具有一些差別,但它們具有一個共同的特點,即都是藉助生物進化的思想和原理來解決實際問題的。
將進化演算法與脈衝神經網路有機結合起來,研究者開闢了進化脈衝神經網路(evolutionary spiking neural network)的研究領域,以提高對複雜問題的求解能力。進化脈衝神經網路可以作為自適應系統的一種一般性框架,在沒有人為干預的情況下系統自適應調整神經元的引數、連線權值、網路結構和學習規則。
來自脈衝神經網路原理及應用一書
作者 | 月臻(知乎:yue-zhen-37-7)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2647536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 卷積神經網路概述卷積神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路神經網路
- Spiking-YOLO : 前沿性研究,脈衝神經網路在目標檢測的首次嘗試 | AAAI 2020YOLO神經網路AI
- LSTM神經網路神經網路
- 8、神經網路神經網路
- 聊聊從腦神經到神經網路神經網路
- Pytorch_第十篇_卷積神經網路(CNN)概述PyTorch卷積神經網路CNN
- 31頁PPT概述:圖神經網路表達能力有多強?神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 神經網路篇——從程式碼出發理解BP神經網路神經網路
- 人工神經網路(ANN)神經網路
- 卷積神經網路卷積神經網路
- 迴圈神經網路神經網路
- 神經網路(neural networks)神經網路
- 生成型神經網路神經網路
- 圖神經網路概述第三彈:來自IEEE Fellow的GNN綜述神經網路GNN
- Tensorflow系列專題(四):神經網路篇之前饋神經網路綜述神經網路
- 卷積神經網路學習筆記——Siamese networks(孿生神經網路)卷積神經網路筆記
- 神經網路初始化神經網路
- 解密卷積神經網路!解密卷積神經網路
- BP神經網路流程圖神經網路流程圖
- MXNET:多層神經網路神經網路
- 淺析模糊神經網路神經網路
- 白話深度神經網路神經網路
- 5.2.1 卷積神經網路卷積神經網路
- 迴圈神經網路(RNN)神經網路RNN
- 卷積神經網路CNN卷積神經網路CNN
- 圖神經網路入門神經網路
- keras構建神經網路Keras神經網路
- 三、淺層神經網路神經網路
- 殘差神經網路-ResNet神經網路
- 卷積神經網路-AlexNet卷積神經網路
- 卷積神經網路-1卷積神經網路
- 卷積神經網路-2卷積神經網路
- 卷積神經網路-3卷積神經網路