СОВРЕМЕННАЯ ПРИКЛАДНАЯ ТЕОРИЯ УПРАВЛЕНИЯ
ЛАБОРАТОРНАЯ РАБОТА № 0
КОМПЕНСАЦИЯ ВОЗМУЩЕНИЙ С ПОМОЩЬЮ НЕЙРОННЫХ СЕТЕЙ
Казань 2014
Содержание
1. Общие сведения. 3
1.1 Критерии устойчивости замкнутой системы.. 5
1.2 Прямые показатели качества замкнутой системы.. 7
1.2.1 Установившаяся ошибка. 9
1.2.2 Устойчивость замкнутой системы.. 12
1.3 Методика настройки параметров регулятора. 16
2. Расчетная часть. 17
2.1 Расчет установившейся ошибки. 20
2.2 Расчет устойчивости замкнутой системы.. 20
3. Экспериментальная часть. 23
Список литературы.. 25
Цель работы: исследование возможностей нейронных сетей для аппроксимации функции, получение навыков обучения нейронных сетей.
Общие сведения
Искусственная нейронная сеть (ИНС) — математическая модель, а также её программная или аппаратная реализация, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма.
ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Схема такой нейронной сети представлена на рисунке 1. Такие процессоры обычно довольно просты (особенно в сравнении с процессорами, используемыми в персональных компьютерах). Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
Рисунок 1. Схема простой нейросети. Зелёным цветом обозначены входные нейроны, голубым — скрытые нейроны, жёлтым — выходной нейрон.
|
Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей (весами) между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных.
Нейронные сети применяются для многих задач: распознавание образов и классификация, кластеризация, сжатие данных и ассоциативная память и др. Но нас будут интересовать две задачи применения нейронных сетей:
1) Прогнозирование. Способность нейронной сети к прогнозированию напрямую следует из её способности к обобщению и выделению скрытых зависимостей между входными и выходными данными. После обучения сеть способна предсказать будущее значение некой последовательности на основе нескольких предыдущих значений и (или) каких-то существующих в настоящий момент факторов.
2) Аппроксимация. Нейронные сети могут аппроксимировать непрерывные функции. Доказана обобщённая аппроксимационная теорема: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любую непрерывную функцию с некоторой наперёд заданной точностью. Это означает, что нелинейная характеристика нейрона может быть произвольной: от сигмоидальной до синуса или многочлена. От выбора нелинейной функции может зависеть сложность конкретной сети, но с любой нелинейностью сеть остаётся универсальным аппроксиматором и при правильном выборе структуры может достаточно точно аппроксимировать любую непрерывную функцию.
|
Нейронные сети успешно применяются и для синтеза систем управления динамическими объектами. Нейросети обладают рядом уникальных свойств, которые делают их мощным инструментом для создания систем управления: способностью к обучению на примерах и обобщению данных, способностью адаптироваться к изменению свойств объекта управления и внешней среды, пригодностью для синтеза нелинейных регуляторов, высокой устойчивостью к повреждениям своих элементов в силу изначально заложенного в нейросетевую архитектуру параллелизма.
Обучение нейронной сети
Обучение нейронной сети можно разделить на несколько этапов:
· Сбор данных для обучения;
· Подготовка и нормализация данных;
· Выбор топологии сети;
· Экспериментальный подбор характеристик сети;
· Экспериментальный подбор параметров обучения;
· Собственно обучение;
· Проверка адекватности обучения;
А. Сбор данных для обучения
Выбор данных для обучения сети и их обработка является самым сложным этапом решения задачи. Набор данных для обучения должен удовлетворять нескольким критериям:
· Репрезентативность — соответствие характеристик выборки характеристикам популяции или генеральной совокупности в целом. Репрезентативность определяет, насколько возможно обобщать результаты исследования с привлечением определённой выборки на всю генеральную совокупность, из которой она была собрана.
|
· Непротиворечивость — противоречивые данные в обучающей выборке приведут к плохому качеству обучения сети.
Б. Подготовка и нормализация данных;
Исходные данные преобразуются к виду, в котором их можно подать на входы сети. Каждая запись в файле данных называется обучающей парой или обучающим вектором. Обучающий вектор содержит по одному значению на каждый вход сети и, в зависимости от типа обучения (с учителем или без), по одному значению для каждого выхода сети. Обучение сети на «сыром» наборе, как правило, не даёт качественных результатов. Существует ряд способов улучшить «восприятие» сети.
Нормировка выполняется, когда на различные входы подаются данные разной размерности. Например, на первый вход сети подаются величины со значениями от нуля до единицы, а на второй — от ста до тысячи. При отсутствии нормировки значения на втором входе будут всегда оказывать существенно большее влияние на выход сети, чем значения на первом входе. При нормировке размерности всех входных и выходных данных сводятся воедино.
При обучении нейронной сети в Matlab нормировка проводится автоматически.
В. Выбор топологии сети;
Выбирать тип сети следует, исходя из постановки задачи и имеющихся данных для обучения. Для простых задач достаточно будет нейронной сети прямого распространения, данная сеть представлена на рисунке 1.
Г. Экспериментальный подбор характеристик сети
После выбора общей структуры нужно экспериментально подобрать параметры сети. Для предложенной нейронной сети это будет выбор количество скрытых слоев, количество нейронном в каждом из них и выбор активационной функции нейронов в каждом скрытом слое и также в выходном. Обычно хватает 1 скрытого слоя с 10 нейронами в нем. Функции активации для нейронного скрытого слоя – сигмоидальная, а для выходных нейронов – линейная.
Для того, чтобы пояснить функцию активации необходимо описать принцип работы элементарного искусственного нейрона.
Искусственный нейрон имеет модель биологического нейрона. Нейрон имеет отростки: аксон и дендриты. Аксон – обычно единственный и длинный отросток, приспособлен для возбуждения следующих нейронов, является выходом данного нейрона. Дендриты – как правило, короткие и сильно разветвленные отростки, служащие связями с другими нейронами, является входами данной нейрона.
Реакцией нейрона является какая-либо нелинейная функция от суммы всех сигналов от других нейронов помноженные на коэффициент связи (вес). Схема элементарного нейрона показана на рисунке 2.
Рисунок 2. Схема элементарного нейрона.
Нелинейная функция нейрона называется функцией активации нейрона, они бывают разных видов: скачок (рис.3а), линейная функция (рис. 3б), гиперболический тангенс (рис.3в), сигмоидальная функция (рис. 3г) и др.
Рисунок 3. Функции активации нейрона.
Д. Собственно обучение сети
В процессе обучения сеть в определенном порядке просматривает обучающую выборку. Порядок просмотра может быть последовательным, случайным и т. д. Некоторые сети, обучающиеся без учителя, просматривают выборку только один раз. Другие сети, обучающиеся с учителем, просматривают выборку множество раз, при этом один полный проход по выборке называется эпохой обучения. При обучении с учителем набор исходных данных делят на две части — собственно обучающую выборку и тестовые данные; принцип разделения может быть произвольным. Обучающие данные подаются сети для обучения, а проверочные используются для расчета ошибки сети (проверочные данные никогда для обучения сети не применяются). Таким образом, если на проверочных данных ошибка уменьшается, то сеть действительно выполняет обобщение.
Во время обучения нейронная сеть пытается минимизировать ошибку, между выходом нейронной сети и эталонным значением, которое дано при обучении, настраивая коэффициенты связи (веса) между нейронами.
E. Проверка адекватности обучения
Даже в случае успешного, на первый взгляд, обучения сеть не всегда обучается именно тому, чего от неё хотел создатель. Известен случай, когда сеть обучалась распознаванию изображений танков по фотографиям, однако позднее выяснилось, что все танки были сфотографированы на одном и том же фоне. В результате сеть «научилась» распознавать этот тип ландшафта, вместо того, чтобы «научиться» распознавать танки. Таким образом, сеть «понимает» не то, что от неё требовалось, а то, что проще всего обобщить.
Тестирование качества обучения нейросети необходимо проводить на примерах, которые не участвовали в её обучении. При этом число тестовых примеров должно быть тем больше, чем выше качество обучения. Если ошибки нейронной сети имеют вероятность близкую к одной миллиардной, то и для подтверждения этой вероятности нужен миллиард тестовых примеров. Получается, что тестирование хорошо обученных нейронных сетей становится очень трудной задачей.
Экспериментальная часть
Для того, чтобы продемонстрировать возможность применения нейронных сетей для адаптивного управления, рассмотрим способ идентификации и подавления возмущения на объект управления при помощи нейронных сетей.
Как объект управления будем использовать канал вертикальной скорости вертолета, которая имеет вид апериодического звена:
На вертолет может действовать возмущение, например, ветер. С возмущением обычные ПИД регуляторы справляются плохо, плохо стабилизируя скорость. Для улучшения их качества работы предлагается использовать схему идентификации и подавления возмущения, которая показана на рисунке 4.
Рисунок 4. Схема идентификации и подавления возмущения
Если мы имеем оценку передаточной функции объекта , то мы можем вычислить реакцию объекта без возмущения, вычитая реакцию объекта управления, мы получим оценку действующего возмущения. Если мы пропустим оценку возмущения через обратную передаточную функцию объекта, то возмущение будет подавлено. На основе данной схеме разработана схема на основе нейронных сетей, которая показана на рисунке 5.
Рисунок 5. Фрагмент схемы идентификации и подавления возмущения на основе нейронных сетей.
На данной схеме присутствуют блоки – прямой и инверсный нейроэмулятор. Прямой нейроэмулятор обучен имитировать прямую динамику вертолета, при отсутствии возмущения выход канала вертикальной скорости вертолета и прямого нейроэмулятора будут совпадать, иначе образуется оценка возмущения, которая подается на инверсный нейроэмулятор. Инверсный нейроэмулятор обучен обратной динамике вертолета, зная возмущение, он выдает корректирующее управление. Рассмотрим их подробнее.
А. Прямой нейроэмулятор
Задача прямого нейро-эмулятора состоит в том, чтобы на основе подаваемого управления и знания предыдущего состояния вертолета спрогнозировать следующее состояние вертолета. Структура этой нейронной сети представлена на рисунке 6.
Рисунок 6. Схема прямого Рисунок 7. Схема инверсного
нейроэмулятора нейроэмулятора
Прямой нейроэмулятор имеет 1 скрытый слой с сигмоидальными функциями активации, на выходе имеет нейрон с линейной функцией активации. Он состоит из следующих входов: а) текущего управления u, подаваемого на канал вертикальной скорости с линиями задержки, их количество примерно соответствует порядку системы минус 1 б) вектор состояния канала вертикальной скорости вертолета S на предыдущем такте или наблюдаемая координата вектора состояния, с количеством линий задержек, примерно соответствующие порядку системы; выходом нейро-эмулятора является прогноз реакции канала вертикальной скорости вертолета .
А. Обратный нейроэмулятор
Задача инверсного нейроэмулятора состоит в том, чтобы на основе текущей ошибки и знания предыдущего состояния вертолета, выдать корректирующее управление. Структура этой нейронной сети представлена на рисунке 7. Инверсный нейроэмулятор имеет 1 скрытый слой с сигмоидальными функциями активации, на выходе имеет нейрон с линейной функцией активации. Он состоит из двух входов: а) текущего отклонения реакций нейроэмулятора и вертолета с количеством линий задержек, примерно соответствующие порядку системы б) выход инверсного нейроэмулятора с количеством линий задержек, количество которых примерно соответствует порядку системы; выходом инверсного нейро-эмулятора является корректирующее управление.