目录
GRNN(广义回归神经网络)和PNN(概率神经网络),与RBF非常的相似,请先看上一篇博文《简单直白理解RBF神经网络及其MATLAB实例》,了解一下RBF的大致原理。本文介绍将类比RBF神经网络来介绍。
GRNN(广义回归神经网络)
我们先看上面的示意图。左边的部分(input层和径向基层)和RBF神经网络非常相似,都是比较输入和训练集的欧氏距离,经过RBF的激活函数得到一个输出(a1),然后进入右边的线性处理部分,做一个连接权值、线性方程组求解的过程。LW{2,1}也是一个确定的结果,用的是训练集的输出矩阵(T),再和输出a1做点乘(nprod)。
这么讲可能有点抽象。我们知道一般RBF函数,中间对称轴处x=0处对应的y=1,即如果横轴的值||dist||接近0时,输出为1。假设有个输入向量p非常接近于训练集样本中某个样本。则p产生的第一层的输出a1接近于1,由于第二层的权重LW{2,1}就是设为T(T是target,就是训练集的输出),则第二层的输出a2也会与等于1乘以T,就是T的值。
上述现象,可以在matlab中查看a1矩阵的值来帮助理解,我们会发现对角线的元素都是1:
为什么?因为p1作为测试样本时,和p1最接近;p2作为测试样本时,和p2最接近……每个样本作为测试样本输入时,总会和自己最接近,输出就会是1。
matlab中GRNN的函数是:net = newgrnn(P,T,spread),我们可以通过MATLAB的文档来学习一下GRNN的知识:
P |
|
T |
|
spread |
Spread of radial basis functions (default = 1.0) |
如何调参数spread:The larger the spread
, the smoother the function approximation. To fit data very closely, use a spread
smaller than the typical distance between input vectors. To fit the dat