设计一个RBF神经网络,实现如图所示的两类模式的分类。
解:
(1)将三角形规定为第1类模式,圆形规定为第2类模式,以 ( x , y ) (x,y) (x,y)代表各模式样本的位置,形成相应的输入向量,注意,在矩阵中 ( x , y ) (x,y) (x,y)成列分布,例如 [ x 1 x 2 x 3 y 1 y 2 y 3 ] \begin{bmatrix} x_1&x_2&x_3\\ y_1&y_2&y_3\end{bmatrix} [x1y1x2y2x3y3]
(2)创建、训练、存储、仿真RBF神经网络。
clear all;
clc;
p = [0 0 0 1 1 1 -1 -1 -1; 0 1 -1 0 1 -1 0 1 -1]; % 输入向量
tc = [1 1 2 2 1 1 1 2 1];
t = ind2vec(tc); % 目标向量
net = newpnn(p,t,0.7); % 设计径向基函数
save net62 net; % 存储训练后的网络
%%
% RBF神经网络仿真
load net62 net; % 加载训练后的网络
i = [0 0 0 1 1 1 -1 -1 -1; 0 1 -1 0 1 -1 0 1 -1]; % 测试样本
r = sim(net,i);
rc = vec2ind(r) % 仿真结果
(3)结果输出
- r c = 1 1 2 2 1 1 1 2 1 rc=\begin{matrix} 1&1&2&2&1&1&1&2&1\end{matrix} rc=112211121
从仿真结果可以看出,RBF神经网络可以很好地完成模式分类。