Поволжский Государственный Университет Телекоммуникаций и Информатики
Опубликован: 13.08.2013 | Доступ: свободный | Студентов: 1282 / 388 | Длительность: 07:30:00
Специальности: Экономист

Самостоятельная работа 6: Применение нейронных сетей для расчета и прогнозирования значений процесса

< Лекция 5 || Самостоятельная работа 6 || Лекция 6 >
Аннотация: Цель работы: знакомство с правилами построения нейронных сетей, используя графический интерфейс в программе MATLAB.

Подготовка к работе

По указанной литературе изучить приёмы работы построение нейронных сетей в программе MATLAB.

Контрольные вопросы

  1. Правила создания нейронных сетей.
  2. Порядок использования графического интерфейса для построения нейронных сетей.
  3. Как происходит процесс обучения сети?
  4. Назначение закладки Train.
  5. Как просмотреть результаты обучения сети?
  6. Порядок прогнозирования значений процесса?

Задание к работе

  • Создайте нейронную сеть для выполнения операций указанных в таблице 11.1
  • Обучите нейронную сеть
  • Сделайте прогнозирование значений процесса
Таблица 11.1.
№№ Функции №№ Функции
1 у = cos(x) 4 y = cos(x-1)
2 y = sin(2*x) 5 y = sin(x-2)
3 y = cos(3*x) 6 y = sin(x2)

Пример выполнения задания

Создадим нейронную сеть для выполнения операции у = sin (x)

X=[-1 -0.8 -0.5 -0.2 0 0.1 0.3 0.6 0.9 1];

Y =[-0.84 -0.72 -0.48 -0.19 0 0.09 0.29 0.56 0.78 0.84]

Откроем основное окно интерфейса при помощи функции nntool (рисунок 11.1) сформулируем последовательность входов и целей, используя окно Network/Data Manager, которое открывается с помощью команды "New".


Рис. 11.1.

В окне Create Network or Data выберем закладку Data. В открывшемся окне в поле Name введем имя переменной, в области Valueвектор значений, используя кнопки Inputs для х, а Targets соответственно для у как показано на рисунке 11.2. Ввод завершим нажатием кнопки Create (Создать).


Рис. 11.2.

Создадим новую нейронную сеть. Для этого в окне Create Network or Data выбираем закладку Network (Рисунок 11.3) затем в полях Input data, Target data выбираем значения х и у соответственно, остальные установки при создании сети оставим по умолчанию. Ввод завершим нажатием кнопки Create.


Рис. 11.3.

После этого в окне Network/Data Manager появится имя новой сети – network1 (Рисунок 11.4).


Рис. 11.4.

Сеть можно открыть с помощью кнопки Open, или активизировать с помощью мышки (Рисунок 11.5).


Рис. 11.5.

Применяя эти закладки можно установить имена последовательностей входа и цели, а также значения параметров процедуры обучения. После установления всех параметров нажатием кнопки Train начинаем обучение сети. Результаты обучения можно просмотреть в окне, которое появляется после окончания операции (Рисунок 11.6).


Рис. 11.6.

Результаты обучения можно просмотреть в графическом виде для этого следует активировать кнопку Performance ( Рисунок 11.7).

Сплошной линией выделены изменения ошибки сети в процессе обучения.


Рис. 11.7.

Следует отметить, что в данном случае точность аппроксимации заданной функции получилась достаточно высокая – максимальная абсолютная погрешность составляет 0,0366, относительная 3,66% в чем можно убедиться, просмотрев значения ошибок в окне Data: network1_errors (Рисунок 11.8).


Рис. 11.8.

Теперь можно построить НС в среде Simulink и отобразить ее схему (Рисунок 11.9). В ведем в командное окно функцию gensim (network1).


Рис. 11.9.

Эта схема является в полной мере функциональной и может быть применена для моделирования нейронной сети.

Рассмотрим пример прогнозирования данной функции. Следует отметить что программа пишется в командном окне.

x=0:0.25:5;
% Задание диапазона времени от 0 до 5 секунд
y=sin(x); %предсказываемый сигнал
>> Q=length(y); %Определение количества точек вектора х
>> P=zeros(5,Q); %Создание нулевой матрицы Р
>> %Создание входных векторов в виде строк матрицы Р
>> P(1,2:Q)=y(1,1:(Q-1));
>> P(2,3:Q)=y(1,1:(Q-2);
>> P(2,3:Q)=y(1,1:(Q-2));
>> P(3,4:Q)=y(1,1:(Q-3));
>> P(4,5:Q)=y(1,1:(Q-4));
>> P(5,6:Q)=y(1,1:(Q-5));
>> s=newlind(P,y); %Создание новой НС с именем s
>> z=sim(s,P); %Расчет прогнозируемых значений
>> %Создание графиков исходного сигнала и прогноза
>> plot(x,z,x,y,'*')
>> ylabel('Исходный и прогнозируемые сигналы')
>> xlabel('Время')
 

В данном случае сеть создавалась с помощью функции newlind, при которой не требуется дополнительного обучения. Судя по графику результата, приведенному на рисунке 11.10, точность прогноза с использованием линейной нейронной сети можно считать хорошей. На рисунке исходный сигнал представлен сплошной линией, а прогнозируемые значения крестиком.


Рис. 11.10.

< Лекция 5 || Самостоятельная работа 6 || Лекция 6 >