Разработка искусственной нейронной сети
Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 17.09.2013 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Постановка задачи
Целью данной работы является разработка искусственной нейронной сети для адаптивной настройки параметров регулятора, управляющего объектом с переменными параметрами.
Динамический объект задан в виде:
(1)
где - параметры объекта, - управление.
Требуется построить нейронную сеть, изменяющую параметры регулятора , где - параметры регулятора, вырабатывающую управление, поступающее на динамический объект (1) и доставляющую минимум заданному функционалу качества .
Структуру построенной нейронной сети необходимо оптимизировать: для заданного объекта и регулятора найти оптимальное число слоев нейронов в каждом слое и оптимальную функцию активации для каждого слоя.
Нейронная сеть должна работать в двух режимах: режим обучения и режим функционирования. Для режима обучения используются данные экспертной настройки регулятора. В режиме функционирования нейронная сеть должна обеспечивать требуемое качество системы, путем изменения параметров регулятора, в зависимости от параметров объекта.
2. Математическая модель нейронной сети
В 1943 году американским ученым Уорреном Маккалоком (W. McCulloch) и его учеником Уолтером Питтсом (W. Pitts) была создана первая математическая модель нейрона (базового элемента мозга). Также они сформулировали основные положения теории деятельности головного мозга.
Ими было сделано следующее:
1. разработана модель нейрона как простейшего процессорного элемента, выполнявшего вычисление переходной функции от скалярного произведения вектора входных сигналов и вектора весовых коэффициентов;
2. предложена конструкция сети таких элементов для выполнения логических и арифметических операций;
3. сделано основополагающее предположение о том, что такая сеть способна обучаться, распознавать образы, обобщать полученную информацию.
За последнее время развитие теории нейронных сетей ушло далеко вперед, но по-прежнему многие утверждения У. Маккаллока остаются актуальными. В частности, при большом разнообразии моделей нейронов принцип их действия, заложенный У. Маккаллоком и У. Питтсом, остается неизменным. Недостатком модели У. Маккаллока является то, что эта модель использует пороговый вид активационной функции нейрона, который не дает нейронной сети достаточную гибкость при обучении и настройке для решения поставленной задачи.
Дальнейшее развитие теория нейронных сетей получила в работах американского нейрофизиолога Френсиса Розенблатта (Rosenblatt F.).
В 1958 году Ф. Розенблат создал собственную модель нейронной сети, путем введения в модель У. Маккаллока и У. Питтса способность связей к модификации, что сделало ее обучаемой. Эта модель была названа персептроном. [2]
Первоначально персептрон представлял собой однослойную структуру с жесткой пороговой функцией процессорного элемента и бинарными или многозначными входами, в дальнейшем эта модель была значительно усовершенствована.
В 1982 году американский биофизик Джон Хопфилд (J. Hopfield) предложил свою модель нейронной сети. Сеть Хопфилда имеет обратные связи между слоями, что увеличивает ее обобщающие свойства, такие сети нашли широкое применение при распознавании образов. В последующие несколько лет было найдено множество эффективных алгоритмов и архитектур нейронных сетей, таких как сеть обратного распространения, двунаправленная ассоциативная память, самоорганизующиеся карты и др.
Построение любой нейронной сети предполагает большой объем вычислений (обучение сети обычно является итерационным процессом). Поэтому только с ростом вычислительной мощности компьютеров появилась возможность практического применения нейронных сетей, что дало мощный толчок к широкому распространению программ, использующих принципы нейросетевой обработки данных.
2.1 Искусственный нейрон
Искусственный нейрон (базовый процессорный элемент) - является основой любой искусственной нейронной сети.
Рис. 1. Схематическое изображение искусственного нейрона
Нейроны представляют собой относительно простые, однотипные элементы, имитирующие работу нейронов мозга. Каждый нейрон характеризуется своим текущим состоянием (возбужден или заторможен) по аналогии с нервными клетками головного мозга.
Искусственный нейрон, также как и его естественный прототип, имеет группу синапсов (входов), которые соединены с выходами других нейронов, а также аксон - выходную связь данного нейрона - откуда сигнал возбуждения или торможения поступает на синапсы других нейронов.
Общий вид нейрона показан на рис. 1.
Искусственный нейрон состоит из двух элементов - взвешенного сумматора и нелинейного преобразователя.
На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синаптической силе, и все произведения суммируются, определяя уровень активации нейрона.
Взвешенный сумматор производит суммирование по формуле:
где, - номер входа нейрона; - номер нейрона в слое; номер слоя
входные сигналы, совокупность всех входных сигналов нейрона, образующих вектор .
весовые коэффициенты, совокупность весовых коэффициентов, образующих вектор весов .
- вес, моделирующий пороговый уровень нейрона
взвешенная сумма входных сигналов, значение передается на нелинейный элемент.
где - вектор входных сигналов нейрона, подающийся на вход с весом ;
- вектор весов нейрона, включающий
Нелинейный элемент преобразует выход сумматора по формуле:
,
Где функция активации, которая подбирается спецификой решаемой задачи, удобством реализации нейронной сети и алгоритмом обучения.
Среди простейших типов искусственных нейронов наиболее известен «Adaline», созданный Б. Уидроу, для которого функция - линейная, а выход определяется соотношением:
где, - весовые коэффициенты, - входы
Рис. 2. Схематическое представление однослойной линейной искусственной нейронной сети
Простейшая однослойная линейная ИНС состоит из K нейронов типа «adaline» (рис. 2) и называется «madaline». Она имеет K выходов и входов и может быть записана в векторно-матричной форме так:
где - вектор выхода; вектор входа; с учетом входа инициализации , одинакового для всех адалин, вектор входа , матрица весовых коэффициентов; матрица, получаемая из матрицы удалением последнего столбца - вектора коэффициентов инициализирующих связей
В соответствии с формулой линейная многослойная сеть типа «madaline» осуществляет отображение в [3].
2.2 Активационная функция
Функция активации (активационная функция, функция возбуждения) - функция, вычисляющая выходной сигнал искусственного нейрона. В качестве аргумента принимает сигнал , получаемый на выходе сумматора ?.
Существует много разных активационных функций, но чаще всего используются следующие:
1. Пороговая функция или единичный скачок (рис. 3) - кусочно-линейная функция. Если входное значение меньше порогового, то значение функции активации равно минимально допустимому, иначе - максимально допустимому.
Рис. 3 График пороговой функции
Пороговая функция описывается так:
2. Линейный порог или гистерезис (рис. 4) - несложная кусочно-линейная функция, которая имеет два линейных участка, где функция активации тождественно равна минимально допустимому и максимально допустимому значению и есть участок, на котором функция строго монотонно возрастает.
Рис. 4. График функции линейного порога
3. Сигмоидальная функция (рис. 5) - монотонно возрастающая всюду дифференцируемая образная нелинейная функция с насыщением. Сигмоидальная функция, является самой распространенной функцией, используемой для создания нейронных сетей. Это быстро возрастающая функция, которая поддерживает баланс между линейным и нелинейным поведением. Часто под сигмоидальной функцией понимают логистическую функцию. Функцию можно описать следующим выражением:
Где, параметр наклона.
Изменяя этот параметр, можно построить функции с разной крутизной.
Рис. 5. График сигмоида
4. Гиперболический тангенс (рис. 6)
Данную функцию можно представить выражением:
Где, параметр, влияющий на наклон сигмоидальной функции
Рис. 6. График гиперболического тангенса
3. Архитектура искусственных нейронных сетей
По архитектуре связей ИНС могут быть сгруппированы в два класса (рис. 7): сети прямого распространения, и рекуррентные сети (с обратными связями).
Рис. 7. Классификация искусственных нейронных сетей
В сетях прямого распространения сигнал по сети проходит только в одном направлении: от входа к выходу.
Совокупность нейронов, объединенных в один слой, называют однослойной нейросетью. Объединение однослойных нейросетей в несколько слоев определяет многослойную нейросеть.
3.1 Однослойный персептрон
На вход поступает только двоичный сигнал, т.е. либо 0 либо 1. Элемент ? (сумматор) складывает входные сигналы, взвешенные относительно соответствующих синапсов нейрона. Если эта сумма больше заданного порогового значения, выход равен 1, если меньше - нулю. Т.к. выходной сигнал принимает значения «0» или «1», поэтому персептрон - это нейрон бинарного типа. При функционировании персептрона различают два режима его работы:
- режим обучения.
- режим функционирования.
Рис. 8. Структура однослойного персептрона
Модель персептрона, представленная на Рис. 8, состоит из одного слоя (т.е. количество слоев нейронов между входом и выходом равно единице) искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов.
3.2 Многослойный персептрон
Рис. 9. Структура многослойного персептрона
Многослойная сеть состоит из нейронов, которые расположены на разных уровнях. Помимо входного и выходного слоёв имеется как минимум ещё один слой - скрытый. При задании функции активации сигмоидального типа будем иметь многослойный персептрон (рис. 9).
В многослойном персептроне каждый нейрон на данном уровне иерархии принимает и обрабатывает сигналы от каждого нейрона более низкого уровня.
Скрытый слой нейронов позволяет сети обучаться решению сложных задач, последовательно извлекая наиболее важные признаки из входного слоя.
Многослойные персептроны оказались весьма эффективными для решения разнообразных задач управления.
3.3 Рекуррентные сети
Рис. 10. Структура сети Хопфилда
Нейронные сети, имеющие обратную связь, называются «рекуррентными сетями». Каждый шаг сети называется итерацией. Рекуррентная сеть может состоять из единственного слоя нейронов, каждый из которых направляет свой выходной сигнал на входы всех остальных нейронов слоя. Например, сеть Хопфилда, представленная на рис. 10 не имеет скрытых нейронов. Стоит отметить, что на рисунке видно, что отсутствуют обратные связи нейронов с самими собой.
На рисунке ниже (рис. 11) представлен другой класс рекуррентных сетей со скрытыми слоями нейронов. Здесь обратные связи исходят, как из выходных, так и из скрытых нейронов.
Рис. 11. Структура рекуррентной сети со скрытыми нейронами
Наличие обратных связей в сети, показанной на рис. 11, оказывает непосредственное влияние на производительность и способность сети к обучению. Более того, обратная связь подразумевает использование элементов единичной задержки (обозначены как z-1), что приводит к нелинейному динамическому поведению, если, конечно, в сети содержатся нелинейные нейроны.
4. Обучение нейронных сетей
Процесс обучения нейронных сетей представляет собой настройку архитектуры сети, а также ее весовых коэффициентов для эффективного решения поставленной задачи.
Сеть должна настроить веса по обучающим примерам. Именно эта особенность обучения на примерах и выделяет нейронные. Существует два класса обучения:
- детерминированный метод обучения.
- стохастический метод обучения.
Детерминированный метод
Параметры сети изменяются по шагам (итерациям), основываясь на текущих параметрах входов и желаемых выходов. Наиболее популярным примером детерминированного метода является алгоритм «обратного распространения ошибки»
Стохастический метод
Параметры сети изменяются случайным образом. Но сохраняются только те изменения, которые привели к улучшениям.
4.1 Обучение с учителем
Рассмотрим парадигмы обучения нейронных сетей. Начнем с парадигмы обучения с учителем. На рисунке 12 показана блочная диаграмма, иллюстрирующая эту форму обучения. Концептуально участие учителя можно рассматривать как наличие знаний об окружающей среде, представленных в виде пар вход-выход. При этом сама среда неизвестна обучаемой нейронной сети.
Рис. 12. Схема обучения сети с учителем
Теперь предположим, что учителю и обучаемой сети подается обучающий вектор из окружающей среды. На основе встроенных знаний учитель может сформировать и передать обучаемой нейронной сети желаемый отклик, соответствующий данному входному вектору. Этот желаемый результат представляет собой оптимальные действия, которые должна выполнить нейронная сеть. Параметры сети корректируются с учетом обучающего вектора и сигнала ошибки. Сигнал ошибки - это разность между желаемым сигналом и текущим откликом нейронной сети. Корректировка параметров выполняется пошагово с целью имитации нейронной сетью поведения учителя. Эта эмуляция в некотором статистическом смысле должна быть оптимальной. Таким образом, в процессе обучения знания учителя передаются в сеть в максимально полном объеме. После окончания обучения учителя можно отключить и позволить нейронной сети работать со средой самостоятельно. [4]
4.2 Обучение без учителя
Описанный выше процесс обучения происходит под управлением учителя. Альтернативная парадигма обучения без учителя самим названием подчеркивает отсутствие руководителя, контролирующего процесс настройки весовых коэффициентов. При использовании такого подхода не существует маркированных примеров, по которым проводится обучение сети. [4]
4.3 Правило коррекции по ошибке
Розенблатт в 1957 году разработал модель обучения, которая использовала алгоритм обучения с учителем. Впоследствии эта модель стала основой для более сложных алгоритмов обучения.
Алгоритм коррекции по ошибки состоит в следующем: имеется входной пример, для него задается желаемый выход и если текущий выход нейронной сети не соответствует желаемому, то весовые параметры корректируются. Это делается до тех пор, пока реакция не станет правильной. Разница коррекции вычисляется по формуле (желаемый-текущий выход).
Принцип состоит в постепенном уменьшении ошибки.
4.4 Метод Хэбба
Метод, который к слову, был разработан в 1949 году (один из самых старых обучающих правил), основывался на нейрофизических процессах, протекающих в мозге человека.
Хэбб предположил, что вес соединения между двумя нейронами усиливается, если оба эти нейрона возбуждены. Хэбб основывался на следующих нейрофизиологические наблюдениях: если связанные между собой нейроны активизируются одновременно и регулярно, то сила связи возрастает. Главная особенность этого правила такова, что изменение веса синаптической связи зависит только от активности нейронов, соединенных данной связью.
Этот алгоритм можно расписать так:
1. На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.
2. На входы сети подается входной образ и сигналы проходят по всем слоям согласно принципу сетей прямого распространения. Ддя каждого нейрона рассчитывается сумма его входов, к которой применяется активационная функция нейрона, в результате получается выход нейрона.
3. На основании полученных выходных значений нейронов по формуле
производится изменение весовых коэффициентов.
где - выходное значение нейрона слоя , -выходное значение нейрона слоя n. и - весовой коэффициент, - коэффициент скорости обучения.
4. Повтор шага (2), пока выходные значения сети не стабилизируются с заданной точностью.
4.5 Обучение методом соревнования
При соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Обучение таким методом позволяет объединять входные данные, т.е. одинаковые примеры группируются (объединяются) сетью в соответствии с корреляциями и представляются как один элемент. При данном обучении модифицируются веса только «победителя».
Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе к входному примеру.
4.6 Генетический алгоритм
Генетический алгоритм - самообучающийся алгоритм, который применяется в задачах оптимизации, и в основном там, где не всегда возможно сформулировать задачу в виде, пригодном для более быстрых алгоритмов локальной оптимизации (например, в оптимизации искусственных нейронных сетей). Сам алгоритм является итеративным и он основан на принципах генетических процессов биологических организмов (скрещивание). Путем перебора и отбора находится необходимая комбинация.
Основные принципы генетического алгоритма были сформулированы Голландом (Holland, 1975) [5]. Алгоритм моделирует те процессы в популяциях, которые являются существенными для развития. Генетический алгоритм работает с совокупностью «особей» - популяцией, каждая из которых представляет возможное решение данной проблемы. Каждая особь оценивается мерой ее «приспособленности» согласно тому, насколько «хорошо» соответствующее ей решение задачи. Воспроизводится вся новая популяция допустимых решений, выбирая лучших представителей предыдущего поколения, скрещивая их и получая множество новых особей. Это новое поколение содержит более высокое соотношение характеристик, которыми обладают хорошие члены предыдущего поколения. Таким образом, из поколения в поколение, хорошие характеристики распространяются по всей популяции. Скрещивание наиболее приспособленных особей приводит к тому, что исследуются наиболее перспективные участки пространства поиска. В конечном итоге, популяция будет сходиться к оптимальному решению задачи.
Алгоритм делится на три этапа:
- Скрещивание
- Селекция
- Формирования нового поколения
Если результат нас не устраивает, эти шаги повторяются до тех пор, пока результат нас не начнет удовлетворять или произойдет одно из ниже перечисленных условий:
- Количество поколений (циклов) достигнет заранее выбранного максимума.
- Исчерпано время на мутацию.
Создание новой популяции. На этом шаге создается начальная популяция, которая может оказаться не удовлетворяющей, но есть вероятность, что алгоритм сможет исправить эту проблему. Главное, чтобы они были приспособлены к размножению.
Размножение. Для получения потомка требуется два родителя. Потомок должен унаследовать у родителей их черты. При этом размножаются все, а не только выжившие.
Мутации. Мутации схожи с размножением, из мутантов выбирают некое количество особей и изменяют их в соответствии с заранее определенными операциями.
Отбор. Из популяции выбирается доля тех, кто пойдет дальше. Доля выживших после отбора определяется параметрами, а остальные особи должны погибнуть.
Рис. 28. Принцип работы генетического алгоритма
Генетический алгоритм [5] является достаточно мощным средством и может с успехом применяться для широкого класса прикладных задач, включая те, которые трудно, а иногда и вовсе невозможно, решить другими методам. Однако, генетический алгоритм, как и другие методы эволюционных вычислений, не гарантирует обнаружения глобального решения за полиномиальное время, не гарантирует и того, что глобальное решение будет найдено, но они хороши для поиска «достаточно хорошего» решения задачи «достаточно быстро». Главным же преимуществом генетического алгоритма является то, что они могут применяться даже на сложных задачах, там, где не существует никаких специальных методов.
4.7 Алгоритм обратного распространения ошибки
Рис. 13. Граф многослойного персептрона с двумя скрытыми слоями
На рисунке 13 представлена схема многослойного персептрона. Соответствующий граф передачи сигнала в процессе обучения по методу обратного распространения ошибки, иллюстрирующий как прямую, так и обратную фазу вычислений, представлен на рис. 14 для случая и . В верхней части графа передачи сигнала показан прямой проход, в нижней - обратный. Последний еще носит название графа чувствительности для вычисления локальных градиентов в алгоритме обратного распространения.
Последовательная корректировка весов является более предпочтительным режимом алгоритма обратного распространения для реализации в реальном времени. В этом режиме алгоритм циклически обрабатывает примеры из обучающего множества следующим образом.
Рис. 14. Граф передачи сигнала для процесса обучения по методу обратного распространения. Верхняя часть графа - прямой проход, нижняя - обратный проход
1. Инициализация. Предполагая отсутствие априорной информации, генерируем синаптические веса и пороговые значения с помощью равномерно распределенных чисел со средним значением 0. Дисперсия выбирается таким образом, чтобы стандартное отклонение индуцированного локального поля нейронов приходилось на линейную часть сигмоидальной функции активации (и не достигало области насыщения).
2. Предъявление примеров обучения. В сеть подаются образы из обучающего множества (эпохи). Для каждого образа последовательно выполняются прямой и обратный проходы, описанные далее в п. 3 и 4.
3. Прямой проход (forward computation). Пусть пример обучения представлен паро й , где - входной вектор, предъявляемый входному слою сенсорных узлов; - желаемый отклик, предоставляемый выходному слою нейронов для формирования сигнала ошибки. Вычисляем индуцированные локальные поля и функциональные сигналы сети, проходя по ней послойно в прямом направлении.
Индуцированное локальное поле нейрона слоя вычисляется по формуле
(2.1)
где - выходной (функциональный) сигнал нейрона , расположенного в предыдущем слое , на итерации n; - синаптический вес связи нейрона слоя с нейроном слоя . Для , а - порог, применяемый к нейрону j слоя l. Если используется сигмоидальная функция, то выходной сигнал нейрона j слоя l выражается следующим образом:
.
Если нейрон j находится в первом скрытом слое (т.е. ), то
,
где, - j-й элемент входного вектора x(n).Если нейрон j находится в выходном слое (т.е. , где -глубина сети), то
.
Вычисляем сигнал ошибки
(2.2)
Где j-й элемент вектора желаемого отклика .
Обратный проход. Вычисляем локальные градиенты узлов сети по следующей формуле:
(2.3)
для нейрона выходного слоя , для нейрона скрытого слоя ,
где штрих в функции обозначает дифференцирование по аргументу. Изменение синаптических весов слоя l сети выполняется в соответствии с обобщенным дельта-правилом
(2.4)
где -параметр скорости обучения; -постоянная момента.
4. Итерации. Последовательно выполняем прямой и обратный проходы (согласно пп. 3,4), предъявляя сети все примеры обучения из эпохи, пока не будет достигнут критерий останова.
Порядок представления примеров обучения может случайным образом меняться от эпохи к эпохе. Параметры момента и скорости обучения настраиваются (и обычно уменьшаются) по мере роста количества итераций.
Целью обучения является нахождение такого набора весовых коэффициентов сети, который обеспечивает решение данной конкретной задачи [4]. Рассмотрим обучение сети данным алгоритмом на примере трехслойной нейронной сети, представленной на рисунке 15:
Рис. 15. Схема многослойной нейронной сети
Для обучения нейронной сети мы должны подготовить обучающие примеры.
Имеются примеры, состоящие из входных сигналов ( и ) и желаемого результата .
В каждой итерации весовые коэффициенты нейронов подгоняются с использованием новых данных из обучающих примеров. Изменение весовых коэффициентов синаптической связи и составляет суть алгоритма.
Каждый шаг обучения начинается с воздействия входных сигналов из обучающих примеров. После этого можно определить значения выходных сигналов для всех нейронов в каждом слое сети. На рис. 16 показано направление сигнала в сети.
- вес связи между входом и нейрона во входном слое. - выход нейрона n.
Рис. 16. Распространение сигнала от входа к 1-му скрытому слою
- веса связей между выходом нейрона и входом нейрона в следующем слое.
Рис. 17. Распространение сигнала ко 2-му скрытому слою
На рисунке 17 показано как распространяется сигнал от первого слоя ко второму. В таком направлении вычисляются выходы всех нейронов, в том числе и выходного.
Далее идет проход сигнала через выходной слой:
Следующий этап алгоритма состоит в следующем: выходной сигнал сравнивается с желаемым выходом сети . - ошибка (разница) между сигналами и :
На рисунке 18 показано распределение ошибки по сети
Рис. 18. Распространение ошибки
Далее сигнал распространяется в обратном направлении на все нейроны, чьи выходные сигналы были входящими для последнего нейрона.
Рис. 19. Распространение ошибки от выходного слоя ко 2-му скрытому слою
Весовые коэффициенты равны тем же коэффициентам, что использовались во время вычисления выходного сигнала .
Изменяется направление потока данных (сигналы передаются от выхода к входу).
Процесс повторяется для всех слоёв сети. Если ошибка пришла от нескольких нейронов - она суммируются (рис. 20):
Рис. 20. Распространение ошибки в обратном направлении в 1-й скрытом слое
Когда вычисляется ошибка для каждого нейрона - можно скорректировать весовые коэффициенты каждого нейрона (Рис. 21).
Рис. 21. Корректировка весов в 1-ом слое
где, - производная от функции активации нейрона (того, чьи веса настраиваются), - коэффициент, влияющий на скорость обучения.
так же соответственно вычисляем и
На рис. 22 изображено, в каком направлении проходит коррекция весов в выходном слое.
Рис. 22. Корректировка весов в выходном слое
Существует несколько способов выбора параметра скорости обучения .
1. Начать процесс обучения с большого значения . Во время коррекции весов постепенно уменьшать этот параметр.
2. Начать процесс обучения с маленького значения. В процессе обучения увеличивать этот параметр, а затем вновь уменьшить уже на завершающей стадии обучения. Начало обучения с низким значением параметра позволяет определить знак весов w.
5. Применение нейронных сетей для синтеза регуляторов
Нейронные сети используются для структурного и параметрического синтеза регуляторов в двух случаях:
- для построения самого регулятора.
- для построения блока настройки коэффициентов регулятора.
Одной из особенностей нейронной сети является способность к обучению, эта способность позволяет передавать нейронной сети опыт эксперта.
Для регулятора, в котором используется нейронная сеть для настройки его коэффициентов, не нужно формулировать правила, достаточно того, чтобы сам эксперт несколько раз настроил регулятор в процессе обучения нейросети.
Благодаря большому количеству настраиваемых коэффициентов и нелинейных функций активации нейронов, нейросеть может выполнять достаточно точно нелинейное отображение множества входных сигналов во множество выходных.
Рис. 23. Структура ПИД-регулятора с блоком автонастройки на основе нейронной сети NN
Структура системы автоматического регулирования с ПИД-регулятором и нейронной сетью в качестве блока автонастройки коэффициентов изображена на рис. 23.
На рисунке можно увидеть: нейронную сеть NN, которая играет роль функционального преобразователя, который для каждого набора сигналов r, e, u, y вырабатывает коэффициенты ПИД-регулятора (,,).
Одной из главных частей в проектировании регуляторов с нейросетью является процедура обучения.
В нахождении неизвестных параметров , , и заключается обучение. Для обучения нейросети обычно используют алгоритмы градиентного поиска минимума критериальной функции е = (u* - u)2, зависящей от параметров нейронов.
Процесс поиска является пошаговым (итерационным), на каждой итерации находят все коэффициенты сети, сначала для выходного слоя нейронов, затем предыдущего и так до первого слоя (метод обратного распространения ошибки). Используются также другие методы поиска минимума, в том числе генетические алгоритмы, метод моделирования отжига, метод наименьших квадратов.
Процесс обучения нейросети показан на рисунке 24.
При замкнутой системе автоматического регулирования, эксперт должен подстраивать параметры регулятора ,, при различных входных воздействиях . Предполагается при этом, что эксперт умеет это делать с достаточным для практики качеством. В подстраиваемой экспертом системе, изображенной на (рис. 24 (а)), временные диаграммы переменных записываются в память и затем подаются на нейронную сеть, подключённую к ПИД-регулятору (рис. 24 (б)).
Рис. 24. Схема обучения нейронной сети в блоке автонастройки: а) - система управления, подстраиваемая экспертом; б) - нейронная сеть, обучаемая при помощи сигналов, которые получены в представленной системе
Нейронную сеть нужно настраивать так, чтобы минимизировать погрешность (разность) между сигналом , полученным при участии эксперта, и сигналом, полученным в процессе обучения нейронной сети. После обучения нейронной сети параметры нейронной сети заносятся в блок автонастройки.
В соответствии с теорией нейросетей, уже обученная сеть должна работать так же, как и эксперт, если даже на вход подать те сигналы, которые не были включены в набор при ее обучении.
Длительность процесса обучения является основным недостатком при использовании нейросетей в ПИД-регуляторах, поэтому этот метод не сильно распространен.
Другим недостатком нейросетей является невозможность предсказания погрешности регулирования для входных сигналов, которые не использовались при обучении сети. Также не существует специальных критериев выбора количества нейронов в сети и длительности обучения. Не существует специального диапазона и количества обучающих воздействий сети.
6. Вычислительный эксперимент
Итак, в ходе решения проблемы предстоит разработать искусственную нейронную сеть, для адаптивной настройки параметров регулятора, управляющего объектом с переменными параметрами.
6.1 Математическая модель объекта управления
В качестве примера рассмотрим модель динамического объекта, описывающую крестокрылый снаряд, который требуется стабилизировать относительно центра тяжести по заданной траектории.
Рис. 25. Схема угловых и линейных координат, характеризующих положение снаряда относительно прямолинейной траектории в боковом движении
Пусть MN - заданная прямолинейная траектория, по которой должен двигаться снаряд. В этом случае заданное значение координаты центра тяжести снаряда по оси есть .
Рассмотрим систему управления боковым отклонением центра тяжести крестокрылого снаряда, учитывая переходные процессы в угловом движении снаряда.
Система уравнений имеет вид:
Изначально структурная схема данной системы выглядит так:
Рис. 26. Схема динамического объекта с регулятором
Выбор параметров автопилота (передаточных чисел) будет состоять в задаче синтеза регулятора.
В качестве объекта управления возьмем снаряд с параметрами, заданными в таб. 1.
Таблица 1. Параметры снаряда
1/с |
1/с |
1/с2 |
1/с2 |
1/с2 |
|
0,34 |
0,645 |
13,6 |
5,6 |
1,9 |
Параметры скорости () и аэродинамического коэффициента () будут изменяться в пределах:
Все расчеты будут производиться в среде Matlab 7.11.0 (R2010b).
Моделирование будет производиться в среде Simulink 7.6
При решении задачи будут использованы пакеты Matlab Neural Network Toolbox и Control System Toolbox.
Пакет для работы с нейронными сетями Neural Network Toolbox представляет собой полноценную среду MATLAB для решения прикладных задач.
Требуется настроить ПИД-регулятор для системы, исходя из критериев:
- время переходного процесса;
- перерегулирование: ;
ПИД-регулятор будет использован в виде, представленном на рис. 27:
Рис. 27. Схема ПИД-регулятора
6.2 Подготовка данных
Имея 10 значений и (таб. 2), через функцию pidtune настраиваем регулятор. Коэффициенты регулятора должны быть настроены так, чтобы удовлетворять заданным критериям. Для построения обучающего множества для нейронной сети используем генетический алгоритм со следующими параметрами:
- размер популяции - 100 особей;
- размер поколения - 10 особей;
Входные значения снаряда показаны в таблице 2:
Таблица 2. Входные значения
225 |
241 |
258 |
275 |
291 |
308 |
325 |
341 |
358 |
375 |
||
0.255 |
0.273 |
0.292 |
0.311 |
0.330 |
0.349 |
0.368 |
0.387 |
0.406 |
0.425 |
В результате настройки мы получили коэффициенты Kp Ki Kd Tf, соответствующие значениям и .
На основе этих 10 пар и будет обучена нейронная сеть. Таким образом, будет выбран один из алгоритмов обучения с учителем (т. к. нам известен вход и желаемый выход).
Определимся с архитектурой сети: сеть будет двухслойной, с прямым распространением сигнала (newff) и нелинейной функцией активации.
Будем использовать активационную функцию гиперболического тангенса (tansig) в первом скрытом слое нейронов и логистическую функцию активации (logsig) в выходном слое.
- гиперболический тангенс
- логистическая функция.
Вектор P будет входом в нейронную сеть, вектор T - выходом.
6.4 Структура нейронной сети
Структура нейросети представлена на рис. 29.
Рис. 29. Структура нейронной сети
Наша сеть состоит из 2-х слоев, в первом слое 16 нейронов, в выходном слое 4 нейрона.
Обучение сети будет производиться по модифицированному алгоритму обратного распространения ошибки (trainlm) Левенберга-Марквардта.
6.5 Результаты
Итак, наша сеть обучилась на 10 примерах за 131 эпоху.
Рис. 30. Средняя квадратичная ошибка
Рис. 31. График обучения сети
На графиках (рис. 30 и рис. 31) показаны результаты обучения сети.
MSE (рис. 30) - функция производительности сети. Она показывает производительность, в соответствии со средней квадратичной ошибкой.
На (рис. 31) видно, как изменялся градиент и коэффициент обучения сети (mu) в процессе обучения сети.
Конечная структурная схема нашей системы выглядит так:
Рис. 32. Схема системы с нейронной сетью и динамическим объектом
Чтобы проанализировать систему, построим график переходного процесса при значениях скорости = 341 м/с и коэффициента = 0.368 м/с.
Моделирование будет производиться на интервале [0 40] c.
И так, время переходного процесса составило 7.87 секунд, перерегулирование 1.72%, что можно увидеть на рисунке 33.
Теперь подадим на вход неизвестные коэффициенты (те, которые не использовались при обучении сети).
Рис. 33. График переходного процесса при параметрах 341 / 0.368
График переходного процесса, при коэффициентах м/с и м/с представлен на рисунке 34 и выглядит следующим образом:
Рис. 34. Переходная характеристика при параметрах 345 / 0.345
Перерегулирование составило 2.87%, переходный процесс 12 сек.
Рис. 35. Переходная характеристика при параметрах 330/0.340
График, при коэффициентах м/с и м/с показан на рисунке 35.
Перерегулирование составило - 2.36%, Переходный процесс - 12 сек.
Из всего этого можно сделать вывод, что при найденных параметров автопилота (коэффициентов ПИД-регулятора) обученная нейронная сеть показывает хорошие результаты даже с теми входными сигналами, которые не были включены в набор при ее обучении (что соответствует теории о нейронных сетях). Скорость и аэродинамический коэффициент снаряда напрямую влияют на его переходную характеристику. Построим два графика поверхностей. Первый график будет показывать зависимость 50 значений , от их перерегулирования. Второй будет состоять из тех же 50 значений и зависеть от времени переходного процесса.
Рис. 36. График зависимости значений от перерегулирования
Как показывает график зависимости скорости и аэродинамического сопротивления от перерегулирования (рис. 36), чем меньше скорость и аэродинамический коэффициент, тем меньше значение перерегулирования.
Рис. 37 График зависимости значений от времени переходного процесса
На втором графике зависимости скорости и аэродинамического сопротивления от времени переходного процесса (рис. 37) видно, что чем больше скорость снаряда и чем меньше аэродинамический коэффициент, тем меньше время переходного процесса.
Очевидно, что в реальных условиях будет использоваться гораздо больше параметров, которые влияют на стабилизацию снаряда, нежели скорость и аэродинамический коэффициент. Но гибкость нейронной сети позволит применить данную модель для решения таких задач.
Заключение
В рамках данной дипломной работы разработана и исследована искусственная нейронная сеть, для адаптивной настройки регулятора, управляющего объектом с переменными параметрами.
Была выбрана сеть прямого распространения сигнала, обученная алгоритмом обратного распространения ошибки и активационной функцией гиперболического тангенса в первом скрытом слое и логистической функцией в выходном слое. Сеть была обучена на примере пар значений скорости снаряда, аэродинамического коэффициента и коэффициентов ПИД-регулятора.
Разработана программа в среде Matlab R2010b для реализации обучения нейронной сети и ее дальнейшего тестирования. Моделирование схем и сети производилось в программе Simulink 7.6.
Алгоритм был протестирован с использованием неизвестных пар параметров скорости и аэродинамического коэффициента и показал хорошие результаты.
Список литературы
1) Xabier Basogain Olabe. Redes Neuronales Artificiales y sus Aplicaciones Formato Impreso: Publicaciones de la Escuela de Ingenieros, 1998 - 79 p.
2) Минский М., Пейперт С. Персептроны. М.: Мир, 1971 - 261 с.
3) Терехов В.А., Ефимов Д.В., Тюкин И.Ю. Нейросетевые системы управления: Учеб. Пособие для вузов - М.: Высш. шк. 2002. - 183 с.: ил.
4) Хайкин, С. Нейронные сети: полный курс, 2-е изд., испр.: Пер. с англ. - М.: ООО «И.Д. Вильямс», 2006. - 1104 с.
5) Дивеев А.И., Софронова Е.А. «Основы генетического программирования Учебно-методическое пособие» - М.: Изд-во РУДН, 2006;
6) Васенков Д.В. Методы обучения искусственных нейронных сетей // Компьютерные инструменты в образовании. - СПб.: Изд-во ЦПО «Информатизация образования», 2007, №1, С. 20-29.
7) Круг П.Г. Нейронные сети и нейрокомпьютеры: Учебное пособие по курсу «Микропроцессоры». - М.: Издательство МЭИ, 2002. - 176 с.
8) Каллан, Р. Основные концепции нейронных сетей: Пер. с англ. - М.: Издательский дом «Вильямс» ', 2001;
9) Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. - М.: Горячая линия - Телеком, 2001. - С. 382.
10) Мочалов И.А. Искусственные нейронные сети в задачах управления и обработки информации Ч. 1 - М.: 2004. -145 с.
11) Осовский С. Нейронные сети для обработки информации - М.: Финансы и статистика, 2002. - 344 с.
12) Пупков К.А., Егупов Н.Д. «Методы классической и современной теории автоматического управления»: Учебник в 5-и тт.; 2-е изд., перераб. и доп. Т.3: Синтез регуляторов систем автоматического управления / Под ред. К.А. Пупкова и Н.Д. Егупова. - М.: Издательство МГТУ им. Н.Э. Баумана, 2004. - 616 с.
Приложение
fitness.m
function [os, tpp] = fitness (Ks, Kb, Ve)
b1=5.6;
b2=1.9;
a1=0.645;
a2=13.6;
G = tf([b1 b2], [1 a1 a2 0]);
sys1=feedback (G, 1);
Ks = abs(Ks);
reg = pid (Ks(1), Ks(2), Ks(3), Ks(4));
R = tf (Kb * Ve, [1 Kb 0]);
sys22 = series (reg, sys1);
sys2 = series (sys22, R);
sys3 = feedback (sys2,1);
S = stepinfo (sys3, 'RiseTimeLimits', [0.05, 0.95]);
os = S. Overshoot;
tpp = S. SettlingTime;
if isnan(os)
os = 1e+7;
end
if isnan(tpp)
tpp = 1e+7;
end
end
gapidtune.m
clc;
b1=5.6; b2=1.9; a1=0.645; a2=13.6;
spread = 100;
count = sqrt(spread);
%% Создание популяции
InitialPopulation = zeros (25, 4);
G = tf([b1 b2], [1 a1 a2 0]);
sys3=feedback (G, 1);
k = 0;
for Ve=linspace (225,375, count)
for Kb = linspace (0. 255,0.425, count)
k = k + 1;
R = tf([Kb*Ve], [1 Kb 0]);
sys = series (sys3, R);
K = pidtune (sys, 'pidf');
InitialPopulation (k,:) = [K. Kp K. Ki K. Kd K. Tf];
end
end
%% Настройка
C = cell(count);
k1 = 0; k2 = 0;
gaopts = gaoptimset ('Display', 'iter', 'Generations', 15, 'CreationFcn',…
@gacreationlinearfeasible, 'PopulationSize', 100, 'InitialPopulation', … InitialPopulation, 'UseParallel', 'always');
R = 0;
for Ve=linspace (225,375, count)
k1 = k1 + 1;
for Kb = linspace (0. 255,0.425, count)
R = R + 1;
k2 = k2 + 1;
fit_fun = @(x) fitness (x, Kb, Ve);
C {k1, k2} = gamultiobj (fit_fun, 4, eye(4) * (-1), zeros (4, 1), [], [], [], [], gaopts);
end
k2 = 0;
end
neur_new2.m
%Вход
P = [];
for k1 = linspace (225,375,10)
for k2 = linspace (0. 255,0. 425,10)
P = [P; k1 k2];
end
end
%P = P';
T = [];
for m = 1:10
for n = 1:10
T = [T; C {m, n} (1,:)];
end
end
%Выход
%T = T';
%%
net=newff (P', T', 16, {'tansig'});
net.layers{2}.transferFcn = 'logsig';
net. SampleTime=0.01;
net.trainParam.max_fail = 1000;
net=train (net, P', T');
simsc.m
%%
G = tf([b1 b2], [1 a1 a2 0]);
sys1 = feedback (G, 1);
N = 50;
Per = zeros(N);
PP = zeros(N);
Kb1 = linspace (0. 255,0.425, N);
Ve1 = linspace (225,375, N);
%matlabpool 4
tic
for s = 1:N
for k = 1:N
Ks = sim (net, [Ve1 (s); Kb1 (k)]);
reg = pid (Ks(1), Ks(2), Ks(3), Ks(4));
R = tf([Kb1 (k)*Ve1 (s)], [1 Kb1 (k) 0]);
sys22 = series (reg, sys1);
sys2 = series (sys22, R);
sys3 = feedback (sys2,1);
S = stepinfo (sys3, 'RiseTimeLimits', [0.05, 0.95]);
Per (s, k) = S. Overshoot;
PP (s, k) = S. SettlingTime;
end
end
toc
%%
Ks = sim (net, [228; 0.258]);
reg = pid (Ks(1), Ks(2), Ks(3), Ks(4));
R = tf([Kb*Ve], [1 Kb 0]);
sys22 = series (reg, sys1);
sys2 = series (sys22, R);
sys3 = feedback (sys2,1);
figure(3)
step(sys3)
%%
%matlabpool close
%%
[Kb1, Ve1]= meshgrid (Kb1, Ve1);
figure(1)
surfc (Kb1, Ve1, Per)
%light ('pos', [0.5 -0.9 15])
shading interp
lighting phong
colormap summer
xlabel ('Аэродинамический коэффициент, Kb')
ylabel ('Значение скорости, Ve')
zlabel ('Перерегулирование, %')
%%
figure(2)
surfc (Kb1, Ve1, PP)
shading interp
lighting phong
colormap summer
xlabel ('Аэродинамический коэффициент, Kb')
ylabel ('Значение скорости, Ve')
zlabel ('Время переходного процесса, с')
нейронный сеть искусственный обучение
Размещено на Allbest.ru
Подобные документы
Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Прогнозирование валютных курсов с использованием искусственной нейронной сети. Общая характеристика среды программирования Delphi 7. Существующие методы прогнозирования. Характеристика нечетких нейронных сетей. Инструкция по работе с программой.
курсовая работа [2,2 M], добавлен 12.11.2010Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.
лабораторная работа [2,3 M], добавлен 25.03.2014