Радиальная базисная сеть обучена, чтобы ответить на определенные входные параметры с целевыми выходными параметрами. Однако, потому что распространение радиальных базисных нейронов является слишком низким, сеть требует многих нейронов.
Задайте 21 входные параметры P и сопоставленные цели T.
P = -1:.1:1; T = [-.9602 -.5770 -.0729 .3771 .6405 .6600 .4609 ... .1336 -.2013 -.4344 -.5000 -.3930 -.1647 .0988 ... .3072 .3960 .3449 .1816 -.0312 -.2189 -.3201]; plot(P,T,'+'); title('Training Vectors'); xlabel('Input Vector P'); ylabel('Target Vector T');
Функциональный NEWRB быстро создает радиальную базисную сеть, которая аппроксимирует функцию, определяемую P и T. В дополнение к набору обучающих данных и целям, NEWRB берет два аргумента, цель квадратичной невязки суммы и постоянное распространение. Распространение радиальных базисных нейронов B установлено в очень небольшое число.
eg = 0.02; % sum-squared error goal sc = .01; % spread constant net = newrb(P,T,eg,sc);
NEWRB, neurons = 0, MSE = 0.176192
Чтобы проверять, что сеть приспосабливает функцию сглаженным способом, задайте другой набор векторов тестового воздействия и моделируйте сеть с этими новыми входными параметрами. Постройте результаты на том же графике как набор обучающих данных. Тестовые векторы показывают, что функция была сверхподходящей! Сеть, возможно, добилась большего успеха с более высоким постоянным распространением.
X = -1:.01:1; Y = net(X); hold on; plot(X,Y); hold off;