神經網路權值怎麼確定,BP神經網路中初始權值和閾值的設定

時間 2021-08-30 09:25:21

1樓:致愛麗絲星空之夜

神經網路的權值是通過對網路的訓練得到的。如果使用matlab的話不要自己設定,newff之後會自動賦值。也可以手動:

net.iw{}= ; net.bias{}=。

一般來說輸入歸一化,那麼w和b取0-1的隨機數就行。神經網路的權值確定的目的是為了讓神經網路在訓練過程中學習到有用的資訊,這意味著引數梯度不應該為0。

引數初始化要滿足兩個必要條件:

1、各個啟用層不會出現飽和現象,比如對於sigmoid啟用函式,初始化值不能太大或太小,導致陷入其飽和區。

2、各個啟用值不為0,如果啟用層輸出為零,也就是下一層卷積層的輸入為零,所以這個卷積層對權值求偏導為零,從而導致梯度為0。

2樓:匿名使用者

(1)初始時,每個權值由隨機數函式產生,值的範圍為[-1,1]之間

(2)執行過程中,通過bp演算法求得均方誤差的梯度,然後調整bp網路的權值.如:w(i,j,k+1)=w(i,j,k)+delta(e(i,j)).

3樓:嵐中楓火

權值開始是自動生成的,然後根據訓練資料訓練神經網路,在訓練過程中神經網路會根據輸出誤差自動調整權值,以達到輸出要求。所以權值是和訓練資料相關的,你在matlab 神經網路工具箱試下就知道了,在matlab的command輸入nntool按enter可以得到介面!

4樓:匿名使用者

權值是通過對 網路的訓練得來的 ,是對期望輸入輸出資料的訓練

bp神經網路中初始權值和閾值的設定

5樓:墨汁諾

首先需要了解bp神經網路是一種多層前饋網路。以看一下在matlab中bp神經網路的訓練函式,有梯度下降法traingd,彈性梯度下降法trainrp,自適應lr梯度下降法traingda等。

因為初始值(初始權值和閥值)都在x這個向量中,x(n,1)的長度n為:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum

其中inputnum*hiddennum是輸入層到隱含層的權值數量,hiddennum是隱含層神經元個數(即隱含層閥值個數),hiddennum*outputnum是隱含層到輸出層權值個數,outputnum是輸出層神經元個數(即輸出層閥值個數)。

結構

bp網路是在輸入層與輸出層之間增加若干層(一層或多層)神經元,這些神經元稱為隱單元,它們與外界沒有直接的聯絡,但其狀態的改變,則能影響輸入與輸出之間的關係,每一層可以有若干個節點。

bp神經網路的計算過程由正向計算過程和反向計算過程組成。正向傳播過程,輸入模式從輸入層經隱單元層逐層處理,並轉向輸出層,每~層神經元的狀態隻影響下一層神經元的狀態。如果在輸出層不能得到期望的輸出,則轉入反向傳播,將誤差訊號沿原來的連線通路返回,通過修改各神經元的權值,使得誤差訊號最小。

6樓:

你這是不是用遺傳演算法優化權值和閥值啊?

我不知道你x的**來的?所以也不知道你是如何確定初始權值和閥值。

不過我們平常寫程式時這些值都是隨機賦予的。

7樓:末日新生

這是一個三層神經網路,x裡邊儲存得是你用其他演算法確定好的權值和閾值,括號裡邊計算的是對應各層權值閾值的索引(序號)比如 三層神經網路,輸入層2  隱含層3 輸出層1

w1=x(1:inputnum*hiddennum);

輸入層到隱含層的 權值個數=輸入層數量*輸出層數 ,你可以想象為輸入層隱含層的線,總共2*3 =6個 ,索引值是1-6 ,w1(1,6)

b1=x(inputnum*hiddennum+1:inputnum*hiddennum+hiddennum);

隱含層的閾值所在索引: 前邊到6 了,這個肯定要從6+1開始,間隔就是隱含層閾值的個數3,所以右邊範圍是6+3.隱含層閾值b1的索引值就是x(7:

9)

下邊都類似了

w2=x(inputnum*hiddennum+hiddennum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum);  隱含層到輸出層的權值 x(10,12)

b2=x(inputnum*hiddennum+hiddennum+hiddennum*outputnum+1:inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum);  輸出層閾值只有一個  x(13,13)

8樓:匿名使用者

樓主,你是怎麼看懂的啊?

matlab神經網路工具箱怎麼看訓練後的權值

9樓:tn瓶邪

訓練好的權值、閾值的輸出方法是:

輸入到隱層權值: w1=net.iw

隱層閾值: theta1=net.b

隱層到輸出層權值: w2=net.lw;

輸出層閾值: theta2=net.b

MATLAB神經網路BP,誤差超大,怎樣除錯是誤差更接近目標值?主要除錯哪些引數?謝謝

被推薦的答案倒是沒說錯,基本上和沒說一樣 就好比問怎麼安排時間,回答一個 合理安排時間 誤差大,第一步需要嘗試的是做歸一化處理。有線性歸一化,有對數函式歸一化等等,這個你可以去網上搜尋資料歸一化方法,有相關的 應該。第二部需要做出的改動是隱層節點數量,如果節點數量太多,那麼結果的隨機性就會很大,如果...

matlab中建立bp神經網路的函式newff的引數的

1.newff雖然沒有規定輸入層神經元個數,那輸入層神經元個數是如何確定的?輸入層是根據你讀入資料的維度,自動生成的。2.我現在讀入了10張 把每張 歸一化成了50 20的,並轉換成1 1000的行向量,最後生成了10 1000的二維矩陣,然後,我再用eye 10,10 函式製造了一個單位矩陣,那麼...

matlab在bp神經網路訓練時出現錯誤說未定義與

依然特雷西 1 實現 以函式的形式訓練神經網路命令。2 實現 p為輸入向量的方法命令。3 實現 t為目標向量的命令。4 實現 建立一個新的前向神經網路的命令。5 實現 呼叫演算法訓練bp網路的命令。6 其他設定命令。 主要問題出在txt樣本上,資料之間應以空格間隔,而不能是製表符,否則fcanf不能...