Биологические нейронные сети 1

advertisement
Приложения
нейронных сетей
Жуков Л.А.
ЛЕКЦИЯ №1
Введение в Нейронные сети
Прототипы
Биологические нейроны и нейронные сети
служили прототипами при создании
искусственных нейронных сетей.
В большинстве современных нейросетевых
архитектур былое сходство стало
существенно меньше. Тем не менее,
знакомство с естественными нейронными
сетями полезно, т.к. они успешно решают
задачи, к выполнению которых лишь
стремятся искусственные сети.
Нервная система человека
Нервная система человека построена из
специальных нервных клеток, называемых
нейронами. Мозг имеет около 1011
нейронов, которые образуют около 1015
передающих связей, имеющих длину до
метра и более.
Связи часто называют синапсами.
Нейрон

Нейрон основной блоком нервной
системы. Он является клеткой, подобной
всем другим клеткам тела; однако
определенные существенные отличия
позволяют ему выполнять все
вычислительные функции и функции связи
внутри мозга. Нейрон состоит из трех
основных частей: тела клетки, дендритов
и аксона, каждая часть со своими
взаимосвязанными функциями.
Нейрон
Функционально дендриты получают сигналы от
других клеток через контакты, называемые
синапсами. Отсюда сигналы проходят в тело
клетки, где они суммируются с другими такими
же сигналами. Если суммарный сигнал в течении
короткого промежутка времени является
достаточно большим, клетка возбуждается,
вырабатывая в аксоне импульс, который
передается на следующие клетки.
Вид НЕЙРОНА
Упрощенная структура
биологической нервной клетки
структура биологической
нервной клетки
Нейронные сети

Нейронные сети — это раздел искусственного интеллекта, в
котором для обработки сигналов используются явления,
аналогичные происходящим в нейронах живых существ.
Важнейшая особенность сети, свидетельствующая о ее
широких возможностях и огромном потенциале, состоит в
параллельной обработке информации всеми звеньями. При
громадном количестве межнейронных связей это позволяет
значительно ускорить процесс обработки информации. Во
многих случаях становится возможным преобразование
сигналов в реальном времени. Кроме того, при большом
числе межнейронных соединений сеть приобретает
устойчивость к ошибкам, возникающим на некоторых линиях.
Функции поврежденных связей берут на себя исправные
линии, в результате чего деятельность сети не претерпевает
существенных возмущений.
Нейронные сети


Другое не менее важное свойство - способность к обучению
и обобщению накопленных знаний. Нейронная сеть
обладает чертами искусственного интеллекта.
Натренированная на ограниченном множестве данных сеть,
способна обобщать полученную информацию и показывать
хорошие результаты на данных, не использовавшихся в
процессе обучения.
Характерная особенность сети состоит также в возможности
ее реализации с применением технологии сверхбольшой
степени интеграции. Различие элементов сети невелико, а
их повторяемость огромна. Это открывает перспективу
создания универсального процессора с однородной
структурой, способного перерабатывать разнообразную
информацию.
Нейронные сети

Использование перечисленных свойств на фоне развития
устройств со сверхбольшой степенью интеграции (VLSI) и
повсеместного применения вычислительной техники,
вызвало в последние годы огромный рост интереса к
нейронным сетям и существенный прогресс в их
исследовании. Создана база для выработки новых
технологических решений, касающихся восприятия,
искусственного распознавания и обобщения
видеоинформации, управления сложными системами,
обработки речевых сигналов и т.п. Искусственные
нейронные сети в практических приложениях, как правило,
используются в качестве подсистемы управления или
выработки решений, передающей исполнительный сигнал
другим подсистемам, имеющим иную методологическую
основу.
Функции нейронных сетей



Функции, выполняемые сетями, подразделяются на несколько
групп: аппроксимация; классификация и распознавание образов;
прогнозирование; идентификация и оценивание; ассоциативное
управление.
Аппроксимирующая сеть играет роль универсального
аппроксиматора функции нескольких переменных, который
реализует нелинейную функцию вида у = f{x), где х — входной
вектор, а у — реализованная функция нескольких переменных.
Множество задач моделирования, идентификации, обработки
сигналов удается сформулировать в аппроксимационной
постановке.
Для классификации и распознавания образов сеть накапливает в
процессе обучения знания об основных свойствах этих образов,
таких, как геометрическое отображение структуры образа,
распределение главных компонентов (РСА), или о других
характеристиках. При обобщении акцентируются отличия образов
друг от друга, которые и составляют основу для выработки
классификационных решений.
Функции нейронных сетей


В области прогнозирования задача сети формулируется как
предсказание будущего поведения системы по имеющейся
последовательности ее предыдущих состояний. По информации о
значениях переменной в моменты времени, предшествующие
прогнозированию, сеть вырабатывает решение о том, чему должно
быть равно оцениваемое значение исследуемой
последовательности в текущий момент времени.
В задачах управления динамическими процессами нейронная сеть
выполняет, как правило, несколько функций. Во-первых, она
представляет собой нелинейную модель этого процесса и
идентифицирует его основные параметры, необходимые для
выработки соответствующего управляющего сигнала. Во-вторых,
сеть выполняет функции следящей системы, отслеживает
изменяющиеся условия окружающей среды и адаптируется к ним.
Она также может играть роль нейрорегулятора, заменяющего
собой традиционные устройства. Важное значение, особенно при
управлении роботами, имеют классификация текущего состояния и
выработка решений о дальнейшем развитии процесса.
Функции нейронных сетей


В задачах ассоциации нейронная сеть выступает в роли
ассоциативного запоминающего устройства. Здесь можно
выделить память автоассоциативного типа, в которой
взаимозависимости охватывают только конкретные компоненты
входного вектора, и память гетероассоциативного типа, с помощью
которой сеть определяет взаимосвязи различных векторов. Даже
если на вход сети подается вектор, искаженный шумом, либо
лишенный отдельных фрагментов данных, то сеть способна
восстановить полный и очищенный от шумов исходный вектор
путем генерации соответствующего ему выходного вектора.
Различные способы объединения нейронов между собой и
организации их взаимодействия, привели к созданию сетей разных
типов. Каждый тип сети, в свою очередь, тесно связан с
соответствующим методом подбора весов межнейронных связей
(т.е. обучения).
Функции нейронных сетей

Интересным представляется объединение различных видов
нейронных сетей между собой, особенно сетей с
самоорганизацией и обучаемых с учителем. Такие комбинации
получили название "гибридные сети". Первый компонент - это сеть
с самоорганизацией на основе конкуренции, функционирующая на
множестве входных сигналов и группирующая их в кластеры по
признакам совпадения свойств. Она играет роль препроцессора
данных. Второй компонент - в виде сети, обучаемой с учителем
(например, персептронной), сопоставляет входным сигналам,
отнесенным к конкретным кластерам, соответствующие им
заданные значения (постпроцессинг). Подобная сетевая
структура позволяет разделить фазу обучения на две части:
вначале тренируется компонент с самоорганизацией, а потом —
сеть с учителем. Дополнительное достоинство такого подхода
заключается в снижении вычислительной сложности процесса
обучения, а также в лучшей интерпретации получаемых
результатов.
Литература
1. Горбань А.Н. Обучение нейронных сетей. - М.:
СП "ПараГраф", 1990.
2. Горбань А.Н., Россиев Д.А. Нейронные сети на
персональном компьютере. Новосибирск: Наука,
1996.
3. Дунин-Барковский В.Л. Информационные
процессы в нейронных структурах. - М.: Наука,
1978.
4. Ивахненко А.Г. "Персептроны". - Киев: Наукова
думка, 1974.
Приложения
нейронных сетей
Жуков Л.А.
ЛЕКЦИЯ №2
Биологические основы функционирования нейрона
Биологические нейроны



Искусственные нейронные сети возникли на основе знаний о
функционировании нервной системы живых существ. Они представляют
собой попытку использования процессов, происходящих в нервных
системах, для выработки новых технологических решений.
Нервная клетка, сокращенно называемая нейроном, является основным
элементом нервной системы. Изучение механизмов функционирования
отдельных нейронов и их взаимодействия принципиально важно для
познания протекающих в нервной системе процессов поиска, передачи и
обработки информации. С этой точки зрения представляется необходимым
построить и изучить модель биологического нейрона.
Как и у любой другой клетки, у нейрона имеется тело со стандартным
набором органелл, называемое сомой, внутри которого располагается
ядро. Из сомы нейрона выходят многочисленные отростки, играющие
ключевую роль в его взаимодействии с другими нервными клетками.
Можно выделить два типа отростков: многочисленные тонкие, густо
ветвящиеся дендриты и более толстый, расщепляющийся на конце аксон.
Биологические нейроны


Входные сигналы поступают в клетку через синапсы, тогда
как выходной сигнал отводится аксоном через его
многочисленные нервные окончания, назы­ваемые
колатералами. Колатералы контактируют с сомой и
дендритами других нейронов, образуя очередные синапсы.
Очевидно, что синапсы, подключающие к клетке выходы
других нейронов, могут находиться как на дендритах, так и
непосредственно на теле клетки.
Синапсы отличаются друг от друга размерами и
возможностями концен­трации нейромедиатора вблизи
своей оболочки. По этой причине импульсы одинаковой
величины, поступающие на входы нервной клетки через
различные синапсы, могут возбуждать ее в разной степени.
Мерой возбуждения клетки считается уровень поляризации
ее мембраны, зависящий от суммарного количества
нейромедиатора, выделенного на всех синапсах.
Биологические нейроны

Из сказанного следует, что каждому входу клетки можно
сопоставить численные коэффициенты (веса),
пропорциональные количеству нейромедиатора, однократно
выделяемого на соответствующем синапсе. В
математической модели нейрона входные сигналы должны
умножаться на эти коэффициенты для того, чтобы корректно
учитывать влияние каждого сигнала на состояние нервной
клетки. Синапсические веса должны быть натуральными
числами, принимающими как положительные, так и
отрицательные значения. В первом случае синапс оказывает
возбуждающее, а во втором - тормозящее действие,
препятствующее возбуждению клетки другими сигналами.
Таким образом, действие возбуждающего синапса может
моделироваться положительным значением синапсического
веса, а действие тормозящего синапса - отрицательным
значением.
Биологические нейроны


В результате поступления входных импульсов на конкретные
синапсы и высвобождения соответствующих количеств
нейромелмитора происходит опреде­ленное электрическое
возбуждение нервной клетки.
Количество взаимодействующих друг с другом нервных
клеток чрезвычайно велико. Считается, что человеческий
мозг содержит около 1011 нейронов, каждый из которых
выполняет относительно примитивные функции
суммирова­ния весовых коэффициентов входных сигналов и
сравнения полученной суммы с поротным значением.
Каждым нейрон имеет свои веса и свое пороговое значение.
Особенности биологических
нейросистем

Громадное количество нейронов и межнейронных связей (до
1000 входов в каждый нейрон) приводит к тому, что ошибка в
срабатывании отдельного нейрона остается незаметной в
общей массе взаимодействующих клеток. Нейронная сеть
проявляет высокую устойчивость к помехам - это
"стабильная" сеть, в которой отдельные сбои не оказывают
существенного влияния на результаты ее
функционирования. Таково главное отличие нейронных
систем от обычных электронных систем, созданных
человеком. Следует подчеркнуть, что ни одна современная
технология не позволяет построить искусственную
нейронную сеть, близкую по масштабам к нейронной сети
мозга. Однако изучение и копирование биологических
нервных систем позволяют надеяться на создание нового
поколения электронных устройств, имеющих аналогичные
характеристики.
Особенности биологических
нейросистем

Другая важная особенность нервных систем — высокая скорость их
функционирования, несмотря на относительно длительный цикл
срабатывания каждой отдельной клетки, измеряемый в миллисекундах.
Она достигается благодаря параллельной обработке информации в мозге
огромным количеством нейронов, соединенных многочисленными
межнейронными связями. Такие операции, как распознавание образов и
звуков либо принятие решений, выполняются человеческим мозгом за
промежутки времени, измеряемые миллисекундами. Достижение такого
результата при использовании полупроводниковой технологии VLSI все
еще выходит за границы современных технических возможностей, хотя
цикл срабатывания отдельных исполнительных элементов СБИС является
достаточно коротким. Если удастся, взяв за образец нервную систему,
создать устройство с высокой степенью параллельности выполнения
независимых операций, то скорость его функцио­нирования может быть
существенно увеличена и приближена к уровню, наблюдаемому в
процессах обработки информации биологическими объектами.
Биологический нейрон
Приложения
нейронных сетей
Жуков Л.А.
ЛЕКЦИЯ №3
Первые модели нейронной сети
Первые модели
искусственного нейрона

Из приведенных выше рассуждений следует, что каждый
нейрон можно считать своеобразным процессором: он
суммирует с соответствующими весами сигналы,
приходящие от других нейронов, выполняет нелинейную
(например, пороговую) решающую функцию и передает
результирующее значение связанным с ним нейронам. В
соответствии с действующим правилом "все или ничего" в
простейших моделях нейронов выходной сигнал принимает
двоичные значения: 0 или 1. Значение 1 соответствует
превышению порога возбуждения нейрона, а значение 0 возбуждению ниже порогового уровня.
Развитие представлений о
нейронной сети


Через несколько лет Д. Хебб в процессе исследования
ассоциативной памяти предложил теорию обучения
(подбора весов wy) нейронов. При этом он использовал
наблюдение, что веса межнейронных соединений при
активации нейронов могут возрастать. В модели Хебба
приращение веса Awy в процессе обучения
пропорционально произведению выходных сигналов
нейронов, связанных весом wy.
В начале 60-х годов Б. Видроу предложил теоретическое
обоснование и сформулировал принципы практической
реализации адаптивных устройств обработки сигналов, что
стало существенным вкладом в развитие нейронных сетей,
функционирующих в режимах «онлайн» и «оффлайн».
Первые модели
искусственного нейрона

В одной из первых моделей нейрона, называемой моделью
МакКаллока-Питса (предложенной в 1943 г.), нейрон
считается бинарным элементом. Входные сигналы
суммируются с учетом соответствующих весов wy в
сумматоре, после чего результат сравнивается с пороговым
значением. Положительное значение wy соответствует
возбуждающим синапсам, отрицательное значение wy тормозящим синапсам, тогда как wy = 0 свидетельствует об
отсутствии связи между нейронами. Модель МакКаллокаПитса - это дискретная модель, в которой состояние
нейрона в момент (t + 1) рассчитывается по значе­ниям его
входных сигналов в предыдущий момент t. Построение
дискретной модели обосновывается проявлением изменять
свое состояние с конечной частотой, причем длительность
периодов бездействия зависит от частоты его срабатывания
Модель нервной клетки по
МакКаллоку—Питсу
Развитие представлений о
нейронной сети

Ограниченные возможности одиночного персептрона и
составляемых из таких элементов одноуровневых сетей
подверглись критике в книге М. Минского и С. Пейперта, что
вызвало резкое снижение финансирования этой сферы научных
исследований и привело в результате к замедлению развития
искусственных нейронных сетей. Только отдельные научные
группы, сконцентрированные вокруг таких ученых, как Гроссберг,
Видроу, фон дер Мальсбург, Амари, Фукушима и Кохонен,
продолжали работу в этой области. И только бурное развитие в 80х годах технологии производства полупроводниковых устройств
сверхвысокой степени интеграции (VLSI) привело к резкому
возрастанию интереса к средствам параллельной обработки
информации, которыми считаются и искусственные нейронные
сети. Начиная с опубликованных в 1982 г. работ Дж. Хопфилда,
теория нейронных сетей развивается в стремительном темпе, а
количество научных центров, занимающихся этой
междисциплинарной сферой знаний, непрерывно увеличивается
Развитие представлений о
нейронной сети

Доработка или, точнее, повторное открытие принципа
обратного распространения в применении к обучению
многослойных сетей сняли те ограничения, которые стали
главным объектом критики в книге М. Минского и С.
Пейперта. Масштабное увеличение финансирования этой
научной отрасли предопределило существенный прогресс
как в теории, так и в практических приложениях. С учетом
взрывного развития вычислительных систем это создало
базу для реализации новых технологических решений в
сфере технического распознавания образов, восприятия и
объяснения, в управлении сложными системами, для
обработки речевых сообщений и т.п. В настоящее время
искусственные нейронные сети представляют собой
высокоразвитую (особенно в теоретическом аспекте)
отрасль знаний.
Схема формального нейрона. Xi –
входные сигналы, Y – выходной сигнал
нейрона.
Схема нейронной сети по
Хофилду. – нейроны, –
синапс
Модели Нейрона.
Сумматор простой
x
...
Σ
n
∑ xi
i =1
Модели Нейрона.
Сумматор адаптивный
x1
x2
xn
α1
α2
. . .
αn
x1α 1
x2α 2
Σ
n
∑ xiα i
i =1
x nα n
Модели Нейрона.
Сумматор
Входной
сигнал
α1
α2
x
...
αn
Выходной
сигнал
Σ
n
α ( x, α ) = x α
∑ i i
i =1
Модели Нейрона.
Сумматор квадратичный
n
x
. . .
Q
∑ qij x i x j
i, j =1
Модели Нейрона.
Неоднородный
α
0
1
α1
x1
α2
x2
. . .
xn
αn
Σ
α
α 0 + ( x, α )
Модели Нейрона.
Нелинейный преобразователь
x
ϕ
ϕ (x)
Модели Нейрона.
Синапс
x
α
αx
Модели Нейрона.
Точка ветвления или звезда
x
x
x
x
Модель нейрона
α1
α2
. . .
αn
Входные
связи
. . .
Σ
ϕ
Н елинейный
Точка
преобразователь ветвления
Входной
сумматор
Нейрон Падэ (рациональный)
( x, α )
( x, α )
x, β )
(
x . . .
Σ
α
( x, β )
Σ β
.
.
.
x
Литература




1. Горбань А.Н. Обучение нейронных сетей. М.: СП "ПараГраф", 1990.
2. Горбань А.Н., Россиев Д.А. Нейронные сети на
персональном компьютере. Новосибирск: Наука,
1996.
3. Дунин-Барковский В.Л. Информационные
процессы в нейронных структурах. - М.: Наука,
1978.
4. Ивахненко А.Г. "Персептроны". - Киев: Наукова
думка, 1974.
Биологический нейрон
Приложения нейронных сетей
Жуков Л.А.
•
НЕЙРОННЫЕ СЕТИ ИХ УСТРОЙСТВО И ТЕХНОЛОГИЯ ИСПОЛЬЗОВАНИЯ
•
•
Введение в нейронные сети
Нейронные сети представляют собой новую и весьма перспективную вычислительную технологию,
дающую новые подходы к исследованию динамических задач в финансовой области. Первоначально
нейронные сети открыли новые возможности в области распознавания образов, затем к этому
прибавились статистические и основанные на методах искусственного интеллекта средства поддержки
принятия решений и решения задач в сфере финансов.
Способность к моделированию нелинейных процессов, работе с зашумленными данными и
адаптивность дают возможности применять нейронные сети для решения широкого класса финансовых
задач. В последние несколько лет на основе нейронные сетей было разработано много программных
систем для применения в таких вопросах, как операции на товарном рынке, оценка вероятности
банкротства банка, оценка кредитоспособности, контроль за инвестициями, размещение займов.
Приложения нейронные сетей охватывают самые разнообразные области интересов:
распознавание образов, обработка зашумленные данных, дополнение образов, ассоциативный поиск,
классификация, оптимизация, прогноз, диагностика, обработка сигналов, абстрагирование, управление
процессами, сегментация данных, сжатие информации, сложные отображения, моделирование сложных
процессов, машинное зрение, распознавание речи.
Смысл использования нейронные сетей в финансовой области заключается вовсе не в том, чтобы
вытеснить традиционные методы или изобретать велосипед. Это просто еще одно возможное средство
для решения задач.
•
•
•
•
•
•
История нейронных сетей
На заре развития электронно-вычислительной техники в
середине ХХ века среди ученых и конструкторов еще не
существовало единого мнения ок том, как должна быть реализована и
по какому принципу работать типовая электронно-вычислительная
машина. Это сейчас мы с Вами изучаем в курсах Основ
информатики архитектуру машины фон Неймана, по которой
построены практически все существующие сегодня компьютеры. При
этом в тех же учебниках ни слова не говорится о том, что в те же годы
были предложены принципиально иные архитектуры и принципы
действия компьютеров. Одна из таких схем получила название
нейросетевого компьютера, или просто нейросети.
Первый интерес к нейросетям был обусловлен пионерской
работой МакКаллока и Питса, изданной в 1943 году, где предлагалась
схема компьютера, основанного на аналогии с работой человеческого
мозга. Они создали упрощенную модель нервной клетки – нейрон.
Мозг человека состоит из белого и серого веществ: белое – это тела
нейронов, а серое – это соединительная ткань между нейронами, или
аксоны и дендриты. Мозг состоит примерно из 1011 нейронов,
связанных между собой. Каждый нейрон получает информацию через
свои дендриты, а передает ее дальше только через единственных
аксон, разветвляющийся на конце на тысячи синапсов (см. рис. 1).
•
•
Простейший нейрон может иметь до 10000 дендритов,
принимающих сигналы от других клеток.
Таким образом,
мозг содержит примерно 1015 взаимосвязей. Если учесть, что
любой нейрофизиологический процесс активизирует сразу
множество нейронов, то можно представить себе то
количество информации или сигналов, которое возникает в
мозгу.
Нейроны взаимодействуют посредством серий
импульсов, длящихся несколько миллисекунд, каждый импульс
представляет собой частотный сигнал с частотой от
нескольких единиц до сотен герц. Это невообразимо
медленно по сравнению с современными компьютерами, но в
тоже время человеческий мозг гораздо быстрее машины
может обрабатывать аналоговую информацию, как-то: узнавать
изображения, чувствовать вкус, узнавать звуки, читать чужой
почерк, оперировать качественными параметрами. Все это
реализуется посредством сети нейронов, соединенных между
собой синапсами. Другими словами, мозг -–это система из
параллельных процессоров, работающая гораздо
эффективнее, чем популярные сейчас последовательные
вычисления.
•
•
•
•
•
Кстати говоря, недавно в одном из журналов я читал, что
технология последовательных вычислений подошла к пределу
своих технических возможностей, и в настоящее время остро
стоит проблема развития методов параллельного
программирования и создания параллельных компьютеров.
Так что, может быть, нейросети являются только очередным
шагом в этом направлении.
Устройство нейронных сетей
Искусственным нейроном называется простой элемент,
сначала вычисляющий взвешенную сумму V входных величин
xi :
Здесь N – размерность пространства входных сигналов.
Затем полученная сумма сравнивается с пороговой
величиной W0, вслед за чем вступает в действие нелинейная
функция активации f. Коэффициенты {Wi} во взвешенной
сумме обычно называют синаптическими коэффициентами
или весами. Саму же взвешенную сумму V мы будем называть
потенциалом нейрона i. Выходной сигнал тогда имеет вид f(V).
•
Величину порогового барьера можно рассматривать как еще один
весовой коэффициент при постоянном входном сигнале. В этом случае мы
говорим о расширенном входном пространстве: нейрон с N-мерным входом
имеет N+1 весовой коэффициент. Если ввести в уравнение пороговую
величину W0, то оно перепишется так:
•
В зависимости от способа преобразования сигнала и характера
активации возникают различные виды нейронных структур. Существуют
детерминированные нейроны, когда активизирующая функция однозначно
вычисляет выход по входу, и вероятностные нейроны, состояние которых в
момент t есть случайная функция потенциала и состояния в момент t-1. Я
знаком только с детерминированными нейронами, поэтому далее я буду
говорить только о них.
Функции активации
В искусственных нейронах могут быть различные функции активации, но
и в используемых мной программах, и в известной литературе указаны только
следующие виды функций:
Линейная: выходной сигнал нейрона равен его потенциалу,
пороговая: нейрон выбирает решение из двух вариантов: активен / неактивен,
Многопороговая: выходной сигнал может принимать одно из q значений,
определяемых (q-1) порогом внутри предельных значений.
Сигмоидная: рассматриваются два вида сигмоидных функций:
с выходными значениями в промежутке [0,1] и
с выходными значениями в промежутке [-1,1].
•
•
•
•
•
•
•
•
Коэффициент b определяет крутизну сигмоида. Поскольку сигмоидная
функция является гладким отображением (-∞,∞) на (-1,1), то крутизну можно
учесть через величины весов и порогов, и без ограничения общности можно
полагать ее равной единице. Графические изображения простейшего нейрона и
виды функций с их графиками приведены на рис. 2.
•
•
•
•
Типы архитектур нейросетей
Из точек на плоскости и соединений между ними можно
построить множество графических фигур, называемых
графами. Если каждую точку представить себе как один
нейрон, а соединения между точками – как дендриты и
синапсы, то мы получим нейронную сеть.
Но не всякое соединение нейронов будет работоспособно
или вообще целесообразно. Поэтому на сегодняшний день
существует только несколько работающих и реализованных
программно архитектур нейросетей. Я только вкратце опишу
их устройство и классы решаемых ими задач.
По архитектуре связей нейросети могут быть
сгруппированы в два класса: сети прямого распространения, в
которых связи не имеют петель ( см. рис. 3), и сети
рекуррентного типа, в которых возможны обратные связи(см.
рис. 4)
Рис. 3 Сеть прямого распространения
Рис. 4 Рекуррентная сеть
•
Сети прямого распространения подразделяются на однослойные
перцепротроны (сети) и многослойные перцептроны (сети). Название
перцептрона для нейросетей придумал американский нейрофизиолог
Ф. Розенблатт , придумавший в 1957 году первый нейропроцессорный
элемент (НПЭ) , то есть нейросеть. Он же доказал сходимость области
решений для перцептрона при его обучении. Сразу после этого
началось бурное исследование в этой области и был создан самый
первый нейрокомпьютер Mark I. Многослойные сети отличаются тем,
что между входными и выходными данными располагаются несколько
так называемых скрытых слоев нейронов, добавляющих больше
нелинейных связей в модель.
•
Рассмотрим устройство простейшей многослойной нейросети.
Любая нейронная сеть состоит из входного слоя и выходного слоя.
Соответственно подаются независимые и зависимые переменные.
Входные данные преобразуются нейронами сети и сравниваются с
выходом. Если отклонение больше заданного, то специальным
образом изменяются веса связей нейронов между собой и пороговые
значения нейронов. Снова происходит процесс вычислений выходного
значения и его сравнение с эталоном. Если отклонения меньше
заданной погрешности, то процесс обучения прекращается.
•
Помимо входного и выходного слоев в многослойной сети существуют
так называемые скрытые слои. Они представляют собой нейроны,
которые не имеют непосредственных входов исходных данных, а
связаны только с выходами входного слоя и с входом выходного
слоя. Таким образом, скрытые слои дополнительно преобразуют
информацию и добавляют нелинейности в модели. Чтобы лучше
понять устройство многослойного перцептрона я привожу рис. 5.
Рис. 5
•
•
Если однослойная нейросеть очень хорошо справляется с
задачами классификации, так как выходной слой нейронов
сравнивает полученные от предыдущего слоя значения с
порогом и выдает значение либо ноль, то есть меньше
порогового значения, либо единицу - больше порогового (для
случая пороговой внутренней функции нейрона), и не способен
решать большинство практических задач( что было доказано
Минским и Пейпертом), то многослойный перцептрон с
сигмоидными решающими функциями способен
аппроксимировать любую функциональную зависимость
(это было доказано в виде теоремы). Но при этом не известно
ни нужное число слоев, ни нужное количество скрытых
нейронов, ни необходимое для обучения сети время. Эти
проблемы до сих пор стоят перед исследователями и
разработчиками нейросетей. Лично мне кажется, что весь
энтузиазм в применении нейросетей строится именно на
доказательстве этой теоремы. Впоследствии я сам покажу, как
нейроны могут моделировать различные классы функций, но я
не претендую на полноту доказательства.
Класс рекуррентных нейросетей гораздо обширнее, да и
сами сети сложнее по своему устройству.
•
•
•
Поведение рекуррентных сетей описывается
дифференциальными или разностными уравнениями, как правило,
первого порядка. Это гораздо расширяет области применения
нейросетей и способы их обучения. Сеть организована так, что
каждый нейрон получает входную информацию от других нейронов,
возможно, и от самого себя, и от окружающей среды. Этот тип сетей
имеет важное значение, так как с их помощью можно моделировать
нелинейные динамические системы.
Среди рекуррентных сетей можно выделить сети Хопфилда и
сети Кохонена.
С помощью сетей Хопфилда можно обрабатывать
неупорядоченные (рукописные буквы), упорядоченные во времени
(временные ряды) или пространстве (графики) образцы.
Рекуррентная нейросеть простейшего вида была введена Хопфилдом
и построена она из N нейронов, связанных каждый с каждым кроме
самого себя, причем все нейроны являются выходными. Нейросеть
Хопфилда можно использовать в качестве ассоциативной памяти.
Архитектура сети Хопфилда изображена на рис. 6.
Рис. 6
•
Сеть Кохонена еще называют "самоорганизующейся картой
признаков". Сеть такого типа рассчитана на самостоятельное
обучение во время обучения сообщать ей правильные ответы
необязательно. В процессе обучения на вход сети подаются
различные образцы. Сеть улавливает особенности их структуры и
разделяет образцы на кластеры, а уже обученная сеть относит
каждый вновь поступающий пример к одному из кластеров,
руководствуясь некоторым критерием "близости". Сеть состоит из
одного входного и одного выходного слоя. Количество элементов в
выходном слое непосредственно определяет, сколько различных
кластеров сеть сможет распознать. Каждый из выходных элементов
получает на вход весь входной вектор. Как и во всякой нейронной
сети, каждой связи приписан некоторый синаптический вес. В
большинстве случаев каждый выходной элемент соединен также со
своими соседями. Эти внутрислойные связи играют важную роль в
процессе обучения, так как корректировка весов происходит только в
окрестности того элемента, который наилучшим образом откликается
на очередной вход. Выходные элементы соревнуются между собой за
право вступить в действи и "получить урок". Выигрывает тот из них,
чей вектор весов окажется ближе всех к входному вектору.
•
•
•
•
Обучение многослойной сети
Главное отличие и преимущество нейросетей перед классическими
средствами прогнозирования и классификации заключается в их способности к
обучению. Так что же такое обучение нейросетей?
На этапе обучения происходит вычисление синаптических
коэффициентов в процессе решения нейронной сетью задач, в которых
нужный ответ определяется не по правилам, а с помощью примеров,
сгруппированных в обучающие множества. Так что нейросеть на этапе
обучения сама выполняет роль эксперта в процессе подготовки данных для
построения экспертной системы. Предполагается, что правила находятся в
структуре обучающих данных.
Для обучения нейронной сети требуются обучающие данные. Они
должны отвечать свойствам представительности и случайности или
последовательности. Все зависит от класса решаемой задачи. Такие
данные представляют собой ряды примеров с указанием для каждого из них
значением выходного параметра, которое было бы желательно получить.
Действия, которые при этом происходят, можно назвать контролируемым
обучением: "учитель" подаем на вход сети вектор исходных данных, а на
выходной узел сообщает желаемое значение результата вычислений.
Контролируемое обучение нейросети можно рассматривать как решение
оптимизационной задачи.
•
Ее целью является минимизация функции ошибок Е на данном
множестве примеров путем выбора значений весов W. Достижение
минимума называется сходимостью процесса обучения. Именно
возможность этого и доказал Розенблатт. Поскольку ошибка зависит
от весов нелинейно, получить решение в аналитической форме
невозможно, и поиск глобального минимума осуществляется
посредством итерационного процесса- так называемого обучающего
алгоритма. Разработано уже более сотни разных обучающих
алгоритмов, отличающихся друг от друга стратегией оптимизации и
критерием ошибок. Обычно в качестве меры погрешности берется
средняя квадратичная ошибка (СКО):
•
•
где М – число примеров в обучающем множестве.
Минимизация величины Е осуществляется с помощью
градиентных методов. Изменение весов происходит в направлении,
обратном к направлению наибольшей крутизны для функции:
•
Здесь ε - определяемый пользователем параметр, который
называется коэффициентом обучения.
Обратное распространение ошибки
•
Одним из самых распространенных алгоритмов обучения
нейросетей прямого распространения является алгоритм
обратного распространения ошибки (BackPropagation, BP).
Этот алгоритм был переоткрыт и популяризован в 1986 г.
Румельхартом и МакКлелландом из группы по изучению
параллельных распределенных процессов в Массачусетском
технологическом институте. Здесь я хочу подробно изложить
математическую суть алгоритма, так как очень часто в
литературе ссылаются на какой-то факт или теорему, но никто
не приводит его доказательства или источника. Честно говоря,
то же самое относится к Теореме об отображении нейросетью
любой функциональной зависимости, на которой
основываются все попытки применить нейросети к
моделированию реальных процессов. Я бы хотел посмотреть
на ее доказательство, но еще нигде его не смог найти. Вот,
чтобы у Вас не возникало такого чувства неудовлетворенности
в полноте понимания работы нейросети, я решил привести этот
алгоритм полностью, хотя честно сознаюсь, что не совсем
понимаю его логику.
• Итак, это алгоритм градиентного спуска,
минимизирующий суммарную квадратичную ошибку:
• Здесь индекс i пробегает все выходы многослойной
сети.
•
Основная идея ВР состоит в том, чтобы
вычислять чувствительность ошибки сети к
изменениям весов. Для этого нужно вычислить
частные производные от ошибки по весам. Пусть
обучающее множество состоит из Р образцов, и
входы k-го образца обозначены через {xi k}.
Вычисление частных производных осуществляется
по правилу цепи: вес входа i-го нейрона, идущего от
j-го нейрона, пересчитывается по формуле:
• где ε - длина шага в направлении, обратном к
градиенту.
• Если рассмотреть отдельно k-тый образец, то
соответствующиее изменение весов равно:
• Множитель δik вычисляется через аналогичные
множители из последующего слоя, и ошибка, таким
образом, передается в обратном направлении.
•
Для выходных элементов получим:
• Для скрытых элементов множитель δik определяется
так:
• где индекс h пробегает номера всех нейронов, на
которые воздействует i-ый нейрон.
•
Чтобы наглядно представить себе алгоритм
обратного распространения ошибки, можно
посмотреть следующий рисунок 7:
Рис. 7
•
•
•
•
•
Способы обеспечения и ускорения сходимости
Выбор начальных весов
Перед тем, как начинать процесс обучения нейронной сети,
необходимо присвоить весам начальные значения. Цель состоит в
том, чтобы найти как можно более хорошее начальное приближение к
решению и таким образом сэкономить время обучения и улучшить
сходимость. Классический подход к этой проблеме состоит в том,
чтобы случайным образом выбрать малые значения для всех весов,
чтобы быть уверенным, что ни один из сигмоидных элементов не
перенасыщен. Однако это не дает полной гарантии, что такое
приближение приведет к глобальному минимуму или уменьшит время
сходимости.
Упорядочение данных
Чтобы обучение не двигалось в ложном направлении при
обработке задачи классификации или распознавания, но не задачи
аппроксимирования временных рядов, данные нужно перемешивать
случайным образом. Иначе нейросеть "выучит" последовательность
случайно оказавшихся рядом значений как истинное правило, и потом
будет делать ошибку.
•
•
•
•
•
Импульс
Иногда при изменении весов связей нейронов кроме текущего
изменения веса к нему прибавляют вектор смещения с
предыдущего шага, взятый с некоторым коэффициентом. В этом
случае говорят, что учитывается предыдущий импульс движения.
Формула изменения веса связи будет выглядеть следующим
образом:
где µ - число в интервале (0,1), которое задается пользователем.
Управление величиной шага
Ранее я уже говорил, что ε - величина шага сети. По сути это мера точности обучения сети. Чем он больше, тем более грубым
будет следующее уменьшение суммарной ошибки сети. Чем он
меньше, тем больше времени сеть будет тратить на обучение и тем
более возможно ее попадание в окрестность локального минимума
ошибки. Поэтому управление шагом имеет важное значение для
улучшения сходимости нейронной сети. В современных
нейросетевых пакетах пользователь может сам определять, как
будет изменяться величина шага. Очень часто по умолчанию
берется линейная или экспоненциальная зависимость величины
шага от количества итераций сети.
Оптимизация архитектуры сети
Одной из самых больших проблем при использовании нейросетей
является невозможность предварительного определения
оптимального количества скрытых слоев и нейронов в них. Если
нейронов будет слишком мало, то это равносильно потере каких-то
нелинейных связей в модели, если нейронов будет много, то это
может привести к "переобучению" сети, то есть она просто "выучит"
данные, а не распознает их структуру. Поэтому применяется два
основных подхода:
•
деструктивный подход: берется сеть заведомо большего размера,
чем нужно, и в процессе обучения из нее удаляются связи и даже
сами нейроны;
•
конструктивный подход: первоначально берется маленькая сеть, и к
ней, в соответствии со структурой и сложностью задачи,
добавляются новые элементы.
Масштабирование данных
При рассмотрении решающих функций внутри нейронов я сказал,
что диапазон выходных значений нейрона лежит в интервале (0,1)
либо (-1,1). Поэтому для лучшей работы сети следует
предварительно масштабировать данные обучающей выборки к
интервалу от 0 до 1. Это даст меньшие ошибки при обучении и
работе нейросети.
•
•
Организация процесса обучения
Из теоремы об отображении практически любой функции с
помощью многослойной нейросети следует, что обучаемая нами
нейронная сет в принципе способна сама подстроиться под любые
данные с целью минимизации суммарной квадратичной ошибки. Чтобы
этого не происходило при обучении нейросетей используют
следующий способ проверки сети. Для этого обучающую выборку
еще перед началом обучения разбивают случайным образом на две
подвыборки: обучающую и тестовую. Обучающую выборку
используют собственно для процесса обучения, при этом изменяются
веса нейронов. А тестовую используют в процессе обучения для
проверки на ней суммарной квадратичной ошибки, но при этом не
происходит изменение весов. Если нейросеть показывает
улучшение аппроксимации и на обучающей, и на тестовой выборках, то
обучение сети происходит в правильном направлении. Иначе может
снижаться ошибка на обучающей выборке, но происходить ее
увеличение на тестовой. Последнее означает, что сеть
"переобучилась" и уже не может быть использована для
прогнозирования или классификации. В этом случае немного
изменяются веса нейронов, чтобы вывести сеть из окрестности
локального минимума ошибки.
Технология использования искуственных нейронных сетей
•
•
•
В наши дни возрастает необходимость в системах, которые
способны не только выполнять однажды запрограммированную
последовательность действий над заранее определенными
данными, но и способны сами анализировать вновь
поступающую информацию, находить в ней закономерности,
производить прогнозирование и т.д. В этой области приложений
самым лучшим образом зарекомендовали себя так называемые
нейронные сети – самообучающиеся системы, имитирующие
деятельность человеческого мозга. Рассмотрим подробнее
структуру искусственных нейронных сетей (НС) и их
применение в конкретных задачах.
Искусственный нейрон.
Несмотря на большое разнообразие вариантов нейронных
сетей все они имеют общие черты. Так все они, также как и мозг
человека, состоят из большого числа однотипных элементов –
нейронов, которые имитируют нейроны головного мозга,
связанных между собой. На рис.1 показана схема нейрона
Рис.1 Схема нейрона
Из рисунка видно, что искусственный нейрон, так же как и
живой, состоит из синапсов, связывающих входы нейрона с
ядром, ядра нейрона, которое осуществляет обработку входных
сигналов и аксона, который связывает нейрон с нейронами
следующего слоя. Каждый синапс имеет вес, который
определяет насколько соответствующий вход нейрона влияет
на его состояние.
• Состояние нейрона определяется по формуле (1)
где
• n - число входов нейрона
• xi – значение i-го входа нейрона
• wi – вес i-го синапса
• Затем определяется значение аксона нейрона по формуле
• Y = f(S)
(2)
• Где f - некоторая функция ,которая называется активационной.
Наиболее часто в качестве активационной функции
используется так называемый сигмоид, который имеет
следующий вид: (3)
• Основное достоинство этой функции в том, что она
дифференцируема на всей оси абсцисс и имеет очень простую
производную: (4)
• При уменьшении параметра a сигмоид становится более
пологим, вырождаясь в горизонтальную линию на уровне 0,5
при a=0. При увеличении a сигмоид все больше приближается к
функции единичного скачка.
•
•
•
•
Нейронные сети обратного распространения.
Нейронные сети обратного распространения – это мощнейший
инструмент поиска закономерностей, прогнозирования,
качественного анализа. Такое название – сети обратного
распространения (back propagation) они получили из-за
используемого алгоритма обучения, в котором ошибка
распространяется от выходного слоя к входному, т.е. в
направлении, противоположном направлению распространения
сигнала при нормальном функционировании сети.
Нейронная сеть обратного распространения состоит из
нескольких слоев нейронов, причем каждый нейрон слоя i
связан с каждым нейроном слоя i+1, т.е. речь идет о
полносвязной НС.
В общем случае задача обучения НС сводится к нахождению
некой функциональной зависимости Y=F(X) где X-вектор
входной, а Y -выходной векторы. В общем случае такая задача,
при ограниченном наборе входных данных имеет бесконечное
множество решений.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Для ограничения пространства поиска при обучении ставится задача минимизации целевой
функции ошибкиp НС, которая находится по методу наименьших квадратов:
1
( y j − d j ) (5)
E ( w) =
где
2 j =1
yj – значение j-го выхода нейросети
dj- целевое значение j-го выхода
p – число нейронов в выходном слое
Обучение нейросети производится методом градиентного спуска, т.е. на каждой итерации
изменение веса производится по формуле
∂E
(6)
∑
∆wij = −η ⋅
∂wij
где h- параметр определяющий скорость обучения
∂E dy j ∂S j (7)
∂E
⋅
⋅
=
где
∂wij ∂y j dS j ∂wij
yj- значение выхода j-го нейрона
Sj – взвешенная сумма входных сигналов, определяемая по формуле (1). При этом
множитель
∂S j
(8)
≡ xi
∂
w
где xi – значение i-го входа нейрона
ij
Далее рассмотрим определение первого множителя формулы (7)
(9)
∂E dyk ( n +1)
∂E dyk ∂Sk
∂E
⋅
⋅ wjk
=
⋅
⋅
=
где k – число нейронов в слое n+1.
y
y
dS
y
y
dS
∂
∂
∂
∂
k
k
j
k
k
j
k
k
Введем вспомогательную переменную
(10)
Тогда мы сможем определит рекурсивную формулу для определения n-ного слоя если нам
известно следующего n+1-го слоя.
(11)

 dy
∑
δ (j n ) = ∑ δ k( n +1) ⋅ w(jkn +1)  ⋅ j
k
 dS j
∑
•
•
Нахождение же для последнего слоя НС не представляет трудности,
так как нам известен целевой вектор, т.е. вектор тех значений, которые
должна выдавать НС при данном наборе входных значений.
dy
(12)
δ (j N ) = ( yi( N ) − di ) ⋅ i
dSi
•
•
•
•
•
•
•
•
•
И наконец запишем формулу (6) в раскрытом виде
wij( n ) (t ) = wij( n ) (t − 1) + ∆wij( n ) (t )
(13)
Рассмотрим теперь полный алгоритм обучения нейросети
подать на вход НС один из требуемых образов и определить значения
выходов нейронов нейросети
рассчитать для выходного слоя НС по формуле (12) и рассчитать
изменения весов выходного слоя N по формуле (13)
Рассчитать по формулам (11) и (13) соответственно и для остальных
слоев НС, n=N-1..1
Скорректировать все веса НС
wij( n ) (t ) = wij( n ) (t − 1) + ∆wij( n ) (t )
(14)
Если ошибка существенна, то перейти на шаг 1
На этапе 2 сети поочередно в случайном порядке предъявляются
вектора из обучающей последовательности.
•
•
•
•
•
Повышение эффективности обучения НС обратного
распространения
Простейший метод градиентного спуска, рассмотренный выше,
очень неэффективен в случае, когда производные по
различным весам сильно отличаются. Это соответствует
ситуации, когда значение функции S для некоторых нейронов
близка по модулю к 1 или когда модуль некоторых весов много
больше 1. В этом случае для плавного уменьшения ошибки
надо выбирать очень маленькую скорость обучения, но при
этом обучение может занять непозволительно много времени.
Простейшим методом усовершенствования градиентного спуска
является введение момента m ,когда влияние градиента на
изменение весов изменяется со временем. Тогда формула (13)
примет вид
(13.1)
Дополнительным преимуществом от введения момента
является способность алгоритма преодолевать мелкие
локальные минимумы.
•
•
•
•
•
Представление входных данных
Основное отличие НС в том, что в них все входные и выходные
параметры представлены в виде чисел с плавающей точкой обычно в
диапазоне [0..1]. В тоже время данные предметной области часто
имеют другое кодирование. Так это могут быть числа в произвольном
диапазоне, даты, символьные строки. Таким образом данные о
проблеме могут быть как количественными так и качественными.
Рассмотрим сначала преобразование качественных данных в
числовые, а затем рассмотрим способ преобразования входных
данных в требуемый диапазон.
Качественные данные мы можем разделить на две группы:
упорядоченные (ординальные) и неупорядоченные. Для рассмотрения
способов кодирования этих данных мы рассмотрим задачу о
прогнозировании успешности лечения какого-либо заболевания.
Примером упорядоченных данных могут например являться данные,
например, о дополнительных факторах риска при данном заболевании.
НетОжирениеАлкогольКурениеГипертония А также возможным
примером может быть например возраст больного
До 25 лет25-39 лет40-49 лет50-59 лет60 и старше
•
•
•
Опасность каждого фактора возрастает в таблицах при движении
слева направо.
В первом случае мы видим, что у больного может быть несколько
факторов риска одновременно. В таком случае нам необходимо
использовать такое кодирование, при котором отсутствует ситуация,
когда разным комбинациям факторов соответствует одно и то же
значение. Наиболее распространен способ кодирования, когда
каждому фактору ставится в соответствие разряд двоичного числа. 1 в
этом разряде говорит о наличии фактора, а 0 о его отсутствии.
Параметру нет можно поставить в соответствии число 0. Таким
образом для представления всех факторов достаточно 4-х разрядного
двоичного числа. Таким образом число 10102 = 1010 означает наличие
у больного гипертонии и употребления алкоголя, а числу 00002
соответствует отсутствие у больного факторов риска. Таким образом
факторы риска будут представлены числами в диапазоне [0..15].
Во втором случае мы также можем кодировать все значения
двоичными весами, но это будет нецелесообразно, т.к. набор
возможных значений будет слишком неравномерным. В этом случае
более правильным будет установка в соответствие каждому значению
своего веса, отличающегося на 1 от веса соседнего значения. Так
число 3 будет соответствовать возрасту 50-59лет. Таким образом
возраст будет закодирован числами в диапазоне [0..4].
•
•
•
•
•
•
В принципе аналогично можно поступать и для неупорядоченных
данных, поставив в соответствие каждому значению какое-либо число.
Однако это вводит нежелательную упорядоченность, которая может
исказить данные, и сильно затруднить процесс обучения. В качестве
одного из способов решения этой проблемы можно предложить
поставить в соответствие каждому значению одного из входов НС. В
этом случае при наличии этого значения соответствующий ему вход
устанавливается в 1 или в 0 при противном случае. К сожалению
данный способ не является панацеей, ибо при большом количестве
вариантов входного значения число входов НС разрастается до
огромного количества. Это резко увеличит затраты времени на
обучение. В качестве варианта обхода этой проблемы можно
использовать несколько другое решение. В соответствие каждому
значению входного параметра ставится бинарный вектор, каждый
разряд которого соответствует отдельному входу НС. Например если
число возможных значений параметра 128, то можно использовать 7
разрядный вектор. Тогда 1 значению будет соответствовать вектор
0000000 а 128 - вектор 1111111, а ,например, 26 значению – 0011011.
Тогда число требуемых для кодирования параметров входов можно
определить как
N=log2n
(15)
Где
n- количество значений параметра
N- количество входов
Преобразование числовых входных данных
•
•
•
•
•
•
•
Для НС необходимо чтобы входные данные лежали в
диапазоне [0..1], в то время как данные проблемной области
могут лежать в любом диапазоне. Предположим что данные по
одному из параметров лежат в диапазоне [Min..Max]. Тогда
паиболее простым способом нормирования будет
(16)
x − Min
~
=
x
где x- исходное значение параметра
Max − Min
-значение, подаваемое на вход НС
К сожалению этот способ кодирования не лишен недостатков.
Так в случае если то распределение данных на входе может
принять вид
Т.е. распределение входных параметров будет крайне
неравномерным, что приведет к ухудшению качества обучения.
Поэтому в подобных ситуациях , а также в случае, когда
значение входа лежит в диапазоне можно использовать
нормировку с помощью функции вида
(17)
[0, ∞ )
10
9
8
7
6
5
4
3
2
1
0
данны е
Заключение
В этой небольшой работе сделана
попытка изложить только общую
теорию нейронных сетей. Объяснены
главные принципы их устройства и
работы. Достаточно подробно
представлена математика нейросетей.
Список использованных источников:
• Роберт Калан, Основные концепции нейронных
сетей.
• http://www.intuit.ru/department/expert/neuro/13/
• http://bigor.bmstu.ru/?cnt/?doc=NN/013neurons.mod/?cou=NN/base.co
Приложения
нейронных сетей
Жуков Л.А.
Однонаправленные
многослойные сети
сигмоидного типа
Классификация искусственных
нейронных сетей
Существует много вариантов построения
искусственных нейронных сетей (ИНС). Для их
классификации используются следующие основные
критерии:
1. тип нейронов, составляющих сеть;
2. количество слоев нейронов в сети;
3. направление передачи сигналов в сети;
4. вид обучающих выборок ;
5. назначение сети.
Сеть, состоящая целиком из нейронов одного типа,
называется однородной, если же в ней комбинируются
слои нейронов разного типа, то она — гибридная.
Сеть, все нейроны которой расположены в одной
"плоскости"
(т.е.
отсутствует
хотя
бы
одна
непосредственная связь выхода одного нейрона со входом
другого), называется однослойной, иначе она —
многослойная.
Сеть называется однонаправленной, если в ней
отсутствуют обратные связи (т.е. нет передачи сигнала с
последующих слоев на предыдущие). Сеть с обратными
связями называется рекуррентной.
Если для обучения сети используется стратегия с
учителем и , то сеть называется гетероассоциативной.
Если же , то сеть — автоассоциативна.
Функции активации нейронов (часть 1/2)
Функции активации нейронов (часть 2/2)
Сигмоидальный нейрон
Сигмоидальный нейрон устраняет основной
недостаток персептрона — разрывность функции
активации.
Структурная
схема нейрона
данного типа
представлена
на рисунке.
В качестве функции активации выступает
сигмоидальная функция (т.е. функция, график
которой похож на букву "S"). На практике
используются
как
униполярные,
так
и
биполярные функции активации.


Униполярная функция, как правило,
представляется формулой
тогда как биполярная функция задается в виде
Графики униполярных и биполярных
сигмоидальных функций
График униполярной
сигмоидальной функции
График биполярной
сигмоидальной функции
Коэффициент b определяет "крутизну" функций и
выбирается разработчиком сети (на практике b для
упрощения назначают обычно равным 1).
Производная униполярной
функции активации имеет
вид -
а производная
биполярной
функции -
Однонаправленные многослойные
сети сигмоидального типа
Однонаправленные многослойные нейронные сети
сигмоидального
типа
получили
наибольшее
распространение на практике в силу относительной
простоты их математического описания.
Собственно история ИНС началась с однослойных
сетей данного типа. Однако, возможности однослойных
сетей крайне скромны, поскольку расположенные на
одном уровне нейроны функционируют независимо друг
от друга, и свойства всей сети ограничены свойствами
отдельных нейронов. Многослойные сети получили свое
развитие с конца 70-х годов, когда были предложены
эффективные алгоритмы их обучения.
Однонаправленные
многослойные
сети
сети
сигмоидального типа имеют устоявшееся название
многослойный персептрон MLP (MultiLayer Perceptron).
На рисунке
представлена
структурная схема
двухслойного
персептрона.
Верхние индексы в
скобках (m), m=1,2 означают номер
слоя нейрона.
Следует отметить, что понятие "слой" часто применяют
по отношению к сигналам ИНС (а не к нейронам). Т.е.
представленная на рисунке сеть — трехслойная: входные
сигналы сети x1, x2,..,xN составляют входной слой,
выходные сигналы первого нейронного слоя g1, g2,.., gL
образуют первый скрытый слой, а выходные сигналы
y1,…,yM - слой выходной. Для обозначения структуры сети
используется кодировка в виде “N-L-M".
Выходные сигналы нейронных слоев легко
рассчитываются по следующим формулам:
Необходимо подчеркнуть, что функции активации абсолютно
всех нейронов сети абсолютно идентичны (в том числе имеют
одинаковое значение параметра b).
Цель обучения многослойного нейрона заключается в подборе
таких значений всех весовых коэффициентов сети
и
которые обеспечивают максимальное совпадение выходного
вектора
и эталонного вектора ожидаемых значений
при предъявлении входного вектора
.
В случае единичной обучающей выборки <X, D>
целевая функция задается в виде:
В случае множества обучающих пар
, k=1,2,…,p,
целевая функция превращается в сумму по всем парам:
Подходы к обучению
многослойного персептрона
Представленные ранее выражения для целевой
функции
E(W)
характеризуются,
во-первых,
аналитическим
видом,
во-вторых,
дважды
дифференцируемостью. Это дает возможность
использовать для отыскания минимума практически
весь арсенал универсальных методов поисковой
оптимизации. Кроме того, специально для целей
обучения
ИНС
разработаны
модификации
"канонических" методов.
Среди универсальных методов обучения сетей
наибольшее распространение получили следующие:
Распространенные
универсальные методы
обучения сетей

Метод градиента.

Метод наискорейшего спуска.

Метод сопряженных градиентов.

Ньютоноподобные методы.
1. Метод градиента.
Очередное приближение к оптимальному
решению определяется по формуле
где
- коэффициент обучения, адаптивно
подбираемый в ходе поиска так, чтобы
2. Метод наискорейшего спуска.
где коэффициент обучения
на каждом шаге поиска
таков, что гарантированно обеспечивает достижение
минимума
в направлении
.
Расчет оптимального значения
реализуется, как
правило, методом полиномиальной аппроксимации
(одномерная
оптимизация
в
антиградиентом
направлении).
3. Метод сопряженных градиентов.
В этом методе направление поиска на текущем шаге
определяется как градиентом целевой функции в точке
,
, умноженном на коэффициент сопряжения
Существуют различные правила расчета
,
например, популярно такое:
.
4. Ньютоноподобные
методы.
Формула метода Ньютона имеет следующий вид:
где
- матрица Гессе (матрица вторых
производных целевой функции). В силу трудоемкости
расчета матрицы Гессе метод Ньютона как таковой на
практике не используется, но служит прототипом для
ряда весьма эффективных методов, предлагающих
экономичные
способы
расчета
приближенных
эквивалентов матрицы Гессе и вектора градиента на
каждом шаге поиска.
Метод обратного распространения
ошибки.
Специализированным
методом
обучения
(минимизации целевой функции E(W)), широко
используемым в практике обучения ИНС, следует считать
метод обратного распространения ошибки, описываемый
ниже.
Примером
эвристического
алгоритма,
демонстрирующего неплохие результаты при подборе
весовых коэффициентов ИНС, служит алгоритм RPROP
(Resilent back PROPagation), формула которого имеет
следующий вид:
В этом алгоритме используется только знак производной.
Коэффициент обучения
индивидуален для каждого
веса
и выбирается следующим образом:
Здесь
, a=1,2; b=0,5 - эмпирически
подобранные константы изменения коэффициента обучения;
минимальное и максимальной допустимые
значения
коэффициента обучения выбраны так:
и
.
Явное достоинство алгоритма — ускоренное обучение на
пологих участках целевой функции (там, где величина
градиента мала).
Существует много других эвристических алгоритмов,
предложенных для разных типов сетей, классов решаемых
задач, предметных областей. Однако, необходимо всегда
учитывать,
что
эвристические
методы
строгого
теоретического обоснования не имеют.
Для задач обучения ИНС, как и для задач параметрической
оптимизации в целом, актуальной является проблема
полимодальности целевых функций и, следовательно,
отыскания глобальных экстремумов.
К сожалению, все упоминавшиеся ранее методы — это
методы локального поиска, они способны отыскать только
локальный экстремум, в область притяжения которого
попадает начальный вектор весов. Среди методов глобального
поиска перспективными с точки зрения обучения ИНС
считаются метод имитации отжига и генетические алгоритмы.
Многие из упоминавшихся выше методов
допускают функционирование в двух режимах: online
и offline. В первом режиме ("онлайн") уточнение
весов осуществляется после предъявления каждой
обучающей выборки при использовании целевой
функции вида:
Второй режим ("оффлайн") подразумевает корректировку
весов только после обработки всех пар
в обучающей
последовательности с использование целевой функции в виде:
Многие из методов обучения многослойного
персептрона могут быть приспособлены для
обучения сетей и других типов.
На эффективность процесса обучения ИНС оказывает
влияние не только выбор метода подбора весовых
коэффициентов, но и начальные значения этих
коэффициентов. Понятно, что в лучшем случае начальные
значения
должны располагаться в области
притяжения глобального минимума целефой функции
E(W). К сожалению, в большинстве реальных задач такой
выбор значений
невозможен.
Поэтому в практических реализациях ИНС чаще всего
используется случайный выбор весов с равномерным
распределением значений в заданном интервале.
Выбор этого диапазона слишком широким может привести к
чрезмерно большим значениям
что, в свою очередь, вызовет глубокое насыщение
сигмоидальной функции нейрона, что скажется либо на
продолжительности обучения, либо "умертвит" нейрон.
Предлагаются
различные
оценки
диапазона
начальных значений, но все они лежат в пределах (по
абсолютной величине) (0, 1).


До сих пор процесс обучения сети рассматривался как
процесс минимизации погрешности обучения
,
определяемой на множестве L эталонных пар
k=1,2,…,p. Однако, необходимо понимать, что истинная
цель обучения — придание сети способности адекватно
реагировать на все множество данных R, , "типичным"
подмножеством которого является множество L, . Такая
способность сети называется способностью к обобщению.
Для оценки возможности к обобщению используется
тестовое подмножество (см. рис.) и определенная на нем
погрешности обобщения
.
Рис. Множество входных
данных R, подмножество
обучающих данных L и
тестовое подмножество G
Показано, что погрешность обощения зависит от
мощности множества L (количества обучающих выборок p и
сложности ИНС. Однако, строго мера сложности сети не
определена, и в качестве ее приближения предлагается
использовать
просто
общее
количество
весовых
коэффициентов
сети.
Разнообразные
численные
эксперименты показали, что для достижения сетью
приемлемого уровня способности к обобщению необходимо,
чтобы количество обучающих выборок в несколько раз
превышало общее количество весов сети. Действительно, для
обретения способности обобщать информацию сеть должна
тренероваться на избыточном множестве данных, поскольку
тогда веса будут адаптироваться не к уникальным выборкам,
а к их усредненным совокупностям.
Метод обратного распространения
ошибки
Метод обратного распространения ошибки является
версией
метода
градиента
(канонического
метода
параметрической
оптимизации
первого
порядка),
адаптированной для целей обучения многослойных ИНС.
Рассмотрим его суть на примере двухслойного персептрона,
структурная схема которого дана в начале повествования. Для
упрощения ограничимся случаем единичной обучающей
выборки (режим обучения "онлайн").
Тогда целевая функция имеет вид:
Уточнение коэффициентов производится формулой метода
градиента:
Основную сложность в реализации этой формулы
представляет расчет компонентов вектора градиента
целевой функции
Получим соотношения для частных производных целевой
функции по весам нейронов выходного слоя:
Обозначим
тогда соответствующий
компонент вектора градиента выглядит следующим
образом:
Компоненты градиента для весов предпоследнего
слоя определяются более сложно:
Обозначив
имеем
Детальный анализ выражений для производных целевой
функции по весам различных слоев сети позволяет получить
простое правило расчета компонентов вектора градиента E(W):
где
- сигнал на "входе" во взвешенную
связь,
- величина погрешности обучения, перенесенная с
выхода сети к "выходу" взвешенной связи. Этот перенос
погрешности
с выхода сети к ее предыдущим слоям и
обусловил название метода "обратного распространения
ошибки". Данное правило иллюстрирует рис 3.
Рис. 3. Иллюстрация метода "обратного
распространения ошибки"
Пример использования
многослойного персептрона
Рассмотрим пример использования простейшей ИНС для
решения задачи сжатия данных с потерями. Дано
прямоугольное изображение, каждый пиксел которого
характеризуется своей яркостью. Изображение разбивается на
p прямоугольных кадров размером
каждый. Кадр
сжимается в вектор данных размерностью L
который затем восстанавливается (например, после хранения
или передачи по медленным каналам связи) в кадр того же
размера
. Решение
этой
задачи возможно с
использованием простейшего двухслойного персептрона с
линейными функциями активации (см. рис. 4).
Рис. 4.
Сруктурная
схема двухслойного
персептрона с
линейными
функциями
активации
Здесь
, j=1,2,…,N,
- значение яркости j-ого
пикселя в k-ом кадре, k= j=1,2,…,p.
Сжатие (компрессия) данных осуществляется первым
слоем нейронов, а восстановление (декомпрессия) —
выходным. Сеть является автоассоциативной, поскольку ее
выходной вектор
должен совпадать с входным
.
Веса первого слоя нейронов в матричной форме
обозначаются
а выходного слоя Вследствие
линейности функций активации и однонаправленности
распространения сигналов имеем:
Обучение сети, состоящее в оптимальном подборе весов,
составляющих матрицы
и
, подразумевает
минимизацию целевой функции в виде:
Список литературы




Роберт Калан, Основные концепции
нейронных сетей.
http://www.intuit.ru/department/expert/neuro/1/
http://bigor.bmstu.ru/?cnt/?doc=NN/012neurons.mod/?cou=NN/base.cou
http://www.zhukov.org.ru/school/
Литература




1. Горбань А.Н. Обучение нейронных сетей. М.: СП "ПараГраф", 1990.
2. Горбань А.Н., Россиев Д.А. Нейронные сети на
персональном компьютере. Новосибирск: Наука,
1996.
3. Дунин-Барковский В.Л. Информационные
процессы в нейронных структурах. - М.: Наука,
1978.
4. Ивахненко А.Г. "Персептроны". - Киев: Наукова
думка, 1974.
Download