Цель работы:научиться использовать нейронные сети для аппроксимации функции.
Задание:В среде MATLAB необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции , . Разработать программу, которая реализует нейросетевой алгоритм аппроксимации и выводит результаты аппроксимации в виде графиков. Варианты задания представлены в табл. 3.1.
Задача.В среде MATLAB необходимо построить и обучить нейронную сеть для аппроксимации таблично заданной функции =[2.07 2.17 2.21 2.31 2.10 2.09 2.12 1.63 1.78 1.52 1.16 1.07 0.85 0.56 0.10 -0.25 -0.65 -1.06 -1.66 -2.01]T, .
В математической среде MATLAB создаем новый M-File, в котором записываем код программы создания и обучения нейронной сети с использованием встроенных функций пакета нейронных сетей Neural Networks Toolbox:
net = newff([0.1 2],[5 1],{'tansig' 'purelin'});% создание нейронной сети
net.trainParam.epochs = 100;% задание числа эпох обучения
net = train(net,P,T);% обучение сети
y = sim(net,P);% опрос обученной сети
figure (1);
hold on;
xlabel ('P');
ylabel ('T');
% прорисовка графика исходных данных и функции сформированной
нейронной сетью
plot(P,T,P,y,'o'),grid;
Результаты работы созданной нейронной сети представлены на рис. 6.1.
Рис. 6.1. Результат работы нейронной сети
Выводы (пример):
В результате выполнения лабораторной работы я ознакомился с основами теории искусственных нейронных сетей. В среде MATLAB был создан программный код, с помощью которого была построена и обучена нейронная сеть с одним скрытым слоем без обратных связей для аппроксимации таблично заданной функции. Я убедился, что нейронные сети являются одним из мощных математических аппаратов для решения задач аппроксимации функций.
Контрольные вопросы:
1. Дайте определение «нейрона».
2. Что Вы понимаете под обучением нейронной сети?
3. Что такое «Обучающее множество»?
4. Объясните смысл алгоритма обучения с учителем.
5. Что называют аппроксимацией функции?
6. Какие функции в среде MATLAB используются для создания нейронной сети?