Нейронные сети как вычислительные структуры, моделирующие простые биологические процессы
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ЛЕКЦИЯ №1
Под нейронными сетями подразумеваются вычислительные структуры, которые моделируют простые биологические процессы, ассоциируемые с процессами человеческого мозга. Они представляют собой распределенные и параллельные системы, способные к адаптивному обучению путем анализа положительных и отрицательных воздействий. Элементарным преобразователем в данных сетях является нейрон, названный так по аналогии с биологическим прототипом.
Нервная система и мозг человека состоят из нейронов, соединенных между собой нервными волокнами. Нервные волокна способны передавать электрические импульсы между нейронами. Все процессы передачи раздражений от кожи, ушей и глаз к мозгу, процессы мышления и управления действиями реализованы в живом организме как передача электрических импульсов между нейронами.
Нейрон (нервная клетка) особая биологическая клетка, которая обрабатывает информацию (рис. 1.1). Он состоит из тела (cell body), или сомы (soma), и отростков нервных волокон двух типов - дендритов (dendrites), по которым принимаются импульсы, и единственного аксона (ахоn), по которому нейрон может передавать импульс. Тело нейрона включает ядро (nucleus), которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от аксонов других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль своего аксона (передатчика), который в конце разветвляется на волокна (strands). На окончаниях этих волокон находятся специальные образования - синапсы (synapses), которые влияют на величину импульсов.
Рис. 1.1 Взаимосвязь биологических нейронов
Синапс является элементарной структурой и функциональным узлом между двумя нейронами (волокно аксона одного нейрона и дендрит другого). Когда импульс достигает синаптического окончания, высвобождаются химические вещества, называемые нейротрансмиттерами. Нейротрансмиттеры диффундируют через синаптическую щель, возбуждая или затормаживая, в зависимости от типа синапса, способность нейрона-приемника генерировать электрические импульсы. Результативность передачи импульса синапсом может настраиваться проходящими через него сигналами так, что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, возможно, ответственна за память человека. Веса синапсов могут изменяться со временем, а значит, меняется и поведение соответствующих нейронов.
Нейроны взаимодействуют короткими сериями импульсов продолжительностью несколько миллисекунд. Сообщение передается посредством частотно-импульсной модуляции. Частота может изменяться от нескольких единиц до сотен герц, что в миллион раз медленнее, чем быстродействующие переключательные электронные схемы. Тем не менее сложные задачи распознавания человек решает за несколько сотен миллисекунд.
Структура и свойства искусственного нейрона
Нейрон состоит из элементов трех типов: умножителей (синапсов), сумматора и нелинейного преобразователя. Синапсы осуществляют связь между нейронами, умножают входной сигнал на число, характеризующее силу связи, (вес синапса). Сумматор выполняет сложение сигналов, поступающих по синаптическим связям от других нейронов, и внешних входных сигналов. Нелинейный преобразователь реализует нелинейную функцию одного аргумента - выхода сумматора. На рис. 1.2 показана его структура.
Рис. 1.2 Структура искусственного нейрона
Эта функция называется функцией активации или передаточной функцией нейрона. Нейрон реализует скалярную функцию векторного аргумента. Математическая модель нейрона:
где wi - вес (weight) синапса, i = 1...n; b - значение смещения (bias); s - результат суммирования (sum); xi - компонент входного вектора (входной сигнал), i = 1...n; у - выходной сигнал нейрона; п - число входов нейрона; f- нелинейное преобразование (функция активации).
В общем случае входной сигнал, весовые коэффициенты и смещение могут принимать действительные значения, а во многих практических задачах - лишь некоторые фиксированные значения. Выход (у) определяется видом функции активации и может быть как действительным, так и целым.
Синаптические связи с положительными весами называют возбуждающими, с отрицательными весами - тормозящими.
Примеры активационных функций представлены в табл. 1.1 и на рис. 1.3.
Одной из наиболее распространенных является нелинейная функция активации с насыщением, так называемая логистическая функция или сигмоид (функция S-бразного вида):
При уменьшении а сигмоид становится более пологим, в пределе при а = 0 вырождаясь в горизонтальную линию на уровне 0,5, при увеличении а сигмоид приближается к виду функции единичного скачка с порогом Т. Из выражения для сигмоида очевидно, что выходное значение нейрона лежит в диапазоне (0, 1). Одно из ценных свойств сигмоидальной функции - простое выражение для ее производной, применение которой будет рассмотрено в дальнейшем:
Следует отметить, что сигмоидальная функция дифференцируема на всей оси абсцисс, что используется в некоторых алгоритмах обучения. Кроме того, она обладает свойством усиливать слабые сигналы лучше, чем большие, и предотвращает насыщение от больших сигналов, так как они соответствуют областям аргументов, где сигмоид имеет пологий наклон.
Таблица 1.1 Функции активации нейронов
Классификация нейронных сетей и их свойства
Нейронная сеть представляет собой совокупность нейронов, определенным образом соединенных друг с другом и с внешней средой с помощью связей, определяемых весовыми коэффициентами. В зависимости от функций, выполняемых нейронами в сети, можно выделить три их типа:
• входные нейроны, на которые подается вектор, кодирующий входное воздействие или образ внешней среды; в них обычно не осуществляется вычислительных процедур, а информация передается с входа на выход;
• выходные нейроны, выходные значения которых представляют выходы нейронной сети;
• промежуточные нейроны, составляющие основу нейронных сетей.
В большинстве нейронных моделей тип нейрона связан с его расположением в сети. Если нейрон имеет только выходные связи, то это входной нейрон, если наоборот - выходной нейрон. Однако возможен случай, когда выход топологически внутреннего нейрона рассматривается как часть выхода сети. В процессе функционирования сети осуществляется преобразование входного вектора в выходной, некоторая переработка информации. Конкретный вид выполняемого сетью преобразования данных обусловливается не только характеристиками нейроподобных элементов, но и особенностями ее архитектуры, а именно топологией межнейронных связей, выбором определенных подмножеств нейроподобных элементов для ввода и вывода информации, способами обучения сети, наличием или отсутствием конкуренции между нейронами, направлением и способами управления и синхронизации передачи информации между нейронами.
С точки зрения топологии можно выделить три основных типа нейронных сетей:
• полносвязные (рис. 1.4, а);
• многослойные или слоистые (рис. 1.4, б);
• слабосвязные (с локальными связями) (рис. 1.4, в).
Рис. 1.3. Архитектуры нейронных сетей:
а - полносвязная сеть, б - многослойная сеть с последовательными связями, в - слабосвязные сети
В полносвязных нейронных сетях каждый нейрон передает свой выходной сигнал остальным нейронам, в том числе и самому себе. Все входные сигналы подаются всем нейронам. Выходными сигналами сети могут быть все или некоторые выходные сигналы нейронов после нескольких тактов функционирования сети.
В многослойных нейронных сетях нейроны объединяются в слои. Слой содержит совокупность нейронов с едиными входными сигналами. Число нейронов в слое может быть любым и не зависит от количества нейронов в других слоях. В общем случае сеть состоит из Q слоев, пронумерованных слева направо. Внешние входные сигналы подаются на входы нейронов входного слоя (его часто нумеруют как нулевой), а выходами сети являются выходные сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько скрытых слоев. Связи от выходов нейронов некоторого слоя q к входам нейронов следующего слоя (q+1) называются последовательными.
В свою очередь, среди многослойных нейронных сетей выделяют следующие типы.
1) Монотонные.
Это частный случай слоистых сетей с дополнительными условиями на связи и нейроны. Каждый слой кроме выходного разбит на два блока: возбуждающий и тормозящий. Связи между блоками тоже разделяются на тормозящие и возбуждающие. Если от нейронов блока А к нейронам блока В ведут только возбуждающие связи, то это означает, что любой выходной сигнал блока является монотонной неубывающей функцией любого выходного сигнала блока А. Если же эти связи только тормозящие, то любой выходной сигнал блока В является невозрастающей функцией любого выходного сигнала блока А. Для нейронов монотонных сетей необходима монотонная зависимость выходного сигнала нейрона от параметров входных сигналов.
2) Сети без обратных связей. В таких сетях нейроны входного слоя получают входные сигналы, преобразуют их и передают нейронам первого скрытого слоя, и так далее до выходного. Если не оговорено противное, то каждый выходной сигнал q-гo слоя подастся на вход всех нейронов (q+1)-гo слоя; однако возможен вариант соединения q-го слоя с произвольным (q+р)-м слоем.
Среди многослойных сетей без обратных связей различают полносвязанные (выход каждого нейрона q-ro слоя связан с входом каждого нейрона (q+1)-го слоя) и частично полносвязанные.
3) Сети с обратными связями. В сетях с обратными связями информация с последующих слоев передается на предыдущие.
Известные нейронные сети можно разделить по типам структур нейронов на гомогенные (однородные) и гетерогенные. Гомогенные сети состоят из нейронов с единой функцией активации, а в гетерогенную сеть входят нейроны с различными функциями активации.
Существуют бинарные и аналоговые сети. Первые из них оперируют только двоичными сигналами, и выход каждого нейрона может принимать значение либо логического ноля либо логической единицы.
Сети можно классифицировать по числу слоев. Теоретически число слоев и число нейронов в каждом слое может быть произвольным, однако фактически оно ограничено ресурсами компьютера или специализированных микросхем, на которых обычно реализуется нейронная сеть. Чем сложнее сеть, тем более сложные задачи она может решать.
Выбор структуры нейронной сети осуществляется в соответствии с особенностями и сложностью задачи. Для решения отдельных типов задач уже существуют оптимальные конфигурации. Если же задача не может быть сведена ни к одному из известных типов, приходится решать сложную проблему синтеза новой конфигурации. При этом необходимо руководствоваться следующими основными правилами:
• возможности сети возрастают с увеличением числа нейронов сети, плотности связей между ними и числом слоев;
• введение обратных связей наряду с увеличением возможностей сети поднимает вопрос о динамической устойчивости сети;
• сложность алгоритмов функционирования сети, введение нескольких типов синапсов способствует усилению мощности нейронной сети.
Вопрос о необходимых и достаточных свойствах сети для решения задач того или иного рода представляет собой целое направление нейрокомпьютерной науки. Так как проблема синтеза нейронной сети сильно зависит от решаемой задачи, дать общие подробные рекомендации затруднительно. В большинстве случаев оптимальный вариант получается на основе интуитивного подбора, хотя в литературе приведены доказательства того, что для любого алгоритма существует нейронная сеть, которая может его реализовать. Остановимся на этом подробнее.
Многие задачи распознавания образов (зрительных, речевых), выполнения функциональных преобразований при обработке сигналов, управления, прогнозирования, идентификации сложных систем, сводятся к следующей математической постановке. Необходимо построить такое отображение X -» У, чтобы на каждый возможный входной сигнал X формировался правильный выходной сигнал У. Отображение задается конечным набором пар (<вход>, <известный выход>). Число этих пар (обучающих примеров) существенно меньше общего числа возможных сочетаний значений входных и выходных сигналов. Совокупность всех обучающих примеров носит название обучающей выборки.
В задачах распознавания образов X - некоторое представление образа (изображение, вектор), У - номер класса, к которому принадлежит входной образ.
В задачах управления X - набор контролируемых параметров управляемого объекта, У - код, определяющий управляющее воздействие, соответствующее текущим значениям контролируемых параметров.
В задачах прогнозирования в качестве входных сигналов используются временные ряды, представляющие значения контролируемых переменных на некотором интервале времени. Выходной сигнал - множество переменных, которое является подмножеством переменных входного сигнала.
При идентификации X и У представляют входные и выходные сигналы системы соответственно.
В результате отображения X -» У необходимо обеспечить формирование правильных выходных сигналов в соответствии:
• со всеми примерами обучающей выборки;
• со всеми возможными входными сигналами, которые не вошли в обучающую выборку.
Второе требование в значительной степени усложняет задачу формирования обучающей выборки. В общем виде эта задача в настоящее время еще не решена, однако во всех известных случаях может быть найдено частное решение.
Области применения НС
Прогнозирование результатов выборов:
данная задача стала классической для демонстрации работы нейросетевого классификатора. Она компактна, значения всех обучающих параметров представляются в форме «Да-Нет», основана на реальных данных и дает хороший результат.
На первый взгляд кажется, что итоги выборов зависит только от личностей кандидатов и от их программ. Однако и программы, и образы кандидатов создаются профессионалами. Оказывается, что если предвыборные компании всех кандидатов отработаны добросовестно и все участники сделали все возможное, то выбор практически предопределяется лишь объективными признаками сложившейся накануне выборов ситуации в стране. А кто победит, можно решать на основании ответов на следующие вопросы.
1) Правящая партия у власти более 1 срока?
2) Правящая партия получила больше 50 % на прошлых выборах?
3) В год выборов была активна третья партия?
4) Была серьезная конкуренция при выдвижении кандидата от правящей партии?
5) Кандидат от правящей партии был президентом в год выборов?
6) Был ли год выборов временем спада или депрессии?
7) Был ли рост среднего национального валового продукта на душу населения более 2,1%?
8) Произвел ли правящий президент существенные изменения в политике?
9) Во время правления были существенные социальные волнения?
10) Администрация правящей партии виновна в серьезной ошибке или скандале?
11) Кандидат правящей партии - национальный герой?
12) Кандидат оппозиционной партии - национальный герой?
Обучающая выборка состоит из 31 примера, каждый из которых представляет ситуацию выборов, начиная с 1864 г. (табл. 1.2), где ответы «Да» обозначены единицами, а ответы «Нет» - нулями.
Класс 1 означает, что в данной ситуации был избран кандидат правящей партии, класс 2 - кандидат оппозиционной партии. После обучения сеть должна предсказать ответ для ситуации, отраженной табл. 6.2, которая не входила в обучающую выборку (когда производились эксперименты, результат выборов 1992 г. еще не был известен).
Таблица 6.1 Обучающая выборка для прогнозирования результата выборов президента США
Автономное управление автомобилем:
нейронные сети могут эффективно использоваться для управления автомобилем. В этом случае достаточно задать системе управления координаты конечной точки движения и автомобиль без участия человека будет двигаться к цели. Такая система разработана в университете Карнеги-Меллона в рамках ALVINN проекта (Autonomous Land Vehicle In a Neural Networks) [118,119]. В ней предполагается, что автомобиль оборудован видеокамерой, которая отображает дорогу с разметкой. Центральным элементом такой системы является трехслойная нейронная сеть с прямыми связями (рис.1.4).
Входной слой содержит 30x32 нейронных элемента, на которые подается преобразованное от видеокамеры изображение пути. Скрытый слой состоит из пяти, а выходной слой из 30-ти нейронных элементов. В качестве функции активации используется сигмоидная функция. Активность выходных нейронов характеризует поворот руля в ту или иную сторону. Так, если максимальной активностью обладает центральный нейрон, то это означает движение прямо. Когда наибольшую активность имеет крайний левый нейрон, то это соответствует повороту налево на определенное число градусов. Нейронная сеть обучается при управлении автомобилем оператором. При этом оператор управляет автомобилем при движении со скоростью 9,5 км/ч, моделируя различные ситуации. Изображение от видеокамеры является входом, а текущее направление руля - желаемым выходом. С целью упрощения получения обучающей выборки используется программное вращение изображения от видеокамеры (рис.1.5) и соответствующим образом меняется реакция нейронной системы.
В результате была создана обучающая выборка, объем которой составил 1200 тренировочных наборов. Обучение нейронной сети проводилось с использованием трех станций "Sun-4". Время обучения методом обратного распространения ошибки составило 5 мин. После обучения, как показали эксперименты, нейронная сеть может автономно управлять автомобилем. В настоящее время в рамках этого проекта была достигнута скорость движения автомобиля до 70 миль/ч. При этом автомобиль проехал 90 миль к северу от г.Питтсбурга (США). Чтo говорит о большом потенциале нейронных сетей для решения различных задач.
Рис.1.4 Отображение изображения дороги на нейронную сеть
Рис 1.5 Вращение исходного изображения от видеокамеры
Проектирование и оптимизация сетей связи:
одна из важнейших задач в области телекоммуникаций - нахождение оптимального пути пересылки трафика между узлами - может быть успешно решена с помощью нейронных сетей. В данном случае важны две особенности: во-первых, решение должно быть адаптивным, то есть учитывать текущее состояние сети связи и наличие сбойных участков, а во-вторых, найти оптимальное решение нужно очень быстро, в реальном времени. Нейронные сети прекрасно приспособлены для решения такого рода задач.
Кроме управления маршрутизацией потоков, нейронные сети используются и для проектирования новых телекоммуникационных сетей. При этом удается получить очень эффективные решения.
Идентификация динамических объектов:
В динамических системах подлежащий распознаванию объект зависит от мгновенных значений обучающих пар, представляющих собой функцию времени. Если принять х в качестве вектора состояния х € Rn , u - входного вектора u € RN, а у - выходного вектора у € RM, то общее описание нелинейной системы, функционирующей в дискретном времени, может быть представлено в виде
x(k+1)=f[x(k),u(k)];
y(k)=F[x(k)].
где x(k), u(k), у(k) обозначают векторы мгновенных значений соответствующих переменных, f и F - знаки векторных статистических нелинейных функций, f € Rn,F € RM, определяющих инвариантный во времени конкретный нелинейный объект.
В отличие от линейных уравнений связи, определяемые нелинейными зависимостями, более сложны, и до настоящего времени не существует универсального метода их аналитического решения. В качестве его заменителя применяются приближенные математические модели, уточняющиеся в процессе обучения.
Таким образом, проблема идентификации объекта сводится к построению такой его параметрической модели, чтобы отклики объекта y(k) и модели y’(k) на одно и то же возбуждение u(k) совпадали в пределах допустимой погрешности е, т.е.
||у’-у||<= е.
Среди многих возможных подходов к реализации такой нелинейной системы выберем способ, основанный на применении нейронной сигмоидальной сети, в общем случае многослойной. На рис. 1.6 представлена универсальная схема подключения нейронной сети в качестве нелинейной модели динамической системы.
Рис. 1.6. Способ подключения нейронной сети для идентификации динамического объекта
Если ограничиться одним входом и выходом, а также представить векторы возбуждения u и отклика объекта у состоящими из элементов запаздывания, т.е. u(k) = [u(k), u(k-l), ..., u(k-p)]T, y(k) = [y(k), y(k-1),…,y(k-q)]T, то общее описание нелинейной динамической модели можно выразить без вектора состояния х в форме
y’(k+1)=fun(y(k), u(k)).
В этом уравнении y(k+1) обозначает отклик нелинейного объекта в момент k+1, a y’(k+1) — отклик нейронной модели этого объекта в тот же момент времени. Разностный сигнал e(k+l) = y(k+l) – y’(k+l) управляет процессом адаптации параметров модели. Ряд элементов запаздывания на входе системы образует линию задержки с ответвлениями (англ.: Tapped Delay Line - TDL).
В случае применения для идентификации объектов нейронная сеть, как правило, подключается порядково-параллельным способом и использует для предсказания задерживаемые отклики объекта так, как это показано на рис. 1.6. Достоинства такого подключения - это, во-первых, гарантированная ограниченность входных сигналов модели, представляющих собой прошедшие через элементы задержки отклики объекта (он априорно считается устойчивым), во вторых - упрощение формулы генерации градиента. Следует отметить что такое подключение нейронной сети обеспечивает однонаправленное распространение сигналов, поскольку выходной сигнал объекта является сигналом изначально известным (в отличие от выходного сигнала модели) поэтому сеть не должна быть рекуррентной. Поэтому вектор градиента формируется в соответствии со стандартным для многослойной сети методом обратного распространения.
При таком подключении отклик y(k) сети зависит от вектора и(k), представляющего собой ряд прошедших через элементы задержки реализаций возбуждающего сигнала, а также от вектора d(k) = y(k), представляющего собой ряд прошедших через элементы задержки реализаций заданного сигнала, составляющих ожидаемый выходной вектор сети.
Обработка статических изображений
Не менее сложными являются задачи выделения и распознавания объектов на статическом тоновом изображении. В частности, подобные задачи возникают при автоматической обработке спутниковых изображений земной поверхности. Для их решения разработан и реализован на персональных компьютерах ряд автоматизированных систем анализа изображений земной поверхности. Системы в автоматическом режиме обеспечивает выделение на обрабатываемых изображениях объектов заданных классов: дорожной сети, кварталов с характерной застройкой, аэродромов и стоящих на них самолетов. Нейросетевые принципы, заложенные в их основу, обеспечивают инвариантность к яркостным характеристикам выделяемых и распознаваемых объектов, а также позволяют проводить обучение и адаптацию систем.
Задачи комбинаторной оптимизации
Высокая степень распараллеленности обработки информации позволяет успешно применять нейросетевые технологии для решения задач комбинаторной оптимизации, к которым, в первую очередь следует отметить задачи транспортно-ориентированной оптимизации (например, задача коммивояжера и ее модификации) и задачи распределения ресурсов (задача о назначениях, задача целераспределения и другие).
Решение таких задач традиционными методами математического программирования, большинство из которых изначально ориентировано на вычислительную технику с последовательной архитектурой, сопряжено с большими временными затратами, неприемлемыми для многих приложений. При соответствующей аппаратной поддержке нейросетевые методы позволяют значительно повысить оперативность решения данного класса задач, сохраняя высокую точность результата.
Управление ценами и производством
Руководители предприятий часто недооценивают потери от неоптимального планирования производства. Так как спрос и условия реализации зависят от времени, сезона, курсов валют и многих других факторов, то и объем производства следует гибко варьировать с целью оптимального использования ресурсов. Уже существуют удачные примеры нейросетевых систем планирования, которые применяются совместно со стандартными методами исследования операций, динамического программирования, а также с методами нечеткой логики.
Крупное английское издательство, выпускающее газеты, приобрело у фирмы Neural Innovation Ltd. систему планирования цен и затрат, основанную на нейронной сети с использованием генетических алгоритмов. На основе исторических данных система обнаруживает сложные зависимости между затратами на рекламу, объемом продаж, ценой газеты, ценами конкурентов, днем недели, сезоном и т. д. После этого возможен подбор оптимальной стратегии сточки зрения максимизации объема продаж или прибыли.
ЛЕКЦИЯ №2
Однослойную сеть образуют нейроны, расположенные в одной плоскости (рис. 2.1). Каждый i-й нейрон имеет множество связей с весами wij, по которым поступают входные сигналы xj , а также поляризацию (связь с весом wi0, по которой поступает единичный сигнал). Значения весов подбираются в процессе обучения сети, состоящем в приближении выходных сигналов уi к ожидаемым значениям di. Мерой близости считается значение целевой функции. При использовании р обучающих векторов для обучения сети, включающей М выходных нейронов, целевую функцию можно определить как:
Выходные сигналы нейрона уi являются функциями весов сети wij значения которых уточняются в процессе обучения по критерию минимизации целевой функции.
Расположенные на одном уровне нейроны функционируют независимо друг от друга, поэтому возможности такой сети ограничиваются свойствами отдельных нейронов. Веса нейронов образуют определенное пространство решений. Выходной сигнал уi при фиксированных значениях весов зависит от расположения входного вектора х, который определяет гиперплоскость, разделяющую многомерное пространство на два подпространства. Поэтому задача классификации (приписывания значения 0 или 1 выходному сигналу нейрона) может быть решена с помощью единственного нейрона, если она относится к классу задач линейной сепарации (например, с применением логических функций AND или OR).
Рис. 2.1 Структура однослойной НС
Продемонстрируем ограниченность возможностей однослойных сетей на примере реализации двухвходовой логической функции исключающее или (XOR). Для упрощения будем использовать функцию активации в виде одноступенчатого порога.
Проблема функции ИСКЛЮЧАЮЩЕЕ ИЛИ
Один из самых пессимистических результатов Минского показывает, что однослойный персептрон не может воспроизвести такую простую функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рис. 2.10. Обозначим один вход через х, а другой через у, тогда все их возможные комбинации будут состоять из четырех точек на плоскости х-у, как показано на рис. 2.5. Например, точка х = 0 и у = 0 обозначена на рисунке как точка А. Табл. 2.1 показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены А0 и А1, единичный выход – В0 и В1.
Рис. 2.10. Однонейронная система
В сети на рис. 2.4 функция F является обычным порогом, так что OUT принимает значение ноль, когда NET меньше 0,5, и единица в случае, когда NET больше или равно 0,5. Нейрон выполняет следующее вычисление:
NET = xw1 + yw2 (2.1)
Никакая комбинация значений двух весов не может дать соотношения между входом и выходом, задаваемого табл. 2.1. Чтобы понять это ограничение, зафиксируем NET на величине порога 0,5. Сеть в этом случае описывается уравнением (2.2). Это уравнение линейно по х и у, т. е. все значения по х и у, удовлетворяющие этому уравнению, будут лежать на некоторой прямой в плоскости х-у.
xw1 + yw2 = 0,5 (2.2)
Таблица 2.1. Таблица истинности для функции ИСКЛЮЧАЮЩЕЕ ИЛИ
Точки
Значения х
Значения у
Требуемый выход
A0
B0
1
1
B1
1
1
A1
1
1
Любые входные значения для х и у на этой линии будут давать пороговое значение 0,5 для NET. Входные значения с одной стороны прямой обеспечат значения NET больше порога, следовательно, OUT=1. Входные значения по другую сторону прямой обеспечат значения NET меньше порогового значения, делая OUT равным 0. Изменения значений w1, w2 и порога будут менять наклон и положение прямой. Для того чтобы сеть реализовала функцию ИСКЛЮЧАЮЩЕЕ ИЛИ, заданную табл. 2.1, нужно расположить прямую так, чтобы точки А были с одной стороны прямой, а точки В – с другой. Попытавшись нарисовать такую прямую на рис. 2.11, убеждаемся, что это невозможно. Это означает, что какие бы значения ни приписывались весам и порогу, сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции ИСКЛЮЧАЮЩЕЕ ИЛИ.
Рис. 2.11. Проблема ИСКЛЮЧАЮЩЕЕ ИЛИ
Линейная разделимость
Как мы видели, невозможно нарисовать прямую линию, разделяющую плоскость х-у так, чтобы реализовывалась функция ИСКЛЮЧАЮЩЕЕ ИЛИ. К сожалению, этот пример не единственный. Имеется обширный класс функций, не реализуемых однослойной сетью. Об этих функциях говорят, что они являются линейно неразделимыми, и они накладывают определенные ограничения на возможности однослойных сетей.
Линейная разделимость ограничивает однослойные сети задачами классификации, в которых множества точек (соответствующих входным значениям) могут быть разделены геометрически. Для нашего случая с двумя входами разделитель является прямой линией. В случае трех входов разделение осуществляется плоскостью, рассекающей трехмерное пространство. Для четырех или более входов визуализация невозможна и необходимо мысленно представить n-мерное пространство, рассекаемое «гиперплоскостью» – геометрическим объектом, который рассекает пространство четырех или большего числа измерений.
Несмотря на то, что однослойная сеть имеет небольшое практическое значение, ее продолжают использовать там, где для решения поставленной задачи достаточно и одного слоя нейронов.
Многослойная НС
Многослойная сеть состоит из нейронов, расположенных на разных уровнях, причем, помимо входного и выходного слоев, имеется еще, как минимум, один скрытый слой.
На рис. 2.2 представлена многослойная НС.
Рис 2.2. Многослойная нейронная сеть
Входной слой (input layer) нейронных элементов выполняет распределительные функции. Выходной слой (output layer) нейронов служит для обработки информации от предыдущих слоев и выдачи результатов. Слои нейронных элементов, расположенные между входным и выходным слоями, называются скрытыми (hidden layers). Как и выходной слой, скрытые слои являются обрабатывающими. Выход каждого нейронного элемента предыдущего слоя нейронной сети соединен синаптическими связями со всеми входами нейронных элементов следующего слоя. Таким образом, топология многослойной нейронной сети является однородной и регулярной.
В качестве функции активации нейронных элементов обычно используется гиперболический тангенс или сигмоидная функция. Пусть W(i) - матрица весовых коэффициентов i-го слоя многослойной сети. Тогда для нейронной сети с двумя скрытыми слоями выходные значения
где Х = (х1,х2,...,хn)- вектор-строка входных сигналов; F- оператор нелинейного преобразования.
Общее число синаптических связей многослойной нейронной сети
где р - общее количество слоев нейронной сети; k(i) - количество нейронных элементов в i-м слое.
Число слоев в многослойной нейронной сети характеризует, каким образом входное пространство может быть разбито на подпространства меньшей размерности. Так, двухслойная нейронная сеть с одним слоем нелинейных нейронов разбивает входное пространство образов на классы при помощи гиперплоскости. Трехслойная нейронная сеть, где в качестве двух последних слоев используются нейронные элементы с нелинейной функцией активации, позволяет формировать любые выпуклые области в пространстве решений [37, 38]. Четырехслойная нейронная сеть, которая имеет три нелинейных слоя, дает возможность получать область решений любой формы и сложности, в том числе и невыпуклой.
Рекуррентные (Recurrent networks) [48-52] и рециркуляционные (Recirculation networks) нейронные сеги [45, 53-61] характеризуются как прямым (feed forward) так и обратным (feed back) распространением информации. При этом обратное распространение информации осуществляется по-разному для таких нейронных сетей. В рециркуляционных нейронных сетях распространение информации происходит по двунаправленным связям, которые имеют в различных направлениях разные весовые коэффициенты. При обратном распространении сигналов в таких сетях осуществляется их преобразование с целью восстановления входного образа. При прямом распространении сигналов происходит сжатие входных данных. В результате осуществляется рециркуляция информации. Обучение рециркуляционных нейронных сетей производится без учителя. Рекуррентные нейронные сети характеризуются обучением с учителем и обратными связями, по которым передаются результаты обработки сетью данных на предыдущем этапе. В результате этого входом рекуррентной нейронной сети в каждый фиксированный момент времени является вектор входных данных и результаты обработки информации сетью на предыдущем этапе. Обучение таких сетей базируется на алгоритме обратного распространения ошибки. Это дало повод, несмотря на различия между рекуррентными и рециркуляционными нейронными сетями, отнести их к одному классу.
Рекуррентные нейронные сети
Рекуррентными нейронными сетями называются такие сети, в которых выходы нейронных элементов последующих слоев имеют синаптические соединения с нейронами предшествующих слоев. Это приводит к возможности учета результатов преобразования нейронной сетью информации на предыдущем этапе для обработки входного вектора на следующем этапе функционирования сети. Рекуррентные сети могут использоваться для решения задач прогнозирования и управления.
Архитектура рекуррентных сетей
Существуют различные варианты архитектур рекуррентных нейронных сетей.
Сеть Джордана: В 1986 г. Джордан (Jordan) предложил рекуррентную сеть (рис.2.3), в которой Выходы нейронных элементов последнего слоя соединены посредством специальных входных нейронов с нейронами промежуточного слоя. Такие входные нейронные элементы называются контекстными нейронами (context units). Они распределяют выходные данные нейронной сети на нейронные элементы промежуточного слоя.
Рис. 2.3. Архитектура рекуррентной нейронной сети с обратными связями от нейронов выходного слоя.
Число контекстных нейронов равняется числу выходных нейронных элементов рекуррентной сети. В качестве выходного слоя таких сетей используются нейронные элементы с линейной функцией активации. Тогда выходное значение j-го нейронного элемента последнего слоя определяется по формуле
где vij - весовой коэффициент между i-м нейроном промежуточного и j-м нейроном выходного слоев; Pi(t)- выходное значение i-го нейрона промежуточного слоя; tj- пороговое значение j-го нейрона выходного слоя. Взвешенная сумма i-ro нейронного элемента промежуточного слоя определяется следующим образом:
где wij - весовой коэффициент между j-м нейроном входного и i-м нейроном промежуточного слоев; р - число нейронов выходного слоя; wki— весовой коэффициент между k-м контекстным нейроном и i-м нейроном промежуточного слоя; T - пороговое значение i-го нейрона промежуточного слоя; n - размерность входного вектора.
Тогда выходное значение i-го нейрона скрытого слоя
В качестве функции нелинейного преобразования F обычно используется гиперболический тангенс или сигмоидная функция.
Другой вариант рекуррентной нейронной сети предложил Элман (Elman)
Сеть Элмана: В1990 году. В такой сети выходы нейронных элементов промежуточного слоя соединяются с контекстными нейронами входного слоя (рис.2.4).
Рис. 2.4. Архитектура рекуррентной сети с обратными связями от нейронов скрытого слоя
Тогда взвешенная сумма i-го нейронного элемента промежуточного слоя
где т - число нейронов промежуточного слоя; pk (t-1) - выходное значение k-го нейрона промежуточного слоя.
Для построения рекуррентных нейронных сетей можно использовать также два приведенных выше подхода. В этом случае существуют обратные связи к контекстным нейронам, как от нейронных элементов выходного, так и промежуточного слоев (рис.2.5).
Рис. 2.5. Архитектура рекуррентной сети с обратными связями от нейронов скрытого и выходного слоев
Число контекстных нейронов входного слоя равняется общему числу нейронов промежуточного и выходного слоев. Тогда
где р - число нейронов выходного слоя.
Для обучения рекуррентных нейронных сетей применяется алгоритм обратного распространения ошибки.
Алгоритм обучения рекуррентной нейронной сети в общем случае состоит из следующих шагов:
1. В начальный момент времени t = 1 все контекстные нейроны устанавливаются в нулевое состояние - выходные значения приравниваются нулю.
2. Входной образ подается на сеть и происходит прямое распространение его в нейронной сети.
3. В соответствии с алгоритмом обратного распространения ошибки модифицируются весовые коэффициенты и пороговые значения нейронных элементов.
4. Устанавливается t = t +1l и осуществляется переход к шагу 2. Обучение рекуррентной сети производится до тех пор, пока суммарная среднеквадратичная ошибка сети не станет меньше заданной.
Рециркуляционные нейронные сети
Рециркуляционные сети характеризуются как прямым Y = f(X), так и обратным X = f(У) преобразованием информации. Задача такого преобразования - достижение наилучшего автопрогноза или самовоспроизводимости вектора X. Рециркуляционные нейронные сети применяются для сжатия (прямое преобразование) и восстановления исходной (обратное преобразование) информации. Такие сети являются самоорганизующимися в процессе работы, где обучение производится без учителя. Теоретической основой рециркуляционных нейронных сетей служит анализ главных компонент (principial component analysis).
Архитектура рециркуляционной нейронной сети
Рециркуляционная нейронная сеть представляет собой совокупность двух слоев нейронных элементов, которые соединены между собой двунаправленными связями (рис.2.6).
Рис. 2.6. Архитектура рециркуляционной нейронной сети
Каждый из слоев нейронных элементов может использоваться в качестве входного или выходного. Если слой нейронных элементов служит в качестве входного, то он выполняет распределительные функции. Иначе нейронные элементы слоя являются обрабатывающими. Весовые коэффициенты, соответствующие прямым и обратным связям, характеризуются матрицей весовых коэффициентов W и W'. Для наглядности рециркуляционную сеть можно представить в развернутом виде, как показано на рис.2.7.
Такое представление сети является эквивалентным и характеризует полный цикл преобразования информации. При этом промежуточный слой нейронных элементов производит кодирование (сжатие) входных данных X, а последний слой - восстановление сжатой информации Y. Слой нейронной сети, соответствующий матрице связи W, назовем прямым, а соответствующий матрице связей W' - обратным.
Рис. 2.7. Эквивалентное представление рециркуляционной сети
Сжатие данных осуществляется при прямом преобразовании информации в соответствии с выражением
Y = F(WTX).
Восстановление или реконструкция данных происходит при обратном преобразовании информации:
X = F(W'Y)
В качестве функции активации нейронных элементов F может использоваться как линейная, так и нелинейная функции. При использовании линейной функции активации
Y = WTX;
X = W'Y.
Наилучший автопрогноз достигается тогда, когда матрица весовых коэффициентов сформирована в соответствии с методом главных компонент. Линейные рециркуляционные сети, в которых весовые коэффициенты определяются в соответствии с методом главных компонент, называются РСА-сетями.
РЕЛАКСАЦИОННЫЕ НЕЙРОННЫЕ СЕТИ
Релаксационные нейронные сети характеризуются прямым и обратным распространением информации между слоями нейронной сети. В основе функционирования лежит итеративный принцип работы. На каждой итерации процесса происходит обработка данных, полученных на предыдущем шаге. Такая циркуляция информации продолжается до тех пор, пока не установится состояние равновесия. При этом состояния нейронных элементов перестают изменяться и характеризуются стационарными значениями. Для анализа устойчивости релаксационных нейронных сетей используются функции Ляпунова. Такие сети применяются в качестве ассоциативной памяти и для решения комбинаторных задач оптимизации. К релаксационным относятся нейронные сети Хопфилда, Хэмминга, двунаправленная ассоциативная память и машина Больцмана.
Нейронные сети Хопфилда
Нейронная сеть Хопфилда реализует существенное свойство автоассоциативной памяти - восстановление по искаженному (зашумленному) образу ближайшего к нему эталонного. Входной вектор используется как начальное состояние сети, и далее сеть эволюционирует согласно своей динамике. Причем любой пример, находящийся в области притяжения хранимого образца, может быть использован как указатель для его восстановления. Выходной (восстановленный) образец устанавливается, когда сеть достигает равновесия.
Обучение сети Хопфилда производится по правилу Хебба, методу проекций и D - проекций.
Структура сети Хопфилда (рис 2.8) состоит из одного слоя нейронов, число которых определяет число входов и выходов сети. Выход каждого нейрона соединен с входами всех остальных нейронов. Выходные сигналы нейронов являются одновременно входными сигналами сети: Xi(k)=Yi(k-1)
Основные зависимости, определяющие сеть Хопфилда, можно представить в виде
с начальным условием yi(0) = xj. В процессе функционирования сети Хопфилда можно выделить два режима: обучения и классификации. В режиме обучения на основе известных обучающих выборок х подбираются весовые коэффициенты wij. В режиме классификации при зафиксированных значениях весов и вводе конкретного начального состояния нейронов у(0) = х возникает переходный процесс, протекающий в соответствии с выражением (Формула выше) и завершающийся в одном из локальных минимумов, для которого y(k)=y(k-l).
Для безошибочной работы сети Хопфилда число запоминаемых эталонов N не должно превышать 0,15n(n-число нейронов).
Рис. 2.8. Структура нейронной сети Хопфилда
Проблема устойчивости сети Хопфилда была решена после того, как Кохеном и Гроссбергом была доказана теорема, определяющая достаточное условие устойчивости сетей с обратными связями, а именно, сеть с обратными связями является устойчивой, если матрица ее весов симметрична (Wij = Wji) и имеет нули на главной диагонали (Wii = 0).
Динамическое изменение состояний сети может быть выполнено, двумя способами: синхронно и асинхронно. В первом случае все элементы модифицируются одновременно на каждом временном шаге, во втором - в каждый момент времени выбирается и подвергается обработке один элемент. Этот элемент может выбираться случайно.
Параллельная динамика характеризуется синхронным функционированием нейронных элементов сети. При этом за один такт работы сети все нейроны одновременно изменяют свое состояние:
где i = l,n.
Последовательная динамика характеризуется асинхронным процессом работы нейронной сети. В этом случае за один такт работы нейронной сети изменяется состояние только одного нейронного элемента:
Нейронная сеть Хэмминга
Нейронная сеть Хэмминга была предложена в 1987 г. Р.Липпманом. Она представляет собой релаксационную многослойную сеть с обратными связями между отдельными слоями. Сеть Хэмминга применяется в качестве ассоциативной памяти. При распознавании образов она использует в качестве меры близости расстояние Хэмминга, между тестовым вектором, подаваемым на вход сети, и векторами обучающих выборок, закодированными в структуре сети. Весовые коэффициенты и пороги сети Хэмминга определяются из условия задачи, поэтому такая сеть является нейронной сетью с фиксированными связями.
Архитектура сети
Сеть Хэмминга является трехслойной сетью, состоящей из различных классов нейронных сетей: сети с прямыми связями, сети Хопфилда и слоя выходных нейронов (рис.2.9).
Рис.2.9. Архитектура нейронной сети Хэмминга
Сеть с прямыми связями состоит из п входных распределительных и т выходных нейронных элементов. Она вычисляет меру подобия между входным и эталонными образами, хранящимися в ней. В качестве меры подобия используется число одинаковых разрядов между входным и эталонным образом. Тогда выходное значение i-гo нейрона второго слоя представляет собой меру подобия Р, между входным и i-м эталонным образом:
Pi=n-di,
где d, — расстояние Хэмминга между входным и i-м эталонным паттерном.
В процессе функционирования сети можно выделить три фазы. В первой на ее вход подается N-элементный вектор X. После предъявления этого вектора на выходах нейронов первого слоя генерируются сигналы, задающие начальные состояния нейронов второго слоя.
Во второй фазе инициировавшие слой Хопфилда сигналы удаляются, и из сформированного ими начального состояния запускается итерационный процесс внутри этого слоя. Итерационный процесс завершается в момент, когда все нейроны, кроме одного (победителя с выходным сигналом, равным 1), перейдут в нулевое состояние. Нейрон-победитель с ненулевым выходным сигналом становится представителем класса данных, к которому принадлежит входной вектор.
В третьей фазе этот же нейрон посредством весов, связывающих его с нейронами выходного слоя, формирует на выходе сети реакцию в виде вектора у, соответствующий возбуждающему вектору х.
Сеть Хопфилда используется для разрешения возникающих конфликтов, когда входной паттерн является подобным нескольким эталонным образам, хранящимся в сети. При этом на выходе сети остается активным только один нейрон-победитель. Если их несколько, то выбор одного из них происходит случайным образом.
Выходной слой нейронной сети состоит из m нейронов, каждый из которых имеет пороговую функцию активации. Если входной образ не совпадает с эталонным, то на выходе сети Хэмминга будет формироваться такой эталонный паттерн, который имеет минимальное расстояние Хэмминга по отношению к выходному образу.
ЛЕКЦИЯ №3
В процессе функционирования нейронная сеть формирует выходной сигнал У в соответствии с входным сигналом X, реализуя некоторую функцию g: Y = g(Х). Если архитектура сети задана, то вид функции g определяется значениями синаптических весов и смещений сети. Обозначим через G множество всех возможных функций g, соответствующих заданной архитектуре сети.
Пусть решение некоторой задачи есть функция r. Y = r(Х), заданная парами входных-выходных данных (X1, У1), ..., (Уk, Уk), для которых Уk= r(Xk), k= 1...N. Е- функция ошибки (функционал качества), показывающая для каждой из функций g степень близости к r.
Обучить нейронную сеть заданной архитектуры - это значит построить (синтезировать) функцию g € G, подобрав параметры нейронов (синаптические веса и смещения) таким образом, чтобы функционал качества обращался в оптимум для всех пар (Xk, Уk).
Функция Е может иметь произвольный вид. Если выбраны множество обучающих примеров и способ вычисления функции ошибки, обучение нейронной сети превращается в задачу многомерной оптимизации, для решения которой могут быть использованы следующие методы:
• локальной оптимизации с вычислением частных производных первого порядка;
• локальной оптимизации с вычислением частных производных первого и второго порядка;
• стохастической оптимизации;
• глобальной оптимизации.
К первой группе относятся: градиентный метод (наискорейшего спуска); методы с одномерной и двумерной оптимизацией целевой функции в направлении антиградиента; метод сопряженных градиентов; методы, учитывающие направление антиградиента на нескольких шагах алгоритма.
Ко второй группе относятся: метод Ньютона, методы оптимизации с разреженными матрицами Гессе, квазиньютоновские методы, метод Гаусса-Ньютона, метод Левенберга-Маркардта.
Стохастическими методами являются: поиск в случайном направлении, имитация отжига, метод Монте-Карло (численный метод статистических испытаний).
Задачи глобальной оптимизации решаются с помощью перебора значений переменных, от которых зависит целевая функция.
Для сравнения методов обучения нейронных сетей необходимо использовать два критерия:
• количество шагов алгоритма для получения решения;
• количество дополнительных переменных для организации вычислительного процесса.
Обучение персептрона
Первое систематическое изучение искусственных нейронных сетей было предпринято Маккалокком и Питтсом в 1943 г. [I]. Позднее в работе [3] они исследовали сетевые парадигмы для распознавания изображений, подвергаемых сдвигам и поворотам. Простая нейронная модель, показанная на рис. 2.1, использовалась в большей части их работы.
Рис. 2.1. Персептронный нейрон
Простая нейронная модель, показанная на рис. 2.1, использовалась в большей части их работы. Элемент Σ умножает каждый вход х на вес w и суммирует взвешенные входы. Если эта сумма больше заданного порогового значения, выход равен единице, в противном случае – нулю. Эти системы (и множество им подобных) получили название персептронов. Они состоят из одного слоя искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов (см. рис. 2.2), хотя в принципе описываются и более сложные системы.
Персептрон обучают, подавая множество образов по одному на его вход и подстраивая веса до тех пор, пока для всех образов не будет достигнут требуемый выход.
Алгоритм обучения может быть представлен следующим образом:
1. Подать входной образ и вычислить Y.
2 а. Если выход правильный, то перейти на шаг 1;
б. Если выход неправильный и равен нулю, то добавить все входы к соответствующим им весам; или
в. Если выход неправильный и равен единице, то вычесть каждый вход из соответствующего ему веса.
3. Перейти на шаг 1.
За конечное число шагов сеть научится разделять входные вектора на два класса при условии, что множество цифр линейно разделимо. Это значит, что для одних образов выход будет больше порога, а для других – меньше. Отметим, что это обучение глобально, т. е. сеть обучается на всем множестве образов. Возникает вопрос о том, как это множество должно предъявляться, чтобы минимизировать время обучения. Должны ли элементы множества предъявляться последовательно друг за другом или их следует выбирать случайно?
Дельта-правило
Важное обобщение алгоритма обучения персептрона, называемое дельта-правилом, переносит этот метод на непрерывные входы и выходы. Шаг 2 алгоритма обучения персептрона может быть сформулирован в обобщенной форме с помощью введения величины δ, которая равна разности между требуемым или целевым выходом T и реальным выходом Y
δ = (T - Y). (2.3)
Случай, когда δ=0, соответствует шагу 2а, когда выход правилен и в сети ничего не изменяется. Шаг 2б соответствует случаю δ > 0, а шаг 2в случаю δ < 0.
В любом из этих случаев персептронный алгоритм обучения сохраняется, если δ умножается на величину каждого входа хi и это произведение добавляется к соответствующему весу. С целью обобщения вводится коэффициент «скорости обучения» η), который умножается на δхi, что позволяет управлять средней величиной изменения весов.
В алгебраической форме записи
Δi = ηδxi, (2.4)
w(n+1) = w(n) + Δi, (2.5)
где Δi – коррекция, связанная с i-м входом хi; wi(n+1) – значение веса i после коррекции; wi{n) -значение веса i до коррекции.
Дельта-правило модифицирует веса в соответствии с требуемым и действительным значениями выхода каждой полярности как для непрерывных, так и для бинарных входов и выходов. Эти свойства открыли множество новых приложений.
Обучение без учителя
Правило обучения Хебба.(+Кохонена)
Согласно этому правилу, обучение происходит в результате усиления силы связи (синаптического веса) между одновременно активными нейронами. Исходя из этого, часто используемые в сети связи усиливаются, что объясняет феномен обучения путем повторения и привыкания.
Пусть имеются два нейронных элемента i и j, между которыми существует сила связи, равная wij (рис. 3.1):
Рис. 3.1 Взаимосвязь двух нейронов
Тогда правило обучения Хебба можно записать следующим образом:
wij (t + 1) = wij (t) + xiyj
где t - время; х, и у,- - соответственно выходное значение i-го и j-го нейронов.
В начальный момент времени предполагается, что wij (t=0)=0, для всех i и j.
Рассмотрим применение правила Хебба для простейшей нейронной сети, состоящей из двух входных и одного выходного нейронов (см.рис. 3.2). В такой сети порог выходного нейронного элемента является скрытым в этом элементе. При операциях с нейронными сетями порог нейронного элемента можно вынести за его пределы и изобразить как синаптическую связь (рис. 3.2) с весовым коэффициентом, равным значению Т .
Рис. 3.2. Представление порогового значения в виде синаптической связи
Так как входное значение, подаваемое на дополнительный нейрон, равняется -1, то взвешенная сумма
S=w11x1+w21x2-T
Обучение нейронной сети происходит путем настройки весовых коэффициентов и порогов нейронных элементов. Поэтому рассмотренное выше преобразование позволяет настраивать весовые коэффициенты и пороги сети как единое целое.
Правило Хебба для нейронной сети, изображенной на рис. 3.2, можно представить в виде выражений
w11 (t + 1) = w11 (t) + x1y1
w21 (t + 1) = w21 (t) + x2y1
T(t+1)=T(t)-y1
Аналогичным образом правило Хебба записывается для нейронной сети большей размерности.
Рассмотрим матричную формулировку правила Хебба. Пусть L -число входных образов, подаваемых на нейронную сеть, n - размерность одного образа. Тогда совокупность входных образов можно представить в виде матрицы
где соответствует L -му входному образу.
Весовые коэффициенты нейронной сети, можно также представить в виде матрицы. Тогда матрица взвешенной суммы
S = XW
а матрица выходных значений нейронной сети
Y = F(S)
Правило Хебба в матричной форме можно представить в следующем виде:
W = XTY.
Правило Хебба может использоваться как при обучении с учителем, так и без него. Если в качестве выходных значений у нейронной сети используются эталонные значения, то это правило будет соответствовать обучению с учителем. При использовании в качестве y реальных значений, которые получаются при подаче на вход сети входных образов, правило Хебба соответствует обучению без учителя.
В последнем случае весовые коэффициенты нейронной сети в начальный момент времени инициализируются случайным образом. Обучение с использованием правила Хебба заканчивается после подачи всех имеющихся входных образов на нейронную сеть. В общем случае правило Хебба не гарантирует сходимости процедуры обучения нейронной сети.
Дельта-правило
где xi – выход предыдущего i-ого нейрона,
желаемая и имеющаяся реакции j-ого нейрона соответственно,
коэффициент, влияющий на скорость обучения.
Расширенное дельта-правило
где
– производная активационной функции, используемая в j-м нейроне; индекс j используется для обозначения всех нейронов последующих слоев, связанных с нейроном
Лекция №4
Метод обратного распространения сигнала ошибки
Алгоритм обратного распространения (backpropagation algorithm) представляет собой расширение концепции персептрона или АДАЛИНА [15] на многослойные нейронные сети. В алгоритме обратного распространения используется не менее трех слоев обрабатывающих элементов (нейронов). Архитектура типичной нейронной сети для алгоритма обратного распространения показана на рисунке 2.2.1. Левый слой элементов – это входной слой, на который подаются входные данные. Правый слой – выходной. Слои на рисунке 2.2.1 являются полностью взаимосвязанными; это значит, что каждый обрабатывающий элемент связан с каждым элементом в предыдущем и следующих слоях. При этом элементы не связаны с другими элементами того же слоя. Следует обратить внимание на то, что сети обратного распространения не обязательно являются полностью связанными, а количество скрытых слоев может быть любым.
Обозначения
Для простоты будем рассматривать трехслойные нейронные сети, аналогичной показанной на рис. 2.2.1, где Ok, Oj и Oi - выходные величины выходного, скрытого и входного слоев соответственно. Вес связи между j-м элементом скрытого слоя и k-м элементом выходного слоя будем обозначать как Wkj. Аналогично вес связи между i-м элементом входного слоя и j-м элементом скрытого слоя будем обозначать как Wji. Таким образом, на выходном слое
Ok = f(netk), (2.2.1)
netk = ∑ wkj Oj + θk, (2.2.2)
i
а на скрытом слое
Oj = f(netj), (2.2.3)
netj = ∑ wji Oi + θj, (2.2.4)
i
где
f(x) = , (2.2.5)
Рис. 2.2.1. Многослойный персептрон
Процедура обучения включает представление набора пар входных и выходных образов. Сначала нейронная сеть на основе входного образа создает собственный выходной образ, а затем сравнивает его с желаемым (целевым) выходным образом. Если различий между фактическим и целевым образом нет, то обучение не происходит. В противном случае веса связей изменяются таким образом, чтобы различие уменьшилось. Мерой различия, используемой в рассматриваемом примере, является функция квадрата ошибки Е, задаваемая следующим образом:
E = ∑ Ep, (2.2.6)
i
Ep = ∑ (τpk – Opk ), (2.2.7)
k
где – τpk желаемый выход для k-й компоненты р-го выходного образа и Оpk – соответствующий фактический выход. Таким образом, Ер – мера ошибки вход/выход для р-го образа, а Е – общая мера ошибки.
Вывод алгоритма обратного распространения
Вывод строится на основе одного из градиентных методов, например метода наискорейшего спуска. Здесь показан процесс адаптации весов связей между слоями в многослойной нейронной сети. Зададим сначала функцию ошибки и критерий адаптации весов, пропорциональный отношению производной меры ошибки к каждому из весов. Получим сначала алгоритм обратного распространения для конкретного образа р, т.е. найдём минимизирующую последовательность ЕР. Для простоты будем опускать индекс p.
Тогда
Ep = ∑ (τk – Ok )2 (2.2.8)
k
Правило для выходного слоя
В соответствии с методом наискорейшего спуска
Δ wkj = - ,
где Δ wkj - необходимое изменение веса связи wkj, т.е.
Δ wkj = wkj (new) - wkj (old). (2.2.9)
Такое изменение показано на рис. 2.2.2. Следует обратить внимание, что метод наискорейшего спуска может сходиться к локальному минимуму, как показано на рис. 2.2.3. Поэтому возьмем
Δ wkj = - η , η > 0, (2.2.10)
где η - скорость обучения.
Введём величину обобщения сигнала ошибки δk, задаваемую выражением
δk = - . (2.2.11)
Затем, используя известное цепное правило, получим:
= = - δk . (2.2.12)
Это означает, что выражение может быть представлено как произведение двух членов. Один из них представляет собой изменение ошибки в зависимости от изменения входного сигнала, а второй- влияние конкретного веса связи на входной сигнал сети. Из выражения (2.2.2) получим:
= =
Рис. 2.2.2 Принцип работы метода наискорейшего пуска
Откуда
wkj = η δk . (2.2.13)
Для вычисления множителя dk применим цепное правило.
Используя его, получим:
δk = - = - . (2.2.14)
Таким образом, выражение δk представляет собой произведение двух членов. Первый из них отражает изменение ошибки по отношению к выходу элемента, а второй – изменение выхода по отношению к изменению входа сети. Из уравнения (2.2.8) получим:
= - (τk - ) , (2.2.15)
а из выражения (2.2.1)
= () , (2.2.16)
где () - производная от f() по .
из выражения (2.2.5) получим:
() = = (1 - ) = f(x)(1-f(x)) , (2.2.17)
откуда
= (1 - ). (2.2.18)
Таким образом, имеем:
Δ wkj = ηδk , (2.2.19)
δk = (1 - )( (τk - )).
Правило для скрытого слоя
Как показано в предыдущем разделе, правило изменения весов связей для скрытого слоя в соответствии с методом наискорейшего спуска имеет вид:
Δ wji = - η , (2.2.20)
Используя цепное правило, как и раньше, получим:
= , (2.2.21)
Зададим множитель δj следующей формулой:
δj = . (2.2.22)
Из уравнения (2.2.4) получим:
= Oi .,
и, таким образом,
Δ wji = ηδj. (2.2.23)
Используя цепное правило, получим:
δj = = -∑. (2.2.24)
i
Заметим, что изменение величины netj влияет на все выходы Оk, поэтому в приведённом выше цепном правиле требуется суммирование по k.
Используя выражения (2.2.11), (2.2.2), (2.2.3) и (2.2.5), получим
δj = ∑ δk wkj (netj) = (1 - ) ∑ δk wkj . (2.2.25)
k k
Таким образом, получаем следующий алгоритм изменения весов связей:
Δ wkj = ηδk , (2.2.26)
Δ wji = ηδj , (2.2.27)
δk = (1 - )( (τk - )) , (2.2.28)
δj = (1 - ) ∑ δk wkj . (2.2.29)
k
Чтобы повысить скорость обучения, не вызывая при этом колебаний в выходном сигнале, изменим уравнения (2.2.6) и (2.2.7), включив в них момент времени. Это можно сделать по следующему правилу:
Δ wkj (t+1) = ηδk + α Δ wkj (t) , (2.2.30)
Δ wj i (t+1) = ηδj + α Δ wji (t) . (2.2.31)
где t- время представления, h- скорость обучения, a- константа, определяющая влияние предыдущего изменения весов на текущее направление движения в пространстве весов связей.
Рассматривая эти выражения с выражениями:
=∑ или =∑ , (2.2.32)
p p
приходим к выводу, что изменение весов связей после одного полного цикла предъявления образов пропорционально вышеприведённой производной. Это означает, что алгоритм обратного распространения, действительно, обеспечивает наискорейшее уменьшение величины Е. Конечно, данный вывод является строгим только при условии, что величины весов связей не изменяются во время цикла.
Алгоритмы обратного распространения:
порядок реализации
Алгоритм обратного распространения может быть предъявлен в виде следующих шагов:
Шаг 1. Присвоить начальные значения величинам Wji , Wkj , θk, θj, η и α
Шаг 2. Подать не нейронную сеть входной сигнал. Задать соответствующий ему желаемый выход τk, вычислить Ok, Oj и δk по формуле:
δk = (1 - )( (τk - )). (2.2.33)
Шаг 3. Изменить веса связей на величину:
Δ wkj (t+1) = ηδk + α Δ wkj (t). (2.2.34)
Шаг 4. Вычислить δj по формуле:
δj = (1 - ) ∑ δk wkj . (2.2.35)
k
Шаг 5. Изменить веса связей на величину:
Δ wj i (t+1) = ηδj + α Δ wji (t) (2.2.36)
Шаг 6. Положить t→t+1 и перейти к шагу 2.
Обсуждение алгоритма обратного распространения
Алгоритм обратного распространения, полученный на основе градиентного метода наискорейшего спуска, предназначен для поиска минимума ошибки, что приводит, однако, к поиску локального минимума или точки перегиба (плато), как показано на рис. 2.2.3. В идеальном случае должен отыскиваться глобальный минимум, представляющий собой нижнюю точку на всей области определения. Так как локальный минимум окружен более высокими точками, стандартный алгоритм обратного распространения обычно не пропускает локальных минимумов.
Вид локального минимума не всегда представляет существенный интерес. Можно ожидать, что в ходе обучения в соответствии с алгоритмом обратного распространения ошибка сети будет сходиться к приемлемому значению, если обучающие образцы четко различимы. Чтобы избежать «ловушек" па локальных минимумах, можно изменять параметры обучения, количество скрытых слоев, начальные значения весов связей. Обычно эти методы разрабатываются так, чтобы попытаться изменить сценарий перемещения по участку, содержащему локальные минимумы и максимумы. Для поиска достаточно приемлемых значений параметров алгоритма обратного распространения в последнее время используется генетический алгоритм.
Для вывода алгоритма обратного распространения, представленного в разделе 2.2.2, использована сигмоидная функция (2.2.5). Могут использоваться и другие функции активации. Если, например, использовать функцию вида:
f(x) = , (2.2.37)
то получим
f’(x) = f(x) (1 - f(x)).
Таким образом, потребовалось только заменить выражения, δk и δj Таким образом, потребовалось только заменить выражения, полученные по формулам (2.2.33) н (2.2.35), на выражения и соответственно. Если выбрать меньшее значение Т, то δk и δj увеличатся, и в результате скорость изменения весов связей также увеличится. Однако если выбрать большее значение Т, то δk и δj уменьшится, и в результате скорость изменения весов связей также уменьшится. Таким образом, изменяя величину Т в процессе обучения, можно управлять скоростью сходимости алгоритма обратного распространения.
Следует отметить, что в практической ситуации обучения, когда желаемые выходы являются бинарными (т.е. представляют собой значения из множества {0,1}), система достигает этих значений выхода только при условии, что отношение х/Т стремится к бесконечности. Таким образом, если выбрать меньшее значение Т, то сходимость выхода сети будет иметь тенденцию к ускорению.
Рис.2.2.3 Локальный минимум в алгоритме обратного распространения
При Т = 1 производные Ok(l-Ok) и Oj(l-Oj) достигают максимальных значений при Ok = Oj = 0.5. В связи с тем, что 0 ≤ Ok, Oj ≤ 1, минимумы производных достигаются при приближении этих величии к нулевому или единичному значениям. Так как величина изменения конкретного веса связи пропорциональна производной, эти веса будут изменяться в основном для этих значений.
Другое свойство функции активации состоит в том, что нейронная сеть не может достигать предельных значений 0 и 1, если веса связей не являются бесконечно большими. Таким образом, в практической ситуации обучения, когда желаемые выходы являются бинарными ({0,1}), нейронная сеть никогда не достигнет этих значений. Поэтому в качестве желаемых величин можно рассматривать 0,1 и 0,9, даже если в действительности желаемыми величинами являются 0 и 1.
Скорость обучения h — это константа, представляющая собой коэффициент пропорциональности между изменением веса связи и градиентом ошибки Е относительно веса. Чем больше данная константа, тем больше изменения в весах связей. Обычно скорость обучения выбирается как можно большей, но такой, чтобы не возникало осцилляции. Так как для исключения осцилляции в формулы был введен момент времени, требуется выбрать подходящее значение α. Введение момента времени «отфильтровывает» высокочастотные изменения поверхности ошибки в пространстве весов связей. Это полезно в случаях, когда пространство весов связей содержит длинные овраги с острыми искривлениями. В связи с тем, что такое искривление вызывает резкие расходящиеся колебания в долине, необходимо выбирать небольшой размер шага, для чего требуется небольшая скорость обучения. В книге Румельхарта (Rumelhart) и др. рекомендуется использовать величину α, приблизительно равную 0,9.
Другой проблемой является выбор количества скрытых узлов или скрытых слоев. Из регрессионного анализа известно, что если выбрать достаточно много видов описывающих переменных, то ошибка предсказания окажется небольшой. Пусть, например, для оценки линейной регрессии
yk = a0 + a1x1k +… apxpk + ep,
где k = 1.2.....N, выбрано р видов описывающих переменных
X1, X2,..Xp и одна целевая переменная у. Если выбрать N=p, то ошибки предсказания ек (к = 1, 2...р) могут быть равными нулю. Может показаться, что с помощью уравнения регрессии можно достичь точного предсказания. На практике это невозможно, так как N должно быть больше р. Поэтому необходимо отметить, что минимизация квадрата ошибки, достигаемая за счет увеличения количества нейронов, не означает построения хорошей нейронной сети. Если использовать большое количество нейронов, то нейронная сеть может с высокой точностью обучаться на «зашумленных» данных. В этом случае следует выбрать нейронную сеть
Рис. 2.2.4. Явление избыточного подбора
меньшего размера, даже если ошибка при этом оказывается не такой малой, как показано на рис. 2.2.4. На этом рисунке Ê представляет кривую ошибки, полученную при точном обучении на наблюдаемых данных, а Е° - кривую ошибки, обеспечивающую наименьшую ошибку предсказания для невидимых данных. Это явление называется проблемой избыточного подбора. Для ее решения предложено несколько методов, которые позволяют уменьшить размер нейронной сети.
Недостатки алгоритма обратного распространения ошибки
1. Блокировка сети – когда значение активационной функции равно единице. В этом случае для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, в формулу коррекции веса вводится коэффициент инерционности – α, позволяющий корректировать приращение веса на предыдущей итерации.
Введение инерционности позволяет преодолевать мелкие локальные минимумы.
2. Медленная сходимость процесса обучения. Сходимость ВР доказана для изменения весов с использованием бесконечно малых шагов.
Отсюда следует: а) бесконечно малые шаги дают бесконечно большое время обучения;
б) при конечных шагах сходимость алгоритма обучения не гарантируется.
К выбору шага: так как к моменту выбора шага для следующей итерации градиент ошибки в методе ВР уже вычислен, то можно интерпретировать функцию ошибки как функцию шага E(h) =>
1) сделать пробный шаг h, полученный на предыдущем шаге обучения и вычислить E(h).
2) Если E(h) > E(h0), то h=h/4 (наказание), переход к пункту 1.
3) Если E(h) 0, повторить L раз следующие действия:
• выбрать новое решение w' из окрестности w;
• рассчитать изменение целевой функции Δ = E(w') - E(w);
• если Δ <= 0, принять w = w'; в противном случае (при Δ > 0) принять, что w = w' с вероятностью ехр(-Δ /Т) путем генерации случайного числа R из интервала (0,1) с последующим сравнением его со значением ехр(-Δ /Т); если ехр(-Δ /Т) > R, принять новое решение w = w '; в противном случае проигнорировать его.
3. Уменьшить температуру (Т < rТ) с использованием коэффициента уменьшения r, выбираемого из интервала (0,1), и вернуться к п. 2.
4. После снижения температуры до нулевого значения провести обучение сети любым из представленных выше детерминированных методов, вплоть до достижения минимума целевой функции.
В описании алгоритма в качестве названия параметра, влияющего на вероятность увеличения значения целевой функции, используется выбранный его автором Н. Метрополисом термин "температура", хотя с формальной точки зрения приведенная модель оптимизации является только математической аналогией процесса отжига. Алгоритм имитации отжига выглядит концептуально несложным и логически обоснованным. В действительности приходится решать много фундаментальных проблем, которые влияют на его практическую применимость. Первой следует назвать проблему длительности имитации. Для повышения вероятности достижения глобального минимума длительность отжига (представляемая количеством циклов L, повторяемых при одном и том же значении температуры) должна быть достаточно большой, а коэффициент уменьшения температуры r - низким. Это увеличивает продолжительность процесса моделирования, что может дискредитировать его с позиций практической целесообразности.
Возникает проблема конкурентоспособности метода по сравнению, например, с методами локальной оптимизации в связи с возможностью многократного возобновления процесса из различных точек в пространстве параметров. При таком подходе грамотная статистическая обработка позволяет с высокой вероятностью и достаточно быстро локализовать зону глобального минимума и достичь его с применением технологии детерминированной оптимизации.
Большое влияние на эффективность метода имитации отжига оказывает выбор таких параметров, как начальная температура Tmах, коэффициент уменьшения температуры г и количество циклов L, выполняемых на каждом температурном уровне.
Максимальная температура подбирается по результатам многочисленных предварительных имитационных экспериментов. На их основе строится распределение вероятности стохастических изменений текущего решения при конкретных значениях температуры (зависимость А = f/(T)). В последующем, задаваясь процентным значением допустимости изменений в качестве порогового уровня, из сформированного распределения можно найти искомую начальную температуру. Главной проблемой остается определение порогового уровня, оптимального для каждой реализации процесса имитации отжига. Для отдельных практических задач этот уровень может иметь различные значения, однако общий диапазон остается неизменным. Как правило, начальная температура подбирается так, чтобы обеспечить реализацию порядка 50% последующих случайных изменений решения. Поэтому знание предварительного распределения вероятностей таких изменений позволяет получить приблизительную оценку начальной температуры.
Методики выбора как максимального количества циклов L для конкретных температурных уровней, так и определение значения коэффициента уменьшения температуры r не столь однозначны. При подборе этих параметров приходится учитывать динамику изменения величины целевой функции в зависимости от количества выполненных циклов обучения.
Большая часть вычислительных ресурсов расходуется на начальной стадии процесса, когда средняя скорость изменения целевой функции невелика и прогресс оптимизации минимален. Это "высокотемпературная" стадия имитационного процесса. Быстрее всего величина целевой функции уменьшается на средней стадии процесса при относительно небольшом количестве приходящихся на нее итераций. Завершающая стадия процесса имеет стабилизационный характер. На ней независимо от количества итераций прогресс оптимизации становится практически незаметным. Такое наблюдение позволяет существенно редуцировать начальную стадию отжига без снижения качества конечного результата. Модификации обычно подвергается количество циклов, выполняемых при высоких температурах, оно сокращается в случае, когда оказался выполненным весь запланированный объем изменений текущего решения. Такой подход позволяет сэкономить до 20% времени.
Исключение последней, плоской части характеристической кривой целевой функции также возможно. В соответствии с обычным критерием остановки алгоритма, если при нескольких последовательных снижениях температуры не регистрируется уменьшение величины целевой функции, то процесс останавливается, а наилучшее достигнутое решение считается глобальным минимумом. Дальнейшее уменьшение критерия остановки не рекомендуется, поскольку оно ведет к снижению вероятности достижения глобального минимума. В то же время заметное влияние на конечную стадию процесса оказывают коэффициент понижения температуры r и количество циклов L. Ее длительность удается сократить более частым изменением температуры при уменьшении количества циклов, но при сохранении неизменным общего объема итераций.
Еще одна проблема связана с определением длительности моделирования процесса отжига, пропорциональной суммарному количеству итераций. Поскольку отводимое для оптимизации время всегда ограничено, все его можно потратить либо на одну реализацию процесса с соответствующим удлинением циклов, либо сократить длительность всех циклов, а за счет этого выполнить несколько реализаций и принять в качестве результата наилучшее решение. В ходе различных компьютерных экспериментов установлено, что при малом лимите времени лучшие результаты дает единичная реализация. Если же моделирование может быть более длительным, статистически лучшие результаты достигаются при многократной реализации процесса имитации отжига, при больших (близких к 1) значениях коэффициента r.
Наибольшее ускорение процесса имитации отжига можно достичь путем замены случайных начальных значений весов w тщательно подобранными значениями с использованием любых доступных способов предварительной обработки исходных данных. В такой ситуации в зависимости от количества оптимизируемых весов и степени оптимальности начальных значений удается добиться даже многократного сокращения времени моделирования.
Таким образом, метод имитации отжига оказывается особенно удачным для полимодальных комбинаторных проблем с весьма большим количеством возможных решений, например, для машины Больцмана, в которой каждое состояние системы считается допустимым. При решении наиболее распространенных задач обучения многослойных нейронных сетей наилучшие результаты в общем случае достигаются применением стохастически управляемого метода повторных рестартов совместно с детерминированными алгоритмами, приведенными в предыдущем подразделе.
Генетические алгоритмы
Идея генетических алгоритмов была предложена Дж. Холландом в 70-х годах XX в., а их интенсивное развитие и практическая реализация для численных оптимизационных расчетов были инициированы Д. Гольдбергом. Эти алгоритмы имитируют процессы наследования свойств живыми организмами и генерируют последовательности новых векторов w, содержащие оптимизированные переменные: w = [w1, w2,...,wn]T. При этом выполняются операции трех видов: селекция, скрещивание и мутация.
Отдельные компоненты вектора w могут кодироваться в двоичной системе либо натуральными числами. При двоичном кодировании применяется обычный код, или код Грея. После соответствующего масштабирования отдельные биты представляют конкретные значения параметров, подлежащих оптимизации. Каждому вектору w сопоставляется определенное значение целевой функции. Генетические операции (селекция, скрещивание и мутация) выполняются для подбора таких значений переменных wi вектора w, при которых максимизируется величина функции приспособленности (англ.: fitness function). Функция приспособленности F(w) определяется через целевую функцию E(w) путем ее инвертирования (целевая функция минимизируется, а функция приспособленности максимизируется). Например, она может иметь вид: F(w) = -E(w).
На начальной стадии выполнения генетического алгоритма инициализируется определенная популяция хромосом (векторов w). Она формируется случайным образом, хотя применяются также и самонаводящиеся способы (если их можно определить заранее). Размер популяции, как правило, пропорционален количеству оптимизируемых параметров. Слишком малая популяция хромосом приводит к замыканию в неглубоких локальных минимумах. Слишком большое их количество чрезмерно удлиняет вычислительную процедуру и также может не привести к точке глобального минимума. При случайном выборе векторов w, составляющих исходную популяцию хромосом, они статистически независимы и представляют собой начальное погружение в пространство параметров. Одна часть этих хромосом лучше "приспособлена к существованию" (у них большие значения функции соответствия и меньшие - целевой функции), а другая часть хуже. Упорядочение хромосом в популяции, как правило, производится в направлении от лучших к худшим. Хромосомы отбираются (подвергаются селекции) для формирования очередного поколения по значениям функции соответствия.
Селекция хромосом для создания нового поколения может основываться на различных принципах. Одним из наиболее распространенных считается принцип элитарности, в соответствии с которым наиболее приспособленные хромосомы сохраняются, а наихудшие отбраковываются и заменяются вновь созданным потомством, полученным в результате скрещивания пар родителей. На этапе скрещивания подбираются такие пары хромосом, потомство которых может быть включено в популяцию путем селекции. В случае турнирной системы случайным образом отбирается несколько хромосом, среди которых определяются наиболее приспособленные (с наименьшим значением целевой функции). Из победителей последовательно проведенных турниров формируются пары для скрещивания.
При взвешенно-случайной системе в процессе отбора учитывается информация о текущем значении функции приспособленности. Отбор может происходить по принципу "рулетки", при этом площадь сегмента колеса рулетки, сопоставленного конкретной хромосоме, пропорциональна величине ее относительной функции приспособленности. Ситуация, типичная для такого отбора, иллюстрируется на рис. 3.5. Полная площадь круга соответствует сумме значений функций приспособленности всех хромосом данной популяции. Каждый выделенный сегмент отвечает конкретной хромосоме. Наиболее приспособленным особям отводятся большие сегменты колеса рулетки, увеличивающие их шансы попадания в переходную популяцию.
Рис. 3.5. Схема "рулетки", используемая при выборе родителей для будущего поколения. Площадь отдельных сегментов пропорциональна значениям соответствующих функций
приспособленности
Процесс скрещивания основан на рассечении пары хромосом на две части (рис. 3.10) с последующим обменом этих частей в хромосомах родителей. Место рассечения также выбирается случайным образом.
Рис. 3.6. Иллюстрация операции скрещивания, применяемой в генетическом алгоритме
В ситуации, показанной на рис. 3.6, после скрещивания хромосомы 1 с хромосомой 2 образовалась пара новых хромосом: хромосома 3 и хромосома 4. Количество новых потомков равно количеству отбракованных в результате селекции. После их добавления к оставшимся хромосомам размер популяции остается неизменным. Как правило, признается допустимым перенос в очередное поколение некоторых случайно выбранных хромосом вообще без скрещивания. Это соответствует ситуации, когда скрещивание достигает успеха с определенной вероятностью, обычно на уровне 0,6-1.
Мутация – это генетическая операция состоящая в замене значений отдельных битов (при двоичном кодировании) на противоположные. При кодировании натуральными десятичными цифрами мутация заключается в замене значения какого-либо элемента вектора другим, случайно выбранным допустимым значением. Мутация обеспечивает защиту как от слишком раннего завершения алгоритма (в случае выравнивания значений всех хромосом и целевой функции), так и от представления в какой-либо конкретной позиции всех хромосом одного и того же значения. Однако необходимо иметь в виду, что случайные мутации приводят к повреждению уже частично приспособленных векторов. Обычно мутации подвергается не более 1-5% бит всей популяции хромосом. Как и при выполнении большинства генетических операций, элемент, подвергаемый мутации, отбирается случайным образом.
Исследованиями доказано, что каждое последующее поколение, сформированное после выполнения селекции, скрещивания и мутации, имеет статистически лучшие средние показатели приспособленности (меньшие значения целевой функции).
В качестве окончательного решения принимается наиболее приспособленная хромосома, имеющая минимальное значение целевой функции. Генетический процесс завершается либо в момент генерации удовлетворяющего нас решения, либо при выполнении максимально допустимого количества итераций. При реализации генетического процесса отслеживается, как правило, не только минимальное значение целевой функции, но и среднее значение по всей популяции хромосом, а также их вариации. Решение об остановке алгоритма может приниматься и в случае отсутствия прогресса минимизации, определяемого по изменениям названных характеристик.
Хорошие результаты обучения приносит объединение алгоритмов глобальной оптимизации с детерминированными методами. На первом этапе обучения сети применяется выбранный алгоритм глобальной оптимизации, а после достижения целевой функцией определенного уровня включается детерминированная оптимизация с использованием какого-либо локального алгоритма (наискорейшего спуска, переменной метрики, Левенберга-Марквардта или сопряженных градиентов).
Лекция № 6
Методы инициализации весов
Обучение нейронных сетей, даже при использовании самых эффективных алгоритмов, представляет собой трудоемкий процесс, далеко не всегда дающий ожидаемые результаты. Проблемы возникают из-за нелинейных функций активации, образующих многочисленные локальные минимумы, к которым может сводиться процесс обучения. Конечно, применение продуманной стратегии поведения (например, имитации отжига, метода мультистара, генетических алгоритмов) уменьшает вероятность остановки процесса в точке локального минимума, однако платой за это становится резкое увеличение трудоемкости и длительности обучения. Кроме того, для применения названных методов необходим большой опыт в области решения сложных проблем глобальной оптимизации, особенно для правильного подбора управляющих параметров.
На результаты обучения огромное влияние оказывает подбор начальных значений весов сети. Идеальными считаются начальные значения, достаточно близкие к оптимальным. При этом удается не только устранить задержки в точках локальных минимумов, но и значительно ускорить процесс обучения. По причине отсутствия универсального метода подбора весов в большинстве практических реализаций чаще всего применяется случайный подбор весов с равномерным распределением значений в заданном интервале.
Неправильный выбор диапазона случайных значений весов может вызвать слишком раннее насыщение нейронов, в результате которого, несмотря на продолжающееся обучение, среднеквадратичная погрешность будет оставаться практически постоянной. Явление этого типа не означает попадания в точку локального минимума, а свидетельствует о достижении седловой зоны целевой функции вследствие слишком больших начальных значений весов. При определенных обучающих сигналах в узлах суммирующих нейронов генерируются сигналы co значениями, соответствующими глубокому насыщению сигмоидальной функции активации. При этом поляризация насыщения обратна ожидаемой (выходной сигнал нейрона равен +1 при ожидаемой величине -1 и обратно). Значение возвратного сигнала, генерируемое в методе обратного распространения, пропорционально величине производной от функции активации , в точке насыщения близко нулю. Поэтому изменения значений весов, выводящие нейрон из состояния насыщения, происходят очень медленно. Процесс обучения надолго застревает в седловой зоне. В состоянии насыщения может находиться одна часть нейронов, тогда как другая часть остается в линейном диапазоне, и для них обратный обучающий сигнал принимает нормальный вид. Это означает, что связанные с такими нейронами веса уточняются нормальным образом, и процесс их обучения ведет к быстрому уменьшению погрешности. Как следствие, нейрон, остающийся в состоянии насыщения, не участвует в отображении данных, сокращая таким образом эффективное количество нейронов в сети. В итоге процесс обучения чрезвычайно замедляется, поэтому состояние насыщения отдельных нейронов может длиться практически непрерывно вплоть до исчерпания лимита итераций.
Случайная инициализация, считающаяся единственным универсальным способом приписывания начальных значений весам сети, должна обеспечить такую стартовую точку активации нейронов, которая лежала бы достаточно далеко от зоны насыщения. Это достигается путем ограничения диапазона допустимых разыгрываемых значений. Оценки нижней и верхней границ такого диапазона, предлагаемые различными исследователями на основании многочисленных компьютерных экспериментов, отличаются в деталях, однако практически все лежат в пределах (0 , 1).
Предлорается равномерное распределение весов, нормализованное для каждого нейрона по амплитуде , где nin означает количество входов нейрона. Значения весов поляризации для нейронов скрытых слоев должны принимать случайные значения из интервала , а для выходных нейронов - нулевые значения.
Д. Нгуен и Б. Видроу в своих рассуждениях на тему оптимальных значений начальных весов используют кусочно-линейную аппроксимацию сигмоидальной функции активации. На этой основе они определили оптимальную длину случайного вектора весов нейронов скрытых слоев равной , где Nh, означает количество нейронов в скрытом слое, а nin - количество входов данного нейрона. Оптимальный диапазон весов поляризации для нейронов скрытого слоя определен в пределах . Начальные веса выходных нейронов, по мнению упомянутых авторов, не должны зависеть от топологии области допустимых значений и могут выбираться случайным образом из интервала [-0,5,0,5].
Решение представленных проблем случайной инициализации весов сети опирается либо на интуицию исследователя, либо на результаты большого количества численных экспериментов.
Практическое использование НС
Предварительный подбор архитектуры сети
Для решения какой-либо задачи следует спроектировать структуру сети, адекватную поставленной задаче. Это предполагает выбор количества слоев сети и нейронов в каждом слое, а также определение необходимых связей между слоями.
Подбор количества нейронов во входном слое обусловлен размерностью входного вектора х. Подобная ситуация и с выходным слоем, в котором количество нейронов принимается равным размерности ожидаемого вектора d. Серьезной проблемой остается подбор количества скрытых (внутренних) слоев и числа нейронов в каждом из них. Следует отметить, что ИНС выступает в роли универсального аппроксиматора обучающих данных (х, d). В процессе обучения подбираются его функциональные коэффициенты (векторы весов отдельных нейронов). На этапе функционирования при зафиксированных значениях весов производится простой расчет значения аппроксимирующей функции при заданном входном векторе.
Определение минимального количества скрытых слоев сети основано на использовании свойств аппроксимирующих функций. Каждая заданная функция может быть выражена линейной комбинацией локальных импульсов, которые имеют ненулевое значение только в ближайшей окрестности текущего значения х. Импульсная функция определенной структуры может быть сформирована как суперпозиция двух функций, сдвинутых относительно друг друга. На рис. 5.1 демонстрируется способ формирования импульса для одномерной сети (имеющей единственный вход). Две сдвинутые относительно друг друга идентичные сигмоиды у1 и у2 создают в результате вычитания импульс с длительностью, пропорциональной разности смещений этих сигмоидальных функций. Соответствующим подбором функциональных параметров можно добиться формирования такого импульса, который будет возникать в необходимом для нас месте, будет иметь требуемую ширину и крутизну нарастания.
Рис. 5.1. Иллюстрация способа формирования локального одномерного импульса из двух сигмоидальных функций
В случае двухмерной сети можно аналогичным способом сформировать импульс на плоскости. Разность двух определенных на плоскости и сдвинутых относительно друг друга сигмоидальных функций образует гребень бесконечной длины. Добавляя следующую пару сдвинутых относительно друг друга сигмоидальных функций и вычисляя их разность, можно получить второй гребень бесконечной длины. При подборе параметров обеих сигмоидальных пар таким образом, чтобы их гребни располагались под определенным углом (например, 90°), можно получить в результате суммирования этих гребней структуру двухмерного горба. В месте пересечения гребней образуется импульс двухмерной формы, ограниченный с четырех сторон ответвлениями бесконечной длительности. Эти ответвления можно ликвидировать передачей всего импульса на следующую сигмоидальную функцию (дополнительный слой нейронов) с соответственно подобранным порогом. Как следствие, выполняется фильтрация значения суммы на определенном уровне, подобранном так, что импульс, сформированный сложением двух гребней, пропускается, тогда как ответвления гребней отсекаются.
Созданная этим способом двухвходовая ИНС содержит скрытый слой, состоящий из четырех нейронов, и выходной слой, на котором расположен один нейрон сигмоидального типа. При построении сигмоидальной функции активации с соответствующим порогом он выполняет суммирование сигналов от предыдущих четырех нейронов и отсечение ответвлений.
Согласно теории Колмогорова. Если ограничиться непрерывной функцией, трансформирующей N-мерное множество входных данных x в M-мерный выходной вектор d, то можно доказать, что аппроксимация такого типа осуществима при использовании сети с одним скрытым слоем. При N входных нейронах будет достаточно использовать для реализации этой функциискрытый слой с (2N + 1) нейронами.
В случае дискретного преобразования х —> у одного скрытого слоя уже недостаточно и необходимо создание еще одного слоя нейронов. Это означает, что независимо от вида многовходовой аппроксимирующей функции максимальное количество скрытых слоев, достаточных для аппроксимации заданного преобразования, не превышает двух.
Результат, полученный благодаря применению теоремы Колмогорова, носит теоретический характер. Он определяет максимальное количество слоев и число нейронов в отдельных слоях, достаточных для аппроксимации заданного преобразования. Теорема не уточняет ни вид нелинейных функций, ни методы обучения сети, создаваемой для реализации данного преобразования. Однако она представляет собой фактор, важный для минимизации структуры ИНС. В практических реализациях сетей как количество слоев, так и число нейронов в каждом из них может отличаться от предлагаемых теоремой Колмогорова.
Для оценки числа нейронов в скрытых слоях однородных нейронных сетей можно воспользоваться формулой для оценки необходимого числа синаптических весов Lw в многослойной сети с сигмоидальными передаточными функциями:
где n - размерность входного сигнала, m - размерность выходного сигнала, N- число элементов обучающей выборки.
Оценив необходимое число весов, можно рассчитать число нейронов в скрытых слоях. Например, для двухслойной сети это число составит:
Способность к обобщению
Способность к обобщению полученных знаний для НС проявляется в том что сеть, натренированная на некотором множестве обучающих выборок, генерирует ожидаемые результаты при подаче на ее вход данных, относящихся к тому же множеству, но не участвовавших непосредственно в процессе обучения. Разделение данных на обучающее и тестовое подмножества представлено на рис. 5.2.
Рис. 5.2. Иллюстрация разделения данных, подчиняющихся правилу R, на обучающее подмножество L, тестовое подмножество G и контрольное подмножество V
Множество данных, на котором считается истинным некоторое правило R, разбито на подмножества L и G, при этом в составе L, в свою очередь, можно выделить определенное подмножество контрольных данных V, используемых для верификации степени обучения сети. Обучение проводится на данных, составляющих подмножество L. Способность отображения сетью элементов L может считаться показателем степени накопления обучающих данных, тогда как способность распознавания данных, входящих во множество G и не использованных для обучения, характеризует ее возможности обобщения (генерализации) знаний. Данные, входящие и в L, и в G, должны быть типичными элементами множества R. В обучающем подмножестве не должно быть уникальных данных, свойства которых отличаются от ожидаемых значений.
Подбор весов сети в процессе обучения имеет целью найти такую комбинацию их значений, которая наилучшим образом воспроизводила бы последовательность ожидаемых обучающих пар (xi, di). Наблюдается тесная связь между количеством весов сети (числом степеней свободы) и количеством обучающих выборок. Если бы целью обучения было только запоминание обучающих выборок, их количество могло быть равным числу весов. В таком случае каждый вес соответствовал бы единственной обучающей паре. К сожалению, такая сеть не будет обладать свойством обобщения и сможет только восстанавливать данные. Для обретения способности обобщать информацию сеть должна тренироваться на избыточном множестве данных, так как веса будут адаптироваться не к уникальным выборкам, а к их статистически усредненным совокупностям.
Собственно обучение ведется путем минимизации целевой функции E(w), определяемой только на обучающем подмножестве L. Истинная цель обучения состоит в таком подборе архитектуры и параметров сети, которые обеспечат минимальную погрешность распознавания тестового подмножества данных, не участвовавших в обучении - погрешностью обобщения eg(w). Co статистической точки зрения погрешность обобщения зависит от уровня погрешности обучения eL(w) и от доверительного интервала е. Она характеризуется отношением:
Значение е функционально зависит от уровня погрешности обучения eL(w) и от отношения количества обучающих выборок р к фактическому значению h параметра, называемого мерой Вапника-Червоненкиса и обозначаемого FCdim. Мера FCdim отражает уровень сложности нейронной сети и тесно связана с количеством содержащихся в ней весов. Значение е уменьшается по мере возрастания отношения количества обучающих выборок к уровню сложности сети.
Метод точного определения этой меры не известен, ее значение функционально зависит от количества синаптических весов, связывающих нейроны между собой. Чем больше количество различных весов, тем больше сложность сети и соответственно значение меры FCdim:
где [ ] обозначена целая часть числа, N - размерность входного вектора, К -количество нейронов скрытого слоя, Nw - общее количество весов сети, a Nn -общее количество нейронов сети.
Из выражения следует, что нижняя граница диапазона приблизительно равна количеству весов, связывающих входной и скрытый слои, тогда как верхняя граница превышает двукратное суммарное количество всех весов сети. В качестве ее приближенного значения используется общее количество весов нейронной сети.
Таким образом, на погрешность обобщения оказывает влияние отношение количества обучающих выборок к количеству весов сети. Небольшой объем обучающего подмножества при фиксированном количестве весов вызывает хорошую адаптацию сети к его элементам, однако не усиливает способности к обобщению, так как в процессе обучения наблюдается относительное превышение числа подбираемых параметров (весов) над количеством пар фактических и ожидаемых выходных сигналов сети. Эти параметры адаптируются с чрезмерной (а вследствие превышения числа параметров над объемом обучающего множества - и неконтролируемой) точностью к значениям конкретных выборок, а не к диапазонам, которые эти выборки должны представлять. Фактически задача аппроксимации подменяется в этом случае задачей приближенной интерполяции. В результате всякого рода нерегулярности обучающих данных и измерительные шумы могут восприниматься как существенные свойства процесса. Функция, воспроизводимая в точках обучения, будет хорошо восстанавливаться только при соответствующих этим точкам значениях. Даже минимальное отклонение от этих точек вызовет значительное увеличение погрешности, что будет восприниматься как ошибочное обобщение. По результатам разнообразных численных экспериментов установлено, что высокие показатели обобщения достигаются в случае, когда количество обучающих выборок в несколько раз превышает меру FCdim.
На практике подбор количества скрытых нейронов (и связанный с ним подбор количества весов) может, в частности, выполняться путем тренинга нескольких сетей с последующим выбором той из них, которая содержит наименьшее количество скрытых нейронов при допустимой погрешности обучения.
Решение по выбору окончательной схемы сети может быть принято только после полноценного обучения (с уменьшением погрешности до уровня, признаваемого удовлетворительным) различных вариантов ее структуры. Однако нет никакой уверенности в том, что этот выбор будет оптимальным, поскольку тренируемые сети могут отличаться различной чувствительностью к подбору начальных значений весов и параметров обучения. По этой причине базу для редукции сети составляют алгоритмы отсечения взвешенных связей либо исключения нейронов в процессе обучения или после его завершения.
Большинство применяемых в настоящее время алгоритмов редукции сети можно разбить на две категории. Методы первой группы исследуют чувствительность целевой функции к удалению веса или нейрона. С их помощью устраняются веса с наименее заметным влиянием, оказывающие минимальное воздействие на величину целевой функции, и процесс обучения продолжается уже на редуцированной сети.
Простейшим критерием редукции считается учет величины весов. Веса, которые значительно меньше средних, оказывают незначительное влияние на общий уровень выходного сигнала связанного с ними нейрона. Поэтому их можно отсечь без существенного вреда для его функционирования.
Без серьезных последствий для сети из нее могут быть исключены только те веса, чувствительность к изменениям которых оказывается минимальной. Рекомендуется отсекать веса только по завершении процесса обучения, когда все нейроны обретут свои постоянные характеристики.
Одним из способов регуляризации сети считается метод, предложенный ЛеКуном. Он называется OBD (англ.: Optimal Brain Damage). Исходная позиция этого метода - разложение целевой функции в ряд Тейлора в окрестности текущего решения. В качестве меры значимости веса wij используется показатель Sij, называемый коэффициентом асимметрии, который определяется в виде
Отсечение весов с наименьшими значениями коэффициентом асимметрии не вызовет существенных изменений в процессе функционирования сети. Процедуру OBD редукции сети можно описать в следующем виде:
1. Полное предварительное обучение сети выбранной структуры с использованием любого алгоритма.
2. Определение диагональных элементов гессиана соответствующих каждому весу, и расчет значений параметра характеризующего значимость каждой синаптической связи для сети в целом.
3. Сортировка весов в порядке убывания приписанных им параметров Sij и отсечение тех из них, которые имеют наименьшие значения.
4. Возврат к п. 1 для обучения сети с редуцированной структурой и повторение процесса отсечения вплоть до исключения всех весов, оказывающих наименьшее влияние на величину целевой функции.
Методы второй группы связаны с модификацией целевой функции, в которую вводятся компоненты, штрафующие за неэффективную структуру сети. Чаще всего это бывают элементы, усиливающие малые значения амплитуды весов. Такой способ менее эффективен по сравнению с методами первой группы, поскольку малые значения весов не обязательно ослабляют их влияние на функционирование сети.
В отличие от методов учета чувствительности здесь сама целевая функция модифицируется таким образом, чтобы в процессе обучения значения весов минимизировались автоматически вплоть до достижения определенного порога, при пересечении которого значения соответствующих весов приравниваются к нулю.
Простейший метод модификации целевой функции предусматривает добавление в нее слагаемого, штрафующего за большие значения весов:
В этой формуле означает стандартно определенную целевую функцию, заданную, например, в виде эвклидовой нормы, а - коэффициент штрафа за достижение весами больших значений. При этом каждый цикл обучения складывается из двух этапов: минимизации величины функции стандартным методом обратного распространения и коррекции значений весов, обусловленной модифицирующим фактором.
Принципиально иной подход состоит в начале обучения при минимальном (обычно нулевом) количестве скрытых нейронов и последовательном их добавлении вплоть до достижения требуемого уровня натренированности сети на исходном множестве обучающих выборок. Добавление нейронов, как правило, производится по результатам оценивания способности сети к обобщению после определенного количества циклов обучения.
При обсуждении способности сети к обобщению невозможно обойти вниманием влияние на ее уровень длительности обучения. Численные эксперименты показали, что погрешность обучения при увеличении количества итераций монотонно уменьшается, тогда как погрешность обобщения снижается только до определенного момента, после чего начинает расти. Следовательно слишком долгое обучение может привести к "переобучению" сети, которое выражается в слишком детальной адаптации весов.
Такая ситуация имеет место при использовании сети с чрезмерным (по сравнению с необходимым) количеством весов, и она тем более заметна, чем больше "лишних" весов содержит сеть. Излишние веса адаптируются к любым нерегулярностям обучающих данных, воспринимая их в качестве важных характеристик. Как следствие, на этапе тестирования они становятся причиной возникновения значительных погрешностей воспроизведения.
Для предупреждения переобучения в обучающем множестве выделяется область контрольных данных (подмножество V на рис. 5.2), которые в процессе обучения применяются для оперативной проверки фактически набранного уровня обобщения.
Обучение прекращается, когда погрешность обобщения на этом подмножестве достигнет минимального значения (или начнет возрастать).
Лекция №7
ПИД управление
Пропорционально-интегрально-дифференциальный регулятор включает все три составляющих и его уравнение
Регулирующее воздействие ПИД-регулятора формируется как сумма трех составляющих: пропорциональной, интегральной и дифференциальной. Переходная функция (рис. 8.2) является суммой переходных функций пропорциональной идеальных интегрирующего и дифференцирующего звеньев.
Рис 8.2 Переходные функции идеальных (1) и реальных (2) – а- П; б - И; в - ПИ; г - ПД; д - ПИД
Передаточная функция ПИД-регулятора
Структурно ПИД-регулятор представляет собой параллельное соединение пропорционального, идеального интегрирующего и идеального дифференцирующего звеньев.
ПИД - регулятор — это наиболее распространенная структура управления в промышленных системах. ПИД регуляторы строятся на основе классической теории управления и просты для понимания. Установление связей между параметрами и управление действиями системы могут осуществляться инженерами-практиками и операторами. Оптимальные значения ПИД параметров чаще всего достигаются путем минимизации взвешенного интеграла квадратичной ошибки. Причина популярности регулятора в том, что большинство процессов можно аппроксимировать динамической моделью невысокого порядка. ПИД - регулятор, представляющий собой систему второго порядка, дает практичное и недорогое решение, обеспечивая большую гибкость при работе в замкнутых системах регулирования.
Однако ПИД - регулятор не подходит для системы с более сложными динамическими свойствами, а также он может не обеспечить оптимальных характеристик для управления процессами, в которых значительную роль играют следующие факторы:
- временные задержки;
- колебательный характер динамики системы;
- изменения параметров, как предсказуемые, так и непредсказуемые;
- несколько входов и выходов;
- нелинейности в системе.
Например, если рабочая точка процесса изменяется из-за возмущений, параметры контроллера требуется перенастраивать вручную, чтобы получить новую оптимальную настройку. Настройка должна выполняться опытным оператором. Для систем с взаимодействующими контурами эта процедура может быть сложной и занимать много времени.
Интегральное насыщение представляет собой эффект, который наблюдается, когда ПИ- или ПИД-регулятор в течение длительного времени должен компенсировать ошибку, лежащую за пределами диапазона управляемой переменной. Поскольку выход регулятора ограничен, ошибку сложно свести к нулю.
Если ошибка управления длительное время сохраняет знак, величина интегральной составляющей ПИД-регулятора становится очень большой. Это, в частности, происходит, если управляющий сигнал ограничен настолько, что расчетый выход регулятора отличается от реального выхода исполнительного механизма. Так как интегральная часть становится равной нулю лишь некоторое время спустя после того, как значение ошибки изменило знак, интегральное насыщение может привести к большому перерегулированию. Интегральное насыщение является результатом нелинейностей в системе, связанных с ограничением выходного управляющего сигнала, и может никогда не наблюдаться в действительно линейной системе. Рассмотрим сказанное на примере. ПИ-регулятор, основанный на позиционном алгоритме, используется для управления сервомотором. Опорное значение для угла поворота оси двигателя изменяется настолько, что происходит насыщение выходного управляющего сигнала — напряжения, подаваемого на двигатель. В действительности ускорение двигателя ограничено. Переходная характеристика угла поворота оси двигателя показана на рис. 8.3.
Рис.8.3. Иллюстрация проблемы интегрального насыщения для привода позиционирования с ПИ-регулятором
А) соответствует переходной характеристике без ограничения управляющего сигнала, поэтому насыщения нет; значения параметров управления. Б) управляющий сигнал ограничен величиной 0.1.
Нелинейные системы
Некоторые системы при некоторых допущениях можно аппроксимировать линейными уравнениями. Другие типы нелинейностей нельзя свести к линейному описанию. Наиболее часто встречающийся пример — релейные системы. Реле вырабатывают бинарные сигналы типа "включено/выключено".
Примеры систем с существенными нелинейностями:
- различные виды реле (с зоной нечувствительности, гистерезисом и т. д.);
- клапаны (зоны нечувствительности, насыщение);
- нелинейные деформации механических пружин;
- падение давления в сужении трубы;
- силы трения;
- аэродинамическое сопротивление;
- свойства пара;
- двигатели постоянного тока с последовательной обмоткой возбуждения (момент — функция квадрата тока роторной цепи);
- двигатели переменного тока.
Датчики тоже могут вести себя нелинейно. В частности, у датчиков температуры или давления выходной сигнал нелинейно зависит от измеряемой физической величины. Такая зависимость может быть линейной для малых значений сигнала и нелинейной — для больших.
Адаптивное управление
Процедура непрерывной автоматической настройки параметров регулятора называется адаптивным управлением. Адаптивные регуляторы включают в себя две различные подсистемы (см. рис. 2), одну для оценки и вторую для управления. Каждая решает свою задачу в замкнутом цикле обратной связи. Первая из них — сбор информации о текущем состоянии управляемого процесса. К данной задаче относится постоянное определение текущего состояния управляемого процесса на основе измеримых данных о входе и выходе процесса, а также сигналов состояния.
Полученная информация используется для идентификации системы, которая включает определение структуры модели, оценку ее параметров, а также оценку параметров неконтролируемых сигналов (например, шумовых сигналов в стохастических системах). Определение структуры модели требует построения вида математического представления системы, соответствующего решаемой задаче. Оценка параметров представляет собой ключевой элемент самонастройки. В идеале она выполняется в оперативном режиме. Для управления с самонастройкой может использоваться схема оценки параметров на основе метода наименьших квадратов.
Вторая задача системы самонастройки — задача проектирования регулятора; ее решение обычно базируется на оптимизации критерия оптимальности управления. Цель управления задается для каждой конкретной системы; при этом требуется принять решения в отношении того, как контроллер должен адаптироваться или настраиваться. На этой основе рассчитывается новый набор параметров контроллера, взамен прежних параметров в цикле управления.
Рис. 2 Основные элементы адаптивного регулятора
Но даже если основные алгоритмы достаточно просты с точки зрения программирования, адаптивное управление должно быть ограничено целым набором правил безопасности, позволяющих предотвратить его неправильное применение.
Лекция №8
Многослойные сети в МatLab
Функция NEWFF Сеть прямой передачи FF
Синтаксис:
net = newff(PR,[S1 S2...SNI],{TF1 TF2...TFNI},btf,blf,pf)
Описание:
Функция newff предназначена для создания многослойных нейронных сетей прямой передачи сигнала с заданными функциями обучения и настройки, которые используют метод обратного распространения ошибки.
Функция net = newff(PR, [SI S2 ... SN1], (TF1 TF2 ... TFN1}, btf, blf, pf) формирует многослойную нейронную сеть.
Входные аргументы:
PR - массив размера Rx2 минимальных и максимальных значений для R векторов входа;
Si - количество нейронов в слое i;
TFi - функция активации слоя i, по умолчанию tansig;
btf - обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm;
blf- функция настройки, реализующая метод обратного распространения, по умолчанию learngdm;
pf- критерий качества обучения, по умолчанию mse.
Выходные аргументы:
net - объект класса network object многослойной нейронной сети.
Свойства сети:
Функциями активации могут быть любые дифференцируемые функции, например tansig, logsig или purelin.
Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm, trainbfg, trainrp, traingd и др.
Функция trainlm является обучающей функцией по умолчанию, поскольку обеспечивает максимальное быстродействие, но требует значительных ресурсов памяти. Если ресурсы памяти недостаточны, воспользуйтесь следующими рекомендациями:
• установите значение свойства net.trainParam.mеm_reduc равным 2 или более, что снизит требования к памяти, но замедлит обучение;
• воспользуйтесь обучающей функцией trainbfg, которая работает медленнее, но требует меньшей памяти, чем М-функция trainlm;
• перейдите к обучающей функции trainrp, которая работает медленнее, но требует меньшей памяти, чем М-функция trainbi'g.
Функциями настройки могут быть функции, реализующие метод обратного распространения: learngd, learngdm.
Критерием качества обучения может быть любая дифференцируемая функция: mse, msereg.
Пример:
Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа Р в последовательность целей Т:
Р= [0 1 2 3 4 5 6 7 8 9 10] ;
Т= [0 1 2 3 4 3 2 1 2 3 4];
Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала; первый слой - 5 нейронов с функцией активации tansig; второй слой - 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].
net = newff([0 10],[5 1],{‘tansig’ ‘purelin’});
gensim(net)
Выполним моделирование сети и построим графики сигналов выхода и цели.
Y = sim(net,P);
plot(P, Т, P, Y, 'о')
Обучим сеть в течение 50 циклов:
net.trainParam.epochs = 50;
net = train(net,P,T);
NEWFFTD Динамическая нейронная сеть FFTD
Сеть прямой передачи с запаздыванием
Синтаксис:
net = newfftd(PR, ID, [S1 S2 ... SNI], {TF1 TF2 ... TFNI}, btf, blf, pf)
Описание:
Функция newfftd предназначена для создания многослойных нейронных сетей прямой передачи сигнала с линиями задержки и заданными функциями обучения и настройки, использующими метод обратного распространения ошибки.
Функция net = newfftd(PR, ID, [SI S2 ... SNI], {TF1 TF2 ... TFNI}, btf, blf, pf) формирует динамическую многослойную нейронную сеть.
Входные аргументы:
PR - массив размера Rx2 минимальных и максимальных значений для R векторов входа;
ID - вектор параметров линии задержки на входе сети;
Si - количество нейронов в слое г;
TFi - функция активации слоя /, по умолчанию tansig;
btf - обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm;
blf- функция настройки, реализующая метод обратного распространения, по умолчанию learngdm;
pf- критерий качества обучения, по умолчанию mse.
Выходные аргументы:
net - объект класса network object динамической многослойной нейронной сети.
Свойства сети:
Функциями активации могут быть любые дифференцируемые функции, например tansig, logsig или purelin.
Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm, trainbfg, trainip, traingd и др.
TRAIN Обучение нейронной сети
Синтаксис:
[net, TR] = train(net,P,T,Pi,Ai)
[net, TR] = train(net,P,T,Pi,Ai,VV,TV)
Описание:
Функция [net, TR] = train(net, P, T, Pi, Ai) является методом для объектов класса network object, который реализует режим обучения нейронной сети. Эта функция характеризуется следующими входными и выходными аргументами.
Входные аргументы:
net - имя нейронной сети;
Р - массив входов;
Т - вектор целей, по умолчанию нулевой вектор;
Pi - начальные условия на линиях задержки входов, по умолчанию нулевой вектор;
Ai - начальные условия на линиях задержки слоев, по умолчанию нулевой вектор.
Выходные аргументы:
net - структура объекта network object после обучения; TR - характеристики процедуры обучения:
TR.timesteps - длина последней выборки;
TR.perf - значения функции качества на последнем цикле обучения.
Заметим, что входной аргумент Т используется только при наличии целевых выходов. Аргументы Pi и Pf используются только в случае динамических сетей, имеющих линии задержки на входах или в слоях.
Входные аргументы Р и Т могут иметь 2 формата: cell array и double array. Формат cell aray наиболее прост для понимания и соответствует последовательному представлению данных.
GENSIM Формирование S-модели нейронной сети
Синтаксис:
gensim(net, ST)
Описание:
Функция gensim(net, ST) формирует S-модель нейронной сети с именем net для ее запуска в среде системы Simulink; аргумент ST задаст такт дискретности, который необходим для моделирования динамических сетей. Если сеть не имеет ЛЗ, т. е. является статической системой, то значение ST следует задать равным -1, что соответствует неопределенному такту дискретности.
Функции активации:
Purelin – реализует линейную функцию активации во всем диапазоне изменения входного аргумента.
Logsig – реализует сигмоидальную функцию активации
Tansig - реализует гиперболическую тангенциальную функцию активации
Примерный программный код
net=newff([0 200;0 200;0 200;0 200],[12 1],{'tansig','purelin'});
s=[y;y;y1;y2];
net.trainParam.epochs=800;
net=train(net,s,u);
gensim(net,-1);
Transport delay(Simulink-Continious)
Блок фиксированной задержки – обеспечивает временную задержку входного сигнала на заданное время.
Параметры блока:
Time delay – время задержки;
Initial input – начальный уровень входа;
Transfer Fcn(Simulink-Continious)
Блок передаточной характеристики – создает передаточную функцию H(s)=y(s)/u(s) в виде отношения полиномов заданной степени.
Numerator – вектор коэффициентов полиномов числителя;
Denominator - вектор коэффициентов полиномов знаменателя.
Пример: (s2+2s+3)/(s3+s2+3s+4)
Numerator = [1 2 3];
Denominator = [1 1 3 4].
Ramp(Simulink-Sources)
Источник линейно нарастающего воздействия вида F(t)=k*t.
Параметры источника:
Slope — угловой коэффициент временной зависимости k;
Start time — время, начиная с которого воздействие нарастает;
Initial value — начальный уровень воздействия.
Step(Simulink-Sources)
Источник воздействия в виде одиночного перепада.
Параметры источника:
Step time — время появления перепада (скачка);
Initial value — начальное значение воздействия (до перепада);
Final value — конечное значение воздействия (после перепада);
Sample time — эталонное время.
Перепад можно задавать как положительным, так и отрицательным. Для задания отрицательного перепада начальное значение должно быть больше, чем конечное. Эти значения могут быть как положительными, так и отрицательными.
Scope (Simulink-Sinks)
Виртуальный осциллограф позволяет представить результаты моделирования в виде временных диаграмм с оцифрованной масштабной сеткой.
основные параметры вкладки General:
Number of axes — число осей (каналов) осциллографа, позволяет превратить одноканальный осциллограф в многоканальный. При этом осциллограф приобретает несколько входных портов, к которым можно подключать различные сигналы;
Time range — пределы временного интервала;
Tick labels — вывод/скрытие отметок по осям;
Sampling — установка временных соотношений: Decimation (в десятичных долях времени со значением по умолчанию 1) или Sample Time (в тактах эталонного времени, по умолчанию 0).
На вкладке Data history можно задать максимальное число точек осциллограмм для хранения и задать параметры хранения осциллограмм в рабочем пространстве системы MATLAB.
То Workspace(Simulink-Sinks)
Блок позволяет записывать входные данные в виде матриц. На каждом такте моделирования формируется колонка, содержащая время такта и входные данные.
Блок То Workspace записывает указанную матрицу (но без строки отсчетов времени) в рабочее пространство. Необходимо использовать представление данных в виде массива – Array.
Mux(Simulink-Signals & Systems)
Блок реализует ф-ю мультиплексора.
Схема создания обучающей выборки
Схема моделирования
Лекция №9
Схемы нейроуправления
Нейронным управлением называется применение полностью определенных нейронных сетей для выработки действительных управляющих сигналов.
Причины, породившие интерес к применению нейронных сетей для задач управления в качестве альтернативы традиционным методам:
1. Нейронные сети могут обучаться любым функциям; требуется только, чтобы в процессе обучения был предоставлен достаточно большой объем информации, а также правильный выбор самой нейронной модели. Таким образом, способность нейронных сетей к самообучению избавляет от необходимости использовать сложный математический аппарат в отличие от многих традиционных методов адаптивного и оптимального управления.
2. Включение сигмоидных функций активации (или некоторых нелинейных функций общего вида) в скрытые нейроны многослойных нейронных сетей обеспечивает возможность реализации нелинейных отображений. Это важно для решения задач управления с существенными нелинейностями, для которых традиционные подходы пока не дают практически реализуемых решений. Возможно, это достоинство нейронных сетей—наиболее важное с точки зрения теории управления.
3. Необходимым условием применения традиционных методов оптимального и адаптивного управления является наличие большого объема априорной информации об объекте управления, например, данных математического моделирования. Благодаря способности нейронных сетей к самообучению, для нейроконтроллеров такой объем информации не требуется. В связи с этим можно полагать, что нейроконтроллеры пригодны для управления в условиях существенных неопределенностей.
4. Высокая степень параллельности нейронных сетей позволяет реализовывать очень быстрые методы мультипроцессорной обработки на основе использования нейронных кристаллов или параллельных аппаратных средств. Фирмой American Neurologix Inc. разработан нейронный процессор (NLX420), уже поступивший на рынок [15].
5. Благодаря реализуемой в нейронной сети архитектуре параллельной обработки, повреждение отдельных элементов технических средств сети не может существенно влиять на работу сети в целом.
В архитектуре обобщенного обучения, показанной на рис. 9.1., сеть обучается автономно, с использованием образцов, полученных по характеристикам разомкнутого или замкнутого объекта управления. Метод аналогичен обучению на примерах в задаче распознавания образов. Обученная таким образом сеть настраивается на работу в качестве контроллера для объекта управления, подобно обычной системе управления с обратной связью.
Рис. 9.1. Обобщенное обучение, или архитектура прямого инверсного управления.
Архитектура специализированного обучения (рис. 9.2.) используется для непосредственного (или «управляемого целью») обучения сети; при этом ошибка выполнения распространяется по сети в обратном направлении при каждой выборке. Однако при этом требуется знать якобиан объекта управления. Чтобы избежать возникающих при этом трудностей, вместо элементов якобиана могут использоваться знаки этих элементов, которые представляют собой направления воздействия параметров управления на выходы объекта управления.
Рис. 9.2. Архитектура специализированного обучения. Модель нейронной сети непосредственно обучается на инверсной модели объекта управления (на основе обратного распространения ошибки)
Схема параллельного нейронного управления. В этой схеме (показанной на рис. 9.3.) нейронная сеть настраивается параллельно обычному контроллеру с обратной связью. Сеть обучается непосредственно, путем повторения циклов желаемой траектории; при этом ошибка обратной связи распространяется по сети в обратном направлении. Сходимость достигается, когда нейронная сеть, завершив обучение на инверсии объекта управления, принимает на себя управление объектом, устраняя действие контроллера с обратной связью.
Рис. 9.3. Архитектура обучения с ошибкой обратной связи. Модель
нейронной сети непосредственно обучается на инверсии модели объекта
управления путем обратного распространения выходного сигнала
контроллера с обратной связью
Метод обучения на основе ошибки обратной связи для параллельного нейронного управления состоит в многократном повторении цикла желаемой траектории. Поэтому его практическое применение ограничивается только некоторыми типами систем, в частности, системами управления рукой робота и сервомоторами.
В схеме с эмулятором и контроллером для управления объектом используются две нейронные сети, как показано на рис. 9.4. Первая сеть используется как эмулятор, вторая — как контроллер. Сеть-эмулятор может обучаться автономно, с использованием архитектуры обобщенного управления, или даже непосредственно, путем ввода случайных входных сигналов для обучения динамике объекта управления.
Данная архитектура обеспечивает более точное непосредственное обучение нейроконтроллера, так как ошибка может распространяться в обратном направлении через эмулятор в каждой выборке.
Рис. 9.4. Схема нейронного управления с эмулятором и контроллером, или «обратное распространение во времени».
Нейроконтроллер обучается на инверсной модели объекта управления, а нейроэмулятор — на обычной модели-объекта управления. Нейроконтроллер может обучаться непосредственно, на основе обратного распространения ошибки через нейроэмулятор
Схема нейронного управления с самонастройкой
Схема нейронного управления с самонастройкой показана нарис. 9.5. Здесь нейронная сеть используется для настройки параметров обычного контроллера подобно настройке, выполняемой человеком-оператором.
Человек-оператор накапливает определенный опыт и знания о системе управления. Однако он не может помнить все данные о прошлом системы для всех видов рабочих состояний. Компьютер может легко хранить такую информацию и мгновенно отыскивать ее. Таким образом, если включить знания и опыт оператора в нейронную сеть и обучить ее на основе данных о прошлом системы, то обученную таким образом сеть можно использовать как средство оперативной настройки параметров контроллера.
Такой подход может непосредственно применяться для многих традиционных технологий управления, включающих методы адаптивного управления. Многие методы адаптивного управления включают ряд параметров или задаваемых пользователем полиномиальных коэффициентов, которые требуется выбирать или настраивать предварительно. Обычно они выбираются методом проб и ошибок. Встроив в схему управления нейронную сеть, можно затем использовать эту сеть для оперативной настройки указанных параметров. Таким образом, стратегия нейронного управления с самонастройкой может применяться во многих традиционных технологиях управлении.
Рис. 9.5. Схема нейронного управления с самонастройкой.
Лекция №10
Последовательная схема нейронного управления
Последовательная схема нейронного управления показана на рис. 10.1. При « инверсно-прямом управлении» нейронная сеть может реализовывать обратную динамику объекта управления.
Если обозначить соответствие между входом и выходом как fp(u), т.е.
y=fp(u), то нейронная сеть реализует обратное отображение:
u=fр-1(y),
где fр-1— отображение, обратное отображению fp .
Таким образом, если подать на нейронную сеть опорный сигнал r, то выходной сигнал объекта управления принимает значение r, так как
y = fp(u) = fp(fр-1(r))) = r
где u — входной сигнал объекта управления, соответствующий опорному сигналу r, а у — выходной сигнал, соответствующий u.
Рис. 10.1. Последовательная схема нейронного управления
Можно использовать два способа реализации схемы. Первый из них, называется «специализированное обратное отображение», показан нарис. 10.2.
Рис. 10.2. Специализированное нейронное управление с обратным отображением; пунктирной линией выделена цепь прямой связи (ЦПС)
Нейронная схема, показанная на ней, обучается таким образом, чтобы минимизировать квадрат ошибки. Если ошибка становится близкой к нулю, можно считать, что нейронная сеть реализует инверсную динамику объекта управления. Заключенная в пунктирную линию часть схемы, называемая цепью прямой связи (ЦПС). В этом случае для использования алгоритма обратного распространения необходимо знать якобиан системы.
Для схемы, показанной на рис. 10.2, простейшая внутренняя структура нейронной сети показана на рис. 10.3, где используется один нейрон во входном и один в выходном слоях. На рис. 10.3 входным сигналом для нейронной сети является только сигнал r, а выходным — только сигнал u.
Рис. 10.3. Внутренняя структура нейроконтроллера.
При практическом применении алгоритма ОРОО возникают трудности. Одна из них - соответствие «вход — выход», задаваемое нейронной сетью, показанной на рис. 10.3, является не динамическим, а скорее статическим отображением координат u на у. В практических задачах управления динамические отображения являются более правильными. Поэтому нейронная сеть должна непосредственно подавать на вход объекта управления много сигналов, равных прошлым входным сигналам, или эти прошлые входные сигналы должны сохраняться. В первом случае выходами нейронной сети будет не только значение u(t) в текущий момент времени, но и значения того же процесса в предшествующие моменты u(t-m), m=l,2,.. .,q. Во втором — входами нейронной сети становятся значения r(t-i), i=l ,2,... ,k. На вход нейронной сети можно подавать больше информации, чтобы ускорить сходимость обучения. Если известны какие-либо факторы, способные улучшить управляющий сигнал, то следует использовать такую информацию в качестве входного вектора нейронной сети.
Следующая трудность. Нейронные сети где в качестве функции активации используется сигмоидная функция могут принимать выходные значения между 0 и 1 (то есть сигнал управления). Поэтому если в качестве управляющих входных сигналов используются только положительные величины, то управляющий сигнал u необходимо умножить на некоторую положительную константу С, а если в качестве управляющих входных сигналов используются только отрицательные величины, то управляющие сигналы требуется умножать на отрицательную константу С.
Существенная сложность состоит в вычислении якобиана системы f p(u(t)). Как правило, выражение f'p неизвестно, и требуется искать его аппроксимацию. Один из способов состоит в использовании численной аппроксимации:
где
Другой подход состоит в том, чтобы выполнить имитационное моделирование объекта управления, используя другую нейронную сеть, реализующую отображение «вход — выход» для объекта управления. В этом случае данная нейронная сеть используется в качестве идентификатора системы (применяется термин «эмулятор»). Таким образом, используя эмулятор, можно вычислить якобиан системы, как если бы эмулятор представлял собой действительный объект управления.
где — отображение «вход/выход» для эмулятора. Простая процедура обучения для эмулятора показана на рис. 10.4.
Рис. 10.4. Схема обучения для получения нейроэмулятора.
Для ускорения сходимости процесса обучения можно использовать другую модель эмулятора, показанную на рис. 10.5. Здесь в качестве условной модели используется простая математическая модель или физически точная модель, даже если сама система является достаточно сложной и нелинейной. Если между действительным выходным сигналом и выходным сигналом модели имеется несоответствие, то нейронная сеть выполняет самонастройку с целью минимизации ошибки. Выход модели обозначен как у , а выход нейронной сети — как у2. Их сумма представляет собой оценку предсказания действительного выхода у; расхождение между величинами у и у обозначайся как е.
Рис. 10.5. Альтернативный метод моделирования с использованием нейронных сетей.
Эмулятор рассматривается здесь как «сумма» условной модели и нейронной сети, но настраиваться (изменяться) может только нейронная сеть. Этот метод моделирования является подходящим для практических задач управления, так как условная модель может не обеспечивать достаточной точности предсказания действительного выходного сигнала.
Таким образом, общая конфигурация схемы управления на основе нейронной сети показана нарис. 10.6, где NN1 — нейросетевой эмулятор (или просто — нейроэмулятор), a NN2 — нейроконтроллер, реализующий инверсно-динамическое отображение.
Рис. 10.6. Общая схема инверсно-динамического нейроконтроллера.
Другая схема реализации инверсной динамики с помощью нейронной сети показана на рис. 10.7, где нейронная сеть NN1 используется для обучения инверсному отображению, а математическая модель NN2 копируется с модели NN1 после того, как заканчивается обучение последней.
Рис. 10.7. Другая схема обратного отображения
Алгоритм обучения для параллельной схемы управления
Общая конфигурация управления для нейроконтроллера параллельного типа показана на рис. 10.8. На этой схеме блок NN 1 представляет собой нейронную сеть для эмулятора объекта управления, создающего оценку у выходной координаты объекта управления у. Управляющий сигнал и2, представляющий собой выходной сигнал нейронной сети NN2, используется для коррекции управляющего сигнала и1Э создаваемого обычным контроллером. Коррекция выполняется таким образом, чтобы обеспечить минимизацию рассогласования между опорным сигналом и выходом объекта управления. Таким образом, блок
Рис. 10.8 Нойроконтроллер параллельного типа с эмулятором.
NN1 используется для эмуляции якобиана системы, необходимого для получения эквивалентной ошибки на выходе блока NN2.
Обозначим через е рассогласование (ошибку) между опорным сигналом r и фактическим выходным сигналом объекта управления у. Необходимо обучить сеть NN2 таким образом, чтобы она могла минимизировать среднеквадратическую ошибку. Обозначим ее через Е и определим в виде
Е=(r-у)2
Предположим, что используется трехслойная нейронная сеть, на вход которой поступает сигнал ri(t), а на выходе появляется сигнал Ok(t). Для упрощения рассуждений будем считать, что i=l, k=l.
Алгоритм: (от руки)
Схема нейронного управления с эмулятором и контроллером
(схема обратного распространения во времени)
Данная схема нейронного управления представляет собой в основном интегрированный и модифицированный вариант инверсно-прямой схемы управления и схемы специализированного обучения. При таком подходе для приближенного нахождения якобиана объекта, или частных производных ду/ди, используется эмулятор нейронной сети. Сначала схема использует автономное обучение нейросетевых моделей с целью изучения динамики инверсной и прямой нейросетевых моделей объекта управления. Нейросетевая модель, обученная инверсии объекта, используется в качестве контроллера. Нейросетевая модель, обученная прямой динамике объекта, используется как средство для обратного распространения ошибки характеристики системы (с целью получения эквивалентной ошибки на выходе нейроконтроллера).
Автономное обучение нейроконтроллера и эмулятора
Для обучения инверсной динамики используются выходные сигналы объекта управления вместе с несколькими задержанными значениями (в качестве образцов входных сигналов) и соответствующими входными сигналами объекта управления (в качестве желаемых образцов). Нейроэмуляторы обучаются прямой динамике объекта управления, используя для этого входные сигналы вместе с несколькими задержанными значениями (в качестве образцов входных сигналов) и соответствующими выходными сигналами (в качестве желаемых образцов). При автономном обучении нейронной сети сигнал обратного распространения ошибки между выходным и скрытым слоями выражается следующим образом:
где tk — заданный (желаемый) образец, a Ok — действительный выходной сигнал нейронной сети. Между скрытым и входным слоем модели объекта управления, сигнал обратного распространения ошибки имеет вид
Здесьf' — производная функции f, гдеf(x)=l/(l+exp(-x)). Веса связей между входным и скрытым слоями корректируются следующим образом:
а между скрытым и выходным слоями — в соответствии с выражением
где Оi и Оj — выходные сигналы входного и скрытого слоев соответственно; | — скорость обучения; а и — коэффициенты мгновенного значения и ускорения соответственно. Константы , a и выбираются эмпирическим путем.
Оперативное обучение
Коррекция весов нейросетевого контроллера производится на основе характеристики ошибки:
Е = .5*[r-у]2,
где r и у — соответственно заданная (желаемая) и фактическая выходные координаты объекта управления. Эта ошибка распространяется в обратном направлении через эмулятор. Так как функция выходных нейронов является линейной, сигнал ошибки между скрытым и выходным слоями эмулятора выражается как
где индекс Е обозначает эмулятор, а индекс k — выходной слой. Сигнал ошибки между скрытым и входным слоем эмулятора определяется формулой
где и — соответственно выходной и входной сигналы нейронов скрытого слоя эмулятора. Используя цепное правило, получим выражение
где - — вес связи между скрытым и выходным слоем эмулятора. Сигнал ошибки между скрытым и выходным слоем контроллера:
где и — соответственно выходной и входной сигналы нейронов выходного слоя контроллера. Так как выходные нейроны контроллера описываются линейной функцией с насыщением, то и, таким образом,
.
Для скрытого и входного слоев контроллера сигнал ошибки имеет вид:
где — выходной сигнал нейронов скрытого слоя контроллера.