Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Построение нечеткой аппроксимирующей системы
Пакет Fuzzy Logic Toolbox. Цель работы: изучение основных свойств, методики вычислений и основ работы с пакетом Neural Networks Toolbox в программной среде MatLab. 1) Создайте обобщенно-регрессионную НС, сеть с радиальными базисными элементами, а также линейную НС для аппроксимации функции по данным, представленным в таблице 1. 2) Сравнить результаты, рассчитав ошибку опроса сетей и реальное значение.
1) Постройте линейную нейронную сеть, позволяющую прогнозировать будущее значение подобного сигнала по 5 предыдущим для функции
Ход выполнения: В ходе выполнения лабораторной работы необходимо освоить некоторые навыки в алгоритме работы нейронных сетей. В данной лабораторной работе нейронные используются со следующей целью: -для прогнозирования -для аппроксимации функций Создадим обобщенно-регрессионную НС с именем а для аппроксимации функции вида y = sin(π x- π /2)на отрезке [-2, 2], используя следующие экспериментальные данные: P=[-2 -1.6 -1.1 -0.9 0.2 0.4 0.8 1.8 2] – Задание входных значений t=sin(pi*P-pi/2); - задание выходных значений a = newgrnn(P, t, 0.001); - создание ОР НС с именем а Y = sim(a, [-1.5 0 0.7 1.9]) – опрос сети -0.3090 -0.8090 0.8090 -0.9045 –результат опроса 0.0000 -1.0000 0.5878 -0.9511 - реальный результат Как видно в начале опроса ошибка самая максимальная.
Сделаем тот же пример на НС с радиальными базисными элементами. a = newrbe(P, t); - создание сети Y = sim(a, [-1.5 0 0.7 1.9]) – опрос сети 0.0017 -0.9993 0.5877 -0.9537- результат опроса Как видно ошибка сети с РБЭ намного ниже чем ОР нейронной сети.
Создадим линейную НС maxlr= maxlinlr(P, 'bias'); - определение величины коэффициента обучения b = newlin([-2 2], l, [0], maxlr) – создание нелинейной НС b.trainParam.epochs = 15; - задаем количество циклов обучения b = train(b, P, T) – обучение y=sim(b, -2) – опрос сети
y =
0.1325 – результат опроса
Построим линейную НС для прогнозирования результатов. t = 0: 0.025: 5; - задание аргументов для прогнозируемой функции x = sin(pi*t)-cos(pi*t); - прогнозируемая функция > > Q = length(x) – запись перемеренных х в матрицу > > P = zeros (5, Q); - создание нулевой матрицы > > P(1, 2: Q)=x(1, 1: (Q-1)); > > P(2, 3: Q)=x(1, 1: (Q-2)); > > P(3, 4: Q)=x(1, 1: (Q-3)); > > P(4, 5: Q)=x(1, 1: (Q-4)); > > P(5, 6: Q)=x(1, 1: (Q-5)); > > s=newlind(P, x); - создание линейной НС > > y = sim(s, P); - расчет прогнозируемых значений
Рисунок 2 – реальный график прогнозируемой функции и график прогноза сети
Рисунок 3 - изменение ошибки сети в процессе прогнозирования
Вывод: В процессе выполнения лабораторной работы были изучены навыки работы с нейронными сетями на примере изучения способов аппроксимирования и прогнозирования функций.
|