Классические нейросетевые архитектуры.

Общие замечания.

В данной части мы поговорим о конкретных нейросетевых парадигмах, возникших на заре нейроинформатики. Именно эти сети стали основой для развития кибернетических нейронных сетей. В их основе лежат первые представления, полученные человеком о функционировании мозга. Несмотря ни на что, многие из этих сетей до сих пор успешно применяются на практике.

Для описания любой нейронной сети нужно определить для неё следующие положения:

· Модель формального нейрона (функция преобразования и т.д.)

· Структура связей нейронов сети

· Метод обучения сети

В дальнейшем мы будем придерживаться именно такого плана изложения.

Персептрон Розенблата.

Простейшая нейросеть, представляющая в данный момент чисто историческую ценность. Хотя её практическая ценность сомнительна, мы опишем её, т.к. на её примере легко показать некоторые важные принципы.

Модель нейрона: у персептрона есть два типа нейронов. Первый тип - нейроны рецепторы: они воспринимают на вход двоичный сигнал из окружающего мира и передают его дальше без искажений. Второй тип - ассоциативные нейроны: стандартные нейрон описанный нами выше с функцией преобразования:
Классические нейросетевые архитектуры. - student2.ru
т.е. простым порогом.

Структура связей персептрон состоит из двух слоёв независимых нейронов. Первый слой состоит из рецепторов, второй из ассоциативных нейронов. Каждый нейрон первого слоя соединен со всеми нейронами последующего, но между нейронами одного и того же слоя связи отсутствуют. В современной терминологии такая сеть называется однослойной - по количеству слоёв ассоциативных нейронов
Классические нейросетевые архитектуры. - student2.ru

Отметим, что на входе и на выходе у персептрона - двоичные вектора, то есть персептрон осуществляет некоторое двоичное отображение (функцию). Действительными числами являются только веса связей соединяющих рецепторы и ассоциативный слой. Для j-ого нейрона сети определён вектор Vj. Таким образом персептрон определяется матрицей W размерности m x n, где Wij - вес связи i-ого рецептора с j-ым ассоциативным нейроном.

Обучение персептрона

происходит с учителем. Пускай есть обучающая выборка: xα - обучающий вектор, yα - ожидаемый ответ сети на xα. Тогда будем обучать персептрон следующим образом:

1. Начальными значениями элементов матрицы весов W(t=0) положим случайные неотрицательные числа.

2. Пусть на входной вектор xα сеть формирует выход Классические нейросетевые архитектуры. - student2.ru

3. Вычислим ошибку Классические нейросетевые архитектуры. - student2.ru

4. Подстроим веса по следующей формуле: Классические нейросетевые архитектуры. - student2.ru , где 0<η<1.

5. Будем повторять шаги 2-4 пока на всех обучающих векторах не будет нулевой ошибки, или пока суммарная ошибка не будет меньше некоторого малого числа.

Поясним смысл формулы в 4 пункте: идея заключается в коррекции весов нейрона, пропорционально внесённой им ошибке, а играет роль темпа обучения.

Итак, мы установили как обучить персептрон некоторой двоичной функции. Возникает вопрос - любую ли двоичную функцию может осуществлять персептрон? Оказывается, что нет. Основным недостатком персептрона является, так называемая, линейная разделимость. Поясним на простом примере. Пускай у нас есть два рецептора и один ассоциативный нейрон.

Классические нейросетевые архитектуры. - student2.ru

Такая сеть должна осуществлять двоичную функцию от двух аргументов. К таким функциям относятся многие основные функции алгебры логики, такие как логическое "и", "или", сложение по модулю 2.

Проведём некоторые преобразования. Как известно выход данной сети
Классические нейросетевые архитектуры. - student2.ru
где f - функция преобразования, x1 и x2 -входы, W1 и W2 - веса связей. Следовательно
Классические нейросетевые архитектуры. - student2.ru
иными словами нейрон является линейным классификатором, т.е. разделяет пространство входных векторов(образов) на 2 класса гиперплоскостью, в нашем случае прямой x1W1 + x2W2 - Θ = 0.

Классические нейросетевые архитектуры. - student2.ru

Как видно на картинке множества белых и чёрных точек нельзя разделить прямой. Одна из известных двоичных функций не представимых с помощью персептрона - исключающие "или" (сложение по модулю 2). Когда рецепторов больше двух, получим общее уравнение гиперплоскости в n мерном пространстве:
Классические нейросетевые архитектуры. - student2.ru .
Так как в персептроне ассоциативные нейроны не зависят друг от друга, то в общем случае (n рецепторов, k ассоциативных нейронов), мы всё равно получим k линейных классификаторов. Этот недостаток и послужил причиной забвения персептрона.

Многослойный Персептрон.

Сразу после краха персептрона Розенблата начались попытки создать нейросеть без свойства линейной разделимости. Основной идеей являлось увеличение количества слоёв ассоциативных нейронов, однако долгое время не существовало алгоритма обучения таких сетей. Первым алгоритмом обучения многослойной нейросети был алгоритм обратного распространения ошибки (error back propagation). Итак опишем многослойный персептрон и методы его обучения.

Модель нейрона претерпела изменения. Теперь нейроны рецепторы принимают на вход действительные числа (обычно от 0 до1), а ассоциативные нейроны используют сигмоидальную функцию преобразования
Классические нейросетевые архитектуры. - student2.ru
Как видно из модели нейрона многослойный персептрон работает с действительными числами. Отметим несколько важных свойств функции преобразования.

1. Областью значений функции является интервал (0,1).

2. Функция бесконечное число раз непрерывно дифференцируема.

3. Её производная выражается только через неё саму: f' = f (1 - f) .

Структура связей в многослойном персептроне весьма похожа на структуру классического персептрона Розенблата. Имеется один слой нейронов рецепторов и произвольное число слоёв ассоциативных нейронов. Нейроны одного и того же слоя друг с другом не связаны, и каждый нейрон связан со всеми нейронами последующего слоя (кроме последнего слоя - его выходы являются выходами сети в целом).

Классические нейросетевые архитектуры. - student2.ru

На схеме изображена двухслойная нейросеть - хотя можно использовать произвольное число слоёв, но обычно используются два. Существует теорема о том, что для любой n-слойной сети (n>2), можно построить эквивалентную ей двухслойную сеть. На практике иногда используют больше двух слоёв - в некоторых случаях это может сократить суммарное число нейронов. В двухслойной сети первый слой ассоциативных нейронов обычно называют скрытым слоем, а второй - выходным.

Как видно из архитектуры k-слойная нейросеть производит цепочку отображений Классические нейросетевые архитектуры. - student2.ru . Существует теорема утверждающая, что многослойная нейронная сеть может с любой заданной точностью приближать произвольную кусочно-непрерывную и ограниченную функцию (мы не будем приводить доказательство).

Обучение многослойного персептрона происходит по схеме "обучение с наставником". Опишем самый популярный метод обучения многослойного персептрона - метод обратного распространения ошибки. Сначала изложим основную идею метода. Итак, мы хотим изменять веса связей нейронов пропорционально их вкладу в ошибку. Для последнего слоя вычисление ошибки довольно очевидное действие, но как вычислить ошибку для предыдущих слоёв? Главной идеей метода обратного распространения ошибки является предположение, что ошибка распространяется по нейросети в обратном направлении (от выхода к входам). То есть вклад веса связи в ошибку пропорционален значению проходящего по связи сигнала и ошибке (дальнего по ходу сигнала) нейрона. Таким образом ошибка связи двух нейронов зависит от ошибки ближнего к выходу сети нейрона и прошедшего по связи сигнала. Ошибка как бы распространяется от выходов к входам - отсюда и название метода. Опишем его в точных математических терминах. Пускай у нас есть обучающая выборка из пар (Xα, Yα), α=1,2,..,p. Будем использовать для обучения метод градиентного спуска:

1. Пусть W - матрица весов связей нейронов скрытого слоя, V - матрица весов выходного слоя. Придадим им в начальный момент случайные значения
Классические нейросетевые архитектуры. - student2.ru

2. Пускай на входной образ Xα сеть вырабатывает выходной образ Классические нейросетевые архитектуры. - student2.ru . Запишем как функционирует скрытый слой:
Классические нейросетевые архитектуры. - student2.ru
и выходной слой:
Классические нейросетевые архитектуры. - student2.ru

3. В качестве функционала подлежащего минимизации методом градиентного спуска возьмём среднеквадратичное отклонение реального выхода сети от предполагаемого, то есть
Классические нейросетевые архитектуры. - student2.ru

4. Начнём с выходного слоя. Согласно методу градиентного спуска
Классические нейросетевые архитектуры. - student2.ru
где h - темп обучения. Так как
Классические нейросетевые архитектуры. - student2.ru
воспользовавшись правилами неявного дифференцирования получим
Классические нейросетевые архитектуры. - student2.ru
Вычислим
Классические нейросетевые архитектуры. - student2.ru
Используя свойство 3 сигмоидальной функции активации вычислим
Классические нейросетевые архитектуры. - student2.ru
Так же очевидным является равенство
Классические нейросетевые архитектуры. - student2.ru
Итак мы получили
Классические нейросетевые архитектуры. - student2.ru

5. Теперь перейдём к скрытому слою. Опять по методу градиентного спуска имеем:
Классические нейросетевые архитектуры. - student2.ru
Как и на предыдущем шаге применяя формулы неявного дифференцирования и свойства сигмоды вычислим
Классические нейросетевые архитектуры. - student2.ru
Классические нейросетевые архитектуры. - student2.ru
Классические нейросетевые архитектуры. - student2.ru
В формуле (*) для вычисления ошибки нейрона скрытого слоя и раскрывается главный смысл метода обратного распространения ошибки о котором мы говорили выше.

6. В случае наличия более двух слоёв к ним применяются все те же методы и принципы, мы не будем их описывать.

7. Далее, согласно концепции обучения с наставником, мы повторяем шаги 2-6 пока для всех обучающих образов суммарная ошибка не станет ниже некоторого фиксированного малого числа.

Можно было заметить, что мы проводили все вычисления с параметром функции преобразования Θ = 0. Это было сделано для упрощения. Как же нам учесть его? Легко заметить, что параметр Θ можно заменить, так называемым, фиктивным входом x0 = -1 с весом W0 = Θ. Таким образом для любого нейрона выход равен
Классические нейросетевые архитектуры. - student2.ru
Итак введя фиктивный вход, мы можем применить вышеописанный метод просто начиная все суммирование с нуля и учитывая в конце смысл W0.

Сложность этого алгоритма линейная от числа нейронов, то есть Классические нейросетевые архитектуры. - student2.ru . Главными недостатками метода являются:

· Медленная сходимость (свойство метода градиентного спуска).

· В силу применения метода градиентного спуска, функционал среднеквадратичной ошибки минимизируется к локальному, а не к глобальному минимуму. В большинстве случаев этого достаточно, но если найденный локальный минимум недостаточен, то возможным выходом может быть попытка повторить обучение придав матрицам V и W другие значения на первом шаге.

· Подстраивая веса и минимизируя ошибку для одного из обучающих векторов, мы можем её увеличивать для другого. Поэтому метод может, вообще говоря, не сойтись. Однако, практика показала, что такие случаи крайне редки.

После появления метода обратного распространения ошибки было придумано много других методов: стохастические, генетические и т.д. Всех их объединяет идея впервые использованная в методе обратного распространения ошибки: подход к обучению нейросети, как к задачи многомерной оптимизации.

На сегодняшний день многослойный персептрон - одна из самых популярных и используемых нейросетей. Причин успеха немало. Одно из главных преимуществ многослойного персептрона, это возможность решать алгоритмически неразрешимые задачи или задачи, для которых алгоритмическое решение неизвестно, но для которых возможно составить репрезентативный набор примеров с известными решениями. Многослойный персептрон функционирует очень похоже на человека. При обучение нейросеть, за счёт своего внутреннего строения, выявляет закономерности в связи входных и выходных образов, тем самым как бы "обобщает" полученный на обучающей выборке опыт. В этой способности к обобщению и состоит основа привлекательности многослойного персептрона. Мы сами можем и не знать какова зависимость между входными и выходными образами, достаточно иметь большой набор векторов для которых известен ожидаемый выход. Вот небольшой список задач где успешно применялся многослойный персептрон:

· Прогнозирование поведения рынка

· Распознавание речи

· Анализ изображений

· Экспертные системы

· И т.д.

Рекурсивные сети.

На практике нейросети зачастую применяются для обработки некоторых последовательностей: звуковых волн, видеопоследовательностей, данных с измерительных приборов и т.д. Для предъявления нейросети данные разбиваются на блоки и подаются нейросети. Такая модель, зачастую работает, но обладает недостатком - обычный многослойный персептрон рассматривает каждый блок независимо от другого, не учитывая возможную связь между ними. Для обработки последовательностей это может оказаться существенным недостатком.

Рассмотрим нейросеть, специально приспособленную для обработки последовательностей - рекурсивную сеть. В литературе их, зачастую, называют сетями Эльмана [2], однако, Эльман является автором лишь одной из моделей. Идея состоит в том, что бы приспособить двухслойный персептрон к обработке последовательностей.

Модель нейрона такая же, как и в многослойном персептроне.

Структура связей: любая рекурсивная сеть строится на основе двухслойного персептрона. В первых рекурсивных сетях главной идеей было дать сети видеть свой выходной образ на предыдущем шаге. У такой сети только часть рецепторов принимает сигналы из окружающего мира, на другие рецепторы приходит выходной образ из предыдущего момента времени.

Классические нейросетевые архитектуры. - student2.ru

Что же происходит? Рассмотрим прохождение последовательности сигналов через сеть. Сигнал поступает на группу рецепторов соединённых с внешним миром и проходит в скрытый слой (будем считать, что на начальном этапе другие рецепторы неактивны). Преобразованный скрытым слоем сигнал пойдёт на выходной слой. Сигнал, пройдя через выходной слой, выйдет из сети, а его копия попадёт на задержку. Далее в сеть, на рецепторы, воспринимающие внешние сигналы, поступает второй образ, а на вторую группу рецепторов - выходной образ с предыдущего шага из задержки. Далее со всех рецепторов сигнал пойдёт в скрытый слой. Для скрытого слоя безразлична природа сигнала на второй группе рецепторов, поэтому он будет функционировать, как в обычном многослойном персептроне. Сигнал из скрытого слоя поступит в выходной. Переработанный выходным слоем, сигнал выйдет из сети, а его копия опять попадёт на задержку. И так далее.

Следующим шагом было использование того же принципа, но сохранять не выходной образ, а выход скрытого слоя.

Классические нейросетевые архитектуры. - student2.ru

Как видно из схемы у сети два входа для сигналов извне. Три нейрона в скрытом слое и три нейрона во входном слое, на которые с задержкой приходит копия результата работы скрытого слоя.

Самым популярным является следующий подход: возьмём обычный двухслойный персептрон и выходы скрытого слоя, передав сигнал выходному слою, пустим через задержку опять на входы скрытого слоя, смешав их сигналом из окружающего мира. Поясним что же имеется ввиду.

Классические нейросетевые архитектуры. - student2.ru

Что же происходит? Рассмотрим прохождение последовательности сигналов через сеть. Сигнал поступает на вход проходит в скрытый слой. Преобразованный скрытым слоем сигнал пойдёт на выходной слой, а его копия - на задержку. Сигнал, пройдя через выходной, слой выйдет из сети. Далее в сеть поступает второй сигнал. Поступив на входы он пойдёт на скрытый слой, просуммированный с сигналом, находящимся на задержки. После этого выход скрытого слоя пойдёт в выходной, а его копия опять сохранится в задержке. И так далее. Обычно, перед суммированием сигнал из задержки умножается на некоторый коэффициент W меньше единицы. Чем больше этот коэффициент, тем сильней влияние предыдущих сигналов на выход сети. Иногда между сигналом в задержке и входным сигналом берётся среднее арифметическое. Из структуры понятно, что количество нейронов скрытого слоя и количество входов (размерность входного образа) должны быть равны. Такой вариант рекурсивной сети реализован, например, в Neural Networks Toolbox в системе MatLab.

Можно так же придумывать множество вариантов и комбинаций, но суть останется неизменной: результат работы одного из слоёв сети, в том или ином виде, подается на входы при обработке следующего сигнала.

Сделаем несколько общих для всех рекурсивных нейросетей замечаний:

· Единицей обработки является не один образ, а последовательность.

· Нейросеть "помнит" начало обрабатываемой последовательности. Память, о каждом из образов, а следовательно и его влияние, затухает экспоненциально.

· Сеть сохраняет все свойства многослойного персептрона.

· Для первого элемента обрабатываемой последовательности все рекурсивные элементы предполагаются неактивными или принимают заранее предопределённое состояние.

Обучение, несмотря на всю сложность структуры связей, обучение проводится, примерно, по той же схеме, что и для многослойного персептрона, притом схема одинакова для всех вариантов рекурсивной архитектуры. Основным отличием является, то что обучающая выборка теперь состоит не из отдельных образов, а из их последовательностей. Коротко опишем этот алгоритм.

Итак, пускай у нас есть обучающая выборка: {Xα, Yα}; α = 1,2,...,p, где n - число элементов в последовательности. n - может быть фиксированным для всех последовательностей в обучающей выборке, а может и зависеть от α.Придадим весам случайные значения и далее будем действовать по следующему алгоритму:

1. Возьмём некоторую последовательность {Xnα, Ynα} из обучающей выборки.

2. Для пары образов {X1α, Y1α}, проведём коррекцию весов с помощью алгоритма обратного распространения ошибки, считая задержку пустой (нулевой сигнал), заполнив все элементы задержки, согласно конкретной архитектуре связей.

3. Далее будем проводить коррекцию весов алгоритмом обратного распространения ошибки последовательно для всех остальных пар последовательности, каждый раз учитывая сигнал на задержке и заполняя её заново.

4. Очистив задержку повторим шаги 1-3 для последовательностей в обучающей выборке, пока суммарная ошибка не станет достаточно мала.

Заметим, что каждый раз при оптимизации весов мы работаем с сетью, как с обычным многослойным персептроном (на картинках связи, изображенные пунктиром, не оптимизируются). Следует заметить, что в случае рекурсивных сетей мы будем использовать не сам градиент ошибки, а лишь его приближение. Почему так? При подсчёте ошибки мы не учитываем ошибку, внесённую из-за данных на задержки. Попытка учёта этой составляющей напрямую может привести к слишком глубокой рекурсии и т.д. Из-за этого обучение сходится медленнее и для качественного функционирования рекурсивной сети требуется, в общем случае, большее количество нейронов, чем для обычной. Однако эти недостатки перекрываются множеством достоинств:

· Способность обрабатывать последовательности образов, учитывая связь между элементами последовательности.

· Способность вырабатывать последовательности в ответ как на последовательности, так и на единичные образы (достаточно дополнить образ до последовательности нулевыми сигналами).

· Высокая способность к обобщению, как показано в [3] она выше даже чем у обычного многослойного персептрона.

Рекурсивные нейросети широко используются в:

· Задачах обработки звука и речи.

· Анализе электронных схем.

· В различных задачах компьютерного зрения и обработки сигналов.

Библиография:

[1] С. Терехов. Лекции по теории и приложениям нейронных сетей.
[2] J. L. ELMAN. Finding Structure in Time. COGNITIVE SCIENCE, 14, 179-211 (1990).
[3] H. NINOMIYA, A SASAKI. A Study on Generalization Ability of 3-Layer Recurrent. Neural Networks. IJCNN '02.
[4] T. Koskela, M. Lehtokangas, J. Saarinen, K. Kaski. Time Series Prediction with Multilayer Perceptron, FIR and Elman Neural Networks.
[5] Е. Лисицин Radial Based Functions. Graphics and Media Journal.
[6] J. Chao, M. Hoshino, T. Kitamura, T. Masuda. A MULTILAYER RBF NETWORK AND ITS SUPERVISED LEARNING.
[7] M. Y. Mashor. Hybrid Training Algorithm for RBF Network.
[8] A.G. Bors, I. Pitas. Optical Flow Estimation and Moving Object Segmentation Based on Median Radial Basis Function Network.
[9] Da-chuan Cheng, Qin Pu, Kuo-sheng Cheng, Hans Burkhardt. Possibilistic

Нейрокомпьютинг

http://pca.narod.ru/lecture1.htm

Доступность и возросшие вычислительные возможности современных компьютеров привели к широкому распространению программ, использующих принципы нейросетевой обработки данных, о которых мы поговорим подробнее в следующих разделах, но исполняемых на последовательных компьютерах. Этот подход не использует преимуществ присущего нейро-вычислениям параллелизма, ориентируясь исключительно на способность нейросетей решать неформализуемые задачи.

Наши рекомендации