今天學習了GRNN該網路在逼近能力和學習速度上較RBF網路有較強的優勢,網路最後收斂於樣本量積累較多的優化回歸面,且樣本較少時,也有較好的擬合效果。

GRNN由四層組成,分為input layer、pattern layer、summation layer、output layer組成(於RBF類似)。今天主要介紹歸一化問題,具體的grnn網路後續介紹。

在創建網路和訓練網路是通常會用到歸一化函數下面來詳細介紹一下歸一化函數的使用(參考matlab手冊)

1、premnmx

預處理數據使數據的最小值和最大值分別為-1和1.

[PN,minp,maxp,TN,mint,maxt] = premnmx(P,T)

premnmx(P,T) 輸入 P - R x Q 矩陣(輸入向量,其中一列表示輸入變數). T - S x Q 矩陣(目標/輸出 向量).輸出PN - R x Q 矩陣 (歸一化的輸入向量). minp- R x 1 向量,包含對於P的最小值. maxp- R x 1 向量,包含P的最大值. TN - S x Q 矩陣,歸一化的目標向量.

mint- S x 1 向量,包含每個目標值T的最小值。

maxt- S x 1 向量,包含每個目標值T的最大值。[PN,minp,maxp] = premnmx(P)

2、tramnmx

語句的語法格式是:[PN]=tramnmx(P,minp,maxp)其中P和PN分別為變換前、後的輸入數據,maxp和minp分別為premnmx函數找到的最大值和最小值。

3、postmnmx

對那些歸一化後的數據進行後處理[P,T] = postmnmx(PN,minp,maxp,TN,mint,maxt)[p] = postmnmx(PN,minp,maxp)

輸入

PN - R x Q 矩陣 (歸一化的輸入向量). minp- R x 1 向量,包含對於P的最小值. maxp- R x 1 向量,包含P的最大值. TN - S x Q 矩陣,歸一化的目標向量. mint- S x 1 向量,包含每個目標值T的最小值。maxt- S x 1 向量,包含每個目標值T的最大值輸出P - R x Q 矩陣(輸入向量,其中一列表示輸入變數). T - S x Q 矩陣(目標/輸出 向量).

postmnmx與premnmx成對使用,premnmx的輸出作為postmnmx的輸入

運用時,首先通過premnmx對訓練數據進行歸一化,但對測試數據歸一化是需用到另外一個函數tramnmx;實現測試數據的歸一化處理,對輸出數據轉化用postmnmx.

案例:

clear all;

P_train = [1 2 3;4 5 6;7 8 9];T_train = [10 11 12];P_test=[2 3 4];T_test=[];[PN,minp,maxp,TN,mint,maxt] = premnmx(P_train,T_train);P_test=tramnmx(P_test,minp,maxp);

net=newgrnn(PN,TN,3);

T_test=sim(net,P_test);T_test=postmnmx(T_test,mint,maxt)
推薦閱讀:
相关文章