русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Краткие теоретические сведения.


Дата добавления: 2015-06-12; просмотров: 722; Нарушение авторских прав


Математическое представление модели одиночного нейрона с R входами показано на рис. 11.

 

 

 

Рисунок 11 - Математический нейрон

 

Вектор-столбец P=[p(1); p(2); … p(R)] представляет собой входы нейрона, b – смещение (базу), вектор-строка W=[w(1,1); w(1,2); … w(1,R)] – весовые коэффициенты, так что на входе нейрона формируется величина a=F(W·p+b). В качестве функции преобразования F в модели нейрона можно использовать любую дифференцируемую функцию. Наиболее часто используемые функции преобразования приведены в таблице 5. Нейронная сеть может содержать S нейронов, непосредственно связанных с входами (первый слой нейронов), один или несколько скрытых слоев и слой нейронов, непосредственно связанных с выходами нейросети. На рисунке 12 показана структура нейросети, в которой имеется два слоя нейронов. В технической литературе такую сеть именуют трехслойным персептроном (чувствительные элементы, формирующие входы Р, образуют еще один слой).

Представленная на рис. 12 нейросеть содержит S1 нейронов в первом слое и S2 нейронов во втором слое. Как правило, функции преобразования у нейронов первого слоя нелинейные, и выходы таких нейронов ограничены по величине, а в выходном слое ставят линейные нейроны, позволяющие формировать любые значения величин на выходе нейросети.

 


Рисунок 12 – Структура трехслойного персептрона

 

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

a) инициализация нейросети;

b) тренировка нейросети;

c) моделирование нейросети.

В первой части лабораторной работы необходимо изучить средства Matlab, чтобы реализовать эту последовательность.

 

Таблица 5. Часто используемые функции преобразований.

 

Обозначение График Функции и ее производная Matlab- функция
  Log-sigmoid     logsig
  Tangens-sigmoid   tansig
  Lineare       purelin

 



а). Инициализация нейросети в Matlab осуществляется функцией initff, общий формат которой следующий:

[w1, b1, w2, b2, …] = initff(P,S1,‘F1’,…Sn,‘Fn’)

где Р – вектор входной последовательности сигналов;

Si – количество нейронов в i-м слое;

Fi – функция преобразования у нейронов i-го слоя (logsig, tansig, purelin);

wi – матрица весовых коэффициентов нейронов i-го слоя;

bi – вектор-столбец смещения (базы) нейронов i-го слоя.

Вместо Sn – количество нейронов в выходном слое может быть использован вектор выходной последовательности нейросети Т; в этом случае формат команды будет следующим:

[w1, b1, w2, b2, …] = initff(P,S1,‘F1’,…Т,‘Fn’)

б). Тренировка нейросети осуществляется функциями trainbp, trainbpx, trainlm,наиболее быстро работающей из которых является trainlm, формат которой приведен ниже:

[w1, b1, w2, b2, … TE, TR] = trainlm(w1, b1, F1, w2, b2, F2, … P, T, TP)

где Р – вектор входной последовательности сигналов;

Fi – функция преобразования у нейронов i-го слоя (logsig, tansig, purelin);

wi – матрица весовых коэффициентов нейронов i-го слоя;

bi – вектор-столбец смещения (базы) нейронов i-го слоя.

T – вектор выходной последовательности нейросети;

TР – вектор строка параметров тренировки:

ТР(1) – число итераций между выводимыми на экран; по умолчанию 25.

ТР(2) – максимальное количество итераций; по умолчанию 1000.

ТР(3) – желаемая сумма квадратов ошибки между выводом сети и

вектором цели; по умолчанию 0,02.

ТР(4) – минимальное значение градиента; по умолчанию 0,0001.

ТР(5) – начальное значение параметра тренировки MU;

по умолчанию 0,001.

ТР(6) – коэффициент увеличения MU; по умолчанию 10.

ТР(7) – коэффициент уменьшения MU; по умолчанию 0,1.

ТР(8) – максимальное значение MU; по умолчанию 1е 10.

При тренировке сети, как правило, приходится задавать только первые три значения вектора ТР, а остальные значения устанавливаются по умолчанию.

в). Моделирование нейросети проводится на проверочной последовательности входных сигналов, для которых известна выходная последовательность сети Т, с целью проверки соответствия выхода сети вектору цели. Этот шаг выполняется функцией simuff, общий формат которой приведен ниже:

[A1, A2, …] = simuff(P,w1,b1,‘F1’,…wn,bn,‘Fn’)

где A1, A2 – вектора выходных последовательностей нейронных слоев.

Примерполучения модели объекта в виде нейрональной сети.

Пусть объект описывается нелинейными дифференциальными уравнениями следующего вида:

 

 

В данном случае вообще-то неважно, как представлен объект. Важно, что у него есть вход u и выход y, и они могут быть как-то измерены и записаны. Входной сигнал u сформируем следующим образом:

>> T=0:.1:80; U=prs(length(T),.1,.98);

Simulink модель объекта представлена на рис. 13.

В результате моделирования получаем запись выхода объекта у. Поскольку объект описывается дифференциальными уравнениями третьего порядка, его нейрональную модель будем отыскивать в виде y(k)=f(y(k-1), y(k-2), u(k), u(k-1)). Другими словами, входами нейросети должны быть y(k-1), y(k-2), u(k), u(k-1), а ее входом – y(k).

 

Рисунок 13-Модель нелинейной системы

 

 

% формируем вектор входной последовательности Р

>> u1=u;

>> u2=[0;u(1:length(u)-1)];

>> f1=[0;y(1:length(y)-1)];

>> f2=[0;0;y(1:length(y)-2)];

>> P=[u1’;u2’;f1’;f2’];

% формируем вектор выходной последовательности Т

>> T=y’;

% Инициализация нейросети

>> [w1,b1,w2,b2] = initff(P,6,‘tansig’,1,‘purelin’);

% Задаем параметры тренировки

>> tp=[10 300 1e-6];

% Тренируем сеть…

>> [w1,b1,w2,b2] = trainlm(w1,b1,‘tansig’,w2,b2,‘purelin’,P,T,tp);

% После тренировки осуществляется контроль на тренировочных данных

>> ynn = simuff(P,w1,b1,‘tansig’,w2,b2,‘purelin’);

>> plot(t,ynn,’r’,t,y,’k’);

% … и обязательно проведение контроля на проверочных данных

% Для этого сформируем новую входную последовательность, промоделируем

% систему с целью поучения выходных данных, и проверим, что выдаст нейросеть.

>> T=0:.1:80; U=prs(length(T),.1,.98);

% …и моделируем объект. После чего –

>> u1=u;

>> u2=[0;u(1:length(u)-1)];

>> f1=[0;y(1:length(y)-1)];

>> f2=[0;0;y(1:length(y)-2)];

>> P=[u1’;u2’;f1’;f2’];

>> ynn = simuff(P,w1,b1,‘tansig’,w2,b2,‘purelin’);

>> plot(t,ynn,’r’,t,y,’k’)

 

На рисунке 14 представлены графики отклика объекта и нейросети на одну и ту же выходную последовательность u(t).

 

 


Рисунок 14 - Отклик нейросети и объекта управления на заданное управление u(t)

 

Инверсивная модель объекта. С помощью нейросети удается получить инверсную модель объекта, т.е. нейросеть, выходом которой является управляющее воздействие u(k),необходимое для получения наперед заданного значения регулируемой величины y(k+1):

u(k)=g(y(k+1), y(k), y(k-1), …, y(k-n+1), u(k-1), …, u(k-m)).

При тренировке нейросети и использовании инверсной модели объекта как регулятора в качестве y(k+1) принимают задающее воздействие r(k+1) как показано на рис. 15.

 

Задание на лабораторную работу. Для одного из объектов управления, заданных нижеприведенными уравнениями, построить прямую и инверсную модели на основе нейросетей. Проверить качество регулирования объекта для случая использования инверсной модели как регулятора.

 

 

 

 

Для моделирования объекта используйте Simulink-модель, причем решение уравнений необходимо проводить с фиксированным шагом, равным периоду дискретности Т0 = 0.1…0.4с.

 
 

 


Рисунок 15 - Инверсная модель в качестве регулятора

 



<== предыдущая лекция | следующая лекция ==>
Задание на проведение лабораторной работы. | Задание.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.096 сек.