導航:首頁 > 網路問題 > 怎麼提高人工神經網路的精度

怎麼提高人工神經網路的精度

發布時間:2022-09-28 23:14:37

㈠ bp神經網路訓練速度慢怎麼調整

BP(Back Propagation)網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。

㈡ 人工神經網路評價法

人工神經元是人工神經網路的基本處理單元,而人工智慧的一個重要組成部分又是人工神經網路。人工神經網路是模擬生物神經元系統的數學模型,接受信息主要是通過神經元來進行的。首先,人工神經元利用連接強度將產生的信號擴大;然後,接收到所有與之相連的神經元輸出的加權累積;最後,將神經元與加權總和一一比較,當比閾值大時,則激活人工神經元,信號被輸送至與它連接的上一層的神經元,反之則不行。

人工神經網路的一個重要模型就是反向傳播模型(Back-Propagation Model)(簡稱BP模型)。對於一個擁有n個輸入節點、m個輸出節點的反向傳播網路,可將輸入到輸出的關系看作n維空間到m維空間的映射。由於網路中含有大量非線性節點,所以可具有高度非線性。

(一)神經網路評價法的步驟

利用神經網路對復墾潛力進行評價的目的就是對某個指標的輸入產生一個預期的評價結果,在此過程中需要對網路的連接弧權值進行不斷的調整。

(1)初始化所有連接弧的權值。為了保證網路不會出現飽和及反常的情況,一般將其設置為較小的隨機數。

(2)在網路中輸入一組訓練數據,並對網路的輸出值進行計算。

(3)對期望值與輸出值之間的偏差進行計算,再從輸出層逆向計算到第一隱含層,調整各條弧的權值,使其往減少該偏差的方向發展。

(4)重復以上幾個步驟,對訓練集中的各組訓練數據反復計算,直至二者的偏差達到能夠被認可的程度為止。

(二)人工神經網路模型的建立

(1)確定輸入層個數。根據評價對象的實際情況,輸入層的個數就是所選擇的評價指標數。

(2)確定隱含層數。通常最為理想的神經網路只具有一個隱含層,輸入的信號能夠被隱含節點分離,然後組合成新的向量,其運算快速,可讓復雜的事物簡單化,減少不必要的麻煩。

(3)確定隱含層節點數。按照經驗公式:

災害損毀土地復墾

式中:j——隱含層的個數;

n——輸入層的個數;

m——輸出層的個數。

人工神經網路模型結構如圖5-2。

圖5-2人工神經網路結構圖(據周麗暉,2004)

(三)人工神經網路的計算

輸入被評價對象的指標信息(X1,X2,X3,…,Xn),計算實際輸出值Yj

災害損毀土地復墾

比較已知輸出與計算輸出,修改K層節點的權值和閾值。

災害損毀土地復墾

式中:wij——K-1層結點j的連接權值和閾值;

η——系數(0<η<1);

Xi——結點i的輸出。

輸出結果:

Cj=yj(1-yj)(dj-yj) (5-21)

式中:yj——結點j的實際輸出值;

dj——結點j的期望輸出值。因為無法對隱含結點的輸出進行比較,可推算出:

災害損毀土地復墾

式中:Xj——結點j的實際輸出值。

它是一個輪番代替的過程,每次的迭代都將W值調整,這樣經過反復更替,直到計算輸出值與期望輸出值的偏差在允許值范圍內才能停止。

利用人工神經網路法對復墾潛力進行評價,實際上就是將土地復墾影響評價因子與復墾潛力之間的映射關系建立起來。只要選擇的網路結構合適,利用人工神經網路函數的逼近性,就能無限接近上述映射關系,所以採用人工神經網路法進行災毀土地復墾潛力評價是適宜的。

(四)人工神經網路方法的優缺點

人工神經網路方法與其他方法相比具有如下優點:

(1)它是利用最優訓練原則進行重復計算,不停地調試神經網路結構,直至得到一個相對穩定的結果。所以,採取此方法進行復墾潛力評價可以消除很多人為主觀因素,保證了復墾潛力評價結果的真實性和客觀性。

(2)得到的評價結果誤差相對較小,通過反復迭代減少系統誤差,可滿足任何精度要求。

(3)動態性好,通過增加參比樣本的數量和隨著時間不斷推移,能夠實現動態追蹤比較和更深層次的學習。

(4)它以非線性函數為基礎,與復雜的非線性動態經濟系統更貼近,能夠更加真實、更為准確地反映出災毀土地復墾潛力,比傳統評價方法更適用。

但是人工神經網路也存在一定的不足:

(1)人工神經網路演算法是採取最優化演算法,通過迭代計算對連接各神經元之間的權值不斷地調整,直到達到全局最優化。但誤差曲面相當復雜,在計算過程中一不小心就會使神經網路陷入局部最小點。

(2)誤差通過輸出層逆向傳播,隱含層越多,逆向傳播偏差在接近輸入層時就越不準確,評價效率在一定程度上也受到影響,收斂速度不及時的情況就容易出現,從而造成個別區域的復墾潛力評價結果出現偏離。

㈢ 為什麼我的神經網路訓練精度不高(付數據)

你那麼多輸入只有兩百次訓練,加大訓練次數試試!再改變一下學習效率試試!

㈣  人工神經網路與專題信息提取結合的方法

單一的神經網路仍存在如F主要問題:

(1)訓練樣本選擇的適當與否對網路的訓練至關重要,樣本選擇的適量將大大提高分類精度,減少訓練時間。但是,訓練樣本的選擇必須對整個特徵空間上的總體分布具有代表性,並且樣本次序的隨機性也非常重要,網路應對訓練集這一整體建立概念,而不是依次對單個訓練樣本進行識別,同時對隨機樣本進行訓練可能產生雜訊干擾,有時甚至人為地在訓練樣本中增加雜訊干擾,以幫助網路收斂。

(2)網路學習速率、目標誤差、最大循環次數等參數對於網路的學習訓練存在顯著的影響,需要經過大量實驗才能夠實現合理的選擇。

圖2.2試驗區原始圖像

針對單一的基於神經網路的分類方法存在的問題,我們提出了一種新的自動分類方法:人工神經網路與專題信息提取相結合的方法。該方法基本思路如下:

(1)專題信息提取:包括水體、居民點等。

(2)分層處理:從原圖像中去除已提取的專題信息。

(3)神經網路分類:剩餘地物信息再分類,分類處理將不受已提取信息的影響。

(4)分類信息歸並處理。

㈤ BP神經網路的精度低,怎麼解決

建議用RBP神經網路進行訓練。使用方法:
x=-1:0.1:5;
y=-1:0.1:5;
z=x.^2.*y-0.1*x+2*y;
net=newrbe([x;y],z); %創建一個RBF網路
t=sim(net,[x;y]);%模擬未經訓練的網路net
plot3(x,y,z,'rd');hold on
plot3(x,y,t,'b-');

如何提高神經網路的外推能力

人工神經網路以其智能性見長,那麼神經網路能真的學到一個映射的本質嗎?也就是說,對一個映射給出一定的必要的訓練樣本訓練後,網路能否對樣本以外的樣本給出較為准確的預測。泛化能力也就是神經網路用於對未知數據預測的能力。神經網路對訓練樣本區間范圍內的樣本有較好的泛化能力,而對於訓練樣本確定的范圍外的樣本不能認為有泛化能力。常規的幾種增強泛化能力的方法,羅列如下:

1、較多的輸入樣本可以提高泛化能力;
但不是太多,過多的樣本導致過度擬合,泛化能力不佳;樣本包括至少一次的轉折點數據。

2、隱含層神經元數量的選擇,不影響性能的前提下,盡量選擇小一點的神經元數量。隱含層節點太多,造成泛化能力下降,造火箭也只要幾十個到幾百個神經元,擬合幾百幾千個數據何必要那麼多神經元?

3、誤差小,則泛化能力好;誤差太小,則會過度擬合,泛化能力反而不佳。

4、學習率的選擇,特別是權值學習率,對網路性能有很大影響,太小則收斂速度很慢,且容易陷入局部極小化;太大則,收斂速度快,但易出現擺動,誤差難以縮小;一般權值學習率比要求誤差稍微稍大一點點;另外可以使用變動的學習率,在誤差大的時候增大學習率,等誤差小了再減小學習率,這樣可以收斂更快,學習效果更好,不易陷入局部極小化。

5、訓練時可以採用隨時終止法,即是誤差達到要求即終止訓練,以免過度擬合;可以調整局部權值,使局部未收斂的加快收斂。

㈦ 如何通過人工神經網路實現圖像識別

人工神經網路(Artificial Neural Networks)(簡稱ANN)系統從20 世紀40 年代末誕生至今僅短短半個多世紀,但由於他具有信息的分布存儲、並行處理以及自學習能力等優點,已經在信息處理、模式識別、智能控制及系統建模等領域得到越來越廣泛的應用。尤其是基於誤差反向傳播(Error Back Propagation)演算法的多層前饋網路(Multiple-Layer Feedforward Network)(簡稱BP 網路),可以以任意精度逼近任意的連續函數,所以廣泛應用於非線性建模、函數逼近、模式分類等方面。


目標識別是模式識別領域的一項傳統的課題,這是因為目標識別不是一個孤立的問題,而是模式識別領域中大多數課題都會遇到的基本問題,並且在不同的課題中,由於具體的條件不同,解決的方法也不盡相同,因而目標識別的研究仍具有理論和實踐意義。這里討論的是將要識別的目標物體用成像頭(紅外或可見光等)攝入後形成的圖像信號序列送入計算機,用神經網路識別圖像的問題。


一、BP 神經網路


BP 網路是採用Widrow-Hoff 學習演算法和非線性可微轉移函數的多層網路。一個典型的BP 網路採用的是梯度下降演算法,也就是Widrow-Hoff 演算法所規定的。backpropagation 就是指的為非線性多層網路計算梯度的方法。一個典型的BP 網路結構如圖所示。

六、總結

從上述的試驗中已經可以看出,採用神經網路識別是切實可行的,給出的例子只是簡單的數字識別實驗,要想在網路模式下識別復雜的目標圖像則需要降低網路規模,增加識別能力,原理是一樣的。

㈧ 怎樣提高神經網路的預測精度

增加神經網路訓練目標,以提高精度要求:
trainparam.goal
=
0.01
%0.01表示訓練目標誤差為0.01

㈨ bp神經網路 Matlab實現總是達不到精度,請問應該要怎麼弄

  1. 更改參數,如修改學習率、更換訓練函數如trainlm等。

  2. 更改結構:增加隱層節點數、甚至增加隱層數,可以做成雙隱層。


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

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

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

閱讀全文

與怎麼提高人工神經網路的精度相關的資料

熱點內容
電腦多重網路怎麼刪除一個 瀏覽:832
中寰軟體助手顯示網路環境異常 瀏覽:451
iphone經常需要重啟才能連接4g網路 瀏覽:726
ps4的網路無法連接 瀏覽:201
三星移動手機網路慢 瀏覽:13
幹部網路學院要多少學時 瀏覽:795
天城軟體在電腦網路異常 瀏覽:510
網路世界會有哪些不安全因素 瀏覽:776
隱藏wifi找不到網路怎麼回事 瀏覽:329
怎麼找到哪個網路是自己的 瀏覽:922
網路測速27mb是多少 瀏覽:237
計算機網路傳輸介質排行 瀏覽:712
小天才沒網路怎麼設置流量 瀏覽:217
網路營銷產品定價策略 瀏覽:667
智慧機頂盒網路怎麼設置 瀏覽:63
蘋果無手機卡無法連接網路 瀏覽:425
天津ip網路中心軟體 瀏覽:151
螢石雲怎麼配置雙頻網路 瀏覽:289
有哪些網路視頻平台 瀏覽:502
2g網路接入點怎麼設置快 瀏覽:416

友情鏈接