[問題] 請教 RBFNN 的問題已回收
我用隨機選取法建構了 rbfnn (幅狀基底函數類神經網路) 網路,
訓練樣本有 400 個,我讓該網路隨機產生 40 個中心點, 並因此
得到 40 個權重值.
我的問題是, 如果接下來我產生驗證用樣本 200 個,那當我將這
200 個驗證樣本丟進 rbfnn 裡面時...
一、我在訓練階段得出的 40 個中心點需要帶入驗證階段的 rbfnn
嗎?
二、亦或者我在驗證階段只需把權重值帶入 rbfnn 即可?
因為我看程式碼,權重矩陣 W 得到的過程是..
選出中心點→計算相互間距離→產生 rbf矩陣
→讓它與目標輸出相乘得到W→再由 rbf矩陣 與 W 相乘得到實際輸出
我的疑惑是,因為實際輸出應該要與輸入有關,而 rbf 會依帶入
的資料點不同而不同(訓練階段與驗證階段的資料點不同),rbf不
同,W 就會變,W 會變的話「驗證」就無意義。
┌─用來得到 W (在訓練階段可依此得到權重)
rbf矩陣─┤
└─用來得到實際輸出
而 rbf 矩陣就是由中心點與資料點來的,因此中心點若變,rbf
就會變,則合理的想法就是在驗證階段時把之前選好的中心點以
及權重矩陣都帶進來,但因為資料點變了,rbf矩陣計算公式..
phi(j,i) = exp(((-norm(centers(:,i) - p(:,j))/sigma)^2)/2);
p 為資料點,在這情況下 rbf 還是會依資料點的改變而改變,變
成在驗證階段 W 還是會跟著變...而若設定 W 「不變」,得出來
的結果就變得不準...
不曉得該怎麼辦哩...有人有這方面的經驗嗎?
PS其實我一直覺得奇怪, 依程式的公式...
權重 W = pinv(phi)*t'; // phi = rbf矩陣, t = 目標輸出
實際輸出 yh = (phi*W);
在這情況下 yh = (phi*pinv(phi)*t');
在這情況下決定該網路的主要參數反而不是「權重」,反而是
rbf矩陣了。
所以我可以解讀為 rbfnn 在訓練階段的重點在得出「中心點」
而非得出「權重值」嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.170.230.180
推
05/13 21:34, , 1F
05/13 21:34, 1F
→
05/13 23:22, , 2F
05/13 23:22, 2F
→
05/13 23:22, , 3F
05/13 23:22, 3F
→
05/14 06:22, , 4F
05/14 06:22, 4F
→
05/14 06:23, , 5F
05/14 06:23, 5F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章