Нейронная сеть радиального базиса (RBF)

искусственный интеллект глубокое обучение

Говоря о BP и RBF

Сеть BP должна корректировать значение владения и порог сети во время процесса обучения, который называется нейронной сетью глобального приближения.Глобальная нейронная сеть приближения имеет очень низкую скорость обучения, поэтому в некоторых ситуациях в реальном времени (например, управление в реальном времени), его применение ограничено.

Сеть RBF — это локальная аппроксимирующая сеть, для каждой обучающей выборки требуется только исправить небольшое количество весов и порогов, поэтому скорость обучения высокая.

код реализации Matlab

newrb()---新建一个径向基神经网络
newrbe()---新建一个严格的径向基神经网络
newgrnn()---新建一个广义回归径向基神经网络
newpnn()---新建一个概率径向基神经网络
net=newrb(P,T,g,s)
P:输入向量 T:输出向量 g:均方差精度(拟合能力) s:径向基层的散布常数(泛化能力)
sim(net,P)---仿真

Пример приближения функции

y(x)=1.1(1x+2x2)exp(x22).y(x)=1.1(1-x+2x^2)exp(-\frac{x^2}{2}).

x=-4:0.08:4;
t=1.1*(1-x+2*x.^2).*exp(-x.^2/2)+0.1*rand(1,101);
plot(x,t,'+');
hold on

net=newrb(x,t,0.001,1,1000000);
Y=net(x)
figure(1)
plot(x,Y,'g');
title('RBF神经网络函数逼近');
xlabel('input');
ylabel('output');
figure(2)
e=Y-t;
plot(x,e,'b-');

在这里插入图片描述

\begin{aligned} x & = &(t+0.5\pi)sin(t+0.5\pi) \\ y & = & (t+0.5\pi)cos(t+0.5\pi) \\ z & = & 1.5t\\ & &0\le t \le2\pi \end{aligned} \right.
t=0:0.1:10*pi;
x=(t+0.5*pi).*sin(t+0.5*pi); 
y=(t+0.5*pi).*cos(t+0.5*pi); 
z=1.5*t;

net=newrb([x;y],z,0.001,2); %平方和误差小于0.001
zf=net([x;y]);%神经网络输出值
plot3(x,y,zf,'r'); %仿真的函数图像
hold on
plot3(x,y,z,'+'); %待逼近的函数图像
title('RBF神经网络函数逼近');
xlabel('x');
ylabel('y');
zlabel('z');
grid on
mse(zf,z) %平方和误差

在这里插入图片描述