❶ BP神經網路中的訓練函數如何選取
神經網路不同的網路有這不同的訓練函數,BP神經網路有兩種訓練函數,trainbp(),利用BP演算法訓練前向神經網路。trainbpx(),利用快速BP演算法訓練前向神經網路,即採用了動量或自適應學習,可減少訓練時間,tansig函數是神經元的傳遞函數,與訓練函數無關,在trainbp()函數中含有要訓練神經元的函數。
❷ BP神經網路輸出函數可以是hardlim嗎
用在轉移函數上是不可以的。對於層網路而言BP學習規則是靠誤差的反向傳播然後調整各個神經元的權向量,其誤差反向傳播使用的是梯度下降法所以BP學習規則要求神經元的轉移函數使用的是可連續的要求其求導後也是可連續的。hardlim是分段線性轉移函數所以不能用(這也要看設計思路,總之要使用到誤差梯度下降法去反向傳播誤差最後完成收斂這是BP學習提出的關鍵性問題)。總之轉移函數在設計網路學習時是有要求的,通常情況下BP不用hardlim也是因為上面說的梯度下降法。:)。
❸ 關於BP網路,函數擬合的基礎問題
限制值域的一個比較笨的方法:
可以把輸出節點的傳遞函數設置成logsig,把輸出之限制在0,1之間,比如你的輸出值是
>> x=1:6
x =
1 2 3 4 5 6
要求輸出在[0 10]范圍內,那麼你可以把x先在這個范圍內歸一化
>> x=x/10
x =
0.1000 0.2000 0.3000 0.4000 0.5000 0.6000
現在你可以用logsig函數作為輸出節點傳遞函數了,但是輸出的值要經過反歸一化才能得到你想要的結果
>> x=x*10
x =
1 2 3 4 5 6
對於定義域:
net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});%的minmax已經給你完成了,
至於特定的x一定對應特定的y,你是不是要求嚴格相等阿?我的觀點是,把這些有特定要求的點,在訓練完之後再訓練,不行再訓練,但有可能導致一個病態的結果
❹ matlab bp網路 函數模擬
1.n=3;
net=newff(minmax(h1),[n,1],{'tansig','purelin'},'trainlm');
h1要是是64的話,隱層的神經元數n=3太小了吧,換個8~12看看。
2.你說的效果不好是訓練後誤差太高吧,不知道你是用灰度圖0~255做輸入還 是用二值化以後的邏輯值0,1做輸入?
net=newff(minmax(h1),[n,1],{'tansig','purelin'},'trainlm');要是用灰度圖的話把tansig改成logsig看看。要是用二值化以後的邏輯值輸入,就把tansig和purelin都改成logsig
3 訓練步數net.trainParam.epochs = 100;設個1000吧,反正也多跑那麼幾毫秒
❺ 什麼是BP網路
我們最常用的神經網路就是BP網路,也叫多層前饋網路。BP是back propagation的所寫,是反向傳播的意思。我以前比較糊塗,因為一直不理解為啥一會叫前饋網路,一會叫BP(反向傳播)網路,不是矛盾嗎?其實是這樣的,前饋是從網路結構上來說的,是前一層神經元單向饋入後一層神經元,而後面的神經元沒有反饋到之前的神經元;而BP網路是從網路的訓練方法上來說的,是指該網路的訓練演算法是反向傳播演算法,即神經元的鏈接權重的訓練是從最後一層(輸出層)開始,然後反向依次更新前一層的鏈接權重。因此二者並不矛盾,只是我沒有理解其精髓而已。
隨便提一下BP網路的強大威力:
1)任何的布爾函數都可以由兩層單元的網路准確表示,但是所需的隱藏層神經元的數量隨網路輸入數量呈指數級增長;
2)任意連續函數都可由一個兩層的網路以任意精度逼近。這里的兩層網路是指隱藏層使用sigmoid單元、輸出層使用非閾值的線性單元;
3)任意函數都可由一個三層的網路以任意精度逼近。其兩層隱藏層使用sigmoid單元、輸出層使用非閾值的線性單元。
❻ bp神經網路選擇激活sigmoid函數,還有tansig函數的優缺點求告知
(1)對於深度神經網路,中間的隱層的輸出必須有一個激活函數。否則多個隱層的作用和沒有隱層相同。這個激活函數不一定是sigmoid,常見的有sigmoid、tanh、relu等。
(2)對於二分類問題,輸出層是sigmoid函數。這是因為sigmoid函數可以把實數域光滑的映射到[0,1]空間。函數值恰好可以解釋為屬於正類的概率(概率的取值范圍是0~1)。另外,sigmoid函數單調遞增,連續可導,導數形式非常簡單,是一個比較合適的函數
(3)對於多分類問題,輸出層就必須是softmax函數了。softmax函數是sigmoid函數的推廣
❼ BP神經網路中的激勵函數除了S型函數,還有什麼函數
一般來說,神經網路的激勵函數有以下幾種:階躍函數 ,准線性函數,雙曲正切函數,Sigmoid函數等等,其中sigmoid函數就是你所說的S型函數。以我看來,在你訓練神經網路時,激勵函數是不輕易換的,通常設置為S型函數。如果你的神經網路訓練效果不好,應從你所選擇的演算法上和你的數據上找原因。演算法上BP神經網路主要有自適應學習速率動量梯度下降反向傳播演算法(traingdx),Levenberg-Marquardt反向傳播演算法(trainlm)等等,我列出的這兩種是最常用的,其中BP默認的是後一種。數據上,看看是不是有誤差數據,如果有及其剔除,否則也會影響預測或識別的效果。
❽ BP神經網路運行到什麼程度算OK
你可以設定一個goal,這個goal是訓練時用的,用來驗算網路的擬合程度、映射能力,沒有嚴格要求,你可以隨意設定,再慢慢調整,有的人設0.1,有的人設0.000001,你自己慢慢試。主要看最後你用test算例驗證時的效果,可以算相對誤差,再用mse函數或sumsqr函數得到統計指標,指示網路的性能。
❾ 求助: BP神經網路的訓練演算法中訓練函數(traingdx 、trainlm、traingd)的中文全稱以及他們各自特點
traingdx 有動量和自適應lr的梯度下降法
trainlm Levenberg - Marquardt方法
traind 梯度下降法
❿ BP網路是什麼
我們最常用的神經網路就是BP網路,也叫多層前饋網路。BP是back propagation的所寫,是反向傳播的意思。我以前比較糊塗,因為一直不理解為啥一會叫前饋網路,一會叫BP(反向傳播)網路,不是矛盾嗎?其實是這樣的,前饋是從網路結構上來說的,是前一層神經元單向饋入後一層神經元,而後面的神經元沒有反饋到之前的神經元;而BP網路是從網路的訓練方法上來說的,是指該網路的訓練演算法是反向傳播演算法,即神經元的鏈接權重的訓練是從最後一層(輸出層)開始,然後反向依次更新前一層的鏈接權重。因此二者並不矛盾,只是我沒有理解其精髓而已。
隨便提一下BP網路的強大威力:
1)任何的布爾函數都可以由兩層單元的網路准確表示,但是所需的隱藏層神經元的數量隨網路輸入數量呈指數級增長;
2)任意連續函數都可由一個兩層的網路以任意精度逼近。這里的兩層網路是指隱藏層使用sigmoid單元、輸出層使用非閾值的線性單元;
3)任意函數都可由一個三層的網路以任意精度逼近。其兩層隱藏層使用sigmoid單元、輸出層使用非閾值的線性單元。
參考資料:【注】參考自《機器學習》