㈠ 人工神經網路概念梳理與實例演示
人工神經網路概念梳理與實例演示
神經網路是一種模仿生物神經元的機器學習模型,數據從輸入層進入並流經激活閾值的多個節點。
遞歸性神經網路一種能夠對之前輸入數據進行內部存儲記憶的神經網路,所以他們能夠學習到數據流中的時間依賴結構。
如今機器學習已經被應用到很多的產品中去了,例如,siri、Google Now等智能助手,推薦引擎——亞馬遜網站用於推薦商品的推薦引擎,Google和Facebook使用的廣告排名系統。最近,深度學習的一些進步將機器學習帶入公眾視野:AlphaGo 打敗圍棋大師李世石事件以及一些圖片識別和機器翻譯等新產品的出現。
在這部分中,我們將介紹一些強大並被普遍使用的機器學習技術。這當然包括一些深度學習以及一些滿足現代業務需求傳統方法。讀完這一系列的文章之後,你就掌握了必要的知識,便可以將具體的機器學習實驗應用到你所在的領域當中。
隨著深層神經網路的精度的提高,語音和圖像識別技術的應用吸引了大眾的注意力,關於AI和深度學習的研究也變得更加普遍了。但是怎麼能夠讓它進一步擴大影響力,更受歡迎仍然是一個問題。這篇文章的主要內容是:簡述前饋神經網路和遞歸神經網路、怎樣搭建一個遞歸神經網路對時間系列數據進行異常檢測。為了讓我們的討論更加具體化,我們將演示一下怎麼用Deeplearning4j搭建神經網路。
一、什麼是神經網路?
人工神經網路演算法的最初構思是模仿生物神經元。但是這個類比很不可靠。人工神經網路的每一個特徵都是對生物神經元的一種折射:每一個節點與激活閾值、觸發的連接。
連接人工神經元系統建立起來之後,我們就能夠對這些系統進行訓練,從而讓他們學習到數據中的一些模式,學到之後就能執行回歸、分類、聚類、預測等功能。
人工神經網路可以看作是計算節點的集合。數據通過這些節點進入神經網路的輸入層,再通過神經網路的隱藏層直到關於數據的一個結論或者結果出現,這個過程才會停止。神經網路產出的結果會跟預期的結果進行比較,神經網路得出的結果與正確結果的不同點會被用來更正神經網路節點的激活閾值。隨著這個過程的不斷重復,神經網路的輸出結果就會無限靠近預期結果。
二、訓練過程
在搭建一個神經網路系統之前,你必須先了解訓練的過程以及網路輸出結果是怎麼產生的。然而我們並不想過度深入的了解這些方程式,下面是一個簡短的介紹。
網路的輸入節點收到一個數值數組(或許是叫做張量多維度數組)就代表輸入數據。例如, 圖像中的每個像素可以表示為一個標量,然後將像素傳遞給一個節點。輸入數據將會與神經網路的參數相乘,這個輸入數據被擴大還是減小取決於它的重要性,換句話說,取決於這個像素就不會影響神經網路關於整個輸入數據的結論。
起初這些參數都是隨機的,也就是說神經網路在建立初期根本就不了解數據的結構。每個節點的激活函數決定了每個輸入節點的輸出結果。所以每個節點是否能夠被激活取決於它是否接受到足夠的刺激強度,即是否輸入數據和參數的結果超出了激活閾值的界限。
在所謂的密集或完全連接層中,每個節點的輸出值都會傳遞給後續層的節點,在通過所有隱藏層後最終到達輸出層,也就是產生輸入結果的地方。在輸出層, 神經網路得到的最終結論將會跟預期結論進行比較(例如,圖片中的這些像素代表一隻貓還是狗?)。神經網路猜測的結果與正確結果的計算誤差都會被納入到一個測試集中,神經網路又會利用這些計算誤差來不斷更新參數,以此來改變圖片中不同像素的重要程度。整個過程的目的就是降低輸出結果與預期結果的誤差,正確地標注出這個圖像到底是不是一條狗。
深度學習是一個復雜的過程,由於大量的矩陣系數需要被修改所以它就涉及到矩陣代數、衍生品、概率和密集的硬體使用問題,但是用戶不需要全部了解這些復雜性。
但是,你也應該知道一些基本參數,這將幫助你理解神經網路函數。這其中包括激活函數、優化演算法和目標函數(也稱為損失、成本或誤差函數)。
激活函數決定了信號是否以及在多大程度上應該被發送到連接節點。階梯函數是最常用的激活函數, 如果其輸入小於某個閾值就是0,如果其輸入大於閾值就是1。節點都會通過階梯激活函數向連接節點發送一個0或1。優化演算法決定了神經網路怎麼樣學習,以及測試完誤差後,權重怎麼樣被更准確地調整。最常見的優化演算法是隨機梯度下降法。最後, 成本函數常用來衡量誤差,通過對比一個給定訓練樣本中得出的結果與預期結果的不同來評定神經網路的執行效果。
Keras、Deeplearning4j 等開源框架讓創建神經網路變得簡單。創建神經網路結構時,需要考慮的是怎樣將你的數據類型匹配到一個已知的被解決的問題,並且根據你的實際需求來修改現有結構。
三、神經網路的類型以及應用
神經網路已經被了解和應用了數十年了,但是最近的一些技術趨勢才使得深度神經網路變得更加高效。
GPUs使得矩陣操作速度更快;分布式計算結構讓計算能力大大增強;多個超參數的組合也讓迭代的速度提升。所有這些都讓訓練的速度大大加快,迅速找到適合的結構。
隨著更大數據集的產生,類似於ImageNet 的大型高質量的標簽數據集應運而生。機器學習演算法訓練的數據越大,那麼它的准確性就會越高。
最後,隨著我們理解能力以及神經網路演算法的不斷提升,神經網路的准確性在語音識別、機器翻譯以及一些機器感知和面向目標的一些任務等方面不斷刷新記錄。
盡管神經網路架構非常的大,但是主要用到的神經網路種類也就是下面的幾種。
3.1前饋神經網路
前饋神經網路包括一個輸入層、一個輸出層以及一個或多個的隱藏層。前饋神經網路可以做出很好的通用逼近器,並且能夠被用來創建通用模型。
這種類型的神經網路可用於分類和回歸。例如,當使用前饋網路進行分類時,輸出層神經元的個數等於類的數量。從概念上講, 激活了的輸出神經元決定了神經網路所預測的類。更准確地說, 每個輸出神經元返回一個記錄與分類相匹配的概率數,其中概率最高的分類將被選為模型的輸出分類。
前饋神經網路的優勢是簡單易用,與其他類型的神經網路相比更簡單,並且有一大堆的應用實例。
3.2卷積神經網路
卷積神經網路和前饋神經網路是非常相似的,至少是數據的傳輸方式類似。他們結構大致上是模仿了視覺皮層。卷積神經網路通過許多的過濾器。這些過濾器主要集中在一個圖像子集、補丁、圖塊的特徵識別上。每一個過濾器都在尋找不同模式的視覺數據,例如,有的可能是找水平線,有的是找對角線,有的是找垂直的。這些線條都被看作是特徵,當過濾器經過圖像時,他們就會構造出特徵圖譜來定位各類線是出現在圖像的哪些地方。圖像中的不同物體,像貓、747s、榨汁機等都會有不同的圖像特徵,這些圖像特徵就能使圖像完成分類。卷積神經網路在圖像識別和語音識別方面是非常的有效的。
卷積神經網路與前饋神經網路在圖像識別方面的異同比較。雖然這兩種網路類型都能夠進行圖像識別,但是方式卻不同。卷積神經網路是通過識別圖像的重疊部分,然後學習識別不同部分的特徵進行訓練;然而,前饋神經網路是在整張圖片上進行訓練。前饋神經網路總是在圖片的某一特殊部分或者方向進行訓練,所以當圖片的特徵出現在其他地方時就不會被識別到,然而卷積神經網路卻能夠很好的避免這一點。
卷積神經網路主要是用於圖像、視頻、語音、聲音識別以及無人駕駛的任務。盡管這篇文章主要是討論遞歸神經網路的,但是卷積神經網路在圖像識別方面也是非常有效的,所以很有必要了解。
3.3遞歸神經網路
與前饋神經網路不同的是,遞歸神經網路的隱藏層的節點里有內部記憶存儲功能,隨著輸入數據的改變而內部記憶內容不斷被更新。遞歸神經網路的結論都是基於當前的輸入和之前存儲的數據而得出的。遞歸神經網路能夠充分利用這種內部記憶存儲狀態處理任意序列的數據,例如時間序列。
遞歸神經網路經常用於手寫識別、語音識別、日誌分析、欺詐檢測和網路安全。
遞歸神經網路是處理時間維度數據集的最好方法,它可以處理以下數據:網路日誌和伺服器活動、硬體或者是醫療設備的感測器數據、金融交易、電話記錄。想要追蹤數據在不同階段的依賴和關聯關系需要你了解當前和之前的一些數據狀態。盡管我們通過前饋神經網路也可以獲取事件,隨著時間的推移移動到另外一個事件,這將使我們限制在對事件的依賴中,所以這種方式很不靈活。
追蹤在時間維度上有長期依賴的數據的更好方法是用內存來儲存重要事件,以使近期事件能夠被理解和分類。遞歸神經網路最好的一點就是在它的隱藏層裡面有「內存」可以學習到時間依賴特徵的重要性。
接下來我們將討論遞歸神經網路在字元生成器和網路異常檢測中的應用。遞歸神經網路可以檢測出不同時間段的依賴特徵的能力使得它可以進行時間序列數據的異常檢測。
遞歸神經網路的應用
網路上有很多使用RNNs生成文本的例子,遞歸神經網路經過語料庫的訓練之後,只要輸入一個字元,就可以預測下一個字元。下面讓我們通過一些實用例子發現更多RNNs的特徵。
應用一、RNNs用於字元生成
遞歸神經網路經過訓練之後可以把英文字元當做成一系列的時間依賴事件。經過訓練後它會學習到一個字元經常跟著另外一個字元(「e」經常跟在「h」後面,像在「the、he、she」中)。由於它能預測下一個字元是什麼,所以它能有效地減少文本的輸入錯誤。
Java是個很有趣的例子,因為它的結構包括很多嵌套結構,有一個開的圓括弧必然後面就會有一個閉的,花括弧也是同理。他們之間的依賴關系並不會在位置上表現的很明顯,因為多個事件之間的關系不是靠所在位置的距離確定的。但是就算是不明確告訴遞歸神經網路Java中各個事件的依賴關系,它也能自己學習了解到。
在異常檢測當中,我們要求神經網路能夠檢測出數據中相似、隱藏的或許是並不明顯的模式。就像是一個字元生成器在充分地了解數據的結構後就會生成一個數據的擬像,遞歸神經網路的異常檢測就是在其充分了解數據結構後來判斷輸入的數據是不是正常。
字元生成的例子表明遞歸神經網路有在不同時間范圍內學習到時間依賴關系的能力,它的這種能力還可以用來檢測網路活動日誌的異常。
異常檢測能夠使文本中的語法錯誤浮出水面,這是因為我們所寫的東西是由語法結構所決定的。同理,網路行為也是有結構的,它也有一個能夠被學習的可預測模式。經過在正常網路活動中訓練的遞歸神經網路可以監測到入侵行為,因為這些入侵行為的出現就像是一個句子沒有標點符號一樣異常。
應用二、一個網路異常檢測項目的示例
假設我們想要了解的網路異常檢測就是能夠得到硬體故障、應用程序失敗、以及入侵的一些信息。
模型將會向我們展示什麼呢?
隨著大量的網路活動日誌被輸入到遞歸神經網路中去,神經網路就能學習到正常的網路活動應該是什麼樣子的。當這個被訓練的網路被輸入新的數據時,它就能偶判斷出哪些是正常的活動,哪些是被期待的,哪些是異常的。
訓練一個神經網路來識別預期行為是有好處的,因為異常數據不多,或者是不能夠准確的將異常行為進行分類。我們在正常的數據里進行訓練,它就能夠在未來的某個時間點提醒我們非正常活動的出現。
說句題外話,訓練的神經網路並不一定非得識別到特定事情發生的特定時間點(例如,它不知道那個特殊的日子就是周日),但是它一定會發現一些值得我們注意的一些更明顯的時間模式和一些可能並不明顯的事件之間的聯系。
我們將概述一下怎麼用 Deeplearning4j(一個在JVM上被廣泛應用的深度學習開源資料庫)來解決這個問題。Deeplearning4j在模型開發過程中提供了很多有用的工具:DataVec是一款為ETL(提取-轉化-載入)任務准備模型訓練數據的集成工具。正如Sqoop為Hadoop載入數據,DataVec將數據進行清洗、預處理、規范化與標准化之後將數據載入到神經網路。這跟Trifacta』s Wrangler也相似,只不過它更關注二進制數據。
開始階段
第一階段包括典型的大數據任務和ETL:我們需要收集、移動、儲存、准備、規范化、矢量話日誌。時間跨度的長短是必須被規定好的。數據的轉化需要花費一些功夫,這是由於JSON日誌、文本日誌、還有一些非連續標注模式都必須被識別並且轉化為數值數組。DataVec能夠幫助進行轉化和規范化數據。在開發機器學習訓練模型時,數據需要分為訓練集和測試集。
訓練神經網路
神經網路的初始訓練需要在訓練數據集中進行。
在第一次訓練的時候,你需要調整一些超參數以使模型能夠實現在數據中學習。這個過程需要控制在合理的時間內。關於超參數我們將在之後進行討論。在模型訓練的過程中,你應該以降低錯誤為目標。
但是這可能會出現神經網路模型過度擬合的風險。有過度擬合現象出現的模型往往會在訓練集中的很高的分數,但是在遇到新的數據時就會得出錯誤結論。用機器學習的語言來說就是它不夠通用化。Deeplearning4J提供正則化的工具和「過早停止」來避免訓練過程中的過度擬合。
神經網路的訓練是最花費時間和耗費硬體的一步。在GPUs上訓練能夠有效的減少訓練時間,尤其是做圖像識別的時候。但是額外的硬體設施就帶來多餘的花銷,所以你的深度學習的框架必須能夠有效的利用硬體設施。Azure和亞馬遜等雲服務提供了基於GPU的實例,神經網路還可以在異構集群上進行訓練。
創建模型
Deeplearning4J提供ModelSerializer來保存訓練模型。訓練模型可以被保存或者是在之後的訓練中被使用或更新。
在執行異常檢測的過程中,日誌文件的格式需要與訓練模型一致,基於神經網路的輸出結果,你將會得到是否當前的活動符合正常網路行為預期的結論。
代碼示例
遞歸神經網路的結構應該是這樣子的:
MultiLayerConfiguration conf = new NeuralNetConfiguration.Builder(
.seed(123)
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
.weightInit(WeightInit.XAVIER)
.updater(Updater.NESTEROVS).momentum(0.9)
.learningRate(0.005)
.gradientNormalization(GradientNormalization.ClipElementWiseAbsoluteValue)
.(0.5)
.list()
.layer(0, new GravesLSTM.Builder().activation("tanh").nIn(1).nOut(10).build())
.layer(1, new RnnOutputLayer.Builder(LossFunctions.LossFunction.MCXENT)
.activation("softmax").nIn(10).nOut(numLabelClasses).build())
.pretrain(false).backprop(true).build();
MultiLayerNetwork net = new MultiLayerNetwork(conf);
net.init();
下面解釋一下幾行重要的代碼:
.seed(123)
隨機設置一個種子值對神經網路的權值進行初始化,以此獲得一個有復驗性的結果。系數通常都是被隨機的初始化的,以使我們在調整其他超參數時仍獲得一致的結果。我們需要設定一個種子值,讓我們在調整和測試的時候能夠用這個隨機的權值。
.optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT).iterations(1)
決定使用哪個最優演算法(在這個例子中是隨機梯度下降法)來調整權值以提高誤差分數。你可能不需要對這個進行修改。
.learningRate(0.005)
當我們使用隨機梯度下降法的時候,誤差梯度就被計算出來了。在我們試圖將誤差值減到最小的過程中,權值也隨之變化。SGD給我們一個讓誤差更小的方向,這個學習效率就決定了我們該在這個方向上邁多大的梯度。如果學習效率太高,你可能是超過了誤差最小值;如果太低,你的訓練可能將會永遠進行。這是一個你需要調整的超參數。
㈡ 神經網路ART1模型
一、ART1模型概述
自適應共振理論(Adaptive Resonance Theory)簡稱ART,是於1976年由美國Boston大學S.Grossberg提出來的。
這一理論的顯著特點是,充分利用了生物神經細胞之間自興奮與側抑制的動力學原理,讓輸入模式通過網路雙向連接權的識別與比較,最後達到共振來完成對自身的記憶,並以同樣的方法實現網路的回想。當提供給網路回想的是一個網路中記憶的、或是與已記憶的模式十分相似的模式時,網路將會把這個模式回想出來,提出正確的分類。如果提供給網路回想的是一個網路中不存在的模式,則網路將在不影響已有記憶的前提下,將這一模式記憶下來,並將分配一個新的分類單元作為這一記憶模式的分類標志。
S.Grossberg和G.A.Carpenter經過多年研究和不斷發展,至今已提出了ART1,ART2和ART3三種網路結構。
ART1網路處理雙極型(或二進制)數據,即觀察矢量的分量是二值的,它只取0或1。
二、ART1模型原理
ART1網路是兩層結構,分輸入層(比較層)和輸出層(識別層)。從輸入層到輸出層由前饋連接權連接,從輸出層到輸入層由反饋連接權連接。
設網路輸入層有N個神經元,網路輸出層有M個神經元,二值輸入模式和輸出向量分別為:Xp=(
ART1網路的學習及工作過程,是通過反復地將輸入學習模式由輸入層向輸出層自下而上的識別和由輸出層向輸入層自上而下的比較過程來實現的。當這種自下而上的識別和自上而下的比較達到共振,即輸出向量可以正確反映輸入學習模式的分類,且網路原有記憶沒有受到不良影響時,網路對一個輸入學習模式的記憶分類則告完成。
ART1網路的學習及工作過程,可以分為初始化階段、識別階段、比較階段和探尋階段。
1.初始化階段
ART1網路需要初始化的參數主要有3個:
即W=(wnm)N×M,T=(tnm)N×M和ρ。
反饋連接權T=(tnm)N×M在網路的整個學習過程中取0或1二值形式。這一參數實際上反映了輸入層和輸出層之間反饋比較的范圍或強度。由於網路在初始化前沒有任何記憶,相當於一張白紙,即沒有選擇比較的余的。因此可將T的元素全部設置為1,即
tnm=1,n=1,2,…,N,m=1,2,…,M。(1)
這意味著網路在初始狀態時,輸入層和輸出層之間將進行全范圍比較,隨著學習過程的深入,再按一定規則選擇比較范圍。
前饋連接權W=(wnm)N×M在網路學習結束後,承擔著對學習模式的記憶任務。在對W初始化時,應該給所有學習模式提供一個平等競爭的機會,然後通過對輸入模式的競爭,按一定規則調整W。W的初始值按下式設置:
中國礦產資源評價新技術與評價新模型
ρ稱為網路的警戒參數,其取值范圍為0<ρ≤1。
2.識別階段
ART1網路的學習識別階段發生在輸入學習模式由輸入層向輸出層的傳遞過程中。在這一階段,首先將一個輸入學習模式Xp=(
中國礦產資源評價新技術與評價新模型
中國礦產資源評價新技術與評價新模型
中國礦產資源評價新技術與評價新模型
至此,網路的識別過程只是告一段落,並沒有最後結束。此時,神經元m=g是否真正有資格代表對輸入學習模式Xp的正確分類,還有待於下面的比較和尋找階段來進一步確定。一般情況下需要對代表同一輸入學習模式的分類結果的神經元進行反復識別。
3.比較階段
ART1網路的比較階段的主要職能是完成以下檢查任務,每當給已學習結束的網路提供一個供識別的輸入模式時,首先檢查一下這個模式是否是已學習過的模式,如果是,則讓網路回想出這個模式的分類結果;如果不是,則對這個模式加以記憶,並分配一個還沒有利用過的輸出層神經元來代表這個模式的分類結果。
具體過程如下:把由輸出層每個神經元反饋到輸入層的各個神經元的反饋連接權向量Tm=(t1m,t2m,…,tNm),m=1,2,…,M作為對已學習的輸入模式的一條條記錄,即讓向量Tm=(t1m,t2m,…,tNm)與輸出層第m個神經元所代表的某一學習輸入模式Xp=(
當需要網路對某個輸入模式進行回想時,這個輸入模式經過識別階段,競爭到神經元g作為自己的分類結果後,要檢查神經元g反饋回來的向量Tg是否與輸入模式相等。如果相等,則說明這是一個已記憶過的模式,神經元g代表了這個模式的分類結果,識別與比較產生了共振,網路不需要再經過尋找階段,直接進入下一個輸入模式的識別階段;如果不相符,則放棄神經元g的分類結果,進入尋找階段。
在比較階段,當用向量Tg與輸入模式XP進行比較時,允許二者之間有一定的差距,差距的大小由警戒參數ρ決定。
首先計算
中國礦產資源評價新技術與評價新模型
Cg表示向量Tg與輸入模式XP的擬合度。
在式中,
當Tg=XP時,Cg=1。
當Cg≥ρ時,說明擬合度大於要求,沒有超過警戒線。
以上兩種情況均可以承認識別結果。
當Cg≠1且Cg>ρ時,按式(6)式(7)將前饋連接權Wg=(w1g,w2g,…,wNg)和反饋連接權Tg=(t1g,t2g,…,tNg)向著與XP更接近的方向調整。
中國礦產資源評價新技術與評價新模型
tng(t+1)=tng(t)*xn,n=1,2,…,N。(7)
當Cg<ρ時,說明擬合度小於要求,超過警戒線,則拒絕識別結果,將神經元g重新復位為0,並將這個神經元排除在下次識別范圍之外,網路轉入尋找階段。
4.尋找階段
尋找階段是網路在比較階段拒絕識別結果之後轉入的一個反復探尋的階段,在這一階段中,網路將在餘下的輸出層神經元中搜索輸入模式Xp的恰當分類。只要在輸出向量Yp=(
三、總體演算法
設網路輸入層有N個神經元,網路輸出層有M個神經元,二值輸入模式和輸出向量分別為:Xp=(
(1)網路初始化
tnm(0)=1,
中國礦產資源評價新技術與評價新模型
n=1,2,…,N,m=1,2,…,M。
0<ρ≤1。
(2)將輸入模式Xp=(
(3)計算輸出層各神經元輸入加權和
中國礦產資源評價新技術與評價新模型
(4)選擇XP的最佳分類結果
中國礦產資源評價新技術與評價新模型
令神經元g的輸出為1。
(5)計算
中國礦產資源評價新技術與評價新模型
中國礦產資源評價新技術與評價新模型
判斷
中國礦產資源評價新技術與評價新模型
當式(8)成立,轉到(7),否則,轉到(6)。
(6)取消識別結果,將輸出層神經元g的輸出值復位為0,並將這一神經元排除在下一次識別的范圍之外,返回步驟(4)。當所有已利用過的神經元都無法滿足式(8),則選擇一個新的神經元作為分類結果,轉到步驟(7)。
(7)承認識別結果,並按下式調整連接權
中國礦產資源評價新技術與評價新模型
tng(t+1)=tng(t)*xn,n=1,2,…,N。
(8)將步驟(6)復位的所有神經元重新加入識別范圍之內,返回步驟(2)對下一模式進行識別。
(9)輸出分類識別結果。
(10)結束。
四、實例
實例為ART1神經網路模型在柴北緣-東昆侖造山型金礦預測的應用。
1.建立綜合預測模型
柴北緣—東昆侖地區位於青海省的西部,是中央造山帶的西部成員——秦祁昆褶皺系的一部分,是典型的復合造山帶(殷鴻福等,1998)。根據柴北緣—東昆侖地區地質概括以及造山型金礦成礦特點,選擇與成礦相關密切的專題數據,建立柴北緣—東昆侖地區的綜合信息找礦模型:
1)金礦重砂異常數據是金礦的重要找礦標志。
2)金礦水化異常數據是金礦的重要找礦標志。
3)金礦的化探異常數據控制金礦床的分布。
4)金礦的空間分布與通過該區的深大斷裂有關。
5)研究區內斷裂密集程度控制金礦的產出。
6)重力構造的存在與否是金礦存在的一個標志。
7)磁力構造線的存在也是金礦存在的一個重要標志。
8)研究區地質復雜程度也對金礦的產出具有重要的作用。
9)研究區存在的礦(化)點是一個重要的標志。
2.劃分預測單元
預測工作是在單元上進行的,預測工作的結果是與單元有著較為直接的聯系,在找礦模型指導下,以最大限度地反映成礦信息和預測單元面積最小為原則,通過對研究區內地質、地球物理、地球化學等的綜合資料分析,對可能的成礦地段圈定了預測單元。採用網格化單元作為本次研究的預測單元,網格單元的大小是,40×40,將研究區劃分成774個預測單元。
3.變數選擇(表8-6)
4.ART1模型預測結果
ART1神經網路模型演算法中,給定不同的閾值,將改變預測分類的結果。本次實驗選取得閾值為ρ=0.41,系統根據此閾值進行計算獲得計算結果,並通過將不同的分類結果賦予不同的顏色,最終獲得ART模型預測單元的分類結果。分類的結果是形成29個類別。分類結果用不同的顏色表示,其具體結果地顯示見圖8-5。圖形中顏色只代表類別號,不代表分類的好壞。將礦點專題圖層疊加以後,可以看出,顏色為灰色的單元與礦的關系更為密切。
表8-6 預測變數標志的選擇表
圖8-5 東昆侖—柴北緣地區基於ARTL模型的金礦分類結果圖
㈢ 手機上運行的深度神經網路模型-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%。但它帶來的網路效應對於精度和延時具有正向促進,剩下的開銷可以通過融合非線性與先前層來消除。
㈣ 計算機網路的功能主要有哪些能不能舉出幾種應用實例…
計算機網路的功能主要體現在三個方面:信息交換、資源共享、分布式處理。
1、信息交換
這是計算機網路最基本的功能,主要完成計算機網路中各個節點之間的系統通信。用戶可以在網上傳送電子郵件、發布新聞消息、進行電子購物、電子貿易、遠程電子教育等。
2、資源共享
所謂的資源是指構成系統的所有要素,包括軟、硬體資源,如:計算處理能力、大容量磁碟、高速列印機、繪圖儀、通信線路、資料庫、文件和其他計算機上的有關信息。
由於受經濟和其他因素的制約,這些資源並非(也不可能)所有用戶都能獨立擁有,所以網路上的計算機不僅可以使用自身的資源,也可以共享網路上的資源。因而增強了網路上計算機的處理能力,提高了計算機軟硬體的利用率。
3、分布式處理
一項復雜的任務可以劃分成許多部分,由網路內各計算機分別協作並行完成有關部分,使整個系統的性能大為增強。
(4)網路模型的實例有哪些擴展閱讀:
一、發展歷程
中國計算機網路設備製造行業是改革開放後成長起來的,早期與世界先進水平存在巨大差距;但受益於計算機網路設備行業生產技術不斷提高以及下游需求市場不斷擴大,我國計算機網路設備製造行業發展十分迅速。
近兩年,隨著我國國民經濟的快速發展以及國際金融危機的逐漸消退,計算機網路設備製造行業獲得良好發展機遇,中國已成為全球計算機網路設備製造行業重點發展市場。
二、組成分類
計算機網路的分類與一般的事物分類方法一樣,可以按事物所具有的不同性質特點(即事物的屬性)分類。計算機網路通俗地講就是由多台計算機(或其它計算機網路設備)通過傳輸介質和軟體物理(或邏輯)連接在一起組成的。
總的來說計算機網路的組成基本上包括:計算機、網路操作系統、傳輸介質(可以是有形的,也可以是無形的,如無線網路的傳輸介質就是空間)以及相應的應用軟體四部分。
㈤ 神經網路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 預測結果(部分)
續表
㈥ 鐩存帴鐢ㄧ炵粡緗戠粶宸ュ叿綆辨瀯寤篵p紲炵粡緗戠粶錛屽笇鏈涜兘緇欎釜渚嬪瓙璇存槑錛屾湁娉ㄨВ鏈濂斤紝鏈浜簃atlab鏂版墜錛岃阿璋
BP錛圔ack Propagation錛夌炵粡緗戠粶鏄1986騫寸敱Rumelhart鍜孧cCelland涓洪栫殑縐戝﹀跺皬緇勬彁鍑猴紝鏄涓縐嶆寜璇宸閫嗕紶鎾綆楁硶璁緇冪殑澶氬眰鍓嶉堢綉緇滐紝鏄鐩鍓嶅簲鐢ㄦ渶騫挎硾鐨勭炵粡緗戠粶妯″瀷涔嬩竴銆侭P緗戠粶鑳藉︿範鍜屽瓨璐澶ч噺鐨勮緭鍏-杈撳嚭妯″紡鏄犲皠鍏崇郴錛岃屾棤闇浜嬪墠鎻紺烘弿榪拌繖縐嶆槧灝勫叧緋葷殑鏁板︽柟紼嬨傚畠鐨勫︿範瑙勫垯鏄浣跨敤鏈閫熶笅闄嶆硶錛岄氳繃鍙嶅悜浼犳挱鏉ヤ笉鏂璋冩暣緗戠粶鐨勬潈鍊煎拰闃堝礆紝浣跨綉緇滅殑璇宸騫蟲柟鍜屾渶灝忋侭P紲炵粡緗戠粶妯″瀷鎷撴墤緇撴瀯鍖呮嫭杈撳叆灞傦紙input錛夈侀殣灞(hidden layer)鍜岃緭鍑哄眰(output layer)銆
闄勪歡灝辨槸鍒╃敤紲炵粡緗戠粶宸ュ叿綆辨瀯寤築P紲炵粡緗戠粶榪涜岄勬祴鐨勫疄渚嬨傚傛灉瑕佺敤鍙瑙嗗寲宸ュ叿錛屽彲浠ュ湪鍛戒護紿楀彛杈撳叆nntool.
㈦ 最好用一個網路實例圖表示出來!標明每層所用到的協議,每個網路設備如何傳輸!實物模型圖最好!N倍加分!
從網上看到的,我獲益匪淺,希望對您也有幫助。Goodluck!
不再困惑互聯網OSI七層模型全解析
作者:中關村在線白寧
第1頁:認識OSI了解網路為什麼要分層
「互聯網」這個詞相信大家都不陌生,因為大家幾乎每天都在接觸互聯網,它已經完全融入到我們的日常生活當中。但你知道嗎?互聯網的各項應用,其實都是分層的,也就是很多網路達人口中的OSI七層模型。不了解嗎?沒關系,看過下面的介紹你就明白了,隨筆者一起變身網路達人吧。
什麼是OSI?
OSI參考模型(OSI/RM)的全稱是開放系統互連參考模型(,OSI/RM),它是由國際標准化組織ISO提出的一個網路系統互連模型。它是網路技術的基礎,也是分析、評判各種網路技術的依據,它揭開了網路的神秘面紗,讓其有理可依,有據可循。
網路應用為什麼要分層?
因為計算機網路中存在著眾多的體系結構,例如IBM公司的SNA(系統網路體系結構,7層)和DEC公司的DNA(數字網路體系結構,3層)等。由於體系結構的差異化,使得網路產品出現了嚴重的兼容性問題,影響了網路的快速發展。為了解決這個問題,ISO於1984年正式頒布了OSIRM。
這個模型把網路通信的工作分為7層。1至4層被認為是低層,這些層與數據移動密切相關。5至7層是高層,包含應用程序級的數據。每一層負責一項具體的工作,然後把數據傳送到下一層。由低到高具體分為:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層和應用層。
OSI七層模型圖如圖一。
OSI模型的最低層或第一層:物理層
物理層包括物理連網媒介,實際上就是布線、光纖、網卡和其它用來把兩台網路通信設備連接在一起的東西。它規定了激活、維持、關閉通信端點之間的機械特性、電氣特性、功能特性以及過程特性。雖然物理層不提供糾錯服務,但它能夠設定數據傳輸速率並監測數據出錯率。
產品代表:TP-LINKTL-HP8MU集線器(如圖二)
物理層定義的標准包括:EIA/TIARS-232、EIA/TIARS-449、V.35、RJ-45等。
第2頁:OSI二至四層數據移動的關鍵
OSI模型的第二層:數據鏈路層
數據鏈路層主要作用是控制網路層與物理層之間的通信。它保證了數據在不可靠的物理線路上進行可靠的傳遞。它把從網路層接收到的數據分割成特定的可被物理層傳輸的幀,保證了傳輸的可靠性。它的主要作用包括:物理地址定址、數據的成幀、流量控制、數據的檢錯、重發等。它是獨立於網路層和物理層的,工作時無需關心計算機是否正在運行軟體還是其他操作。
產品代表:D-LinkDES-1024D(如圖三)
數據鏈路層協議的代表包括:SDLC、HDLC、PPP、STP、幀中繼等。
OSI模型的第三層:網路層
很多用戶經常混淆2層和3層的相關問題,簡單來說,如果你在談論一個與IP地址、路由協議或地址解析協議(ARP)相關的問題,那麼這就是第三層的問題。
網路層負責對子網間的數據包進行路由選擇,它通過綜合考慮發送優先權、網路擁塞程度、服務質量以及可選路由的花費來決定從一個網路中兩個節點的最佳路徑。另外,它還可以實現擁塞控制、網際互連等功能。
產品代表:TP-LINKTL-R4148(如圖四)
網路層協議的代表包括:IP、IPX、RIP、OSPF等。
OSI模型的第四層:傳輸層
傳輸層是OSI模型中最重要的一層,它是兩台計算機經過網路進行數據通信時,第一個端到端的層次,起到緩沖作用。當網路層的服務質量不能滿足要求時,它將提高服務,以滿足高層的要求;而當網路層服務質量較好時,它只需進行很少的工作。另外,它還要處理端到端的差錯控制和流量控制等問題,最終為會話提供可靠的,無誤的數據傳輸。
產品代表:NETGEARGS748TS(如圖五)
傳輸層協議的代表包括:TCP、UDP、SPX等。
網路通信工作的低層(1-4層)我們已經了解了,一起去看看高層(5-7層)吧。
第3頁:關注OSI五至七層總結
OSI模型的第五層:會話層
會話層負責在網路中的兩節點之間建立和維持通信,並保持會話獲得同步,它還決定通信是否被中斷以及通信中斷時決定從何處重新發送。
OSI模型的第六層:表示層
表示層的作用是管理數據的解密與加密,如常見的系統口令處理,當你的賬戶數據在發送前被加密,在網路的另一端,表示層將對接收到的數據解密。另外,表示層還需對圖片和文件格式信息進行解碼和編碼。
OSI模型的第七層:應用層
簡單來說,應用層就是為操作系統或網路應用程序提供訪問網路服務的介面,包括文件傳輸、文件管理以及電子郵件等的信息處理。
應用層協議的代表包括:Telnet、FTP、HTTP、SNMP等。
會話層,表示層,應用層構成開放系統的高3層,它們為應用進程提供分布處理,對話管理,信息表示,恢復最後的差錯等,它們每一層負責一項具體的工作,然後把數據傳送到下一層。
通過上面的介紹,相信你對OSI七層模型已經有了一定的了解,但是這些概念性的文字有點兒難懂,所以筆者引用了一段來自網路上的關於OSI七層模型的幽默描寫,讓OSI七層模型的概念變得簡單明了。
戀愛和OSImodel七層
起初只是近距離地點對點無線收發愛的信號,乃物理層;
然後就是通過某個媒體(比如一支花、一本書)將信號傳輸,乃數據鏈路層;
開始有選擇地分組分割發送和裝配接收愛的信號,選擇最佳的傳送路徑,乃網路層;
拖手和接吻可謂傳輸層,確保信號順利地傳送到目的地;
甜言蜜語與鴻雁往來屬於會話層,包括名字查找和安全防護;
訂婚歸於表示層,將信號格式轉換進行愛的解釋並加以鞏固;
結婚,當然是應用層,因為它提供了所有應用程序的直接支持。
總結:
OSI七層模型有效的解決了不同網路體系互連時所遇到的兼容性問題,它的出現減輕了網路的復雜程度,一旦網路發生故障,可迅速定位故障所處層次,便於查找和糾錯;通過在各層上定義標准介面,它使同屬一層的不同網路設備間能實現互操作;它還保證了各層之間的相對獨立;而高層協議可以放在多種低層協議上運行,提高了網路的效率;因為每次更新都只需在一個層次進行,不受整體網路的制約,所以它的出現有效刺激了網路技術革新,它是網路技術發展的源動力。
㈧ SPSS統計分析案例:多層感知器神經網路
SPSS統計分析案例:多層感知器神經網路
神經網路模型起源於對人類大腦思維模式的研究,它是一個非線性的數據建模工具, 由輸入層和輸出層、 一個或者多個隱藏層構成神經元,神經元之間的連接賦予相關的權重, 訓練學習演算法在迭代過程中不斷調整這些權重,從而使得預測誤差最小化並給出預測精度。
在SPSS神經網路中,包括多層感知器(MLP)和徑向基函數(RBF)兩種方法。
本期主要學習多層感知器神經網路,要把它講清楚是比較困難的,為了能直觀感受它的功能,首先以一個案例開始,最後再總結知識。
案例數據
該數據文件涉及某銀行在降低貸款拖欠率方面的舉措。該文件包含 700 位過去曾獲得貸款的客戶財務和人口統計信息。請使用這 700 名客戶的隨機樣本創建多層感知器神經網路模型。銀行需要此模型對新的客戶數據按高或低信用風險對他們進行分類。
第一次分析:菜單參數
要運行「多層感知器」分析,請從菜單中選擇:
分析 > 神經網路 > 多層感知器
如上圖所示,MLP主面板共有8個選項卡,至少需要設置其中"變數"、"分區"、"輸出"、"保存"、"導出"等5個選項卡,其他接受軟體默認設置。
▌ "變數"選項卡
將"是否拖欠"移入因變數框;
將分類變數"學歷"移入因子框,其他數值變數移入"協變數"框;
因各協變數量綱不同,選擇"標准化"處理;
▌ "分區"選項卡
在此之前,首先在 "轉換 > 隨機數生成器"菜單中設置隨機數固定種子為9191972(此處同SPSS官方文檔,用戶可以自由設定),因為"分區"選項卡中,要求對原始數據文件進行隨機化抽樣,將數據劃分為"訓練樣本"、"支持樣本"、"檢驗樣本"3個區塊,為了隨機過程可重復,所以此處指定固定種子一枚;
初次建模,先抽樣70%作為訓練樣本,用於完成自學習構建神經網路模型,30%作為支持樣本,用於評估所建立模型的性能,暫不分配檢驗樣本;
▌ "輸出"選項卡
勾選"描述"、"圖";
勾選"模型摘要"、"分類結果"、"預測實測圖";
勾選"個案處理摘要";
構成"自變數重要性分析";
這是第一次嘗試性的分析,主要參數設置如上,其他選項卡接受軟體默認設置,最後返回主面板,點擊"確定"按鈕,軟體開始執行MLP過程。
第一次分析產生的結果:
主要看重點的結果,依次如下:
個案處理摘要表,700個貸款客戶的記錄,其中480個客戶被分配到訓練樣本,佔比68.6%,另外220個客戶分配為支持樣本。
模型摘要表,首次構建的MLP神經網路模型其不正確預測百分比為12.7%,獨立的支持樣本檢驗模型的不正確百分比為20.9%,提示"超出最大時程數",模型非正常規則中止,顯示有過度學習的嫌疑。
判斷:首次建立的模型需要預防過度訓練。
第二次分析:菜單參數
首次分析懷疑訓練過度,所以第二次分析主要是新增檢驗樣本以及輸出最終的模型結果。
運行「多層感知器」分析,請從菜單中選擇:
分析 > 神經網路 > 多層感知器
▌ "分區"選項卡
對樣本進行重新分配,總700樣本,支持樣本繼續30%,訓練樣本由原來的70%縮減至50%,另外的20%分配給獨立的檢驗樣本空間;
▌ "保存"選項卡
保存每個因變數的預測值或類別;
保存每個因變數的預測擬概率;
▌ "導出"選項卡
將突觸權重估算值導出到XML文件;
給XML模型文件起名並制定存放路徑;
其他選項卡的操作和第一次分析保持一致。返回主面板,點擊"確定"開始執行第二次分析。
第一次分析產生的結果:
總樣本在3個分區的分配比例。
MLP神經網路圖,模型包括1個輸入層、1個隱藏層和1個輸出層,輸入層神經元個數12個,隱藏層9個,輸出層2個。
模型摘要表,模型誤差在1個連續步驟中未出現優化減少現象,模型按預定中止。模型在3個分區中的不正確預測百分比較接近。
模型分類表,軟體默認採用0.5作為正確和錯誤的概率分界,將3大分區樣本的正確率進行交叉對比,顯示出預測為NO,即預測為不拖欠的概率高於拖欠,模型對有拖欠的貸款客戶風險識別能力較低。
預測-實測圖,按照貸款客戶是否拖欠與預測結果進行分組,縱坐標為預測概率。以0.5為分界時,對優質客戶的識別效果較好,但是有較大的概率在識別有拖欠客戶上出錯。
顯然以0.5作為分界並不是最優解,可以嘗試將分界下移至0.3左右,此操作會使第四個箱圖中大量欠貸客戶正確地重新分類為欠貸者,提高風險識別能力。
自變數重要性圖,重要性圖為重要性表格中值的條形圖,以重要性值降序排序。其顯示與客戶穩定性(employ、address)和負債(creddebt、debtinc)相關的變數對於網路如何對客戶進行分類有重大影響;
最後來看導出的XML模型文件:
以XML文件存儲了第二次構建的MLP神經網路模型,可以用於新客戶的分類和風險識別。
新客戶分類
假設現在有150名新客戶,現在需要採用此前建立的模型,對這些客戶進行快速的風險分類和識別。
打開新客戶數據,菜單中選擇:
實用程序 > 評分向導
型"XML文件,點擊"下一步":
檢查新數據文件變數的定義是否准確。下一步。
選擇輸出"預測類別的概率"、"預測值"。完成。
新客戶數據文件新增3列,分別給出每一個新客戶的預測概率和風險分類(是否欠貸)。
多層感知器神經網路 總結
一種前饋式有監督的學習技術;
多層感知器可以發現極為復雜的關系;
如果因變數是分類型,神經網路會根據輸入數據,將記錄劃分為最適合的類別;
如果因變數是連續型,神將網路預測的連續值是輸入數據的某個連續函數;
建議創建訓練-檢驗-支持三個分區,網路訓練學習將更有效;
可將模型導出成 XML 格式對新的數據進行打分;