本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com
概率神经网络(Probabilistic Neural Network,PNN)由D.F.Speeht在1989年提出,属于一种径向基网络
在matlab中可以用newpnn来构建一个概率神经网络,本文讲解newpnn函数的使用方法
通过本文,可以了解如何使用newpnn函数构建概率神经网络,以及newpnn函数的入参说明和使用方法
本节展示在matlab中用newpnn函数构建概率神经网络的简单DEMO
newpnn-简单使用Demo
在matlab中可以使用newpnn来构建一个概率神经网络PNN
下面是newpnn的一个简单使用示例:
% 训练数据
P = [1 2 3 4 5 6 7]; % 输入数据
Tc = [1 2 3 2 2 3 1]; % 输出数据:类别编号
T = ind2vec(Tc); % 将类标转换为onehot编码格式
%设计一个PNN神经网络,并测试
net = newpnn(P,T); % 生成一个概率神经网络
Y = sim(net,P) % 用网络进行预测
Yc = vec2ind(Y) % 将预测结果转为类别编号
概率神经网络PNN与广义神经网络GRNN类似,但概率神经网络仅用于模式识别(分类)
本节基于matlab给出的doc newpnn 文档,讲解newpnn的使用方法
语法:
net = newpnn(P,T,spread)
说明:
概率神经网络(PNN)是一种径向基神经网络,适用于解决分类问题。
net = newpnn(P,T,spread) 需要2或3个入参。返回一个新的概率神经网络
入参说明:
P: R行Q列的输入矩阵,R个输入变量,Q个样本。
T: S行Q列的目标输出矩阵,S个输出变量,Q个样本。
spread :径向基函数的扩展系数(默认=1.0)
如果spread 近似于0,那么网络的表现为一个最邻近分类器。
随着spread 变大,网络会考虑几个邻近的样本
If spread is near zero, the network acts as a nearest neighbor classifier.
As spread becomes larger, the designed network takes into account several nearby design vectors.
本节简单介绍PNN的构建算法原理和预测时的计算逻辑
PNN的构建算法说明
newpnn是不需要训练的,
因为它实际是用训练样本来估算新本,
因此,只要把训练样本存到网络中即可
PNN神经网络的构建
它的输入层-隐层的权重W21,存的就是训练样本的输入
它的隐层阈值B2,存的是由参数spread生成的控制径向基肥瘦的参数
它的隐层-输出层W32,存的则是训练数据的输出
✍️备注:概率神经网络的输出层没阈值
PNN神经网络的预测
预测时,
1. 先计算隐节点值激活值(hide active)
2. 利用隐节点值计算输出值
好了,以上就是matlab中构建广义回归神经网络的newpnn函数的使用说明了~
End