Искусственные нейронные сети




Скачать 1.3 Mb.
страница 17/17
Дата 27.09.2016
Размер 1.3 Mb.
1   ...   9   10   11   12   13   14   15   16   17

Лабораторная работа № 15

Исследование сетей Хопфилда


Цель работы: изучение архитектуры рекуррентных нейронных сетей Хопфилда и специальных функций для их создания, взвешивания входов, накопления и активизации; ознакомление с демонстрационными примерами и их скриптами, а также приобретение навыков построения таких сетей для решения задач распознавания образов и создания ассоциативной памяти.

Теоретические сведения

Сеть Хопфилда относится к классу рекуррентных нейронных
сетей. Она имеет один нейронный слой с функциями взвешивания
dotprod, накопления netsum и линейной ограниченной функцией активизации satlins. Слой охвачен динамической обратной связью с весами LW{1,1} и имеет смещения.

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

Функция для создания сети Хопфилда имеет вид:

net=newhop(T),

где Т – массив размера R*Q,объединяющий Q целевых векторов со значениями +1 или -1 для элементов;



R – число элементов вектора входа.

После того как начальные условия заданы в виде массива T, определяющего ряд целевых вершин замкнутого гиперкуба, сеть для каждой вершины генерирует выход, который по обратной связи подаётся на вход. Этот процесс при создании сети повторяется много раз, пока её выход не установится в положение равновесия для каждой из целевых вершин. При подаче затем произвольного входного вектора сеть Хопфилда переходит в результате рекурсивного процесса к одной из точек равновесия, наиболее близкой к входному сигналу.

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

К



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

Практические задания



Задание 1. Создать сеть Хопфилда с двумя устойчивыми точками в трёхмерном пространстве, выполнив следующие команды:

T =[-1 -1 1 ; 1 -1 1] ; %целевые вершины;

net =newhop(T); %создание сети;

net, gensim(net) %параметры и структура сети;

Ai = T ; %начальные условия для линий задержки;

Y = sim(net,2,[], Ai); %сеть устойчива;

Ai ={[-0.9 ; -0.8 ; 0.7]};

Y=sim(net,{1 5},{}, Ai); %сеть обеспечила переход

% к устойчивому состоянию

% [-1 -1 1]′.

Задание 2. Создать сеть Хопфилда с четырьмя устойчивыми точками в двухмерном пространстве, выполнив следующие команды:

T = [1 -1; -1 1; 1 1; -1 -1] ′

plot(T(1, : ),T(2, : ), ′*r′) %точки равновесия;

axis([-1.1 1.1 -1.1 1.1]);

title(′Точки равновесия проектируемой сети′);

xlabel(′a(1)′), ylabel(′a(2)′)

net =newhop(T);

W=net.LW{1,1}

b=net.b{1,1}

Ai = T;

Y=sim(net,4,[],Ai)

plot(T(1, : ),T(2, : ), ′*r′), hold on

axis([-1.1 1.1 -1.1 1.1])

xlabel(‘a(1)’), ylabel(′a(2)′)

new=newhop(T);

[Y,Pf,Af]=sim(net,4,[],T);

for i=1:25

a={rands(2,1)};

[Y,Pf,Af]=sim(net,{1,20},{},a);

record=[cell2mat(a),cell2mat(Y)]

start=cell2mat(a);

plot(start(1.1), start(2.1),′kx′.record(1,:),record(2,:))

end

Лабораторная работа № 16


Применение нейронных сетей
для проектирования систем управления
динамическими процессами

Цель работы: овладение методами решения задач идентификации, проектирования и моделирования систем управления динамическими процессами и способами их применения на практике.

Теоретические сведения

Применение нейронных сетей для решения задач управления динамическими процессами позволяет выделить два этапа проектирования систем управления такими процессами:


  1. Этап идентификации динамического процесса, для которого проектируется система управления.

  2. Этап синтеза закона управления и его реализация с помощью нейронной сети.

На этапе идентификации разрабатывается модель управляемого процесса в виде нейронной сети, которая на этапе синтеза используется для построения регулятора.

Динамические модели систем управления с нейросетевыми регуляторами размещены в разделе Control Systems библиотеки блоков для моделирования нейронных сетей Neural Network Blockset, доступ к которым обеспечивается браузером Library Browser пакета Simulink или командой neural. В этой библиотеке имеются также следующие разделы:



Net Input Function – раздел блоков функций накопления: netprod и netsum;

Transfer Function – раздел блоков передаточных функций(функций активации): hardlim, hardlims, purelin, satlin, satlins, poslin, logsig, transig, radbas, tribas, softmax и compet;

Weight function – раздел блоков функций взвешивания: dotprod, normprod, dist и negdist.

В разделе блоков управляющих систем Control Systems имеется три вида нейронных регуляторов:



Neural Net Predictive Controller – регулятор с предсказанием будущих реакций процесса на случайные сигналы управления. Алгоритм оптимизации вычисляет управляющие сигналы, которые минимизируют разность между желаемыми и действительными изменениями сигнала на выходе модели и таким образом оптимизируют управляемый процесс. Построение модели управляемого процесса выполняется автономно с использованием нейронной сети, которая обучается в групповом режиме с использованием одного из алгоритмов обучения. Реализация такого регулятора требует значительного объема вычислений, поскольку расчеты по оптимизации выполняются на каждом такте управления.

Narmal2(Nonlinear Autoregressive Moving Average) – регулятор на основе модели авторегрессии со скользящим средним. Данный регулятор представляет собой модифицированную нейросетевую модель управляемого процесса, полученную на этапе автономной идентификации. Вычисления в реальном времени связаны только с реализацией нейронной сети.

Model Reference Controller – регулятор на основе эталонной модели. Такой регулятор требует обучения нейронной сети управляемого процесса и нейронной сети регулятора. При этом обучение регулятора оказывается достаточно сложным, поскольку обучение основано на динамическом варианте метода обратного распространения ошибки, так как нейронная сеть использует линии задержки. Регуляторы на основе эталонной модели применимы к различным классам управляемых процессов.

Для каждой из трёх архитектур регуляторов используется одна и та же процедура идентификации управляемого процесса. Нейронная модель во всех случаях представляет собой двухслойную сеть с прямой передачей сигнала и с линиями задержки на каждом слое. Входной, или скрытый (hiden) слой может иметь произвольное число нейронов. Выходной слой имеет только один нейрон. Для входного слоя функции взвешивания, накопления и активизации являются соответственно dotprod, netsum и logsig. Выходной слой имеет такие же функции взвешивания и накопления, а функцией активизации для него является линейная функция purelin. Известно, что сети с такой архитектурой могут воспроизводить весьма сложные нелинейные зависимости между входом и выходом сети.

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

Диалоговая панель для идентификации управляемого процесса Plant Identification входит в состав всех трёх регуляторов раздела Control Systems библиотеки нейронных блоков системы Simulink, является универсальным средством и может быть использована для построения нейросетевых моделей любых динамических объектов, которые могут быть представлены блоками этой системы.

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

Набор управляющих элементов для задания архитектурных параметров нейронной сети следующий:



  1. Size of the Hiden Layer – количество нейронов на входном или скрытом слое;

  2. No. Delayed Plant Inputs – число линий задержки для входного слоя;

  3. No. Delayed Plant Outputs – число линий задержки для выходного слоя;

  4. Samling Interval – интервал квантования или шаг дискретности, в секундах, между двумя последовательными моментами отсчёта данных;

  5. Notmalize Training Data – переключатель нормирования для преобразования обучающих данных к диапазону [0 1].

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

  1. Training Samples – число точек отсчёта для получения обучающей последовательности в виде пар значений вход-выход для управляемого процесса, определяемого моделью Simulink;

  2. Maximum Plant Input – максимальное значение входного сигнала;

  3. Minimum Plant Input – минимальное значение входного сигнала;

  4. Maximum Interval Value (sec) – максимальный интервал идентификации, в секундах;

  5. Minimum Interval Value (sec) – минимальный интервал идентификации, в секундах;

  6. Limit Output Data – переключатель для ограничения значений выходного сигнала;

  7. Maximum Plant Output – максимальное значение выходного сигнала, задаваемое при включённом переключателе Limit Output Data;

  8. Minimum Plant Output – максимальное значение выходного сигнала, задаваемое при включённом переключателе Limit Output Data;

  9. Simulink Plant Model – для задания модели управляемого процесса, реализованной с помощью блоков Simulink, имеющий порты входа и выхода и сохранённой в файле *.mdl; выбор модели производится с помощью кнопки Browse; имя модели отображается в специальном окне.

Параметры обучения задаются следующим образом:

  1. Training Epochs – количество циклов обучения;

  2. Training Function – для задания обучающей функции;

  3. Use Current Weights – переключатель для использования текущих весов нейронной сети;

  4. Use Validation Data – переключатель для использования контрольного множества в объёме 25 % от обучающего множества;

  5. Use Testing Data – переключатель для использования тестового множества в объёме 25% от обучающего множества.

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

  1. Задать архитектуру нейронной сети, которая будет моделью управляемого процесса.

  2. Задать параметры обучения.

  3. Выбрать модель Simulink для управляемого процесса.

  4. Сгенерировать обучающую последовательность заданного объёма, запустив модель Simulink с помощью кнопки Generate Training Data. Генерация обучающей последовательности производится с помощью воздействия ряда ступенчатых сигналов на модель управляемого процесса и снятия значений на выходе и входе модели через каждый шаг квантования. Графики входного и выходного сигнала отображаются в окне Plant Input-Output Data.

  5. По завершении генерации обучающей последовательности необходимо либо принять эти данные, нажав на кнопку Accept Data, и тогда они будут использованы для обучения нейронной сети, либо отвергнуть их, нажав кнопку Reject Data, и повторить процесс идентификации управляемого процесса, представленного моделью Simulink.

  6. После получения обучающей последовательности необходимо установить требуемые параметры обучения и с помощью кнопки Train Network запустить процесс обучения нейронной сети.

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

  8. Если результаты обучения приемлемы, то надо сохранить параметры нейросетевой модели управляемого процесса и приступить к синтезу регулятора того или иного класса, нажав кнопки Apply
    и Ok.

  9. Если результаты обучения неприемлемы, то следует нажать кнопку Cаncel и повторить процесс идентификации сначала, изменяя архитектуру сети и параметры обучающей последовательности.

  10. Обучающую последовательность можно импортировать из рабочей области или из файла, нажав на кнопку Import Data. Если необходимо обучающую последовательность сохранить в рабочей области или в файле для подбора параметров архитектуры нейронной сети, то следует после получения данных нажать на кнопку
    Export Data.

  11. Удалить только что сгенерированные данные при необходимости можно с помощью кнопки Erase Generated Data.

Таким образом, диалоговая панель Plant Identification позволяет идентифицировать управляемый процесс, представленный в виде имитационной модели Simulink, построить двухслойную нейронную сеть прямой передачи сигнала с необходимым числом нейронов и линий задержки, обучить эту сеть для получения нейронной модели управляемого процесса, оценить качество обучения и работу нейронной сети. Для регулятора на основе авторегрессии со скользящим средним, этап его синтеза отсутствует, так как такой регулятор представляет собой полученную нейросетевую модель управляемого процесса с предсказанием. Для регуляторов на основе эталонной модели с предсказанием, этап синтеза необходим.

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



где константы N1, N2, Nu задают пределы, внутри которых вычисляются ошибка слежения и мощность управляющего сигнала;

U′ (t) – пробный управляющий сигнал;

Yr(t) – желаемый управляющий сигнал;

Ym(t) – истинная реакция модели управляемого сигнала;

ρ – коэффициент, определяющий вклад, вносимый мощностью управления в критерий качества.

Структурная схема регулятора с предсказанием представлена на рисунке.

Б
лок оптимизации определяет значения U′, которые минимизируют критерий качества управления, а соответствующий сигнал управляет процессом.

Синтез регулятора с предсказанием осуществляется с помощью диалоговой панели Neural Network Predictive Control, на которой имеются следующие управляющие элементы:

Cost Horizon (N2) – верхний предел суммирования в показателе качества, при этом нижний предел N1 всегда равен единице;

Control Horizon (Nu) – верхний предел при оценке мощности управления;

Control Weightin Factor (ρ) – коэффициент веса для составляющей мощности управления;

Search Parameter (α) – параметр одномерного поиска, задающий порог уменьшения показателя качества;

Minimization Routine – параметр для выбора процедуры одномерного поиска;

Iterations Per Sample Time – число итераций на один такт дискретности.

После установки параметров оптимизации необходимо их ввести в регулятор с помощью кнопок Apply и OK и произвести моделирование полученной системы.

Для регулятора на основе эталонной модели необходимо построить две нейронные сети: сеть для модели объекта управления и сеть для самого регулятора. Нейронная сеть модели объекта управления строится точно так же, как и для регуляторов рассмотренного вида. Для этих целей надо на основной панели Model Reference Control, которая вызывается двойным щелчком левой кнопки мыши по блоку регулятора, воспользоваться кнопкой Plant Identification. Щелчок по этой кнопке вызывает диалоговую панель Plant Identification, которая имеет такой же набор управляющих элементов, как и для других регуляторов. С помощью этой панели надо задать архитектуру нейронной сети для управляемого объекта, задать характеристики обучающей последовательности и параметры обучения, произвести идентификацию управляемого объекта и обучить нейронную сеть. С помощью кнопок Apply и OK завершить построение модели объекта и возвратиться к основной диалоговой панели Model Reference
Control для синтеза нейронной модели регулятора.

Архитектура нейронной модели регулятора аналогична архитектуре нейронной модели объекта, поэтому управляющие элементы на панели Model Reference Control такие же, что и на панели Plant Identification, отсутствуют управляющие элементы для задания характеристик выходного сигнала, так как он непосредственно поступает на вход модели объекта, а обучающая последовательность разбивается на сегменты, для чего имеется специальное поле Controller Training Segments.

Для синтеза регулятора необходимо определить все требуемые параметры на панели, сгенерировать обучающие последовательности, нажав на кнопку Training Data и обучить нейронную сеть с помощью кнопки Train Controller, используя текущие веса и режим обучения с накоплением (если необходимо). Затем нажать на кнопку Apply для завершения процесса синтеза регулятора.

По окончании построения регулятора необходимо нажать но кнопку OK, вернуться в окно Simulink и выполнить моделирование работы системы нейронного регулирования для оценки характеристик регулятора.

Практические задания

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

где h уровень жидкости в резервуаре, который не регулируется;



w1(t) – скорость потока продукта с концентрацией Cb1;

w2(t) скорость потока продукта с концентрацией Cb2;

Cb концентрация продукта на выходе объекта;

K1 и K2 константы скорости расхода продукта.

Цель регулирования состоит в поддержании концентрации продукта путем регулирования скорости потока w2(t).

Для синтеза модели процесса использовать следующие значения его параметров:

Cb1 = 29,4; Cb2 = 29,4; K1 = K2 = 1; w1(t) = 1; w2(t) = 0,1.

Основные этапы синтеза таковы:


  1. Построение модели Simulink для управляемого процесса и её исследование.

  2. Идентификация процесса и синтез его нейронной модели.

  3. Задание параметров оптимизации и синтез регулятора.

  4. Моделирование регулируемой системы и анализ качества регулирования.

Задание 2. Создать нейронную модель регулятора с использованием нелинейной авторегрессии со скользящим средним. Управляемым объектом является магнит, который движется в электромагнитном поле электромагнита. Уравнение движения этой системы имеет вид

,

где y(t) – расстояние движущегося магнита от электромагнита;



g ускорение силы тяжести;

α постоянная магнитного поля, зависящая от числа витков обмотки и намагниченности электромагнита;



i(t) управляющий ток электромагнита:

М – масса магнита;

β – коэффициент вязкого трения.

Задание 3. Создать нейронную модель регулятора на основе эталонной модели. Регулируемым объектом является звено робота, описываемое дифференциальным уравнением

,

где φ угол поворота звена;



u момент, развиваемый двигателем постоянного тока.

Цель обучения регулятора состоит в том, чтобы положение звена отслеживало выход эталонной модели



,

где yr выход эталонной модели;



r задающий сигнал на выходе модели.

Основные этапы синтеза нейронного регулятора таковы:



    1. Построение модели Simulink для управляемого объекта и эталонной моделей и их исследование.

    2. Идентификация объекта и синтез его нейронной модели.

    3. Идентификация эталонной модели и синтез регулятора.

    4. Моделирование регулируемой системы и анализ качества регулирования.

Cписок литературы

  1. Дьяконов, В. Matlab 6: учебный курс [Текст] / В. Дьяконов. – СПб.: Питер, 2001. – 592 с.

  2. Медведев, В. Г. Нейронные Сети Matlab 6 / В. Г. Медведев;
    под общ. ред. к.т.н. В. Г. Потемкина. – М.: ДИАЛОГ-МИФИ, 2002. – 496 с. – (Пакеты прикладных программ; Кн.4).

  3. Галушкин, А. И. Теория нейронных сетей [Текст] / А. И. Га­луш­кин. – М.: ИПРЖР, 2000. – 416 с.

  4. Галушкин, А. И. Нейрокомпьютеры [Текст]. – М.: ИПРЖР,
    2000. – 532 с.

  5. Нейрокомпьютеры и интеллектуальные работы [Текст] / под ред. В. Г. Неелова. – Киев: Пресса Украины, 1999. – 150 с.

  6. Дунин-Барковский, В. П. Информационные процессы в нейронных структурах [Текст] / В. П. Дунин-Барковский. – М.: Наука, 1978.

  7. Сивохин, А. В. Искусственные нейронные сети [Текст] / А. В. Си­вохин; учеб. пособие / под ред. профессора Б. Г. Хмелев-
    ского. – Пенза: Изд-во Пенз. гос. ун-та, 2002. – 70 с.

  8. Щербаков, М. А. Искусственные нейронные сети: Конспект лекций [Текст] / М. А. Щербаков. – Пенза: Изд-во Пенз. гос. тех. ун-та, 1996. – 44 с.

  9. Осовский, С. Нейронные сети для обработки информации [Текст] / С. Осовский; пер. с польского И. Д. Рудинского. – М.: Финансы и статистика, 2002. – 344 с.

  10. Дьяконов, В. П. Matlab 6/6.1/6.5 + Simulink 4/5. Основы применения. [Текст]. Полное руководство пользователя / В. П. Дьяконов. – М.: СОЛОН-Пресс, 2002. – 768 с.

СОДЕРЖАНИЕ

Введение 3

Лабораторная работа № 1. Основы программирования в системе MATLAB 5

Лабораторная работа № 2. Массивы, структуры, ячейки
и классы системы MATLAB
15

Лабораторная работа №3. Модели искусственного нейрона 28

Лабораторная работа №4. Искусственные нейронные сети 41

Лабораторная работа № 5. Методы и алгоритмы обучения искусственных нейронных сетей 49

Лабораторная работа № 6. Исследование персептронных сетей 73

Лабораторная работа № 7. Исследование линейных нейронных сетей 78

Лабораторная работа № 8. Исследование радиальных базисных сетей
общего вида
87

Лабораторная работа № 9. Исследование радиальных базисных сетей
типа GRNN
93

Лабораторная работа № 10. Исследование радиальных базисных сетей
типа PNN
96

Лабораторная работа № 11. Исследование самоорганизующихся
слоев Кохонена
99

Лабораторная работа № 12. Исследование самоорганизующихся
карт Кохонена
104

Лабораторная работа № 13. Исследование самоорганизующихся LVQ-сетей 112

Лабораторная работа № 14. Исследование сетей Элмана 117

Лабораторная работа № 15. Исследование сетей Хопфилда 122

Лабораторная работа № 16. Применение нейронных сетей для
проектирования систем управления динамическими процессами 125

Список литературы 135



1   ...   9   10   11   12   13   14   15   16   17


База данных защищена авторским правом ©infoeto.ru 2022
обратиться к администрации
Как написать курсовую работу | Как написать хороший реферат
    Главная страница