人工神經網絡,是當下實現人工智能最主要的技術研究方向之一,我們所看到的AI落地產品,大部分都使用了人工神經網絡的技術。人工智能神經網絡之所以有如此廣泛的應用和研究的價值,就是因為它不像以往傳統的純數學模型,不只是從數學的角度考慮人工智能的發展,而是在原來的純數學模型的基礎上加入了生物領域的知識、以及電腦硬件方面的知識體系,從更具體的落地應用方向去考慮,比如如何更快的學習,更簡捷方便的部署等,而以往傳統的純數學模型更多是從學術研究的方向考慮。接下來這篇文章,我們將會詳細講述人工神經網絡的來龍去脈。關注成都深度智谷科技旗下深度人工智能學院,我們長期致力于人工智能技術的教育和傳播。
生命的觸手——神經元
神經元又稱神經細胞,是構成生物神經系統最基本的結構。生物的神經元有著可以感受外界信息的能力,這種能力能夠幫助生物感知外界環境的變化,從而做出相關的反應,生物神經元主要是通過接受、整合、傳導和輸出信息等步驟來實現和外界的信息交換的。可以說,有了神經元,便有了生命的氣息。
結構
神經元是高等動物神經系統的結構單位和功能單位。神經系統中含有大量的神經元,據估計,人類中樞神經系統中約含1000億個神經元,僅大腦皮層中就約有140億。
神經元的形狀一般呈三角形或多角形,從結構上大致都可分成細胞體(soma)和突起(neurite)兩部分。胞體包括細胞膜、細胞質和細胞核;突起由胞體發出,分為樹突(dendrite)和軸突(axon)兩種,所以從更加細致的分類結構上可以分為胞體和樹突、軸突這三個區域。
樹突較多,粗而短,反復分支,逐漸變細;軸突一般只有一條,細長而均勻,中途分支較少,末端則形成許多分支,每個分支末梢部分膨大呈球狀,稱為突觸小體。在軸突發起的部位,胞體常有一錐形隆起,稱為軸丘。
軸突自軸丘發出后,開始的一段沒有髓鞘包裹,稱為始段(initial segment)。由于始段細胞膜的電壓門控鈉通道密度最大,產生動作電位的閾值最低,即興奮性最高,故動作電位常常由此首先產生。軸突離開細胞體一段距離后才獲得髓鞘,成為神經纖維。
功能
綜合前面的知識,我們知道神經元的功能包括:神經元的基本功能是通過接受、整合、傳導和輸出信息實現信息交換。
而神經元也是腦的主要成分,神經元群通過各個神經元的信息交換,實現腦的分析功能,進而實現樣本的交換產出。產出的樣本通過聯結路徑點亮丘覺產生意識。
神經元的功能分區,無論是運動神經元,還是感覺神經元或中間神經元都可分為:
1)輸入(感受)區 就一個運動神經元來講,胞體或樹突膜上的受體是接受傳入信息的輸入區,該區可以產生突觸后電位(局部電位)。
2)整合(觸發沖動)區 始段屬于整合區或觸發沖動區,眾多的突觸后電位在此發生總和,并且當達到閾電位時在此首先產生動作電位。
3)沖動傳導區 軸突屬于傳導沖動區, 動作電位以不衰減的方式傳向所支配的靶器官。
4)輸出(分泌)區 軸突末梢的突觸小體則是信息輸出區,神經遞質在此通過胞吐方式加以釋放。
神經元分化程度高,所以一旦神經元受傷修復起來十分的慢,如果受傷嚴重,還有可能造成不可修復的傷害,而且修復神經元的藥物的效果也不是十分理想。所以,一旦有損傷,后果很嚴重。
分類
神經元可以根據不同的分類機制分為不同的類型。
(一)根據細胞體發出突起的多少,從形態上可以把神經元分為3類:
1.假單極神經元:
胞體近似圓形,發出一個突起,在離胞體不遠處分成兩支,一支樹突分布到皮膚、肌肉或內臟,另一支軸突進入脊髓或腦。
2.雙極神經元:
胞體近似梭形,有一個樹突和一個軸突,分布在視網膜和前庭神經節。
3.多極神經元:
胞體呈多邊形,有一個軸突和許多樹突,分布最廣,腦和脊髓灰質的神經元一般是這類。
(二)根據神經元的機能分類:
1.感覺(傳入)神經元:
接受來自體內外的刺激,將神經沖動傳到中樞神經。神經元的末梢,有的呈游離狀,有的分化出專門接受特定刺激的細胞或組織。分布于全身。在反射弧中,一般與中間神經元連接。在最簡單的反射弧中,如維持骨骼肌緊張性的肌牽張反射,也可直接在中樞內與傳出神經元相突觸。一般來說,傳入神經元的神經纖維,進入中樞神經系統后與其它神經元發生突觸聯系以輻散為主,即通過軸突末梢的分支與許多神經元建立突觸聯系,可引起許多神經元同時興奮或抑制,以擴大影響范圍。
2.運動(傳出)神經元:
神經沖動由胞體經軸突傳至末梢,使肌肉收縮或腺體分泌。傳出神經纖維末梢分布到骨骼肌組成運動終板;分布到內臟平滑肌和腺上皮時,包繞肌纖維或穿行于腺細胞之間。在反射弧中,一般與中間神經元聯系的方式為聚合式,即許多傳入神經元和同一個神經元構成突觸,使許多不同來源的沖動同時或先后作用于同一個神經元。即為中樞的整合作用,使反應更精確、協調。
3.聯絡(中間)神經元:
接受其他神經元傳來的神經沖動,然后再將沖動傳遞到另一神經元。中間神經元分布在腦和脊髓等中樞神經內。它是三類神經元中數量最多的。其排列方式很復雜,有輻散式、聚合式、鏈鎖狀、環狀等。神經元間信息傳遞的接觸點是突觸。復雜的反射活動是由傳入神經元、中間神經元和傳出神經元互相借突觸連接而成的神經元鏈。在反射中涉及的中間神經元越多,引起的反射活動越復雜。人類大腦皮質的思維活動就是通過大量中間神經元的極其復雜的反射活動。中間神經元的復雜聯系,是神經系統高度復雜化的結構基礎。
(三)按神經元軸突的長短:
可分為高爾基(Gol-gi)Ⅰ型細胞和高爾基Ⅱ型細胞兩種類型。
數量
從神經元的數量上來說,人類是目前已知生物中,神經元個數最多的生物,人類的神經元個數可以達到900到1000億個,而狗和貓的神經元個數只有30到40億個,這或許是為什么人類能過具有高智慧的緣由之一,我們可以簡單的認為神經元的數量多少決定著生物的智慧化程度。
但是也有些研究證明,神經元的數量不是決定生物智慧程度的關鍵因素,真正能夠決定的生物的智慧程度的除了神經元個數以外,還有神經元的連接方式和連接效率等,甚至神經元的突觸結構過多反而會造成不好的現象發生。
近期自閉癥患者的神經系統具有高度異質性,這使他們表現出不同程度的神經方面癥狀或功能障礙。近日,意大利理工學院和比薩大學的研究人員發現了一種由特定神經元改變——大腦皮層中突觸過多所導致的自閉癥。
相關結果于當地時間2021年10月28日發表在《自然》雜志上,這一發現或有助于引導相關藥品研制的發展。研究人員通過磁共振成像對動物模型進行了實驗觀察,結果顯示,突觸過多會導致大腦回路功能障礙,而這些回路對社交能力至關重要。進一步研究發現,這種改變可能與異常的mTOR蛋白活性有關。mTOR蛋白是調節生成突觸的關鍵因子,也是藥物治療的潛在靶點。研究人員證實了這一觀點,當mTOR過度的活動受到藥物抑制時,突觸的數量會回到正常生理水平,并完全恢復相關腦回路的功能和連接。
基于上述結果,研究人員隨后嘗試通過機器學習方法,確定這種特定的腦回路功能障礙能否在確診的自閉癥患者大腦中被掃描識別。最終,一組掃描結果顯示,自閉癥患者的大腦確實存在連接障礙,與小鼠模型中觀察到的結果非常相似。更為重要的是,隨后的基因分析同樣顯示,已識別的腦回路功能障礙與異常的mTOR蛋白活性有關。
本次研究的參與者、比薩大學的Massimo Pasqualetti教授總結:“這項研究表明,將大腦功能模型研究與臨床實例相結合是多么重要,這既有助于理解引起病理變化的一些分子或細胞,也能在相同的模型上進行藥物的實驗和治療干預,進而改善甚至治愈這些病理變化?!标P注成都深度智谷科技——深度人工智能學院,獲取更多人工智能知識。
生物與數學的握手——感知機
感知機又稱感知器,從字面意思可以理解為感知機是用來感知外界的信息的。感知機是最早的神經網絡雛形,一個單獨的感知機就是模擬一個生物神經元的過程,多個感知機結合起來就是模擬生物神經網絡的過程,所以多層感知機也稱為人工神經網絡。
生物神經網絡是指生物的大腦神經元,細胞等組成的網絡,用于產生生物的意識,幫助生物進行思考和行動。人工神經網絡是模仿動物神經網絡行為特征所建立的數學算法模型。它是對自然界某種算法或者函數的逼近。
起源
1943年,心理學家Warren McCulloch和數理邏輯學家Walter Pitts在合作的《A logical calculus of the ideas immanent in nervous activity》論文中提出并給出了人工神經網絡的概念及人工神經元的數學模型,從而開創了人工神經網絡研究的時代。1949年,心理學家唐納德·赫布在《The Organization of Behavior》論文中描述了神經元學習法則。
人工神經網絡更進一步被美國神經學家 Frank Rosenblatt 所發展。他提出了可以模擬人類感知能力的機器,并稱之為“感知機”(MLP)。1957年,在 Cornell 航空實驗室中,他成功在IBM 704機上完成了感知機的仿真。兩年后,他又成功實現了能夠識別一些英文字母、基于感知機的神經計算機——Mark1,并于1960年6月23日,展示與眾。
特征
在沒有出現感知機之前,早期的AI模型主要是依賴于數學模型的計算,這種傳統的數學模型在實際的應用過程中有一定的局限性,并不適合大規模的實際落地應用。比如對于一個分類模型,基于統計學等數學的傳統方法的模型,是在分類模型進行分類之前,往往需要提前設計好數據的特征,然后再將這些特征輸入模型去分類,而這些特征又都是各領域的專家設計的,比如需要對紅酒進行分類,就需要專門研究紅酒類的專家來設計這些特征,因為只有他們才是最了解不同種類的紅酒有哪些區別的。
而基于人工神經網絡的深度學習方法則完全不需要專家設計特征的這個環節,在深度學習的模型中,所有的特征不是提前預設好的,而是通過神經網絡的“反向傳播算法”求導更新參數而得到的。深度學習的方法的好處是避免了人為設計特征的不便之處和局限性,放開條件后,讓網絡去學習數據的特征,往往效果要比人為設計特征的效果好數倍,去除了人為的先驗條件做為特征的輸出,從最終的輸出結果上得到了質的飛躍。
但是基于人工神經網絡的深度學習方法同樣面臨一個問題,那就是在特征的“可解釋性”上并不友好,傳統的基于統計學的數學模型,特征雖然是由專家設計的,在實際使用效果上也沒有深度學習那么好,但是卻具有現實的可解釋性,比如拿紅酒分類來說,可以根據顏色、含糖量、含二氧化碳、酒精含量等其他不同的特征進行分類,能夠得到紅葡萄酒、白葡萄酒、干葡萄酒、半干葡萄酒、汽酒、靜酒等等不同種類的紅酒。
如果使用深度學習來完成紅酒分類的工作,那么在數據的特征提取上就不是由專家來設計了,而是由神經網絡通過反向傳播算法而得到的的特征,這種通過神經網絡學習到的特征是由一個很大的矩陣數據構成的,不具有任何可解釋性的,目前沒有任何方法能夠把這個矩陣數據和某些具體的可解釋性的概念聯系起來。關注成都深度智谷科技、深度人工智能學院,了解人工智能的發展。
結構
從感知機的內部結構上區分,可以分為輸入端、處理端、輸出端。輸入端的作用就是接受外界信息,處理端的作用就是對數據加權求和以及非線性處理,輸出端的作用就是將輸出值輸出到下一層。
從層數結構上可以分為單層感知機和多層感知機,單層感知機就是只有一個單獨的感知機,多層感知機是由多個感知機構成至少兩層以上的感知機結構。
單層感知機模型:
hθ=X*W+b,其中(X=[x1,x2,x3,...],W=[w1,w2,w3,...])
多層感知機模型:
Y=((X1*W1+b1)*W2+b2)*W3+b3...,其中(X=[x1,x2,x3,...],W=[w1,w2,w3,...])
從多層感知機看出,多層感知機就是由多個單層感知機而構成的,其函數是一個核函數,也就是上一層的輸出可以做為下一層的輸入。超過三層的多層感知機也稱為深度人工神經網絡。
從運行過程來區分模型的結構,大體上可以分為前向部分和后向部分,前向部分一般也稱為前饋神經網絡,主要是獲得輸入進行計算后輸出的過程,后向部分主要是指反向傳播算法,通過神經網絡反向求導降低誤差來更新神經網絡參數的過程。
神經網絡前向運行過程:
神經網絡后向運行過程:
神經網絡的詳細運行過程可以參考下圖:
功能
感知機的功能就是模擬生物神經元和神經網絡,以期望達到和生物神經網絡同樣的功能,生物的神經網絡是通過外界傳入的信息來學習,感知機同樣也需要外界的輸入來學習,從而獲取數據的特征做為學習到的結果。生物的神經元是生物獲取外界感知的最基本單位,能過幫助生物在進化中獲得更好的方向。感知機模型結合了數學和生物的特征,在大的結構上模擬生物神經元的結構,在具體的實現結果上滿足了數學公式的邏輯,可以認為感知機是神經元的數學化表現形式,二者的功能都是一樣的。
在具體的任務中,感知可以可以做為分類模型,對不同種類的物體分類:
也可以對指定的數據做線性回歸、擬合:
或者加入非線性函數做非線性的回歸、擬合:
也可以對多個任務進行非線性的回歸、擬合:
從神經元之間的連接方式來看,生物的神經元之間是受到外界的刺激后而發生的連接,比如外界的溫度變化對人體帶來的感覺就是由感覺神經元(傳入神經元)傳遞的,感覺神經元的樹突的末端分布于身體的外周部,接受來自體內外的刺激,將興奮傳至脊髓和腦。
外界的溫度實際就是由皮膚(內含有神經末梢)傳遞到大腦中樞的,在人的大腦中下丘腦有體溫調節中樞,所以由冷(熱)感覺神經把外界溫度信息傳遞給下丘腦,由下丘腦進行調節并產生意識??梢园l現,生物的這種神經元之間的連接完全是隨機的,由外界環境而影響的。
而人工神經元之間的連接則是一開始就被固定好了的,比如根據實際需求需要設計一個多大的神經網絡網絡模型,那么這個網絡模型的參數和連接方式就基本已經被固定了。雖然可以通過神經元之間的隨機失活等方法可以局部的改變神經網絡內部的連接,但是這種改變仍然無法讓人工神經元像生物神經元一樣根據外界輸入的數據信息而選擇性的提取需要的特征信息。關注成都深度智谷科技—深度人工智能學院,獲取更多人工智能知識。
生物的神經元之間是沒有任何順序的,可以隨時根據外界傳入的信息有條件的隨意連接,但是人工神經網絡內部的神經元之間是有順序排列的,也就是神經網絡的層數,人工神經元只能在神經網絡的不同層之間發生連接,由于數學矩陣運算的規律,在同一層神經網絡之間的神經元是無法連接的。
由于感知機無法完全模擬生物神經元的連接方式,這也是導致感知機模型無法像人一樣達到真正的強人工智能的原因之一。
發展
按照感知機的發展過程,可以整體可以分為線性感知機和非線性感知機。線性感知機主要是處理線性分類和回歸問題,非線性感知機主要是處理非線性分類和回歸問題。
早期的線性感知機模型:
或者加入一個二分類的線性激活函數sign,做二分類任務的模型:
將線性激活函數sign替換成非線性激活函數sigmoid之后,原來的線性感知機也就變成了非線性感知機模型:
感知機從一開始簡單的分類模型經過發展,逐漸向多層非線性感知機的方向進化。解決的問題也越來越復雜,也就進入了深度人工神經網絡時代。
人工神經網絡的發展
通過前面的對感知機的認識,基本上已經明白什么是人工神經網絡了,人工神經網絡實際上就是一個多層的感知機。人工神經網絡的發展要追溯到20世紀80 年代,當時以來人工智能領域興起的一些研究熱點,從信息處理角度對人腦神經元網絡進行抽象,建立某種簡單模型,按不同的連接方式組成不同的網絡。在工程與學術界也常直接簡稱為神經網絡或類神經網絡。
神經網絡是一種運算模型,由大量的節點(或稱神經元)之間相互聯接構成。每個節點代表一種特定的輸出函數,稱為激勵函數(activation function)。每兩個節點間的連接都代表一個對于通過該連接信號的加權值,稱之為權重,這相當于人工神經網絡的記憶。網絡的輸出則依網絡的連接方式,權重值和激勵函數的不同而不同。而網絡自身通常都是對自然界某種算法或者函數的逼近,也可能是對一種邏輯策略的表達。
最近十多年來,人工神經網絡的研究工作不斷深入,已經取得了很大的進展,其在模式識別、智能機器人、自動控制、預測估計、生物、醫學、經濟等領域已成功地解決了許多現代計算機難以解決的實際問題,表現出了良好的智能特性。
在處理許多問題中,信息來源既不完整,又包含假象,決策規則有時相互矛盾,有時無章可循,這給傳統的信息處理方式帶來了很大的困難,而神經網絡卻能很好的處理這些問題,并給出合理的識別與判斷。
1.信息處理
現代信息處理要解決的問題是很復雜的,人工神經網絡具有模仿或代替與人的思維有關的功能, 可以實現自動診斷、問題求解,解決傳統方法所不能或難以解決的問題。人工神經網絡系統具有很高的容錯性、魯棒性及自組織性,即使連接線遭到很高程度的破壞, 它仍能處在優化工作狀態,這點在軍事系統電子設備中得到廣泛的應用?,F有的智能信息系統有智能儀器、自動跟蹤監測儀器系統、自動控制制導系統、自動故障診斷和報警系統等。
2. 模式識別
模式識別是對表征事物或現象的各種形式的信息進行處理和分析,來對事物或現象進行描述、辨認、分類和解釋的過程。該技術以貝葉斯概率論和申農的信息論為理論基礎,對信息的處理過程更接近人類大腦的邏輯思維過程?,F在有兩種基本的模式識別方法,即統計模式識別方法和結構模式識別方法。人工神經網絡是模式識別中的常用方法,近年來發展起來的人工神經網絡模式的識別方法逐漸取代傳統的模式識別方法。經過多年的研究和發展,模式識別已成為當前比較先進的技術,被廣泛應用到文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字符的識別、工業故障檢測、精確制導等方面。
由于人體和疾病的復雜性、不可預測性,在生物信號與信息的表現形式上、變化規律(自身變化與醫學干預后變化)上,對其進行檢測與信號表達,獲取的數據及信息的分析、決策等諸多方面都存在非常復雜的非線性聯系,適合人工神經網絡的應用。目前的研究幾乎涉及從基礎醫學到臨床醫學的各個方面,主要應用在生物信號的檢測與自動分析,醫學專家系統等。
1. 生物信號的檢測與分析
大部分醫學檢測設備都是以連續波形的方式輸出數據的,這些波形是診斷的依據。人工神經網絡是由大量的簡單處理單元連接而成的自適應動力學系統, 具有巨量并行性,分布式存貯,自適應學習的自組織等功能,可以用它來解決生物醫學信號分析處理中常規法難以解決或無法解決的問題。神經網絡在生物醫學信號檢測與處理中的應用主要集中在對腦電信號的分析,聽覺誘發電位信號的提取、肌電和胃腸電等信號的識別,心電信號的壓縮,醫學圖像的識別和處理等。
2. 醫學專家系統
傳統的專家系統,是把專家的經驗和知識以規則的形式存儲在計算機中,建立知識庫,用邏輯推理的方式進行醫療診斷。但是在實際應用中,隨著數據庫規模的增大,將導致知識“爆炸”,在知識獲取途徑中也存在“瓶頸”問題,致使工作效率很低。以非線性并行處理為基礎的神經網絡為專家系統的研究指明了新的發展方向, 解決了專家系統的以上問題,并提高了知識的推理、自組織、自學習能力,從而神經網絡在醫學專家系統中得到廣泛的應用和發展。在麻醉與危重醫學等相關領域的研究中,涉及到多生理變量的分析與預測,在臨床數據中存在著一些尚未發現或無確切證據的關系與現象,信號的處理,干擾信號的自動區分檢測,各種臨床狀況的預測等,都可以應用到人工神經網絡技術。
1. 市場價格預測
對商品價格變動的分析,可歸結為對影響市場供求關系的諸多因素的綜合分析。傳統的統計經濟學方法因其固有的局限性,難以對價格變動做出科學的預測,而人工神經網絡容易處理不完整的、模糊不確定或規律性不明顯的數據,所以用人工神經網絡進行價格預測是有著傳統方法無法相比的優勢。從市場價格的確定機制出發,依據影響商品價格的家庭戶數、人均可支配收入、貸款利率、城市化水平等復雜、多變的因素,建立較為準確可靠的模型。該模型可以對商品價格的變動趨勢進行科學預測,并得到準確客觀的評價結果。
2. 風險評估
風險是指在從事某項特定活動的過程中,因其存在的不確定性而產生的經濟或財務的損失、自然破壞或損傷的可能性。防范風險的最佳辦法就是事先對風險做出科學的預測和評估。應用人工神經網絡的預測思想是根據具體現實的風險來源, 構造出適合實際情況的信用風險模型的結構和算法,得到風險評價系數,然后確定實際問題的解決方案。利用該模型進行實證分析能夠彌補主觀評估的不足,可以取得滿意效果。
人工神經網絡由于其獨特的模型結構和固有的非線性模擬能力,以及高度的自適應和容錯特性等突出特征,在控制系統中獲得了廣泛的應用。其在各類控制器框架結構的基礎上,加入了非線性自適應學習機制,從而使控制器具有更好的性能。基本的控制結構有監督控制、直接逆??刂?、模型參考控制、內??刂?、預測控制、最優決策控制等。
今年來人們對神經網絡在交通運輸系統中的應用開始了深入的研究。交通運輸問題是高度非線性的,可獲得的數據通常是大量的、復雜的,用神經網絡處理相關問題有它巨大的優越性。應用范圍涉及到汽車駕駛員行為的模擬、參數估計、路面維護、車輛檢測與分類、交通模式分析、貨物運營管理、交通流量預測、運輸策略與經濟、交通環保、空中運輸、船舶的自動導航及船只的辨認、地鐵運營及交通控制等領域并已經取得了很好的效果。
從神經網絡模型的形成開始,它就與心理學就有著密不可分的聯系。神經網絡抽象于神經元的信息處理功能,神經網絡的訓練則反映了感覺、記憶、學習等認知過程。人們通過不斷地研究, 變化著人工神經網絡的結構模型和學習規則,從不同角度探討著神經網絡的認知功能,為其在心理學的研究中奠定了堅實的基礎。近年來,人工神經網絡模型已經成為探討社會認知、記憶、學習等高級心理過程機制的不可或缺的工具。人工神經網絡模型還可以對腦損傷病人的認知缺陷進行研究,對傳統的認知定位機制提出了挑戰。
雖然人工神經網絡已經取得了一定的進步,但是還存在許多缺陷,例如:應用的面不夠寬闊、結果不夠精確;現有模型算法的訓練速度不夠高;算法的集成度不夠高;同時我們希望在理論上尋找新的突破點, 建立新的通用模型和算法。需進一步對生物神經元系統進行研究,不斷豐富人們對人腦神經的認識。
人工神經網絡模型的發展從最早的多層感知機(MLP)模型開始,可以一直追溯到后期的卷積神經網絡模型(CNN)、循環神經網絡模型(RNN)這些基本的模型,以及它們的變種模型,也可以追溯到組合式的模型,比如由前面的基本模型組成的自編碼神經網絡模型(AE)、生成式對抗神經網絡模型(GAN)、深度強化學習模型(DRL),以及后期出現的注意力模型(Attention Model)、transformer模型,甚至是圖神經網絡(GNN),以及比較前沿的量子神經網絡(QNN)等等。根據不同的任務類型所設計出來的神經網絡模型,在形狀和結構類型上也大不一樣。
其中以卷積神經網絡的模型和transformer的模型變種最多,卷積神經網絡的模型發展從1994年的LNet開始,一直到現在為止,在各大頂刊論文中所出現的卷積模型不下百種,下面列出其中比較常見的一些卷積模型:
LNet
LeNet誕生于1994年,由深度學習三巨頭之一的Yan LeCun提出,他也被稱為卷積神經網絡之父。LeNet主要用來進行手寫字符的識別與分類,準確率達到了98%,并在美國的銀行中投入了使用, LeNet奠定了現代卷積神經網絡的基礎。
LeNet網絡除去輸入輸出層總共有六層網絡,卷積核都是5*5的,stride=1,池化都是平均池化:conv->pool->conv->pool->-conv(fc)->fc
AlexNet
AlexNet是2012年ImageNet競賽冠軍獲得者Hinton和他的學生Alex Krizhevsky設計的。
AlexNet較之前LNet的改變主要有以下幾點:
(1)成功使用ReLU作為CNN的激活函數,并驗證其效果在較深的網絡超過了Sigmoid,成功解決了Sigmoid在網絡較深時的梯度彌散問題。
(2)訓練時使用Dropout隨機忽略一部分神經元,以避免模型過擬合。在AlexNet中主要是最后幾個全連接層使用了Dropout。
(3)在CNN中使用重疊的最大池化。此前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出讓步長比池化核的尺寸小,這樣池化層的輸出之間會有重疊和覆蓋,提升了特征的豐富性。
(4)提出了LRN(局部響應歸一化)層,對局部神經元的活動創建競爭機制,使得其中響應比較大的值變得相對更大,并抑制其他反饋較小的神經元,增強了模型的泛化能力。
(5)使用CUDA加速深度卷積網絡的訓練,利用GPU強大的并行計算能力,處理神經網絡訓練時大量的矩陣運算。
(6)數據增強,隨機地從256*256的原始圖像中截取224*224大小的區域(以及水平翻轉的鏡像),相當于增加了2*(256-224)^2=2048倍的數據量。如果沒有數據增強,僅靠原始的數據量,參數眾多的CNN會陷入過擬合中,使用了數據增強后可以大大減輕過擬合,提升泛化能力。
VGGNet
VGGNet是牛津大學計算機視覺組和Google DeepMind公司一起研發的深度卷積神經網絡,并取得了2014年Imagenet比賽定位項目第一名和分類項目第二名。vgg版本很多,常用的是VGG16,VGG19網絡。
上圖為VGG16的網絡結構,共16層(不包括池化和softmax層),所有的卷積核都使用3*3的大小,池化都使用大小為2*2,步長為2的最大池化,卷積層深度依次為64 -> 128 -> 256 -> 512 ->512。VGG-16有16個卷積層或全連接層,包括五組卷積層和3個全連接層,即:16=2+2+3+3+3+3。
VGGNet網絡結構和AlexNet相像,不同的地方在于:
1.VGGNet網絡層非常深,把網絡層數加到了16-19層(不包括池化和softmax層),而AlexNet是8層結構。
2.將卷積層提升到卷積塊的概念。卷積塊有2~3個卷積層構成,使網絡有更大感受野的同時能降低網絡參數,同時多次使用ReLu激活函數有更多的線性變換,學習能力更強。
3.在訓練時和預測時使用Multi-Scale做數據增強。訓練時將同一張圖片縮放到不同的尺寸,在隨機剪裁到224*224的大小,能夠增加數據量。預測時將同一張圖片縮放到不同尺寸做預測,最后取平均值。
作者同時對網絡做了一定改進,也發現了一些問題,得出了一些結論:
1、LRN層無性能增益(A-LRN)VGG作者通過網絡A-LRN發現,AlexNet曾經用到的LRN層(local response normalization,局部響應歸一化)并沒有帶來性能的提升,因此在其它組的網絡中均沒再出現LRN層。2、隨著深度增加,分類性能逐漸提高(A、B、C、D、E)從11層的A到19層的E,網絡深度增加對top1和top5的錯誤率下降很明顯。3、多個小卷積核比單個大卷積核性能好(B)VGG作者做了實驗用B和自己一個不在實驗組里的較淺網絡比較,較淺網絡用conv5x5來代替B的兩個conv3x3,結果顯示多個小卷積核比單個大卷積核效果要好。
GoogLeNet(Google Inception Net)
googleNet是2014年的ILSVRC的冠軍模型,GoogleNet做了更大膽的網絡上的嘗試,而不是像vgg繼承了lenet以及alexnet的一切框架。GoogleNet雖然有22層,但是參數量只有AlexNet的1/12。
GoogleNet論文指出獲得高質量模型最保險的做法就是增加模型的深度,或者是它的寬度,但是一般情況下,更深和更寬的網絡會出現以下問題:
1、參數太多,容易過擬合,如果訓練數據有限,則這一問題更加突出;
2、網絡越大計算復雜度越大,難以應用;
3、網絡越深,容易出現梯度消失問題。
總之更大的網絡容易產生過擬合,并且增加了計算量。GoogleNet給出的解決方案:將全連接層甚至一般的卷積都轉化為稀疏連接。
GoogleNet為了保持神經網絡結構的稀疏性,又能充分利用密集矩陣的高計算性能,提出了名為Inception的模塊化結構來實現此目的。依據就是大量文獻都表明,將稀疏矩陣聚類為比較密集的子矩陣可以提高計算性能。(這一塊我沒有很明白,是百度到的知識,但是關鍵在于GoogleNet提出了Inception這個模塊化結構,在2020年的今日,這個模塊依然有巨大作用)
SqueezeNet
SqueezeNet是Han等提出的一種輕量且高效的CNN模型,它參數比AlexNet少50x,但模型性能(accuracy)與AlexNet接近。在可接受的性能下,小模型相比大模型,具有很多優勢:(1)更高效的分布式訓練,小模型參數小,網絡通信量減少;(2)便于模型更新,模型小,客戶端程序容易更新;(3)利于部署在特定硬件如FPGA,因為其內存受限。因此研究小模型是很有現實意義的。Han等將CNN模型設計的研究總結為四個方面:
(1)模型壓縮:對pre-trained的模型進行壓縮,使其變成小模型,如采用網絡剪枝和量化等手段;
(2)CNN微觀結構:對單個卷積層進行優化設計,如采用1x1的小卷積核,還有很多采用可分解卷積(factorized convolution)結構或者模塊化的結構(blocks, modules);
(3)CNN宏觀結構:網絡架構層面上的優化設計,如網路深度(層數),還有像ResNet那樣采用“短路”連接(bypass connection);
(4)設計空間:不同超參數、網絡結構,優化器等的組合優化。
SqueezeNet也是從這四個方面來進行設計的,其設計理念可以總結為以下三點:
(1)大量使用1x1卷積核替換3x3卷積核,因為參數可以降低9倍;
(2)減少3x3卷積核的輸入通道數(input channels),因為卷積核參數為:(numberof input channels) * (number of filters) * 3 * 3.
(3)延遲下采樣(downsample),前面的layers可以有更大的特征圖,有利于提升模型準確度。目前下采樣一般采用strides>1的卷積層或者pool layer。
ResNet
ResNet(Residual Neural Network)由微軟研究院的Kaiming He等四名華人提出,通過使用ResNet Unit成功訓練出了152層的神經網絡,并在ILSVRC2015比賽中取得冠軍,在top5上的錯誤率為3.57%,同時參數量比VGGNet低,效果非常突出。ResNet的結構可以極快的加速神經網絡的訓練,模型的準確率也有比較大的提升。同時ResNet的推廣性非常好,甚至可以直接用到InceptionNet網絡中。
ResNet的主要思想是在網絡中增加了直連通道,即Highway Network的思想。此前的網絡結構是性能輸入做一個非線性變換,而Highway Network則允許保留之前網絡層的一定比例的輸出。ResNet的思想和Highway Network的思想也非常類似,允許原始輸入信息直接傳到后面的層中,如下圖所示。關注成都深度智谷科技——深度人工智能學院,了解更多的人工智能知識。
ResNet主要的作用有以下三點:
一、解決了梯度彌散問題
二、解決了網絡退化問題
三、適合解決各種復雜的問題
ResNet最終更新某一個節點的參數時,由于h(x)=F(x)+x,使得鏈式求導后的結果如圖所示,不管公式右邊部分的求導參數有多小,因為有x的導數1的存在,并且將原來的鏈式求導中的連乘變成了連加狀態都能保證該節點參數更新不會發生梯度消失或梯度爆炸現象。
在引入ResNet之前,我們想讓該層學習到的參數能夠滿足h(x)=x,即輸入是x,經過該冗余層后,輸出仍然為x。但是要想學習h(x)=x恒等映射時的這層參數時比較困難的。ResNet想到避免去學習該層恒等映射的參數,可以讓h(x)=F(x)+x,這里的F(x)我們稱作殘差項,我們發現,要想讓該冗余層能夠恒等映射,我們只需要學習F(x)=0。學習F(x)=0比學習h(x)=x要簡單,因為一般每層網絡中的參數初始化偏向于0,這樣在相比于更新該網絡層的參數來學習h(x)=x,該冗余層學習F(x)=0的更新參數能夠更快收斂。
DenseNet
DenseNet是CVPR 2017的best paper,在ResNet的基礎上進行改進優化。DenseNet和ResNet的核心思想都是創建一個跨層連接來連通網絡的前后層,在DenseNet中作者為了最大化層級之間的信息流,將所有層兩兩進行連接,這也是DenseNet(Densely Connected Convolutional Networks)名字的意義所在,密集的網絡連接。
DenseNet作為另一種擁有較深層數的卷積神經網絡,具有如下優點:
1、減輕了vanishing-gradient(梯度消失)2、加強了feature的傳遞3、更有效地利用了feature4、一定程度上較少了參數數量
MobileNet
MobileNets是為移動和嵌入式設備提出的高效模型。MobileNets基于流線型架構(streamlined),使用深度可分離卷積(depthwise separable convolutions,即Xception變體結構)來構建輕量級深度神經網絡。
MobileNet的基本單元是深度級可分離卷積(depthwise separable convolution),其實這種結構之前已經被使用在Inception模型中。深度級可分離卷積其實是一種可分解卷積操作(factorized convolutions),其可以分解為兩個更小的操作:depthwise convolution和pointwise convolution,Depthwise convolution和標準卷積不同,對于標準卷積其卷積核是用在所有的輸入通道上(input channels),而depthwise convolution針對每個輸入通道采用不同的卷積核,就是說一個卷積核對應一個輸入通道,所以說depthwise convolution是depth級別的操作。
而pointwise convolution其實就是普通的卷積,只不過其采用1x1的卷積核。對于depthwise separable convolution,其首先是采用depthwise convolution對不同輸入通道分別進行卷積,然后采用pointwise convolution將上面的輸出再進行結合,這樣其實整體效果和一個標準卷積是差不多的,但是會大大減少計算量和模型參數量。
ShuffleNet
ShuffleNet v1是由曠視科技在2017年底提出的輕量級可用于移動設備的卷積神經網絡。該網絡創新之處在于,使用pointwise group convolution還有channel shuffle,保證網絡準確率的同時,大幅度降低了所需的計算資源。
在一般的神經網絡網絡中,pointwise convolution的出現使得所需計算量極大的增多,于是作者提出了pointwise group convolution來降低計算量,但是group與group之間的幾乎沒有聯系,影響了網絡的準確率,于是作者又提出了channel shuffle來加強group之間的聯系。在一定計算復雜度下,網絡允許更多的通道數來保留更多的信息,這恰恰是輕量級網絡所追求的。
(a)和(b)是ShuffleNet v1的兩種不同block結構,兩者的差別在于后者對特征圖尺寸做了縮小,這和ResNet中某個stage的兩種block功能類似,同理(c)和(d)是ShuffleNet v2的兩種不同block結構。
EfficientNet
卷積神經網絡(ConvNets)通常是在固定的資源預算下開發的,如果有更多的資源可用,就會擴大規模以獲得更好的準確性。作者系統地研究了模型縮放,發現平衡網絡的深度、寬度和分辨率可以得到更好的性能。在此基礎上,作者提出了一種新的尺度劃分方法,即利用簡單而高效的復合系數來均勻地劃分深度/寬度/分辨率各維度。
作者希望找到一個可以同時兼顧速度與精度的模型放縮方法,為此,作者重新審視了前人提出的模型放縮的幾個維度:網絡深度、網絡寬度、圖像分辨率,前人的文章多是放大其中的一個維度以達到更高的準確率,比如 ResNet-18 到 ResNet-152 是通過增加網絡深度的方法來提高準確率。作者跳出了前人對放縮模型的理解,從一個高度去審視這些放縮維度。作者認為這三個維度之間是互相影響的并探索出了三者之間最好的組合,在此基礎上提出了最新的網絡 EfficientNet(基于神經網絡搜索)。
那么第一個問題就是:單個維度做scaling存在什么問題嗎?針對這個問題,作者做了這個實驗,也就是針對某個分類網絡的3個維度(寬度、深度和分辨率)分別做model scaling的結果對比。顯然,單獨優化這3個維度都能提升模型效果,但上限也比較明顯,基本上在Acc達到80后提升就很小了:
1、單純增加層數(深度d)和精度的增加變化呈log函數,也就是說深度達到一定程度后,精度的增加就很小了,但是參數量卻還在不斷變大。
2、同理,只對通道(寬度w)的增加也和精度的增加變化呈log函數。
3、輸入圖像(分辨率r)越大,精度越高,但是它們之間也呈log函數。
結論:三個維度中任一維度的放大都可以帶來精度的提升,但隨著倍率越來越大,提升卻越來越小。
如何找到平衡參數(分辨率、深度、寬度)和精度之間的指標是首要任務。既滿足參數量少,又滿足精度高。如果簡單的根據給定上面的3個參數參數設計模型進行訓練,顯然是不可行的,這樣的效率太低下。
作者提出了一種混合維度放大法(compound scaling method),該方法使用一個混合系數,先設計搜索一個較小(深度d和寬度w)的網絡做為基礎網絡,傳入較小的圖片(分辨率r,一般為224),先獲得比較好的精度,然后增加一定的深度倍數α、寬度倍數β、、分辨率倍數γ,在參數計算量增加2倍,并且精度最高的情況下搜索到了一組最佳的參數α=1.2,β=1.1,γ=1.15 ,參數即滿足公式:α*β2*γ2≈2,(α≥1,β≥1,γ≥1)。
神經網絡的模型還有很多,包括后面的RepVGG、botnet、nfnet、ResNet-RS等,以及以transformer為主的TRDT、ViT、CvT、Swin Transformer、Twins 、informer等模型。有興趣的同學可以慢慢去研究。關注成都深度智谷科技——深度人工智能學院,獲取更多人工智能知識。
結語——神經網絡的未來
按照神經網絡的發展來看,未來發展方向主要有下面幾個方向。一是在遠程服務器上的模型會更大、參數更多、功能更強,主要解決大型的復雜難題;另一方向是在本地邊緣設備上運行的模型發展會更小、參數更少、效率更快,主要是解決一些實時需求的任務問題;還有就是基于不同廠家的各種專用設備的專用模型。
不管模型細分領域的發展方向如何,找到適合自己項目任務的模型去訓練,圓滿完成上面交代的任務才是煉丹師們該去重點關注的。