- •1) Монотонные.
- •Проблема функции исключающее или
- •Линейная разделимость
- •Релаксационные нейронные сети
- •Методы инициализации весов
- •Train Обучение нейронной сети
- •Initial input – начальный уровень входа;
- •Нелинейные системы
- •Адаптивное управление
- •Автономное обучение нейроконтроллера и эмулятора
- •Оперативное обучение
-
Проблема функции исключающее или
Один из самых пессимистических результатов Минского показывает, что однослойный персептрон не может воспроизвести такую простую функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рис. 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 |
0 |
0 |
0 |
B0 |
1 |
0 |
1 |
B1 |
0 |
1 |
1 |
A1 |
1 |
1 |
0 |
Любые входные значения для х и у на этой линии будут давать пороговое значение 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.
Наилучший автопрогноз достигается тогда, когда матрица весовых коэффициентов сформирована в соответствии с методом главных компонент. Линейные рециркуляционные сети, в которых весовые коэффициенты определяются в соответствии с методом главных компонент, называются РСА-сетями.