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比较大的话似乎会造成问题