Нейронная сеть MATLAB для аппроксимации данных

Выполним исследование нейронной сети для аппроксимации выбранной функции, используя функции пакета NeUral Networks Toolbox. В состав пакета  входит  более  160  различных  функций,  дающих  возможность  создавать, обучать и исследовать нейронные сети.

Для выполнения работы необходимо запустить MATLAB и перейти в командное окно.

Создадим обобщенно-регрессионную НС (сеть типа GRNN) с именем а, реализующую функциональную  зависимость  между  входом  и  выходом вида y = x^3  на отрезке [-1, 1], используя следующие экспериментальные данные:

x = -1:0.1:1;

N = length(x)

y = x.^3+rand(1,N)*0.5;

Проверку качества восстановления приведенной зависимости осуществим, ис

пользуя данные контрольной выборки

x1 = min(x):0.001:max(x)

значения y1 для контрольной выборки будут рассчитаны с помощью нейронной сети

y1 = sim(a,x1)

Рисунок 1- структура нейронной сети
Рисунок 2 — сравнение исходных данных и данный вычисленных нейронной сетью

Листинг 1 — пример использования нейронной сети для аппроксимации экспериментальных данных.

clear

clc

%% исходные данные для обучения нейронной сети

x = -1:0.1:1;

N = length(x)

y = x.^3+rand(1,N)*0.5;

%% погрешность работы нейронной сети

delta = 0.2

a=newgrnn(x,y,delta);

%% данные для проверки нейронной сети

x1 = min(x):0.001:1

%% показать карту нейронной сети

view(a)

%% расчет точек с помощью нейронной сети

y1 = sim(a,x1)

%% построение графика

figure

plot(x,y)

hold on

plot(x1,y1)

legend(‘исходные данные’,’данные рассчитанные НС’)

grid on