1.简述
学习目标:利用概率神经网络 解决分类问题
使用神经网络能执行几种典型的任务:聚类、拟合、分类(模式识别)以及时间序列预测。
其中分类任务可以说是最常应用的场景之一,在之前的文章里也使用了分类任务作为案例对神经网络进行了入门讲解。时常遇到想要使用神经网络快速地实现分类的同学。
概率神经网络(PNN)于1989年由D. F. Specht 博士首先提出,是一种常用于模式分类的神经网络。概率神经网络是基于统计原理的神经网络模型,在分类功能上与最优贝叶斯分类器等价,其实质是基于贝叶斯最小风险准则发展而来的一种并行算法。概率神经网络的判别边界接近于贝叶斯最佳判定面,神经网络的计算流程与最大后验概率准则极为类似。
概率神经网络特点:
1、输入层接收样本的值,神经元个数与输入向量长度相等。
2、隐藏层为径向基层,每个神经元对应一个中心(对应一个样本数据)。
3、输入数据分为了i类,因为PNN就是用来分类的,就是先用样本训练网络,然后输入数据,用此网络来鉴别,是属于哪一类数据。
4、上式Xij其实与RBF神经网络一致,就是求每个输入与样本的欧式距离,只不过此隐藏层把数据分为了i个类,并且设第i个类有j个数据。
5、然后下图可以看出,求和层的神经元个数与数据分类的个数相等,此求和层求得上式中,每类数据的平均值。
6、然后比较每一类平均值的大小,把此数据分类到值最大的那一类。
(1)概率神经网络数据类型的转换
(2)再将其转换回来
2.代码
clear all;
close all;
P=[1:8];
Tc=[2 3 1 2 3 2 1 1];
T=ind2vec(Tc) %数据类型的转换
net=newpnn(P,T);
Y=sim(net,P);
Yc=vec2ind(Y) %转换回来
3.运行结果