Automaatjuhtimissüsteemid Kontrolltöö #2 1. ИСКУСТВЕННЫЕ НЕЙРОННЫЕ СЕТИ. ОБУЧЕНИЕ, ПРОЦЕССЫ ОБУЧЕНИЯ, АЛГОРИТМЫ ОБУЧЕНИЯ. ЗАДАЧИ ОБУЧЕНИЯ Искусcтвенные нейронные сети — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге при мышлении, и при попытке смоделировать эти процессы. Первой такой моделью мозга был перцептрон. Впоследствии эти модели стали использовать в практических целях, как правило в задачах прогнозирования. С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации. Схема простой нейросети: Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения — одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что, в случае успешного обучения, сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке. Для обучения нейронных сетей применяются алгоритмы обучения двух типов (разные типы сетей используют разные типы обучения): управляемое ("обучение с учителем") и неуправляемое ("без учителя"). Чаще всего применяется обучение с учителем. © Кто-то 1 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 Для управляемого обучения сети пользователь должен подготовить набор обучающих данных. Эти данные представляют собой примеры входных данных и соответствующих им выходов. Сеть учится устанавливать связь между первыми и вторыми. Обычно обучающие данные берутся из исторических сведений. Затем нейронная сеть обучается с помощью того или иного алгоритма управляемого обучения (наиболее известным из них является метод обратного распространения, при котором имеющиеся данные используются для корректировки весов и пороговых значений сети таким образом, чтобы минимизировать ошибку прогноза на обучающем множестве. Если сеть обучена хорошо, она приобретает способность моделировать (неизвестную) функцию, связывающую значения входных и выходных переменных, и впоследствии такую сеть можно использовать для прогнозирования в ситуации, когда выходные значения неизвестны. Неуправляемое обучение — алгоритмы обучения, в которых на вход нейронной сети подаются данные, содержащие только значения входных переменных. Такие алгоритмы предназначены для нахождения кластеров во входных данных. Ниже представлена схема процесса обучения нейросети: © Кто-то 2 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 Задачи обучения: • Приближение (аппроксимирование). Нейронная сеть пытается по известным данным дать приближённое значение требуемой величины; • Ассоциация. Различаю автоассоциацию и гетероассоциацию. В случае автоассоциации задачей нейросети является помнить некоторое количество векторов. Эти векторы подаются на вход последовательно. Затем нейросети предоставляются векторы с помехами и нейросеть должна найти и сопоставить вектору его оригинал (без помехи). Гетероассоциация отличается тем, что каждому входному вектору поставлен в соответствие выходной вектор, который может отличаться. • Классификация векторов. Нейросеть проверяет принадлежность определённого вектора какому-либо классу. • Прогноз. Одна из наиболее важных задач обучения. Нейросеть пытается предугадать заданную величину исходя из предыдущих значений этой величины. Прогноз получил практическое применение в очень многих сферах деятельности. • Управление. Также одна из важнейших задач. Эта задача нашла широкое применение в сложных адаптивных системах управления. 2. МОДЕЛИРОВАНИЕ СИСТЕМ С ИСПОЛЬЗОВАНИЕМ НЕЙРОСЕТЕЙ Положим, задана система, функция которой неизвестна. Задачей идентифицирования является получение математической модели этой функции. Упрощённая схема: Ys СИСТЕМА E U МОДЕЛЬ Ym При этом задача сводится к уменьшению ошибки E так, чтобы E → 0 . © Кто-то 3 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 Для решения этой задачи можно использовать нейронные сети. Поскольку одной из функций нейросетей является аппроксимация, то возможно получение приближённой функции для динамической нелинейной системы, что, собственно и является процессом идентифицирования. Идентифицирование при помощи нейросети состоит из следующих шагов: 1. Сбор данных для проб. На идентифицируемый объект подаются как правило произвольные величины На выходе измеряются соответствующие им выходные значения. Идентифицирование происходит на основе эталонных значений входных и выходных величин. В ходе обучающего процесса нейросеть учится давать правильные выходные величины из известных эталонных значений. 2. Выбор архитектуры нейросети (количество входов, выходов, скрытых слоёв, число нейронов на скрытых слоях и т.п.) обычно на экспериментальной основе. 3. Подбор весовых коэффициентов (как правило, выбираются произвольно). 4. Расчет выходной величины нейросети на основе эталонного значения входной величины. 5. Нахождение ошибки модели сравнивая выходы нейросети с эталонной моделью объекта. 6. Расчет новых параметров на основе выбранного алгоритма обучения нейросети. Шаги 4 — 6 итеративно повторяются на протяжении времени, выделенного настройщиком на обучение нейросети. Нейросеть как модель системы: © Кто-то 4 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 3. УПРАВЛЕНИЕ СИСТЕМОЙ ПРИ ПОМОЩИ НЕЙРОННЫХ СЕТЕЙ. РЕАЛИЗАЦИЯ ПРОСТОГО РЕГУЛЯТОРА Управление с прогнозом. В идеальном случае математическая модель управляемой системы работает точно так же, как и система. Алгоритм управления с прогнозом использует эту модель для прогноза выходов системы за N следующих тактов. Схематическое изображение алгоритма: Задачей управления является наблюдение, чтобы выход управляющей системы ys был бы равен величине настройки r или отличался от неё на как можно меньшую величину. Если в какой-то момент времени есть величина настройки, то при помощи математической модели можно расчитать (прогнозировать) выход системы за следующие N тактов предполагая, что величина настройки останется такой же. Параметр N называют горизонтом предсказания. Необходимо расчитать выход регулятора так, чтобы минимизировать различие величины настройки и выхода соответствующей модели. Минимизируемая функция: J = ∑ ( r (t ) − ym (t + j )) N 2 j =1 Выход регулятора расчитывается так: u ( t ) = u ( t − 1) + [ q1 © Кто-то ⎡ r ( t ) − y m ( t + 1) ⎤ ⎢ ⎥ M ... qN ] ⋅ ⎢ ⎥ ⎢r ( t ) − y m ( t + N )⎥ ⎣ ⎦ 5 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 Для получения наилучших результатов алгоритм управления можно сделать адаптивным (адаптивно настроить параметры регулятора). Для этого реализуется функция регулятора в виде второй нейросети, процесс обучения которой происходит в реальном времени во время процесса управления. Адаптивное управление необходимо использовать, когда управляющая система работает в переменной среде (напимер, в среде с постоянно меняющейся температурой) или же если параметры управляемой системы изменяются с течением времени. Обучение нейронной сети для реализации регулятора. Структурная схема приведена ниже: На входе регулятора величина настройки r. На выходе нейросети управляющий сигнал u. Обучающий алгоритм сравнивает выход управляемой системы ys с требуемым выходом (величиной настройки) и вычисляет параметры сети так, чтобы держать их разность в пределах r − ys минимальной. Вне зависимости от внешних условий и изменению параметров управляемой системы, регулятор всегда способен генерировать такой управляющий сигнал, чтобы держать управляемую систему с большой точностью в окрестности величины настройки. © Кто-то 6 04/12/2008 Automaatjuhtimissüsteemid Kontrolltöö #2 Использование нейросетей для синтеза PID-генератора. Известно, что при правильном выборе пропорционального, дифференциального и интегрального компонентов PIDрегулятор может управлять линейной системой: 1 WPID ( s ) = K1 + K 2 ⋅ + K 3 ⋅ s s Коэффициенты усиления K1, K2 и K3 — линейные множители. Когда вместо них использовать 3 различных нейросети NN1, NN2 и NN3, тогда при помощи такого регулятора можно управлять и нелинейными системами. © Кто-то 7 04/12/2008