A. bp神經網路如何區分單層和多層隱藏
這個全靠 你自己設的, 你喜歡設幾層就設幾層 , 不過一般來說,BP都是一個輸入層,一個隱層,一個輸出層這樣.因為聽說一個隱層就能夠逼近任意的函數了.你如果是用matlab工具箱的話,你可以調用net.numLayers查看網路的層數,若果是2,則說明是一個隱層(你可以認為matlab把輸出也當一個隱層),是3,則有2個隱層,這樣類推.
學習神經網路可以上<神經網路之家>
B. 如何創建兩個隱藏層的BP神經網路
我自己的總結是:
1,隱層的神經網路演算法1.1構造方法選擇
首先使用三個隱藏層的數量來確定三個隱藏層數找到的最小值和最大值的值,然後從最小來驗證模型的預測誤差,直到它達到最大值。最後,選擇模型誤差最小隱藏層數。該方法適用於兩個隱藏層的網路。
1.2 Delete方法
單隱層網路的非線性映射能力弱,同樣的問題,以達到預定的隱層節點之間的映射一些,以增加網路的可調參數,它是適合用於刪除法。
1.3黃金分割法
的主要思路:一是在[A,B]尋找理想的隱層節點,從而充分保證逼近能力和泛化能力的網路。為了滿足高精度近似,在金色的原則,按照擴大搜尋范圍區間,即該區間[B,C] = 0.619 *(鈣)+ A)(其中B,范圍[B,C]尋找最佳逼近能力更應要求隱層節點數,在實際應用中,人們可以選擇。
C. 如何在matlab中建立多層bp神經網路
當你用newff的時候,裡面有一個參數可以控制層數,比如說:
P = [0 1 2 3 4 5 6 7 8 9 10];
T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff(P,T,5); %這樣表示有1個隱藏層,裡面那個5表示神經元的個數
net = newff(P,T,[5,10]); %這樣表示有2個隱藏層
net = newff(P,T,[5 10 8]); %這樣表示有3個隱藏層,以此類推,明白吧?
D. matlabBP神經網路工具箱,可以調整隱含層節點數嘛
Matlab神經網路工具箱幾乎包含了現有神經網路的最新成果,神經網路工具箱模型包括感知器、線性網路、BP網路、徑向基函數網路、競爭型神經網路、自組織網路和學習向量量化網路、反饋網路BP神經網路具有很強的映射能力,主要用於模式識別分類、函數逼近、函數壓縮等。下面通過實例來說明BP網路在函數逼近方面的應用需要逼近的函數是f(x)=1+sin(k*pi/2*x),其中,選擇k=2進行模擬,設置隱藏層神經元數目為n,n可以改變,便於後面觀察隱藏層節點與函數逼近能力的關系。
E. matlab BP神經網路出錯 newff參數 隱含層 怎麼確定
設[P,T]是訓練樣本,[X,Y]是測試樣本;
net=newrb(P,T,err_goal,spread); %建立網路
q=sim(net,p);
e=q-T;
plot(p,q); %畫訓練誤差曲線
q=sim(net,X);
e=q-Y;
plot(X,q); %畫測試誤差曲線
訓練前饋網路的第一步是建立網路對象。函數newff建立一個可訓練的前饋網路。這需要4個輸入參數。
第一個參數是一個Rx2的矩陣以定義R個輸入向量的最小值和最大值。
第二個參數是一個設定每層神經元個數的數組。
第三個參數是包含每層用到的傳遞函數名稱的細胞數組。
最後一個參數是用到的訓練函數的名稱。
舉個例子,下面命令將創建一個二層網路。它的輸入是兩個元素的向量,第一層有三個神經元(3),第二層有一個神經元(1)。
第一層的傳遞函數是tan-sigmoid,輸出層的傳遞函數是linear。
輸入向量的第一個元素的范圍是-1到2[-1 2],輸入向量的第二個元素的范圍是0到5[0 5],訓練函數是traingd。
net=newff([-1 2; 0 5],[3,1],{'tansig','purelin'},'traingd');
這個命令建立了網路對象並且初始化了網路權重和偏置,因此網路就可以進行訓練了。
我們可能要多次重新初始化權重或者進行自定義的初始化。
下面就是初始化的詳細步驟。
在訓練前饋網路之前,權重和偏置必須被初始化。初始化權重和偏置的工作用命令init來實現。這個函數接收網路對象並初始化權重和偏置後返回網路對象。
下面就是網路如何初始化的:
net = init(net);
我們可以通過設定網路參數net.initFcn和net.layer{i}.initFcn這一技巧來初始化一個給定的網路。
net.initFcn用來決定整個網路的初始化函數。前饋網路的預設值為initlay,它允許每一層用單獨的初始化函數。
設定了net.initFcn ,那麼參數net.layer{i}.initFcn 也要設定用來決定每一層的初始化函數。
對前饋網路來說,有兩種不同的初始化方式經常被用到:initwb和initnw。initwb函數根據每一層自己的初始化參數(net.inputWeights{i,j}.initFcn)初始化權重矩陣和偏置。前饋網路的初始化權重通常設為rands,它使權重在-1到1之間隨機取值。這種方式經常用在轉換函數是線性函數時。initnw通常用於轉換函數是曲線函數。它根據Nguyen和Widrow[NgWi90]為層產生初始權重和偏置值,使得每層神經元的活動區域能大致平坦的分布在輸入空間。
F. BP神經網路分類 三個輸入兩個輸出,隱含層應選多少層,節點數多少為宜 還有訓練次數什麼的需要專門設置
現在還沒有什麼成熟的定理能確定各層神經元的神經元個數和含有幾層網路,大多數還是靠經驗,不過3層網路可以逼近任意一個非線性網路,神經元個數越多逼近的效果越好。
G. 如何建立雙隱層BP神經網路
樓主你好,這樣的雙層隱含層是可以的,你注意下逗號
H. matlab中 BP神經網路怎麼構建多個隱層
把報錯內容寫以下吧,我猜可能是你傳輸函數沒有加吧
{『tansig』, 『purelin』}改成{『tansig』,『tansig』, 『purelin』}試試?
I. matlab建立bp神經網路如何設置兩個隱含層呢
題主那個newff裡面的10看到沒?那個就是設置1個隱含層的神經元個數,要多個隱含層就把10改成[4,10,1]就是第一個隱含層有4個神經元,第二個隱含層10個神經元,最後一層輸出層1個神經元。然後你的{TF1 TF2}不用改。這樣應該能用了。
然後給你一個newff的各項參數使用的介紹: