- •Санкт-Петербургский национальный исследовательский университет
- •Редакторы знаний и функции системы kappa
- •Основные этапы разработки объектной модели
- •Пример. Окно Object Browser
- •Построение функциональной модели с использованием продукционных правил Цикл формирования цепи рассуждений в прямом направлении
- •If посылка then заключение.
- •Формирование цепи рассуждений в обратном направлении
- •Окно трассировки правил (Rule Trace)
- •Средства отладки базы знаний
- •Окно связи правил (Rule Relations)
- •Активная трассировка при прямом формировании цепочки рассуждений
- •Окно просмотра иерархии выводов (Inference Browser)
- •Средства создания интерфейса с пользователем. Окно сеанса (Session Window)
- •Средства объяснений оболочки kappa
- •Практическое задание
- •Разработка и программирование объектной модели предметной области
- •Разработка и программирование функциональной модели предметной области
- •Компьютерный практикум по нечетким системам
- •Аппроксимация функции одной переменной с использованием нечеткой системы
- •Варианты заданий
- •Построение элементарной нечеткой экспертной системы
- •Программирование нечеткой системы в среде matlab с использованием встроенных функций
- •Кластеризация с помощью алгоритма нечетких центров
- •Компьютерный практикум по нейронным сетям
- •Аппроксимация функции на основе нейронных сетей
- •Варианты заданий
- •Использование инструмента nnTool для построения нейронной сети
- •Кластеризация с помощью нейронных сетей
- •Рекуррентные нейронные сети Хопфилда и Хэмминга
- •Нейронные сети радиально-базисных функций. Вероятностные сети
- •Построение нейронечеткой модели с помощью anfis-редактора
- •Приложение 1. Функции пакета «Fuzzy Logic Toolbox» системы matlab для работы с системами нечеткой логики
- •Приложение 2. Функции пакета «Neural Network Toolbox» системы matlab для работы с нейронными сетями
Компьютерный практикум по нейронным сетям
Аппроксимация функции на основе нейронных сетей
Цель работы: научиться использовать нейронные сети для аппроксимации функции.
Задание:
В среде
MATLAB
необходимо построить и обучить нейронную
сеть для аппроксимации таблично заданной
функции
,
.
Разработать программу, которая реализует
нейросетевой алгоритм аппроксимации
и выводит результаты аппроксимации в
виде графиков. Варианты задания
представлены в табл.3.1.
Варианты заданий
Значения
,
– одинаковые для всех вариантов.
Таблица 3.1
|
i |
Значение
| |||||||||
|
№1 |
№2 |
№3 |
№4 |
№5 |
№6 |
№7 |
№8 |
№9 |
№10 | |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
2.05 1.94 1.92 1.87 1.77 1.88 1.71 1.60 1.56 1.40 1.50 1.26 0.99 0.97 0.91 0.71 0.43 0.54 0.19 0.01 |
2.09 2.05 2.19 2.18 2.17 2.27 2.58 2.73 2.82 3.04 3.03 3.45 3.62 3.85 4.19 4.45 4.89 5.06 5.63 5.91 |
2.02 1.98 1.67 1.65 1.57 1.42 1.37 1.07 0.85 0.48 0.35 -0.30 -0.61 -1.20 -1.39 -1.76 -2.28 -2.81 -3.57 -4.06 |
1.99 2.03 2.20 2.39 2.19 2.61 2.35 2.60 2.55 2.49 2.50 2.52 2.44 2.35 2.26 2.19 2.24 2.34 1.96 2.19 |
2.23 2.29 2.27 2.62 2.72 2.82 3.13 3.49 3.82 3.95 4.22 4.48 5.06 5.50 5.68 6.19 6.42 7.04 7.57 8.10 |
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 |
2.18 2.43 2.40 2.43 2.65 2.75 2.67 2.66 2.63 2.75 2.41 2.24 2.12 1.74 1.57 1.17 0.96 0.63 0.25 -0.01 |
-0.10 -0.21 0.01 0.05 -0.13 -0.23 -0.21 -0.43 -0.57 -0.44 -0.44 -0.83 -0.78 -0.81 -1.06 -1.41 -1.40 -1.70 -1.96 -1.91 |
-0.16 0.01 0.10 0.16 0.05 0.35 0.19 0.50 0.74 1.03 1.06 1.49 1.79 2.03 2.22 2.50 2.88 3.21 3.63 3.90 |
2.09 2.31 2.72 2.77 2.78 2.97 3.00 3.51 3.43 3.58 3.58 3.54 3.82 3.90 3.77 3.81 4.00 3.97 4.08 4.08 |
Пример выполнения:
Задача.
В среде
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:
P = zeros(1,20); % создание массива
for i = 1:20
P(i) = i*0.1; % входные данные (аргумент)
end
T=[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] % входные данные (значение функции)
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 был создан программный код, с помощью которого была построена и обучена нейронная сеть с одним скрытым слоем без обратных связей для аппроксимации таблично заданной функции. Я убедился, что нейронные сети являются одним из мощных математических аппаратов для решения задач аппроксимации функций.
Контрольные вопросы:
Дайте определение «нейрона».
Что Вы понимаете под обучением нейронной сети?
Что такое «Обучающее множество»?
Объясните смысл алгоритма обучения с учителем.
Что называют аппроксимацией функции?
Какие функции в среде MATLAB используются для создания нейронной сети?
