當前位置:首頁 » 操作系統 » bp學習演算法

bp學習演算法

發布時間: 2022-06-11 22:10:17

㈠ bp演算法是什麼

誤差反向傳播演算法:

BP演算法的基本思想是,學習過程包括兩個過程:信號前向傳播和誤差後向傳播。

(1)前向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層。

(2)錯誤反向傳播:輸出錯誤(某種形式)->隱藏層(逐層)->輸入層。

BP演算法基本介紹:

多層隱含層前饋網路可以極大地提高神經網路的分類能力,但長期以來一直沒有提出解決權值調整問題的博弈演算法。

1986年,Rumelhart和McCelland領導的科學家團隊出版了《並行分布式處理》一書,詳細分析了具有非線性連續傳遞函數的多層前饋網路的誤差反向比例(BP)演算法,實現了Minsky關於多層網路的思想。由於誤差的反向傳播演算法常用於多層前饋網路的訓練,人們常直接稱多層前饋網路為BP網路。

㈡ BP演算法的介紹

BP演算法,誤差反向傳播(Error Back Propagation, BP)演算法。BP演算法的基本思想是,學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。由於多層前饋網路的訓練經常採用誤差反向傳播演算法,人們也常把將多層前饋網路直接稱為BP網路。

㈢ (1)BP演算法的學習過程中有兩個過程是什麼(2)寫出BP神經網路的數學模型,並以20

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

人工神經網路首先要以一定的學習准則進行學習,然後才能工作。現以人工神經網路對手寫「a」、「b」兩個字母的識別為例進行說明,規定當「a」輸入網路時,應該輸出「1」,而當輸入為「b」時,輸出為「0」。

所以網路學習的准則應該是:如果網路作出錯誤的的判決,則通過網路的學習,應使得網路減少下次犯同樣錯誤的可能性。首先,給網路的各連接權值賦予(0,1)區間內的隨機值,將「a」所對應的圖象模式輸入給網路,網路將輸入模式加權求和、與門限比較、再進行非線性運算,得到網路的輸出。在此情況下,網路輸出為「1」和「0」的概率各為50%,也就是說是完全隨機的。這時如果輸出為「1」(結果正確),則使連接權值增大,以便使網路再次遇到「a」模式輸入時,仍然能作出正確的判斷。

如果輸出為「0」(即結果錯誤),則把網路連接權值朝著減小綜合輸入加權值的方向調整,其目的在於使網路下次再遇到「a」模式輸入時,減小犯同樣錯誤的可能性。如此操作調整,當給網路輪番輸入若干個手寫字母「a」、「b」後,經過網路按以上學習方法進行若干次學習後,網路判斷的正確率將大大提高。這說明網路對這兩個模式的學習已經獲得了成功,它已將這兩個模式分布地記憶在網路的各個連接權值上。當網路再次遇到其中任何一個模式時,能夠作出迅速、准確的判斷和識別。一般說來,網路中所含的神經元個數越多,則它能記憶、識別的模式也就越多。

如圖所示拓撲結構的單隱層前饋網路,一般稱為三層前饋網或三層感知器,即:輸入層、中間層(也稱隱層)和輸出層。它的特點是:各層神經元僅與相鄰層神經元之間相互全連接,同層內神經元之間無連接,各層神經元之間無反饋連接,構成具有層次結構的前饋型神經網路系統。單計算層前饋神經網路只能求解線性可分問題,能夠求解非線性問題的網路必須是具有隱層的多層神經網路。
神經網路的研究內容相當廣泛,反映了多學科交叉技術領域的特點。主要的研究工作集中在以下幾個方面:

(1)生物原型研究。從生理學、心理學、解剖學、腦科學、病理學等生物科學方面研究神經細胞、神經網路、神經系統的生物原型結構及其功能機理。

(2)建立理論模型。根據生物原型的研究,建立神經元、神經網路的理論模型。其中包括概念模型、知識模型、物理化學模型、數學模型等。

(3)網路模型與演算法研究。在理論模型研究的基礎上構作具體的神經網路模型,以實現計算機模擬或准備製作硬體,包括網路學習演算法的研究。這方面的工作也稱為技術模型研究。

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

縱觀當代新興科學技術的發展歷史,人類在征服宇宙空間、基本粒子,生命起源等科學技術領域的進程中歷經了崎嶇不平的道路。我們也會看到,探索人腦功能和神經網路的研究將伴隨著重重困難的克服而日新月異。
神經網路可以用作分類、聚類、預測等。神經網路需要有一定量的歷史數據,通過歷史數據的訓練,網路可以學習到數據中隱含的知識。在你的問題中,首先要找到某些問題的一些特徵,以及對應的評價數據,用這些數據來訓練神經網路。

雖然bp網路得到了廣泛的應用,但自身也存在一些缺陷和不足,主要包括以下幾個方面的問題。

首先,由於學習速率是固定的,因此網路的收斂速度慢,需要較長的訓練時間。對於一些復雜問題,bp演算法需要的訓練時間可能非常長,這主要是由於學習速率太小造成的,可採用變化的學習速率或自適應的學習速率加以改進。

其次,bp演算法可以使權值收斂到某個值,但並不保證其為誤差平面的全局最小值,這是因為採用梯度下降法可能產生一個局部最小值。對於這個問題,可以採用附加動量法來解決。

再次,網路隱含層的層數和單元數的選擇尚無理論上的指導,一般是根據經驗或者通過反復實驗確定。因此,網路往往存在很大的冗餘性,在一定程度上也增加了網路學習的負擔。

最後,網路的學習和記憶具有不穩定性。也就是說,如果增加了學習樣本,訓練好的網路就需要從頭開始訓練,對於以前的權值和閾值是沒有記憶的。但是可以將預測、分類或聚類做的比較好的權值保存。

㈣ 多層前饋網路模型及BP演算法

多層前饋網中,以單隱層網的應用最為普遍,如圖6.1所示。習慣上將其稱為三層前饋網或三層感知器,所謂三層即輸入層、隱層和輸出層。

圖6.1 三層前饋神經網路結構

Fig.6.1 BP neural network structure

三層前饋網中,輸入向量為X=(x1,x2,…,xi,…,xn)T,如加入x0=-1,可為輸出層神經元引入閾值;隱層輸出向量為Y=(y1,y2,…,yl,…,ym)T,如加入y0=-1,可為輸出層神經元引入閾值;輸出層輸出向量為O=(o1,o2,…,ok,…,ol)T。輸入層到隱層之間的權值陣用V表示,V=(V1,V2,…,Vj,…,Vm),其中列向量Vj為隱層第j個神經元對應的權向量;隱層到輸出層之間的權值矩陣用W 表示,W=(W1,W2,…,Wk,…,Wl),其中列向量Wk為輸出層第k個神經元對應的權向量。下面分析各層信號之間的數學關系。

輸出層:

ok=f(netk)k=1,2,…,ι(6-1)

煤層開采頂板導水裂隙帶高度預測理論與方法

隱層:

yj=f(netj)j=1,2,…,m(6-3)

煤層開采頂板導水裂隙帶高度預測理論與方法

以上兩式中,轉移函數f(x)均為單極性Sigmoid函數

煤層開采頂板導水裂隙帶高度預測理論與方法

f(x)具有連續、可導的特點,且有

煤層開采頂板導水裂隙帶高度預測理論與方法

根據應用需要,也可以採用雙極性Sigmoid函數(或稱雙曲線正切函數)

煤層開采頂板導水裂隙帶高度預測理論與方法

式6-1~式6-6共同構成了三層前饋網的數學模型。

BP學習演算法中按以下方法調整其權重與誤差:

當網路輸出與期望輸出不相等時,存在輸出誤差E,定義如下:

煤層開采頂板導水裂隙帶高度預測理論與方法

將以上誤差定義式展開到隱層,

煤層開采頂板導水裂隙帶高度預測理論與方法

進一步展開到輸入層,

煤層開采頂板導水裂隙帶高度預測理論與方法

由上式可以看出,網路輸入誤差是各層權值ωjk、υij的函數,因此調整權值可改變誤差E。

顯然,調整權值的原則是使誤差不斷減小,因此權值的調整量與誤差的負梯度成正比,即

煤層開采頂板導水裂隙帶高度預測理論與方法

煤層開采頂板導水裂隙帶高度預測理論與方法

式中負號表示梯度下降,常數η∈(0,1)表示比例系數,在訓練中反映了學習速率。可以看出BP法屬於δ學習規則類,這類演算法常被稱為誤差的梯度下降(GradientDescent)演算法。

㈤ 如何理解BP學習演算法 追加懸賞

又稱為BP網路.BP學習演算法是一種有效的學習方法,但由於在權值調整上採用梯度下降法作為優化演算法,容易陷入局部最小,不能保證得到全局最優解。

㈥ BP演算法的簡介

1)正向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層
注1:若輸出層實際輸出與期望輸出(教師信號)不符,則轉入2)(誤差反向傳播過程)
2)誤差反向傳播:輸出誤差(某種形式)->隱層(逐層)->輸入層
其主要目的是通過將輸出誤差反傳,將誤差分攤給各層所有單元,從而獲得各層單元的誤差信號,進而修正各單元的權值(其過程,是一個權值調整的過程)。
注2:權值調整的過程,也就是網路的學習訓練過程(學習也就是這么的由來,權值調整)。

㈦ BP神經演算法是什麼能給點既通俗易懂又比較詳細的回答嗎

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

BP神經網路演算法是在BP神經網路現有演算法的基礎上提出的,是通過任意選定一組權值,將給定的目標輸出直接作為線性方程的代數和來建立線性方程組,解得待求權,不存在傳統方法的局部極小及收斂速度慢的問題,且更易理解。
1 傳統的BP演算法簡述
BP演算法是一種有監督式的學習演算法,其主要思想是:輸入學習樣本,使用反向傳播演算法對網路的權值和偏差進行反復的調整訓練,使輸出的向量與期望向量盡可能地接近,當網路輸出層的誤差平方和小於指定的誤差時訓練完成,保存網路的權值和偏差。具體步驟如下: (1)初始化,隨機給定各連接權[w],[v]及閥值θi,rt。 (2)由給定的輸入輸出模式對計算隱層、輸出層各單元輸出 bj=f(■wijai-θj) ct=f(■vjtbj-rt) 式中:bj為隱層第j個神經元實際輸出;ct為輸出層第t個神經元的實際輸出;wij為輸入層至隱層的連接權;vjt為隱層至輸出層的連接權。 dtk=(ytk-ct)ct(1-ct) ejk=[■dtvjt] bj(1-bj) 式中:dtk為輸出層的校正誤差;ejk為隱層的校正誤差。 (3)計算新的連接權及閥值,計算公式如下: vjt(n+1)=vjt(n)+?琢dtkbj wij(n+1)=wij(n)+?茁ejkaik rt(n+1)=rt(n)+?琢dtk θj(n+1)=θj(n)+?茁ejk 式中:?琢,?茁為學習系數(0<?琢<1,0<?茁<1)。 (4)選取下一個輸入模式對返回第2步反復訓練直到網路設輸出誤差達到要求結束訓練。 傳統的BP演算法,實質上是把一組樣本輸入/輸出問題轉化為一個非線性優化問題,並通過負梯度下降演算法,利用迭代運算求解權值問題的一種學習方法,但其收斂速度慢且容易陷入局部極小,為此提出了一種新的演算法,即高斯消元法。
2 改進的BP網路演算法
2.1 改進演算法概述 此前有人提出:任意選定一組自由權,通過對傳遞函數建立線性方程組,解得待求權。本文在此基礎上將給定的目標輸出直接作為線性方程等式代數和來建立線性方程組,不再通過對傳遞函數求逆來計算神經元的凈輸出,簡化了運算步驟。沒有採用誤差反饋原理,因此用此法訓練出來的神經網路結果與傳統演算法是等效的。其基本思想是:由所給的輸入、輸出模式對通過作用於神經網路來建立線性方程組,運用高斯消元法解線性方程組來求得未知權值,而未採用傳統BP網路的非線性函數誤差反饋尋優的思想。 2.2 改進演算法的具體步驟 對給定的樣本模式對,隨機選定一組自由權,作為輸出層和隱含層之間固定權值,通過傳遞函數計算隱層的實際輸出,再將輸出層與隱層間的權值作為待求量,直接將目標輸出作為等式的右邊建立方程組來求解。 現定義如下符號(見圖1):x (p)輸入層的輸入矢量;y (p)輸入層輸入為x (p)時輸出層的實際輸出矢量;t (p)目標輸出矢量;n,m,r分別為輸入層、隱層和輸出層神經元個數;W為隱層與輸入層間的權矩陣;V為輸出層與隱層間的權矩陣。具體步驟如下: (1)隨機給定隱層和輸入層間神經元的初始權值wij。 (2)由給定的樣本輸入xi(p)計算出隱層的實際輸出aj(p)。為方便起見將圖1網路中的閥值寫入連接權中去,令:隱層閥值θj=wnj,x(n)=-1,則: aj(p)=f(■wijxi(p)) (j=1,2…m-1)。 (3)計算輸出層與隱層間的權值vjr。以輸出層的第r個神經元為對象,由給定的輸出目標值tr(p)作為等式的多項式值建立方程,用線性方程組表示為: a0(1)v1r+a1(1)v2r+…+am(1)vmr=tr(1)a0(2)v1r+a1(2)v2r+…+am(2)vmr=tr(2) ……a0(p)v1r+a1(p)v2r+…+am(p)vmr=tr(p) 簡寫為: Av=T 為了使該方程組有唯一解,方程矩陣A為非奇異矩陣,其秩等於其增廣矩陣的秩,即:r(A)=r(A┊B),且方程的個數等於未知數的個數,故取m=p,此時方程組的唯一解為: Vr=[v0r,v2r,…vmr](r=0,1,2…m-1) (4)重復第三步就可以求出輸出層m個神經元的權值,以求的輸出層的權矩陣加上隨機固定的隱層與輸入層的權值就等於神經網路最後訓練的權矩陣。
3 計算機運算實例
現以神經網路最簡單的XOR問題用VC編程運算進行比較(取神經網路結構為2-4-1型),傳統演算法和改進BP演算法的誤差(取動量因子α=0.001 5,步長η=1.653)

㈧ BP演算法的實現步驟

BP演算法實現步驟(軟體):
1)初始化
2)輸入訓練樣本對,計算各層輸出
3)計算網路輸出誤差
4)計算各層誤差信號
5)調整各層權值
6)檢查網路總誤差是否達到精度要求
滿足,則訓練結束;不滿足,則返回步驟2)
3、多層感知器(基於BP演算法)的主要能力:
1)非線性映射:足夠多樣本->學習訓練
能學習和存儲大量輸入-輸出模式映射關系。只要能提供足夠多的樣本模式對供BP網路進行學習訓練,它便能完成由n維輸入空間到m維輸出空間的非線性映射。
2)泛化:輸入新樣本(訓練時未有)->完成正確的輸入、輸出映射
3)容錯:個別樣本誤差不能左右對權矩陣的調整
4、標准BP演算法的缺陷:
1)易形成局部極小(屬貪婪演算法,局部最優)而得不到全局最優;
2)訓練次數多使得學習效率低下,收斂速度慢(需做大量運算);
3)隱節點的選取缺乏理論支持;
4)訓練時學習新樣本有遺忘舊樣本趨勢。
注3:改進演算法—增加動量項、自適應調整學習速率(這個似乎不錯)及引入陡度因子

㈨ 深入淺出BP神經網路演算法的原理

深入淺出BP神經網路演算法的原理
相信每位剛接觸神經網路的時候都會先碰到BP演算法的問題,如何形象快速地理解BP神經網路就是我們學習的高級樂趣了(畫外音:樂趣?你在跟我談樂趣?)
本篇博文就是要簡單粗暴地幫助各位童鞋快速入門採取BP演算法的神經網路。
BP神經網路是怎樣的一種定義?看這句話:一種按「誤差逆傳播演算法訓練」的多層前饋網路。
BP的思想就是:利用輸出後的誤差來估計輸出層前一層的誤差,再用這層誤差來估計更前一層誤差,如此獲取所有各層誤差估計。這里的誤差估計可以理解為某種偏導數,我們就是根據這種偏導數來調整各層的連接權值,再用調整後的連接權值重新計算輸出誤差。直到輸出的誤差達到符合的要求或者迭代次數溢出設定值。
說來說去,「誤差」這個詞說的很多嘛,說明這個演算法是不是跟誤差有很大的關系?
沒錯,BP的傳播對象就是「誤差」,傳播目的就是得到所有層的估計誤差。
它的學習規則是:使用最速下降法,通過反向傳播(就是一層一層往前傳)不斷調整網路的權值和閾值,最後使全局誤差系數最小。
它的學習本質就是:對各連接權值的動態調整。

拓撲結構如上圖:輸入層(input),隱藏層(hide layer),輸出層(output)
BP網路的優勢就是能學習和儲存大量的輸入輸出的關系,而不用事先指出這種數學關系。那麼它是如何學習的?
BP利用處處可導的激活函數來描述該層輸入與該層輸出的關系,常用S型函數δ來當作激活函數。

我們現在開始有監督的BP神經網路學習演算法:
1、正向傳播得到輸出層誤差e
=>輸入層輸入樣本=>各隱藏層=>輸出層
2、判斷是否反向傳播
=>若輸出層誤差與期望不符=>反向傳播
3、誤差反向傳播
=>誤差在各層顯示=>修正各層單元的權值,直到誤差減少到可接受程度。
演算法闡述起來比較簡單,接下來通過數學公式來認識BP的真實面目。
假設我們的網路結構是一個含有N個神經元的輸入層,含有P個神經元的隱層,含有Q個神經元的輸出層。

這些變數分別如下:

認識好以上變數後,開始計算:
一、用(-1,1)內的隨機數初始化誤差函數,並設定精度ε,最多迭代次數M
二、隨機選取第k個輸入樣本及對應的期望輸出

重復以下步驟至誤差達到要求:
三、計算隱含層各神經元的輸入和輸出

四、計算誤差函數e對輸出層各神經元的偏導數,根據輸出層期望輸出和實際輸出以及輸出層輸入等參數計算。

五、計算誤差函數對隱藏層各神經元的偏導數,根據後一層(這里即輸出層)的靈敏度(稍後介紹靈敏度)δo(k),後一層連接權值w,以及該層的輸入值等參數計算
六、利用第四步中的偏導數來修正輸出層連接權值

七、利用第五步中的偏導數來修正隱藏層連接權值

八、計算全局誤差(m個樣本,q個類別)

比較具體的計算方法介紹好了,接下來用比較簡潔的數學公式來大致地概括這個過程,相信看完上述的詳細步驟都會有些了解和領悟。
假設我們的神經網路是這樣的,此時有兩個隱藏層。
我們先來理解靈敏度是什麼?
看下面一個公式:

這個公式是誤差對b的一個偏導數,這個b是怎麼?它是一個基,靈敏度δ就是誤差對基的變化率,也就是導數。
因為?u/?b=1,所以?E/?b=?E/?u=δ,也就是說bias基的靈敏度?E/?b=δ等於誤差E對一個節點全部輸入u的導數?E/?u。
也可以認為這里的靈敏度等於誤差E對該層輸入的導數,注意了,這里的輸入是上圖U級別的輸入,即已經完成層與層權值計算後的輸入。
每一個隱藏層第l層的靈敏度為:

這里的「?」表示每個元素相乘,不懂的可與上面詳細公式對比理解
而輸出層的靈敏度計算方法不同,為:

而最後的修正權值為靈敏度乘以該層的輸入值,注意了,這里的輸入可是未曾乘以權值的輸入,即上圖的Xi級別。

對於每一個權值(W)ij都有一個特定的學習率ηIj,由演算法學習完成。

㈩ BP學習演算法是什麼類型的學習演算法它主要有哪些不足

BP演算法是由學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。由於多層前饋網路的訓練經常採用誤差反向傳播演算法,人們也常把將多層前饋網路直接稱為BP網路。

雖然BP演算法得到廣泛的應用,但它也存在不足,其主要表現在訓練過程不確定上,具體如下。

1,訓練時間較長。對於某些特殊的問題,運行時間可能需要幾個小時甚至更長,這主要是因為學習率太小所致,可以採用自適應的學習率加以改進。

2,完全不能訓練。訓練時由於權值調整過大使激活函數達到飽和,從而使網路權值的調節幾乎停滯。為避免這種情況,一是選取較小的初始權值,二是採用較小的學習率。

3,易陷入局部極小值。BP演算法可以使網路權值收斂到一個最終解,但它並不能保證所求為誤差超平面的全局最優解,也可能是一個局部極小值。

這主要是因為BP演算法所採用的是梯度下降法,訓練是從某一起始點開始沿誤差函數的斜面逐漸達到誤差的最小值,故不同的起始點可能導致不同的極小值產生,即得到不同的最優解。如果訓練結果未達到預定精度,常常採用多層網路和較多的神經元,以使訓練結果的精度進一步提高,但與此同時也增加了網路的復雜性與訓練時間。

4,「喜新厭舊」。訓練過程中,學習新樣本時有遺忘舊樣本的趨勢。

(10)bp學習演算法擴展閱讀:

BP演算法最早由Werbos於1974年提出,1985年Rumelhart等人發展了該理論。BP網路採用有指導的學習方式,其學習包括以下4個過程。

1,組成輸入模式由輸入層經過隱含層向輸出層的「模式順傳播」過程。

2,網路的期望輸出與實際輸出之差的誤差信號由輸出層經過隱含層逐層休整連接權的「誤差逆傳播」過程。

3,由「模式順傳播」與「誤差逆傳播」的反復進行的網路「記憶訓練」過程。

4,網路趨向收斂即網路的總體誤差趨向極小值的「學習收斂」過程。

熱點內容
戰地配置有哪些 發布:2024-10-18 16:44:48 瀏覽:308
中國聯通簡訊提示服務密碼未完善是什麼意思 發布:2024-10-18 16:42:17 瀏覽:709
c語言中非 發布:2024-10-18 16:21:20 瀏覽:143
招編程人員 發布:2024-10-18 16:19:37 瀏覽:422
什麼數據類型存儲圖片 發布:2024-10-18 16:19:28 瀏覽:749
電腦維護伺服器 發布:2024-10-18 16:18:51 瀏覽:435
取捨演算法 發布:2024-10-18 16:12:36 瀏覽:249
安卓數據線一般在什麼價位 發布:2024-10-18 16:09:25 瀏覽:732
老式安卓機怎麼插卡 發布:2024-10-18 15:52:35 瀏覽:338
pc搭建nas伺服器 發布:2024-10-18 15:51:59 瀏覽:266