A. 神經網路模型-27種神經網路模型們的簡介
【1】Perceptron(P) 感知機
【1】感知機
感知機是我們知道的最簡單和最古老的神經元模型,它接收一些輸入,然後把它們加總,通過激活函數並傳遞到輸出層。
【2】Feed Forward(FF)前饋神經網路
【2】前饋神經網路
前饋神經網路(FF),這也是一個很古老的方法——這種方法起源於50年代。它的工作原理通常遵循以下規則:
1.所有節點都完全連接
2.激活從輸入層流向輸出,無回環
3.輸入和輸出之間有一層(隱含層)
在大多數情況下,這種類型的網路使用反向傳播方法進行訓練。
【3】Radial Basis Network(RBF) RBF神經網路
【3】RBF神經網路
RBF 神經網路實際上是 激活函數是徑向基函數 而非邏輯函數的FF前饋神經網路(FF)。兩者之間有什麼區別呢?
邏輯函數--- 將某個任意值映射到[0 ,... 1]范圍內來,回答「是或否」問題。適用於分類決策系統,但不適用於連續變數。
相反, 徑向基函數--- 能顯示「我們距離目標有多遠」。 這完美適用於函數逼近和機器控制(例如作為PID控制器的替代)。
簡而言之,RBF神經網路其實就是, 具有不同激活函數和應用方向的前饋網路 。
【4】Deep Feed Forword(DFF)深度前饋神經網路
【4】DFF深度前饋神經網路
DFF深度前饋神經網路在90年代初期開啟了深度學習的潘多拉盒子。 這些依然是前饋神經網路,但有不止一個隱含層 。那麼,它到底有什麼特殊性?
在訓練傳統的前饋神經網路時,我們只向上一層傳遞了少量的誤差信息。由於堆疊更多的層次導致訓練時間的指數增長,使得深度前饋神經網路非常不實用。 直到00年代初,我們開發了一系列有效的訓練深度前饋神經網路的方法; 現在它們構成了現代機器學習系統的核心 ,能實現前饋神經網路的功能,但效果遠高於此。
【5】Recurrent Neural Network(RNN) 遞歸神經網路
【5】RNN遞歸神經網路
RNN遞歸神經網路引入不同類型的神經元——遞歸神經元。這種類型的第一個網路被稱為約旦網路(Jordan Network),在網路中每個隱含神經元會收到它自己的在固定延遲(一次或多次迭代)後的輸出。除此之外,它與普通的模糊神經網路非常相似。
當然,它有許多變化 — 如傳遞狀態到輸入節點,可變延遲等,但主要思想保持不變。這種類型的神經網路主要被使用在上下文很重要的時候——即過去的迭代結果和樣本產生的決策會對當前產生影響。最常見的上下文的例子是文本——一個單詞只能在前面的單詞或句子的上下文中進行分析。
【6】Long/Short Term Memory (LSTM) 長短時記憶網路
【6】LSTM長短時記憶網路
LSTM長短時記憶網路引入了一個存儲單元,一個特殊的單元,當數據有時間間隔(或滯後)時可以處理數據。遞歸神經網路可以通過「記住」前十個詞來處理文本,LSTM長短時記憶網路可以通過「記住」許多幀之前發生的事情處理視頻幀。 LSTM網路也廣泛用於寫作和語音識別。
存儲單元實際上由一些元素組成,稱為門,它們是遞歸性的,並控制信息如何被記住和遺忘。
【7】Gated Recurrent Unit (GRU)
【7】GRU是具有不同門的LSTM
GRU是具有不同門的LSTM。
聽起來很簡單,但缺少輸出門可以更容易基於具體輸入重復多次相同的輸出,目前此模型在聲音(音樂)和語音合成中使用得最多。
實際上的組合雖然有點不同:但是所有的LSTM門都被組合成所謂的更新門(Update Gate),並且復位門(Reset Gate)與輸入密切相關。
它們比LSTM消耗資源少,但幾乎有相同的效果。
【8】Auto Encoder (AE) 自動編碼器
【8】AE自動編碼器
Autoencoders自動編碼器用於分類,聚類和特徵壓縮。
當您訓練前饋(FF)神經網路進行分類時,您主要必須在Y類別中提供X個示例,並且期望Y個輸出單元格中的一個被激活。 這被稱為「監督學習」。
另一方面,自動編碼器可以在沒有監督的情況下進行訓練。它們的結構 - 當隱藏單元數量小於輸入單元數量(並且輸出單元數量等於輸入單元數)時,並且當自動編碼器被訓練時輸出盡可能接近輸入的方式,強制自動編碼器泛化數據並搜索常見模式。
【9】Variational AE (VAE) 變分自編碼器
【9】VAE變分自編碼器
變分自編碼器,與一般自編碼器相比,它壓縮的是概率,而不是特徵。
盡管如此簡單的改變,但是一般自編碼器只能回答當「我們如何歸納數據?」的問題時,變分自編碼器回答了「兩件事情之間的聯系有多強大?我們應該在兩件事情之間分配誤差還是它們完全獨立的?」的問題。
【10】Denoising AE (DAE) 降噪自動編碼器
【10】DAE降噪自動編碼器
雖然自動編碼器很酷,但它們有時找不到最魯棒的特徵,而只是適應輸入數據(實際上是過擬合的一個例子)。
降噪自動編碼器(DAE)在輸入單元上增加了一些雜訊 - 通過隨機位來改變數據,隨機切換輸入中的位,等等。通過這樣做,一個強制降噪自動編碼器從一個有點嘈雜的輸入重構輸出,使其更加通用,強制選擇更常見的特徵。
【11】Sparse AE (SAE) 稀疏自編碼器
【11】SAE稀疏自編碼器
稀疏自編碼器(SAE)是另外一個有時候可以抽離出數據中一些隱藏分組樣試的自動編碼的形式。結構和AE是一樣的,但隱藏單元的數量大於輸入或輸出單元的數量。
【12】Markov Chain (MC) 馬爾科夫鏈
【12】Markov Chain (MC) 馬爾科夫鏈
馬爾可夫鏈(Markov Chain, MC)是一個比較老的圖表概念了,它的每一個端點都存在一種可能性。過去,我們用它來搭建像「在單詞hello之後有0.0053%的概率會出現dear,有0.03551%的概率出現you」這樣的文本結構。
這些馬爾科夫鏈並不是典型的神經網路,它可以被用作基於概率的分類(像貝葉斯過濾),用於聚類(對某些類別而言),也被用作有限狀態機。
【13】Hopfield Network (HN) 霍普菲爾網路
【13】HN霍普菲爾網路
霍普菲爾網路(HN)對一套有限的樣本進行訓練,所以它們用相同的樣本對已知樣本作出反應。
在訓練前,每一個樣本都作為輸入樣本,在訓練之中作為隱藏樣本,使用過之後被用作輸出樣本。
在HN試著重構受訓樣本的時候,他們可以用於給輸入值降噪和修復輸入。如果給出一半圖片或數列用來學習,它們可以反饋全部樣本。
【14】Boltzmann Machine (BM) 波爾滋曼機
【14】 BM 波爾滋曼機
波爾滋曼機(BM)和HN非常相像,有些單元被標記為輸入同時也是隱藏單元。在隱藏單元更新其狀態時,輸入單元就變成了輸出單元。(在訓練時,BM和HN一個一個的更新單元,而非並行)。
這是第一個成功保留模擬退火方法的網路拓撲。
多層疊的波爾滋曼機可以用於所謂的深度信念網路,深度信念網路可以用作特徵檢測和抽取。
【15】Restricted BM (RBM) 限制型波爾滋曼機
【15】 RBM 限制型波爾滋曼機
在結構上,限制型波爾滋曼機(RBM)和BM很相似,但由於受限RBM被允許像FF一樣用反向傳播來訓練(唯一的不同的是在反向傳播經過數據之前RBM會經過一次輸入層)。
【16】Deep Belief Network (DBN) 深度信念網路
【16】DBN 深度信念網路
像之前提到的那樣,深度信念網路(DBN)實際上是許多波爾滋曼機(被VAE包圍)。他們能被連在一起(在一個神經網路訓練另一個的時候),並且可以用已經學習過的樣式來生成數據。
【17】Deep Convolutional Network (DCN) 深度卷積網路
【17】 DCN 深度卷積網路
當今,深度卷積網路(DCN)是人工神經網路之星。它具有卷積單元(或者池化層)和內核,每一種都用以不同目的。
卷積核事實上用來處理輸入的數據,池化層是用來簡化它們(大多數情況是用非線性方程,比如max),來減少不必要的特徵。
他們通常被用來做圖像識別,它們在圖片的一小部分上運行(大約20x20像素)。輸入窗口一個像素一個像素的沿著圖像滑動。然後數據流向卷積層,卷積層形成一個漏斗(壓縮被識別的特徵)。從圖像識別來講,第一層識別梯度,第二層識別線,第三層識別形狀,以此類推,直到特定的物體那一級。DFF通常被接在卷積層的末端方便未來的數據處理。
【18】Deconvolutional Network (DN) 去卷積網路
【18】 DN 去卷積網路
去卷積網路(DN)是將DCN顛倒過來。DN能在獲取貓的圖片之後生成像(狗:0,蜥蜴:0,馬:0,貓:1)一樣的向量。DNC能在得到這個向量之後,能畫出一隻貓。
【19】Deep Convolutional Inverse Graphics Network (DCIGN) 深度卷積反轉圖像網路
【19】 DCIGN 深度卷積反轉圖像網路
深度卷積反轉圖像網路(DCIGN),長得像DCN和DN粘在一起,但也不完全是這樣。
事實上,它是一個自動編碼器,DCN和DN並不是作為兩個分開的網路,而是承載網路輸入和輸出的間隔區。大多數這種神經網路可以被用作圖像處理,並且可以處理他們以前沒有被訓練過的圖像。由於其抽象化的水平很高,這些網路可以用於將某個事物從一張圖片中移除,重畫,或者像大名鼎鼎的CycleGAN一樣將一匹馬換成一個斑馬。
【20】Generative Adversarial Network (GAN) 生成對抗網路
【20】 GAN 生成對抗網路
生成對抗網路(GAN)代表了有生成器和分辨器組成的雙網路大家族。它們一直在相互傷害——生成器試著生成一些數據,而分辨器接收樣本數據後試著分辨出哪些是樣本,哪些是生成的。只要你能夠保持兩種神經網路訓練之間的平衡,在不斷的進化中,這種神經網路可以生成實際圖像。
【21】Liquid State Machine (LSM) 液體狀態機
【21】 LSM 液體狀態機
液體狀態機(LSM)是一種稀疏的,激活函數被閾值代替了的(並不是全部相連的)神經網路。只有達到閾值的時候,單元格從連續的樣本和釋放出來的輸出中積累價值信息,並再次將內部的副本設為零。
這種想法來自於人腦,這些神經網路被廣泛的應用於計算機視覺,語音識別系統,但目前還沒有重大突破。
【22】Extreme Learning Machine (ELM) 極端學習機
【22】ELM 極端學習機
極端學習機(ELM)是通過產生稀疏的隨機連接的隱藏層來減少FF網路背後的復雜性。它們需要用到更少計算機的能量,實際的效率很大程度上取決於任務和數據。
【23】Echo State Network (ESN) 回聲狀態網路
【23】 ESN 回聲狀態網路
回聲狀態網路(ESN)是重復網路的細分種類。數據會經過輸入端,如果被監測到進行了多次迭代(請允許重復網路的特徵亂入一下),只有在隱藏層之間的權重會在此之後更新。
據我所知,除了多個理論基準之外,我不知道這種類型的有什麼實際應用。。。。。。。
【24】Deep Resial Network (DRN) 深度殘差網路
【24】 DRN 深度殘差網路
深度殘差網路(DRN)是有些輸入值的部分會傳遞到下一層。這一特點可以讓它可以做到很深的層級(達到300層),但事實上它們是一種沒有明確延時的RNN。
【25】Kohonen Network (KN) Kohonen神經網路
【25】 Kohonen神經網路
Kohonen神經網路(KN)引入了「單元格距離」的特徵。大多數情況下用於分類,這種網路試著調整它們的單元格使其對某種特定的輸入作出最可能的反應。當一些單元格更新了, 離他們最近的單元格也會更新。
像SVM一樣,這些網路總被認為不是「真正」的神經網路。
【26】Support Vector Machine (SVM)
【26】 SVM 支持向量機
支持向量機(SVM)用於二元分類工作,無論這個網路處理多少維度或輸入,結果都會是「是」或「否」。
SVM不是所有情況下都被叫做神經網路。
【27】Neural Turing Machine (NTM) 神經圖靈機
【27】NTM 神經圖靈機
神經網路像是黑箱——我們可以訓練它們,得到結果,增強它們,但實際的決定路徑大多數我們都是不可見的。
神經圖靈機(NTM)就是在嘗試解決這個問題——它是一個提取出記憶單元之後的FF。一些作者也說它是一個抽象版的LSTM。
記憶是被內容編址的,這個網路可以基於現狀讀取記憶,編寫記憶,也代表了圖靈完備神經網路。
B. 人工神經網路的應用分析
經過幾十年的發展,神經網路理論在模式識別、自動控制、信號處理、輔助決策、人工智慧等眾多研究領域取得了廣泛的成功。下面介紹神經網路在一些領域中的應用現狀。 在處理許多問題中,信息來源既不完整,又包含假象,決策規則有時相互矛盾,有時無章可循,這給傳統的信息處理方式帶來了很大的困難,而神經網路卻能很好的處理這些問題,並給出合理的識別與判斷。
1.信息處理
現代信息處理要解決的問題是很復雜的,人工神經網路具有模仿或代替與人的思維有關的功能, 可以實現自動診斷、問題求解,解決傳統方法所不能或難以解決的問題。人工神經網路系統具有很高的容錯性、魯棒性及自組織性,即使連接線遭到很高程度的破壞, 它仍能處在優化工作狀態,這點在軍事系統電子設備中得到廣泛的應用。現有的智能信息系統有智能儀器、自動跟蹤監測儀器系統、自動控制制導系統、自動故障診斷和報警系統等。
2. 模式識別
模式識別是對表徵事物或現象的各種形式的信息進行處理和分析,來對事物或現象進行描述、辨認、分類和解釋的過程。該技術以貝葉斯概率論和申農的資訊理論為理論基礎,對信息的處理過程更接近人類大腦的邏輯思維過程。現在有兩種基本的模式識別方法,即統計模式識別方法和結構模式識別方法。人工神經網路是模式識別中的常用方法,近年來發展起來的人工神經網路模式的識別方法逐漸取代傳統的模式識別方法。經過多年的研究和發展,模式識別已成為當前比較先進的技術,被廣泛應用到文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字元的識別、工業故障檢測、精確制導等方面。 由於人體和疾病的復雜性、不可預測性,在生物信號與信息的表現形式上、變化規律(自身變化與醫學干預後變化)上,對其進行檢測與信號表達,獲取的數據及信息的分析、決策等諸多方面都存在非常復雜的非線性聯系,適合人工神經網路的應用。目前的研究幾乎涉及從基礎醫學到臨床醫學的各個方面,主要應用在生物信號的檢測與自動分析,醫學專家系統等。
1. 生物信號的檢測與分析
大部分醫學檢測設備都是以連續波形的方式輸出數據的,這些波形是診斷的依據。人工神經網路是由大量的簡單處理單元連接而成的自適應動力學系統, 具有巨量並行性,分布式存貯,自適應學習的自組織等功能,可以用它來解決生物醫學信號分析處理中常規法難以解決或無法解決的問題。神經網路在生物醫學信號檢測與處理中的應用主要集中在對腦電信號的分析,聽覺誘發電位信號的提取、肌電和胃腸電等信號的識別,心電信號的壓縮,醫學圖像的識別和處理等。
2. 醫學專家系統
傳統的專家系統,是把專家的經驗和知識以規則的形式存儲在計算機中,建立知識庫,用邏輯推理的方式進行醫療診斷。但是在實際應用中,隨著資料庫規模的增大,將導致知識「爆炸」,在知識獲取途徑中也存在「瓶頸」問題,致使工作效率很低。以非線性並行處理為基礎的神經網路為專家系統的研究指明了新的發展方向, 解決了專家系統的以上問題,並提高了知識的推理、自組織、自學習能力,從而神經網路在醫學專家系統中得到廣泛的應用和發展。在麻醉與危重醫學等相關領域的研究中,涉及到多生理變數的分析與預測,在臨床數據中存在著一些尚未發現或無確切證據的關系與現象,信號的處理,干擾信號的自動區分檢測,各種臨床狀況的預測等,都可以應用到人工神經網路技術。 1. 市場價格預測
對商品價格變動的分析,可歸結為對影響市場供求關系的諸多因素的綜合分析。傳統的統計經濟學方法因其固有的局限性,難以對價格變動做出科學的預測,而人工神經網路容易處理不完整的、模糊不確定或規律性不明顯的數據,所以用人工神經網路進行價格預測是有著傳統方法無法相比的優勢。從市場價格的確定機制出發,依據影響商品價格的家庭戶數、人均可支配收入、貸款利率、城市化水平等復雜、多變的因素,建立較為准確可靠的模型。該模型可以對商品價格的變動趨勢進行科學預測,並得到准確客觀的評價結果。
2. 風險評估
風險是指在從事某項特定活動的過程中,因其存在的不確定性而產生的經濟或財務的損失、自然破壞或損傷的可能性。防範風險的最佳辦法就是事先對風險做出科學的預測和評估。應用人工神經網路的預測思想是根據具體現實的風險來源, 構造出適合實際情況的信用風險模型的結構和演算法,得到風險評價系數,然後確定實際問題的解決方案。利用該模型進行實證分析能夠彌補主觀評估的不足,可以取得滿意效果。 從神經網路模型的形成開始,它就與心理學就有著密不可分的聯系。神經網路抽象於神經元的信息處理功能,神經網路的訓練則反映了感覺、記憶、學習等認知過程。人們通過不斷地研究, 變化著人工神經網路的結構模型和學習規則,從不同角度探討著神經網路的認知功能,為其在心理學的研究中奠定了堅實的基礎。近年來,人工神經網路模型已經成為探討社會認知、記憶、學習等高級心理過程機制的不可或缺的工具。人工神經網路模型還可以對腦損傷病人的認知缺陷進行研究,對傳統的認知定位機制提出了挑戰。
雖然人工神經網路已經取得了一定的進步,但是還存在許多缺陷,例如:應用的面不夠寬闊、結果不夠精確;現有模型演算法的訓練速度不夠高;演算法的集成度不夠高;同時我們希望在理論上尋找新的突破點, 建立新的通用模型和演算法。需進一步對生物神經元系統進行研究,不斷豐富人們對人腦神經的認識。
C. 神經網路BP模型
一、BP模型概述
誤差逆傳播(Error Back-Propagation)神經網路模型簡稱為BP(Back-Propagation)網路模型。
Pall Werbas博士於1974年在他的博士論文中提出了誤差逆傳播學習演算法。完整提出並被廣泛接受誤差逆傳播學習演算法的是以Rumelhart和McCelland為首的科學家小組。他們在1986年出版「Parallel Distributed Processing,Explorations in the Microstructure of Cognition」(《並行分布信息處理》)一書中,對誤差逆傳播學習演算法進行了詳盡的分析與介紹,並對這一演算法的潛在能力進行了深入探討。
BP網路是一種具有3層或3層以上的階層型神經網路。上、下層之間各神經元實現全連接,即下層的每一個神經元與上層的每一個神經元都實現權連接,而每一層各神經元之間無連接。網路按有教師示教的方式進行學習,當一對學習模式提供給網路後,神經元的激活值從輸入層經各隱含層向輸出層傳播,在輸出層的各神經元獲得網路的輸入響應。在這之後,按減小期望輸出與實際輸出的誤差的方向,從輸入層經各隱含層逐層修正各連接權,最後回到輸入層,故得名「誤差逆傳播學習演算法」。隨著這種誤差逆傳播修正的不斷進行,網路對輸入模式響應的正確率也不斷提高。
BP網路主要應用於以下幾個方面:
1)函數逼近:用輸入模式與相應的期望輸出模式學習一個網路逼近一個函數;
2)模式識別:用一個特定的期望輸出模式將它與輸入模式聯系起來;
3)分類:把輸入模式以所定義的合適方式進行分類;
4)數據壓縮:減少輸出矢量的維數以便於傳輸或存儲。
在人工神經網路的實際應用中,80%~90%的人工神經網路模型採用BP網路或它的變化形式,它也是前向網路的核心部分,體現了人工神經網路最精華的部分。
二、BP模型原理
下面以三層BP網路為例,說明學習和應用的原理。
1.數據定義
P對學習模式(xp,dp),p=1,2,…,P;
輸入模式矩陣X[N][P]=(x1,x2,…,xP);
目標模式矩陣d[M][P]=(d1,d2,…,dP)。
三層BP網路結構
輸入層神經元節點數S0=N,i=1,2,…,S0;
隱含層神經元節點數S1,j=1,2,…,S1;
神經元激活函數f1[S1];
權值矩陣W1[S1][S0];
偏差向量b1[S1]。
輸出層神經元節點數S2=M,k=1,2,…,S2;
神經元激活函數f2[S2];
權值矩陣W2[S2][S1];
偏差向量b2[S2]。
學習參數
目標誤差ϵ;
初始權更新值Δ0;
最大權更新值Δmax;
權更新值增大倍數η+;
權更新值減小倍數η-。
2.誤差函數定義
對第p個輸入模式的誤差的計算公式為
中國礦產資源評價新技術與評價新模型
y2kp為BP網的計算輸出。
3.BP網路學習公式推導
BP網路學習公式推導的指導思想是,對網路的權值W、偏差b修正,使誤差函數沿負梯度方向下降,直到網路輸出誤差精度達到目標精度要求,學習結束。
各層輸出計算公式
輸入層
y0i=xi,i=1,2,…,S0;
隱含層
中國礦產資源評價新技術與評價新模型
y1j=f1(z1j),
j=1,2,…,S1;
輸出層
中國礦產資源評價新技術與評價新模型
y2k=f2(z2k),
k=1,2,…,S2。
輸出節點的誤差公式
中國礦產資源評價新技術與評價新模型
對輸出層節點的梯度公式推導
中國礦產資源評價新技術與評價新模型
E是多個y2m的函數,但只有一個y2k與wkj有關,各y2m間相互獨立。
其中
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
設輸出層節點誤差為
δ2k=(dk-y2k)·f2′(z2k),
則
中國礦產資源評價新技術與評價新模型
同理可得
中國礦產資源評價新技術與評價新模型
對隱含層節點的梯度公式推導
中國礦產資源評價新技術與評價新模型
E是多個y2k的函數,針對某一個w1ji,對應一個y1j,它與所有的y2k有關。因此,上式只存在對k的求和,其中
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
設隱含層節點誤差為
中國礦產資源評價新技術與評價新模型
則
中國礦產資源評價新技術與評價新模型
同理可得
中國礦產資源評價新技術與評價新模型
4.採用彈性BP演算法(RPROP)計算權值W、偏差b的修正值ΔW,Δb
1993年德國 Martin Riedmiller和Heinrich Braun 在他們的論文「A Direct Adaptive Method for Faster Backpropagation Learning:The RPROP Algorithm」中,提出Resilient Backpropagation演算法——彈性BP演算法(RPROP)。這種方法試圖消除梯度的大小對權步的有害影響,因此,只有梯度的符號被認為表示權更新的方向。
權改變的大小僅僅由權專門的「更新值」
中國礦產資源評價新技術與評價新模型
其中
權更新遵循規則:如果導數是正(增加誤差),這個權由它的更新值減少。如果導數是負,更新值增加。
中國礦產資源評價新技術與評價新模型
RPROP演算法是根據局部梯度信息實現權步的直接修改。對於每個權,我們引入它的
各自的更新值
於在誤差函數E上的局部梯度信息,按照以下的學習規則更新
中國礦產資源評價新技術與評價新模型
其中0<η-<1<η+。
在每個時刻,如果目標函數的梯度改變它的符號,它表示最後的更新太大,更新值
為了減少自由地可調參數的數目,增大倍數因子η+和減小倍數因子η–被設置到固定值
η+=1.2,
η-=0.5,
這兩個值在大量的實踐中得到了很好的效果。
RPROP演算法採用了兩個參數:初始權更新值Δ0和最大權更新值Δmax
當學習開始時,所有的更新值被設置為初始值Δ0,因為它直接確定了前面權步的大小,它應該按照權自身的初值進行選擇,例如,Δ0=0.1(默認設置)。
為了使權不至於變得太大,設置最大權更新值限制Δmax,默認上界設置為
Δmax=50.0。
在很多實驗中,發現通過設置最大權更新值Δmax到相當小的值,例如
Δmax=1.0。
我們可能達到誤差減小的平滑性能。
5.計算修正權值W、偏差b
第t次學習,權值W、偏差b的的修正公式
W(t)=W(t-1)+ΔW(t),
b(t)=b(t-1)+Δb(t),
其中,t為學習次數。
6.BP網路學習成功結束條件每次學習累積誤差平方和
中國礦產資源評價新技術與評價新模型
每次學習平均誤差
中國礦產資源評價新技術與評價新模型
當平均誤差MSE<ε,BP網路學習成功結束。
7.BP網路應用預測
在應用BP網路時,提供網路輸入給輸入層,應用給定的BP網路及BP網路學習得到的權值W、偏差b,網路輸入經過從輸入層經各隱含層向輸出層的「順傳播」過程,計算出BP網的預測輸出。
8.神經元激活函數f
線性函數
f(x)=x,
f′(x)=1,
f(x)的輸入范圍(-∞,+∞),輸出范圍(-∞,+∞)。
一般用於輸出層,可使網路輸出任何值。
S型函數S(x)
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍(0,1)。
f′(x)=f(x)[1-f(x)],
f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,
一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(0,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。
在用於模式識別時,可用於輸出層,產生逼近於0或1的二值輸出。
雙曲正切S型函數
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍(-1,1)。
f′(x)=1-f(x)·f(x),
f′(x)的輸入范圍(-∞,+∞),輸出范圍(0,1]。
一般用於隱含層,可使范圍(-∞,+∞)的輸入,變成(-1,1)的網路輸出,對較大的輸入,放大系數較小;而對較小的輸入,放大系數較大,所以可用來處理和逼近非線性的輸入/輸出關系。
階梯函數
類型1
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
f′(x)=0。
類型2
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍{-1,1}。
f′(x)=0。
斜坡函數
類型1
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍[0,1]。
中國礦產資源評價新技術與評價新模型
f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
類型2
中國礦產資源評價新技術與評價新模型
f(x)的輸入范圍(-∞,+∞),輸出范圍[-1,1]。
中國礦產資源評價新技術與評價新模型
f′(x)的輸入范圍(-∞,+∞),輸出范圍{0,1}。
三、總體演算法
1.三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b初始化總體演算法
(1)輸入參數X[N][P],S0,S1,f1[S1],S2,f2[S2];
(2)計算輸入模式X[N][P]各個變數的最大值,最小值矩陣 Xmax[N],Xmin[N];
(3)隱含層的權值W1,偏差b1初始化。
情形1:隱含層激活函數f( )都是雙曲正切S型函數
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9))輸出W1[S1][S0],b1[S1]。
情形2:隱含層激活函數f( )都是S型函數
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9)輸出W1[S1][S0],b1[S1]。
情形3:隱含層激活函數f( )為其他函數的情形
1)計算輸入模式X[N][P]的每個變數的范圍向量Xrng[N];
2)計算輸入模式X的每個變數的范圍均值向量Xmid[N];
3)計算W,b的幅度因子Wmag;
4)產生[-1,1]之間均勻分布的S0×1維隨機數矩陣Rand[S1];
5)產生均值為0,方差為1的正態分布的S1×S0維隨機數矩陣Randnr[S1][S0],隨機數范圍大致在[-1,1];
6)計算W[S1][S0],b[S1];
7)計算隱含層的初始化權值W1[S1][S0];
8)計算隱含層的初始化偏差b1[S1];
9)輸出W1[S1][S0],b1[S1]。
(4)輸出層的權值W2,偏差b2初始化
1)產生[-1,1]之間均勻分布的S2×S1維隨機數矩陣W2[S2][S1];
2)產生[-1,1]之間均勻分布的S2×1維隨機數矩陣b2[S2];
3)輸出W2[S2][S1],b2[S2]。
2.應用彈性BP演算法(RPROP)學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b總體演算法
函數:Train3BP_RPROP(S0,X,P,S1,W1,b1,f1,S2,W2,b2,f2,d,TP)
(1)輸入參數
P對模式(xp,dp),p=1,2,…,P;
三層BP網路結構;
學習參數。
(2)學習初始化
1)
2)各層W,b的梯度值
(3)由輸入模式X求第一次學習各層輸出y0,y1,y2及第一次學習平均誤差MSE
(4)進入學習循環
epoch=1
(5)判斷每次學習誤差是否達到目標誤差要求
如果MSE<ϵ,
則,跳出epoch循環,
轉到(12)。
(6)保存第epoch-1次學習產生的各層W,b的梯度值
(7)求第epoch次學習各層W,b的梯度值
1)求各層誤差反向傳播值δ;
2)求第p次各層W,b的梯度值
3)求p=1,2,…,P次模式產生的W,b的梯度值
(8)如果epoch=1,則將第epoch-1次學習的各層W,b的梯度值
(9)求各層W,b的更新
1)求權更新值Δij更新;
2)求W,b的權更新值
3)求第epoch次學習修正後的各層W,b。
(10)用修正後各層W、b,由X求第epoch次學習各層輸出y0,y1,y2及第epoch次學習誤差MSE
(11)epoch=epoch+1,
如果epoch≤MAX_EPOCH,轉到(5);
否則,轉到(12)。
(12)輸出處理
1)如果MSE<ε,
則學習達到目標誤差要求,輸出W1,b1,W2,b2。
2)如果MSE≥ε,
則學習沒有達到目標誤差要求,再次學習。
(13)結束
3.三層BP網路(含輸入層,隱含層,輸出層)預測總體演算法
首先應用Train3lBP_RPROP( )學習三層BP網路(含輸入層,隱含層,輸出層)權值W、偏差b,然後應用三層BP網路(含輸入層,隱含層,輸出層)預測。
函數:Simu3lBP( )。
1)輸入參數:
P個需預測的輸入數據向量xp,p=1,2,…,P;
三層BP網路結構;
學習得到的各層權值W、偏差b。
2)計算P個需預測的輸入數據向量xp(p=1,2,…,P)的網路輸出 y2[S2][P],輸出預測結果y2[S2][P]。
四、總體演算法流程圖
BP網路總體演算法流程圖見附圖2。
五、數據流圖
BP網數據流圖見附圖1。
六、實例
實例一 全國銅礦化探異常數據BP 模型分類
1.全國銅礦化探異常數據准備
在全國銅礦化探數據上用穩健統計學方法選取銅異常下限值33.1,生成全國銅礦化探異常數據。
2.模型數據准備
根據全國銅礦化探異常數據,選取7類33個礦點的化探數據作為模型數據。這7類分別是岩漿岩型銅礦、斑岩型銅礦、矽卡岩型、海相火山型銅礦、陸相火山型銅礦、受變質型銅礦、海相沉積型銅礦,另添加了一類沒有銅異常的模型(表8-1)。
3.測試數據准備
全國化探數據作為測試數據集。
4.BP網路結構
隱層數2,輸入層到輸出層向量維數分別為14,9、5、1。學習率設置為0.9,系統誤差1e-5。沒有動量項。
表8-1 模型數據表
續表
5.計算結果圖
如圖8-2、圖8-3。
圖8-2
圖8-3 全國銅礦礦床類型BP模型分類示意圖
實例二 全國金礦礦石量品位數據BP 模型分類
1.模型數據准備
根據全國金礦儲量品位數據,選取4類34個礦床數據作為模型數據,這4類分別是綠岩型金礦、與中酸性浸入岩有關的熱液型金礦、微細浸染型型金礦、火山熱液型金礦(表8-2)。
2.測試數據准備
模型樣本點和部分金礦點金屬量、礦石量、品位數據作為測試數據集。
3.BP網路結構
輸入層為三維,隱層1層,隱層為三維,輸出層為四維,學習率設置為0.8,系統誤差1e-4,迭代次數5000。
表8-2 模型數據
4.計算結果
結果見表8-3、8-4。
表8-3 訓練學習結果
表8-4 預測結果(部分)
續表
D. 神經網路模型腦認知科學實驗
利用計算神經網路形態模型,擬合多模態大腦數據,模擬大腦的部分認知功能,並建立全腦尺度神經動力學行為特徵與疾病的關系。深度神經網路的成功,促使三門學科進一步交叉融合,將類腦的深度神經網路模型和認知神經科學實驗相結合,為人工神經網路的發展提供新的思路。
E. BP神經網路在地面沉降預測中的應用
地面沉降是多種自然和人為因素共同作用的結果。各種要素發生作用的時空序列、影響強度和方向以及它們之間的關系處於不斷變化之中,同時各因素的變化及其影響並不是單方面的,各變數之間相互形成制約關系,這使得地面沉降過程極具復雜性。因此,要求預測模型能以在現有資料、信息基礎,准確反映研究區的自然背景條件、地下水開採行為與地面沉降過程之間的復雜聯系,並能識別和適應不同影響因素隨時間發生的改變。BP神經網路作為一個非線性系統,可用於逼近非線性映射關系,也可用於逼近一個極為復雜的函數關系,是解釋和模擬地面沉降等高度復雜的非線性動力學系統問題的一種較好的方法。
8.4.1.1 訓練樣本的確定
根據第4章的分析,影響研究區域地面沉降過程的變數包含著復雜的自然和人為因素,超采深層地下水是造成研究區1986年以後地面沉降的主要原因,深層地下水的開采量和沉降監測點附近的各含水層組水位均與地面沉降有著很好的相關性。
本區第四系淺層地下水系統(第Ⅰ含水層組)除河漫灘地段,一般為TDS都高於2g/L的鹹水,因此工農業用途較少,水位一般保持天然狀態,在本次模型研究中不予考慮。由於區內各地面沉降監測點的地面高程每年測量一次,為了保持與地面沉降數據的一致性,使神經網路模型能准確識別地下水開采與地面沉降之間的關系,所有數據均整理成年平均的形式。
本章選擇了控沉點處深層地下水系統的年均水位和區域地下水開采量作為模型的輸入變數,考慮到水位和開采量的變化與沉降變形並不同步,有明顯的滯後性存在,本章將前一年的開采量和年均水位也作為輸入,故模型的輸入變數為四個。以收集到的區內每個地面沉降監測點的年沉降量作為模型的輸出變數,通過選擇適合的隱含層數和隱層神經單元數構建BP模型,對地面沉降的趨勢進行預測。
本次收集到的地面沉降監測點處並未有常觀孔的水位數據,如果根據歷年實測等水位線推算,會產生很大的誤差,導致預測結果的不穩定性。基於已經建立好的Modflow數值模型,利用Processing Modflow軟體里的水井子程序包,在控沉點處設置虛擬的水位觀測井,通過軟體模擬出的不同時期的水位,作為地面沉降神經網路模型的輸入層,從而避免了以往的將各含水層組平均水位作為模型輸入所帶來的誤差[55]。考慮到深層地下水系統各含水層組的水力聯系較為密切,本次在每個地面沉降監測點處只設置一個水位觀測井,來模擬深層地下水系統的水位。水井濾水管的起始位置與該點含水層的位置相對應,即濾水管的長度即為含水層的厚度。
觀測井在模型中的位置如8.31所示,綠色的點即為虛擬水位觀測井。從圖中可以看出6個沉降點在研究區內分布均勻,處於不同的沉降區域,有一定的代表性,通過對這6個點的地面沉降進行預測,可以反映出不同區域的沉降趨勢。數值模型模擬得到的各沉降點年均水位如圖8.32所示。
圖8.31 控沉點虛擬水井在Modflow數值模型中的分布示意圖
圖8.32 模擬得到的各沉降點處虛擬水井年均水位動態
8.4.1.2 樣本數據的預處理
由於BP網路的輸入層物理量及數值相差甚遠(不屬於一個數量級),為了加快網路收斂的速度,在訓練之前須將各輸入物理量進行預處理。數據的預處理方法主要有標准化法、重新定標法、變換法和比例放縮法等等。本章所選用的是一種最常用的比例壓縮法,公式為[56]
變環境條件下的水資源保護與可持續利用研究
式中:X為原始數據;Xmax、Xmin為原始數據的最大值和最小值;T為變換後的數據,也稱之為目標數據;Tmax、Tmin為目標數據的最大值和最小值。
由於Sigmoid函數在值域[0,0.1]和[0.9,1.0]區域內曲線變化極為平坦,因此合適的數據處理是將各輸入物理量歸至[0.1,0.9]之間。本章用式(8.7)將每個樣本輸入層的4個物理量進行歸一化處理
變環境條件下的水資源保護與可持續利用研究
處理後的數據見表8.14。
表8.14 BP神經網路模型數據歸一化表
續表
8.4.1.3 網路結構的確定
BP神經網路的建立,其重點在於網路結構的設計,只要隱層中有足夠多的神經元,多層前向網路可以用來逼近幾乎任何一個函數。一般地,網路結構(隱層數和隱層神經元數)和參數(權值和偏置值)共同決定著神經網路所能實現的函數的復雜程度的上限。結構簡單的網路所能實現的函數類型是非常有限的,參數過多的網路可能會對數據擬合過度。本章將輸入樣本的個數定為4個,輸出樣本為1個。但是對於隱含層數及隱含層所含神經元個數的選擇,到目前為止還沒有明確的方法可以計算出實際需要多少層或多少神經元就可以滿足預測精度的要求,在選擇時通常是採用試算的方法[56,57]。
為了保證模型的預測精度和范化能力,根據收集到的資料的連續性,本次研究利用1988~2002年15組地面沉降歷史觀測數據和對應的當年及前一年的開采量、年均水位組織訓練,以2003年和2004年的實測地面沉降數據校驗模型的預測能力,嘗試多種試驗性網路結構,其他模型參數的選擇採取保守方式,以犧牲訓練速度換取模型穩定性。以2003年和2004年的平均相對誤差均小於20%作為篩選標准,最終選擇三層BP網路作為模型結構,隱層神經元的個數設置為3。網路結構如圖8.33所示,參數見表8.15。
表8.15 BP網路模型參數一覽表
圖8.33 神經網路模型結構圖
8.4.1.4 網路的訓練與預測
採用圖8.33確定的網路結構對數據進行訓練,各個沉降點的訓練過程和擬合效果如圖8.34、圖8.35所示。
從圖8.35可以看出,訓練後的BP網路能很好地逼近給定的目標函數。說明該模型的泛化能力較好,模擬的結果比較可靠。通過該模型模擬了6個沉降點在2003和2004年的沉降量(表8.16),可以看出2003年和2004年模擬值和實際擬合較好,兩年的平均相對誤差均小於20%,說明BP神經網路可以用來預測地面沉降的趨勢。
表8.16 監測點年沉降量模擬誤差表
圖8.34 各沉降點訓練過程圖
8.4.1.5 模型物理意義探討
雖然現今的BP神經網路還是一個黑箱模型,其參數沒有水文物理意義[58]。但從結構上分析,本章認為地面沉降與ANN是同構的。對於每個控沉點來說,深層地下水系統的開采量和含水層組的水位變化,都會引起地層應力的響應,從而導致整體的地面標高發生變化,這一過程可以與BP神經網路結構進行類比。其中,深層地下水系統的3個含水層組相當於隱含層中的3個神經元,各含水層組對地面沉降的奉獻值相當於隱含層中人工神經元的閾值,整體上來說,本次用來模擬地面沉降的BP神經網路結構已經灰箱化(表8.17)。
圖8.35 各監測點年沉降量神經網路模型擬合圖
表8.17 BP神經網路構件物理意義一覽表
F. 什麼是神經網路,舉例說明神經網路的應用
我想這可能是你想要的神經網路吧!
什麼是神經網路:
人工神經網路( Neural Networks,簡寫為ANNs)也簡稱為神經網路(NNs)或稱作連接模型(Connection Model),它是一種模仿動物神經網路行為特徵,進行分布式並行信息處理的演算法數學模型。這種網路依靠系統的復雜程度,通過調整內部大量節點之間相互連接的關系,從而達到處理信息的目的。
神經網路的應用:
應用
在網路模型與演算法研究的基礎上,利用人工神經網路組成實際的應用系統,例如,完成某種信號處理或模式識別的功能、構作專家系統、製成機器人、復雜系統控制等等。
縱觀當代新興科學技術的發展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學技術領域的進程中歷經了崎嶇不平的道路。我們也會看到,探索人腦功能和神經網路的研究將伴隨著重重困難的克服而日新月異。
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:
生物原型
從生理學、心理學、解剖學、腦科學、病理學等方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。
建立模型
根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。
演算法
在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。
神經網路用到的演算法就是向量乘法,並且廣泛採用符號函數及其各種逼近。並行、容錯、可以硬體實現以及自我學習特性,是神經網路的幾個基本優點,也是神經網路計算方法與傳統方法的區別所在。
G. 神經網路主要用於什麼問題的求解
神經網路的研究可以分為理論研究和應用研究兩大方面。
理論研究可分為以下兩專類:
1、利用神屬經生理與認知科學研究人類思維以及智能機理。
2、利用神經基礎理論的研究成果,用數理方法探索功能更加完善、性能更加優越的神經網路模型,深入研究網路演算法和性能,如:穩定性、收斂性、容錯性、魯棒性等;開發新的網路數理理論,如:神經網路動力學、非線性神經場等。
應用研究可分為以下兩類:
1、神經網路的軟體模擬和硬體實現的研究。
2、神經網路在各個領域中應用的研究。這些領域主要包括:
模式識別、信號處理、知識工程、專家系統、優化組合、機器人控制等。隨著神經網路理論本身以及相關理論、相關技術的不斷發展,神經網路的應用定將更加深入。
http://ke..com/view/5348.htm?fr=ala0_1
H. 手機上運行的深度神經網路模型-MobileNet
文章引用自《 從MobileNet看輕量級神經網路的發展 》,詳情請點擊原文觀看
前 言
隨著深度學習的火熱,計算機視覺領域內的卷積神經網路模型也層出不窮。從1998年的LeNet,到2012年引爆深度學習熱潮的AlexNet,再到後來2014年的VGG,2015年的ResNet,深度學習網路模型在圖像處理中應用的效果越來越好。神經網路體積越來越大,結構越來越復雜,預測和訓練需要的硬體資源也逐步增多,往往只能在高算力的伺服器中運行深度學習神經網路模型。移動設備因硬體資源和算力的限制,很難運行復雜的深度學習網路模型。
深度學習領域內也在努力促使神經網路向小型化發展。在保證模型准確率的同時體積更小,速度更快。到了2016年直至現在,業內提出了SqueezeNet、ShuffleNet、NasNet、MnasNet以及MobileNet等輕量級網路模型。這些模型使移動終端、嵌入式設備運行神經網路模型成為可能。而MobileNet在輕量級神經網路中較具代表性。
谷歌在2019年5月份推出了最新的MobileNetV3。新版MobileNet使用了更多新特性,使得MobileNet非常具有研究和分析意義,本文將對MobileNet進行詳細解析。
MobileNet的優勢
MobileNet網路擁有更小的體積,更少的計算量,更高的精度。在輕量級神經網路中擁有極大的優勢。
1
更小的體積
MobileNet相比經典的大型網路,參數量明顯更少,參數量越少模型體積越小。
2
更少的計算量
MobileNet優化網路結構使模型計算量成倍下降。
3
更高的准確率
MobileNet憑借網路結構優化,在更少的參數及更少的計算量情況下,網路精度反而超過了部分大型神經網路。在最新的MobileNetV3-Large中,實現ImageNet數據集Top1准確率達到75.2%。
4
更快的速度
使用Google Pixel-1手機測試,MobileNet各版本都能保持運行時間在120ms以下,最新版MobileNetV3-Large運行時間達到66ms,參數量和計算量更低的MobileNetV3-Small更是能達到22ms;GoogleNet運行速度約為250ms,而VGG-16由於一次性需要載入至內存的空間已超過500MB,手機系統會報內存溢出錯誤導致無法運行。
5
多種應用場景
MobileNet可以在移動終端實現眾多的應用,包括目標檢測,目標分類,人臉屬性識別和人臉識別等。
MobileNet各版本介紹
1
MobileNetV1網路結構
整個網路不算平均池化層與softmax層,共28層;
在整個網路結構中步長為2的卷積較有特點,卷積的同時充當下采樣的功能;
第一層之後的26層都為深度可分離卷積的重復卷積操作;
每一個卷積層(含常規卷積、深度卷積、逐點卷積)之後都緊跟著批規范化和ReLU激活函數;
最後一層全連接層不使用激活函數。
2
MobileNetV2網路結構
MobileNetV2中主要引入線性瓶頸結構和反向殘差結構。
MobileNetV2網路模型中有共有17個Bottleneck層(每個Bottleneck包含兩個逐點卷積層和一個深度卷積層),一個標准卷積層(conv),兩個逐點卷積層(pw conv),共計有54層可訓練參數層。MobileNetV2中使用線性瓶頸(Linear Bottleneck)和反向殘差(Inverted Resials)結構優化了網路,使得網路層次更深了,但是模型體積更小,速度更快了。
3
MobileNetV3網路結構
MobileNetV3分為Large和Small兩個版本,Large版本適用於計算和存儲性能較高的平台,Small版本適用於硬體性能較低的平台。
Large版本共有15個bottleneck層,一個標准卷積層,三個逐點卷積層。
Small版本共有12個bottleneck層,一個標准卷積層,兩個逐點卷積層。
MobileNetV3中引入了5×5大小的深度卷積代替部分3×3的深度卷積。引入Squeeze-and-excitation(SE)模塊和h-swish(HS)激活函數以提高模型精度。結尾兩層逐點卷積不使用批規范化(Batch Norm),MobileNetV3結構圖中使用NBN標識。
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
網路結構上相對於MobileNetV2的結尾部分做了優化,去除三個高階層,如上圖所示。去除後減少了計算量和參數量,但是模型的精度並沒有損失。
值得一提的是,不論是Large還是Small版本,都是使用神經架構搜索(NAS)技術生成的網路結構。
4
MobileNet各版本特性
MobileNet實現計算量減小、參數量減少的同時保證了較高的准確率,這和其擁有的特性息息相關:
MobileNetV1提出的特性
MobileNetV2提出的特性
MobileNetV3提出的特性
MobileNet各個版本擁有的特性匯總
下文將對上表中的各個特性詳細闡述。
MobileNet的特性詳解
1
深度可分離卷積
從MobileNetV1開始,到V2、V3的線性瓶頸結構都大量使用了深度可分離卷積。
深度可分離卷積(Depthwise Separable Convolution)是一種卷積結構。它是由一層深度卷積(Depthwise convolution)與一層逐點卷積(Pointwise Convolution)組合而成的,每一層卷積之後都緊跟著批規范化和ReLU激活函數。跟標准卷積的區別就是精度基本不變的情況下,參數與計算量都明顯減少。
深度卷積
深度卷積(Depthwise convolution, DW)不同於常規卷積操作,深度卷積中一個卷積核只有一維,負責一個通道,一個通道只被一個卷積核卷積;常規卷積每個卷積核的維度與輸入維度相同,每個通道單獨做卷積運算後相加。
以一張5x5x3(長和寬為5,RGB3通道)的彩色圖片舉例。每層深度卷積卷積核的數量與上一層的通道數相同(通道和卷積核一一對應)。設padding=1,stride=1,一個三通道的圖像經過運算後生成了3個特徵圖,如下圖所示:
深度卷積完成後的輸出特徵圖通道數與輸入層的通道數相同,無法擴展通道數。而且這種運算對輸入層的每個通道獨立進行卷積運算,沒有有效的利用不同通道在相同空間位置上的特徵信息。因此需要逐點卷積來將生成的特徵圖進行組合生成新的特徵圖。
逐點卷積
逐點卷積(Pointwise Convolution, PW)的運算與標准卷積運算非常相似。
逐點卷積卷積核大小為1×1xM(M為輸入數據的維度),每次卷積一個像素的區域。逐點卷積運算會將上一層的特徵圖在深度方向上進行加權組合,生成新的特徵圖,新的特徵圖的大小與輸入數據大小一致;然後組合各通道的特徵圖,以較少的計算量進行降維或升維操作(改變輸出數據的維度)。
以一張5x5x3(長和寬為5,RGB3通道)的彩色圖片舉例,使用4個1x1x3的逐點卷積核進行卷積,逐點卷積運算後生成了4個特徵圖。這個例子是使用逐點卷積進行升維的操作,特徵圖從5x5x3 升維到5x5x4。如下圖所示:
深度可分離卷積結構解析
將深度卷積和逐點卷積組成深度可分離卷積後的示意圖,如下圖所示:
首先進行深度卷積操作,得出的特徵圖各通道之間是不關聯的。接著進行逐點卷積把深度卷積輸出的特徵圖各通道關聯起來。
深度可分離卷積使用了更小的空間代價(參數減少)和更少的時間代價(計算量更少)實現了標准卷積層一樣的效果(提取特徵)。
一般的設Df為輸入特徵圖邊長,Dk為卷積核邊長,特徵圖和卷積核均為長寬一致,輸入通道數為M,輸出通道數為N,則:
標准卷積計算量為:Df×Df×Dk×Dk×M×N
深度卷積的計算量為:Df×Df×Dk×Dk×M
逐點卷積的計算量為:Df×Df×M×N
上圖所示實現輸入特徵圖大小為5×5×3,輸出特成圖大小為5×5×4,設padding=1,stride=1,深度卷積卷積核大小為3×3,標准卷積也使用3×3尺寸卷積核。實現相同的卷積效果,參數量(不包含偏置)與計算量對比如下表所示:
深度可分離卷積的演變
事實上深度可分離卷積不是在MobileNetV1中第一次提出的,而是在2016年由谷歌的Xception網路結構中提出的。MobileNetV1在Xception的基礎上,對深度可分離卷積進行了改進,做到了計算量與參數量的下降:
假定M為輸入層的通道數,N為輸出層的通道數。
Xcenption的深度可分離卷積是由輸入參數開始,使用1x1xMxN卷積將輸入層的通道數轉換為目標通道數,再通過3x3x1卷積核對每個通道進行卷積,每次卷積過後使用ReLU進行激活。
MobileNetV1的深度可分離卷積則是先使用3x3x1xM對輸入層的每個通道分別卷積,之後通過1x1xMxN將輸入層通道數轉換為輸出層通道數,每次卷積過後做一次批規范化操作,再使用ReLU進行激活。
這里我們使用MobileNetV1網路結構的第一個深度可分離卷積層來舉例,輸入層維度為112x112x32,輸出層維度為112x112x64,Xception與MobileNet的深度可分離卷積的計算量與參數個數對比如下表:
由此可知將PW卷積與DW卷積的順序調整後,優化了網路的空間復雜度和時間復雜度。
2
寬度因子
MobileNet本身的網路結構已經比較小並且執行延遲較低,但為了適配更定製化的場景,MobileNet提供了稱為寬度因子(Width Multiplier)的超參數給我們調整。寬度因子在MobileNetV1、V2、V3都可以運用。
通過寬度因子,可以調整神經網路中間產生的特徵的大小,調整的是特徵數據通道數大小,從而調整了運算量的大小。
寬度因子簡單來說就是新網路中每一個模塊要使用的卷積核數量相較於標準的MobileNet比例。對於深度卷積結合1x1方式的卷積核,計算量為:
算式中α即為寬度因子,α常用的配置為1,0.75,0.5,0.25;當α等於1時就是標準的MobileNet。通過參數α可以非常有效的將計算量和參數數量約減到α的平方倍。
下圖為MobileNetV1使用不同α系數進行網路參數的調整時,在ImageNet上的准確率、計算量、參數數量之間的關系(每一個項中最前面的數字表示α的取值)。
(數據來源https://arxiv.org/pdf/1704.04861.pdf)
可以看到當輸入解析度固定為224x224時,隨著寬度因子的減少,模型的計算量和參數越來越小。從上表可以看到, 0.25 MobileNet的正確率比標准版1.0MobileNet低20%,但計算量和參數量幾乎只有標准版1.0MobileNet計算量、參數量的10%!對於計算資源和存儲資源都十分緊張的移動端平台,可以通過α寬度因子調節網路的餐數量是非常實用的,在真正使用時我們可以按需調整α寬度因子達到准確率與性能的平衡。
3
解析度因子
MobileNet還提供了另一個超參數解析度因子(Resolution Multiplier)供我們自定義網路結構,解析度因子同樣在MobileNetV1、V2、V3都可以運用。
解析度因子一般用β來指代,β的取值范圍在(0,1]之間,是作用於每一個模塊輸入尺寸的約減因子,簡單來說就是將輸入數據以及由此在每一個模塊產生的特徵圖都變小了,結合寬度因子α,深度卷積結合1x1方式的卷積核計算量為:
下圖為MobileNetV1使用不同的β系數作用於標准MobileNet時,在ImageNet上對精度和計算量的影響(α固定1.0)
(數據來源https://arxiv.org/pdf/1704.04861.pdf)
上圖中的 224、192、160、128 對應的解析度因子分別為 1、 6/7、5/7、4/7。
β=1時,輸入圖片的解析度為224x224,卷積後的圖像大小變化為: 224x224 、112x112、56x56、28x28、14x14、7x7。
β= 6/7時,輸入圖片的解析度為192x192,卷積後各層特徵圖像大小變化為:192x192、96x96、48x48、24x24、12x12、6x6。
卷積特徵圖像的大小變化不會引起參數量的變化,只改變模型M-Adds計算量。上圖中 224解析度模型測試ImageNet數據集准確率為70.6%,192解析度的模型准確率為69.1%,但是M-Adds計算量減少了151M,對移動平台計算資源緊張的情況下,同樣可以通過β解析度因子調節網路輸入特徵圖的解析度,做模型精度與計算量的取捨。
4
規范化
深度學習中的規范化操作(Normalization),有助於加快基於梯度下降法或隨機梯度下降法模型的收斂速度,提升模型的精度,規范化的參數能夠提升模型泛化能力,提高模型的可壓縮性。
按照規范化操作涉及對象的不同可以分為兩大類,一類是對輸入值進行規范化操作,比如批規范化(Batch Normalization)、層規范化(Layer Normalization)、實例規范化(Instance Normalization)、組規范化(Group Normalization)方法都屬於這一類。另外一類是對神經網路中參數進行規范化操作,比如使用L0,L1范數。
批規范化
批規范化(Batch Normalization)幾乎存在於MobileNetV1、V2、V3的每個卷積層的後面,目的是加快訓練收斂速度,提升准確率。
批規范化是一種對數值的特殊函數變換方法,也就是說假設原始的某個數值是 x,套上一個起到規范化作用的函數,對規范化之前的數值 x 進行轉換,形成一個規范化後的數值,即:
所謂規范化,是希望轉換後的數值滿足一定的特性,至於對數值具體如何變換,跟規范化目標有關,不同的規范化目標導致具體方法中函數所採用的形式不同。通過自適應的重新參數化的方法,克服神經網路層數加深導致模型難以訓練的問題。
參數規范化
參數規范化(Weight Normalization, WN)是規范化的一種, 通過人為的設定稀疏演算法,去除模型中多餘的參數(置為0)使得模型參數稀疏化,可以通過L1範式實現。
參數規范化是防止模型過分擬合訓練數據。當訓練一批樣本的時候,隨著訓練的推移模型會越來越趨向於擬合樣本數據。因為參數太多,會導致模型復雜度上升,容易過擬合。
需要保證模型"簡單"的基礎上最小化訓練誤差,這樣得到的參數才具有好的泛化性能(也就是測試誤差也小),而模型"簡單"就是通過規則函數來實現的。
如上圖所示,左側分類明顯的是欠擬合,模型並沒有能夠擬合數據。中間圖示為合適的擬合,右邊圖示是過擬合,模型在訓練樣本中擬合度是很好的,但是卻違背了特徵分類規律,在新的測試樣本中表現糟糕,影響模型的泛化能力。顯然右側模型在訓練是受到額外參數干擾。參數規則化能夠使參數稀疏,減少額外參數的干擾,提高泛化能力。
模型擁有稀疏的參數(模型中有大量參數為0),也有利於通過壓縮演算法壓縮模型的大小。
5
線性瓶頸
線性瓶頸英文為Linear Bottleneck,是從Bottleneck結構演變而來的,被用於MobileNetV2與V3。
Bottleneck結構首次被提出是在ResNet網路中。該結構第一層使用逐點卷積,第二層使用3×3大小卷積核進行深度卷積,第三層再使用逐點卷積。MobileNet中的瓶頸結構最後一層逐點卷積使用的激活函數是Linear,所以稱其為線性瓶頸結構(Linear Bottleneck)。線性瓶頸結構有兩種,第一種是步長為1時使用殘差結構,第二種是步長為2時不使用殘差結構。
其中輸入通道數為M,擴大倍數系數為T。T的值為大於0 的正數,當 0<T<1時,第一層逐點卷積起到的作用是降維。當 1<T時,第一層逐點卷積起到的作用是升維。
第二層為深度卷積,輸入通道數 = 輸出通道數 = M×T。
第三層為逐點卷積,作用是關聯深度卷積後的特徵圖並輸出指定通道數N。
線性瓶頸結構相對標准卷積能夠減少參數數量,減少卷積計算量。從空間和時間上優化了網路。
6
反向殘差
MobileNetV2中以ResNet的殘差(Resials)結構為基礎進行優化,提出了反向殘差(Inverted Resials)的概念,之後也同樣運用與MobileNetV3中。
ResNet中提出的殘差結構解決訓練中隨著網路深度增加而出現的梯度消失問題,使反向傳播過程中深度網路的淺層網路也能得到梯度,使淺層網路的參數也可訓練,從而增加特徵表達能力。
ResNet的殘差結構實際是在線性瓶頸結構的基礎上增加殘差傳播。如下圖所示:
ResNet中的殘差結構使用第一層逐點卷積降維,後使用深度卷積,再使用逐點卷積升維。
MobileNetV2版本中的殘差結構使用第一層逐點卷積升維並使用Relu6激活函數代替Relu,之後使用深度卷積,同樣使用Relu6激活函數,再使用逐點卷積降維,降維後使用Linear激活函數。這樣的卷積操作方式更有利於移動端使用(有利於減少參數與M-Adds計算量),因維度升降方式與ResNet中的殘差結構剛好相反,MobileNetV2將其稱之為反向殘差(Inverted Resials)。
7
5x5 的深度卷積
MobileNetV3中,深度卷積大量使用5x5大小的卷積核。這是因為使用神經結構搜索(NAS)技術計算出的MobileNetV3網路結構的過程中,發現了在深度卷積中使用5x5大小的卷積核比使用3x3大小的卷積核效果更好,准確率更高。關於NAS技術將會在下文的單獨章節中做介紹。
8
Squeeze-and-excitation 模塊
Squeeze-and-Excitation模塊(簡稱SE模塊)的首次提出是在2017年的Squeeze-and-Excitation Networks(SENet)網路結構中,在MNasNet中進行了改進,之後在MobileNetV3中大量使用。研究人員期望通過精確的建模卷積特徵各個通道之間的作用關系來改善網路模型的表達能力。為了達到這個期望,提出了一種能夠讓網路模型對特徵進行校準的機制,使得有效的權重大,無效或效果小的權重小的效果,這就是SE模塊。
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
如上圖,MobileNetV3的SE模塊被運用在線性瓶頸結構最後一層上,代替V2中最後的逐點卷積,改為先進行SE操作再逐點卷積。這樣保持了網路結構每層的輸入和輸出,僅在中間做處理,類似於軟體開發中的鉤子。
SE模塊結構詳解
下圖表示一個SE 模塊。主要包含Squeeze和Excitation兩部分。W,H表示特徵圖寬,高。C表示通道數,輸入特徵圖大小為W×H×C。
壓縮(Squeeze)
第一步是壓縮(Squeeze)操作,如下圖所示
這個操作就是一個全局平均池化(global average pooling)。經過壓縮操作後特徵圖被壓縮為1×1×C向量。
激勵(Excitation)
接下來就是激勵(Excitation)操作,如下圖所示
由兩個全連接層組成,其中SERatio是一個縮放參數,這個參數的目的是為了減少通道個數從而降低計算量。
第一個全連接層有C*SERatio個神經元,輸入為1×1×C,輸出1×1×C×SERadio。
第二個全連接層有C個神經元,輸入為1×1×C×SERadio,輸出為1×1×C。
scale操作
最後是scale操作,在得到1×1×C向量之後,就可以對原來的特徵圖進行scale操作了。很簡單,就是通道權重相乘,原有特徵向量為W×H×C,將SE模塊計算出來的各通道權重值分別和原特徵圖對應通道的二維矩陣相乘,得出的結果輸出。
這里我們可以得出SE模塊的屬性:
參數量 = 2×C×C×SERatio
計算量 = 2×C×C×SERatio
總體來講SE模塊會增加網路的總參數量,總計算量,因為使用的是全連接層計算量相比卷積層並不大,但是參數量會有明顯上升,所以MobileNetV3-Large中的總參數量比MobileNetV2多了2M。
MobileNetV3中的SE模塊
SE模塊的使用是很靈活的,可以在已有網路上添加而不打亂網路原有的主體結構。
ResNet中添加SE模塊形成SE-ResNet網路,SE模塊是在bottleneck結構之後加入的,如下圖左邊所示。
MobileNetV3版本中SE模塊加在了bottleneck結構的內部,在深度卷積後增加SE塊,scale操作後再做逐點卷積,如上圖右邊所示。MobileNetV3版本的SERadio系數為0.25。使用SE模塊後的MobileNetV3的參數量相比MobileNetV2多了約2M,達到5.4M,但是MobileNetV3的精度得到了很大的提升,在圖像分類和目標檢測中准確率都有明顯提升。
9
h-swish激活函數
MobileNetV3中發現swish激活函數能夠有效提高網路的精度,但是swish的計算量太大了,並不適合輕量級神經網路。MobileNetV3找到了類似swish激活函數但是計算量卻少很多的替代激活函數h-swish(hard version of swish)如下所示:
sigmoid、h-sigmoid、swish、h-swish激活函數的比較:
(圖片來源https://arxiv.org/pdf/1905.02244.pdf)
這種非線性在保持精度的情況下帶來了很多優勢,首先ReLU6在眾多軟硬體框架中都可以實現,其次量化時避免了數值精度的損失,運行快。這一非線性改變將模型的延時增加了15%。但它帶來的網路效應對於精度和延時具有正向促進,剩下的開銷可以通過融合非線性與先前層來消除。
I. 用於推薦的深度神經網路模型指的是
藍海大腦深度學習液冷工作站人員表示:
只將信息從一層向前饋送至下一層的人工神經網路稱為前饋神經網路。多層感知器 (MLP) 是一種前饋 ANN,由至少三層節點組成:輸入層、隱藏層和輸出層。MLP 是可應用於各種場景的靈活網路。
卷積神經網路是識別物體的圖像處理器。
時間遞歸神經網路是解析語言模式和序列數據的數學工具。
深度學習 (DL) 推薦模型基於現有技術(例如,分解)而構建,以便對變數和嵌入之間的交互進行建模,從而處理類別變數。嵌入是表示實體特徵的已學習的數字向量,因此相似的實體(用戶或物品)在向量空間中具有相似的距離。例如,協作過濾深度學習方法基於用戶和物品與神經網路的交互來學慣用戶和物品嵌入(潛在特徵向量)。
DL 技術還利用龐大且快速發展的新穎網路架構和優化演算法,對大量數據進行訓練,利用深度學習的強大功能進行特徵提取,並構建更具表現力的模型。
當前基於 DL 的推薦系統模型:DLRM、Wide and Deep (W&D)、神經協作過濾 (NCF)、b變分自動編碼器 (VAE) 和 BERT(適用於 NLP)構成了 NVIDIA GPU 加速 DL 模型產品組合的一部分,並涵蓋推薦系統以外的許多不同領域的各種網路架構和應用程序,包括圖像、文本和語音分析。這些模型專為使用 TensorFlow 和 PyTorch 進行訓練而設計和優化。
J. 神經網路模型的介紹
神經網路(Neural Networks,NN)是由大量的、簡單的處理單元(稱為神經元)廣泛地互相連接而形成的復雜網路系統,它反映了人腦功能的許多基本特徵,是一個高度復雜的非線性動力學習系統。神經網路具有大規模並行、分布式存儲和處理、自組織、自適應和自學能力,特別適合處理需要同時考慮許多因素和條件的、不精確和模糊的信息處理問題。神經網路的發展與神經科學、數理科學、認知科學、計算機科學、人工智慧、信息科學、控制論、機器人學、微電子學、心理學、光計算、分子生物學等有關,是一門新興的邊緣交叉學科。
神經網路的基礎在於神經元。
神經元是以生物神經系統的神經細胞為基礎的生物模型。在人們對生物神經系統進行研究,以探討人工智慧的機制時,把神經元數學化,從而產生了神經元數學模型。
大量的形式相同的神經元連結在—起就組成了神經網路。神經網路是一個高度非線性動力學系統。雖然,每個神經元的結構和功能都不復雜,但是神經網路的動態行為則是十分復雜的;因此,用神經網路可以表達實際物理世界的各種現象。
神經網路模型是以神經元的數學模型為基礎來描述的。人工神經網路(ArtificialNuearlNewtokr)s,是對人類大腦系統的一階特性的一種描。簡單地講,它是一個數學模型。神經網路模型由網路拓撲.節點特點和學習規則來表示。神經網路對人們的巨大吸引力主要在下列幾點:
1.並行分布處理。
2.高度魯棒性和容錯能力。
3.分布存儲及學習能力。
4.能充分逼近復雜的非線性關系。
在控制領域的研究課題中,不確定性系統的控制問題長期以來都是控制理論研究的中心主題之一,但是這個問題一直沒有得到有效的解決。利用神經網路的學習能力,使它在對不確定性系統的控制過程中自動學習系統的特性,從而自動適應系統隨時間的特性變異,以求達到對系統的最優控制;顯然這是一種十分振奮人心的意向和方法。
人工神經網路的模型現在有數十種之多,應用較多的典型的神經網路模型包括BP神經網路、Hopfield網路、ART網路和Kohonen網路。 學習是神經網路一種最重要也最令人注目的特點。在神經網路的發展進程中,學習演算法的研究有著十分重要的地位。目前,人們所提出的神經網路模型都是和學習演算法相應的。所以,有時人們並不去祈求對模型和演算法進行嚴格的定義或區分。有的模型可以有多種演算法。而有的演算法可能可用於多種模型。在神經網路中,對外部環境提供的模式樣本進行學習訓練,並能存儲這種模式,則稱為感知器;對外部環境有適應能力,能自動提取外部環境變化特徵,則稱為認知器。神經網路在學習中,一般分為有教師和無教師學習兩種。感知器採用有教師信號進行學習,而認知器則採用無教師信號學習的。在主要神經網路如Bp網路,Hopfield網路,ART絡和Kohonen網路中;Bp網路和Hopfield網路是需要教師信號才能進行學習的;而ART網路和Khonone網路則無需教師信號就可以學習49[]。所謂教師信號,就是在神經網路學習中由外部提供的模式樣本信號。