導航:首頁 > 源碼編譯 > 神經網路演算法應用實例

神經網路演算法應用實例

發布時間:2022-09-11 08:47:47

1. 求神經網路演算法的一個代碼示例(C、C++或java一類的)

在matlab里建立一個.m的M文件,把代碼輸進去,保存,運行就可以了。 演示程序是在command 里打demo就可以了找到了 . 你郵箱多少,我只有簡單的BP神經網路程序。

2. 求運用BP神經網路演算法處理分類問題的源程序,例如輸入蚊子的翼長和觸角長,輸出蚊子類型與此類似的源程序

這種分類的案例很多,附件裡面就有這類案例。主要還是要形成樣本,輸入輸出都做好,進行訓練,訓練完成後就能滿足分類需要。


模式識別是對表徵事物或現象的各種形式的信息進行處理和分析,來對事物或現象進行描述、辨認、分類和解釋的過程。該技術以貝葉斯概率論和申農的資訊理論為理論基礎,對信息的處理過程更接近人類大腦的邏輯思維過程。現在有兩種基本的模式識別方法,即統計模式識別方法和結構模式識別方法。人工神經網路是模式識別中的常用方法,近年來發展起來的人工神經網路模式的識別方法逐漸取代傳統的模式識別方法。經過多年的研究和發展,模式識別已成為當前比較先進的技術,被廣泛應用到文字識別、語音識別、指紋識別、遙感圖像識別、人臉識別、手寫體字元的識別、工業故障檢測、精確制導等方面。

3. 如何用matlab軟體實現神經網路應用

給你一個實例,希望通過該例子對實現神經網路應用有一定的了解。

%x,y分別為輸入和目標向量

x=1:5;

y=[639 646 642 624 652];

%創建一個前饋網路

net=newff(minmax(x),[20,1],{'tansig','purelin'});

%模擬未經訓練的網路net並畫圖

y1=sim(net,x);plot(x,y1,':');

%採用L-M優化演算法

net.trainFcn='trainlm';

%設置訓練演算法

net.trainParam.epochs=500;net.trainParam.goal=10^(-6);

%調用相應演算法訓練BP網路

[net,tr,yy]=train(net,x,y);

%對BP網路進行模擬

y1=sim(net,x);

%計算模擬誤差

E=y-y1;MSE=mse(E)

hold on

%繪制匹配結果曲線

figure;

plot(x,y1,'r*',x,y,'b--')

執行結果

4. 神經網路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=(

,…,

),Yp=(

,…,

),p=1,2,…,P,其中P為輸入學習模式的個數。設前饋連接權和反饋連接權矩陣分別為W=(wnm)N×M,T=(tnm)N×M,n=1,2,…,N,m=1,2,…,M。

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=(

,…,

)提供給網路的輸入層,然後把作為輸入學習模式的存儲媒介的前饋連接權W=(wnm)N×M與表示對這一輸入學習模式分類結果的輸出層的各個神經元進行比較,以尋找代表正確分類結果的神經元g。這一比較與尋找過程是通過尋找輸出層神經元最大加權輸入值,即神經元之間的競爭過程實現的,如下式所示:

中國礦產資源評價新技術與評價新模型

中國礦產資源評價新技術與評價新模型

中國礦產資源評價新技術與評價新模型

至此,網路的識別過程只是告一段落,並沒有最後結束。此時,神經元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的擬合度。

在式中,

(tng*xn)表示向量Tg=(t1g,t2g,…,tNg)與輸入模式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=(

,…

)中含有與這一輸入模式Xp相對應、或在警戒線以內相對應的分類單元,則網路可以得到與記憶模式相符的分類結果。如果在已記憶的分類結果中找不到與現在輸入的模式相對應的分類,但在輸出向量中還有未曾使用過的單元,則可以給這個輸入模式分配一個新的分類單元。在以上兩種情況下,網路的尋找過程總能獲得成功,也就是說共振終將發生。

三、總體演算法

設網路輸入層有N個神經元,網路輸出層有M個神經元,二值輸入模式和輸出向量分別為:Xp=(

,…,

),Yp=(

,…,

)p=1,2,…,p,其中p為輸入學習模式的個數。設前饋連接權和反饋連接權矩陣分別為W=(wnm)N×M,T=(tnm)N×M,n=1,2,…,N,m=1,2,…,M。

(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模型的金礦分類結果圖

5. 人工神經網路概念梳理與實例演示

人工神經網路概念梳理與實例演示
神經網路是一種模仿生物神經元的機器學習模型,數據從輸入層進入並流經激活閾值的多個節點。
遞歸性神經網路一種能夠對之前輸入數據進行內部存儲記憶的神經網路,所以他們能夠學習到數據流中的時間依賴結構。
如今機器學習已經被應用到很多的產品中去了,例如,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給我們一個讓誤差更小的方向,這個學習效率就決定了我們該在這個方向上邁多大的梯度。如果學習效率太高,你可能是超過了誤差最小值;如果太低,你的訓練可能將會永遠進行。這是一個你需要調整的超參數。

6. 機器學習之人工神經網路演算法

機器學習中有一個重要的演算法,那就是人工神經網路演算法,聽到這個名稱相信大家能夠想到人體中的神經。其實這種演算法和人工神經有一點點相似。當然,這種演算法能夠解決很多的問題,因此在機器學習中有著很高的地位。下面我們就給大家介紹一下關於人工神經網路演算法的知識。
1.神經網路的來源
我們聽到神經網路的時候也時候近一段時間,其實神經網路出現有了一段時間了。神經網路的誕生起源於對大腦工作機理的研究。早期生物界學者們使用神經網路來模擬大腦。機器學習的學者們使用神經網路進行機器學習的實驗,發現在視覺與語音的識別上效果都相當好。在BP演算法誕生以後,神經網路的發展進入了一個熱潮。
2.神經網路的原理
那麼神經網路的學習機理是什麼?簡單來說,就是分解與整合。一個復雜的圖像變成了大量的細節進入神經元,神經元處理以後再進行整合,最後得出了看到的是正確的結論。這就是大腦視覺識別的機理,也是神經網路工作的機理。所以可以看出神經網路有很明顯的優點。
3.神經網路的邏輯架構
讓我們看一個簡單的神經網路的邏輯架構。在這個網路中,分成輸入層,隱藏層,和輸出層。輸入層負責接收信號,隱藏層負責對數據的分解與處理,最後的結果被整合到輸出層。每層中的一個圓代表一個處理單元,可以認為是模擬了一個神經元,若干個處理單元組成了一個層,若干個層再組成了一個網路,也就是」神經網路」。在神經網路中,每個處理單元事實上就是一個邏輯回歸模型,邏輯回歸模型接收上層的輸入,把模型的預測結果作為輸出傳輸到下一個層次。通過這樣的過程,神經網路可以完成非常復雜的非線性分類。
4.神經網路的應用。
圖像識別領域是神經網路中的一個著名應用,這個程序是一個基於多個隱層構建的神經網路。通過這個程序可以識別多種手寫數字,並且達到很高的識別精度與擁有較好的魯棒性。可以看出,隨著層次的不斷深入,越深的層次處理的細節越低。但是進入90年代,神經網路的發展進入了一個瓶頸期。其主要原因是盡管有BP演算法的加速,神經網路的訓練過程仍然很困難。因此90年代後期支持向量機演算法取代了神經網路的地位。
在這篇文章中我們大家介紹了關於神經網路的相關知識,具體的內容就是神經網路的起源、神經網路的原理、神經網路的邏輯架構和神經網路的應用,相信大家看到這里對神經網路知識有了一定的了解,希望這篇文章能夠幫助到大家。

7. 直接用神經網路工具箱構建bp神經網路,希望能給個例子說明,有註解最好,本人matlab新手,謝謝

BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。


附件就是利用神經網路工具箱構建BP神經網路進行預測的實例。如果要用可視化工具,可以在命令窗口輸入nntool.

8. 神經網路演算法實例說明有哪些

在網路模型與演算法研究的基礎上,利用人工神經網路組成實際的應用系統,例如,完成某種信號處理或模式識別的功能、構作專家系統、製成機器人、復雜系統控制等等。

縱觀當代新興科學技術的發展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學技術領域的進程中歷經了崎嶇不平的道路。我們也會看到,探索人腦功能和神經網路的研究將伴隨著重重困難的克服而日新月異。

9. BP神經網路在土木工程中有哪些應用

【熱心相助】
您好!BP神經網路在土木工程中的應用很多。
1.BP神經網路在岩土工程中優化
2.BP神經網路在橋梁施工控制中的應用
3.BP神經網路在現場混凝土強度的預測應用
4.BP神經網路在工程項目管理中的應用
5.在分岔隧道位移反分析中的應用
6.神經網路智能演算法在土木工程結構健康監測中的應用
7.BP人工神經網路在深層攪拌樁復合地基承載力計算中的應用
8. BP神經網路在房地產投資風險分析中的應用
9.BP人工神經網路在青藏鐵路南段地殼穩定性定量評價中的應用
10.基於神經網路的土木工程結構損傷識別

10. bp神經網路演算法 在matlab中的實現

BP神經網路是最基本、最常用的神經網路,Matlab有專用函數來建立、訓練它,主要就是newff()、train()、sim()這三個函數,當然其他如歸一化函數mapminmax()、其他net的參數設定(lr、goal等)設置好,就可以通過對歷史數據的學習進行預測。附件是一個最基本的預測實例,本來是電力負荷預測的實例,但具有通用性,你仔細看看就明白了。

閱讀全文

與神經網路演算法應用實例相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:763
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:841
安卓怎麼下載60秒生存 瀏覽:800
外向式文件夾 瀏覽:233
dospdf 瀏覽:428
怎麼修改騰訊雲伺服器ip 瀏覽:385
pdftoeps 瀏覽:490
為什麼鴻蒙那麼像安卓 瀏覽:733
安卓手機怎麼拍自媒體視頻 瀏覽:183
單片機各個中斷的初始化 瀏覽:721
python怎麼集合元素 瀏覽:477
python逐條解讀 瀏覽:829
基於單片機的濕度控制 瀏覽:496
ios如何使用安卓的帳號 瀏覽:880
程序員公園采訪 瀏覽:809
程序員實戰教程要多長時間 瀏覽:972
企業數據加密技巧 瀏覽:132
租雲伺服器開發 瀏覽:810
程序員告白媽媽不同意 瀏覽:333
攻城掠地怎麼查看伺服器 瀏覽:600