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

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

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神經網路的函式newff的引數的

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

關於神經網路BP演算法的輸入問題,用matlab中bp神經網路實現由輸入值預測輸出值的程式

郈山白 可以的!之所以叫bp網路,是因為使用了反向傳遞演算法,這是一種結果導向的自學習方法,用在五子棋上是可以的。因為五子棋的遊戲方法正是很明顯的結果導向的過程。簡單說這麼個過程 1.設定輸入和輸出型別,比如都是座標 x1,y1 x2,y2 2.訓練 你告訴網路 a情況下應該輸出a1 b情況下應該輸...

關於神經網路的newrb 函式問題

spread 是一個標量 表示徑向基函式的擴充套件速度 預設值為1 goal也是一個標量 是指定的均方誤差 預設值0 mn指定隱含節點的最大個數 預設值是 輸入訓練樣本的個數 哇塞,一般人沒法聽懂的問題 用matlab的newrb函式建立的神經網路,怎麼檢視網路引數 newrb設計了徑向基網路,呼叫...