matlab --概率神經網PNN與廣義回歸神經網絡GRNN


PNN

PNN用來分類

前面部分完全一樣,后面是做點LW,是每列一個樣本,有幾類就會有幾行, 每列中有一個1元素其他都是0,1元素所在行表示第幾類

所以Lw a1 之后等於每個樣本按權a1進行累計,然后對列向量a2( K行)進行compet,compet選擇列向量中最大的元素為1,其他設置成0, 輸入結果類似[0  0  1 ]^T 即 是第3類

ind2vec([1  2  4  5  2  3]) ,里面可以看成每列屬於一個分類有5個分類(第4個元素是5),第一個樣本屬於分類1,第2個樣本屬於分類2, 那么進行ind2vec后,就變成5行(對應5個分類)

6列(對應6個樣本)的one-hot矩陣了

 

GRNN

類似RBF,不需要訓練,IW存儲就是訓練--每行一個樣本(注意函數輸入時是每列一個樣本)

前Layers{1}跟RBF完全一樣,矩陣LW2.1每列對應訓練樣本的目標值,1行表示只有一個輸出,2行就是2個輸出

nprod就是點乘--內積,但是結果回除以sum(ai) ,數學定義是:z = w*p/sum(p),考慮訓練目標值是 Lw=[1  2  3 1] --4個樣本,1個輸出

經過第一層后的向量a1=[ 0   0  1  0]^T ---即完全接近第3個樣本,2個做nprod后結果就是3

當然實際情況可能是a1=[0.1  0.2  0.8   0.11]^T  除以sum(a1)后 是[0.08  0.16  0.66 0.09], Lw a1/sum(a1)  結果也是2.47,nprod看成各樣本結果按接近程度做為權重進行累加

並且權重之和是1(除以sum(a1)導致的)

所以GRNN,做分類時需要取下整--分類編號1,2,3  。。。N,如果N比較大的話似乎會造成問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM