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比較大的話似乎會造成問題