АНАЛИЗ И СРАВНЕНИЕ МЕТОДОВ ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ
С. А. Федосин, Д. А. Ладяев, О. А. Марьина
В статье автор рассматривает подход к моделированию композиционных материалов с использованием нейросетевых технологий и анализирует различные методы обучения нейронных сетей. В качестве нового подхода к решению задачи поиска глобального аттрактора функции энергии предлагается применение вейв лет-преобразования.
Введение. Искусственные нейронные сети находят применение при решении сложных задач, когда обычные алгоритмические решения оказываются неэффективными или невозможными. При построении нейронных сетей делается ряд допущений и значительных упрощений, однако, они демонстрируют такие свойства, как обучение на основе опыта, обобщение, извлечение существенных данных из избыточной информации. После анализа входных сигналов нейронные сети самонастраиваются и обучаются, чтобы обеспечить правильную реакцию. Обученная сеть может быть устойчивой к некоторым отклонениям входных данных.
Рассмотрим многослойную полносвязанную нейронную сеть прямого распространения (рис. 1), которая широко используется для поиска закономерностей и классификации образов. Полиосвязанной нейронной сетью называется многослойная структура, в которой каждый нейрон произвольного слоя
связан со всеми нейронами предыдущего слоя (нейроны первого слоя соединены со входами нейронной сети). Прямое распространение сигнала означает, что такая нейронная сеть не содержит петель. Математическая модель нейрона описывается выражением (1)
где х — выход нейрона, верхний индекс (г) показывает номер слоя, нижний индекс (к) показывает номер нейрона в слое; N — число нейронов в слое; ии — вес синаптической связи; / — функция активации нейрона.
Выход к-го нейрона слоя г -Ь1 рассчитывается как взвешенная сумма всех его входов со слоя г, к которой применена функция активации, нормализующая выходной сигнал. Входы нейронов слоя г + 1 являются выходами нейронов слоя г.
Рис. 1. Пример многослойной полносвязанной нейронной сети прямого
Целью данной статьи является сравнение градиентных методов обучения нейронных сетей. Ставится вопрос об улучшении задачи поиска глобального минимума функции энергии с применением теории вейвлет-пре-образоваиий.
Рассмотрим понятие и принципы процесса обучения многослойной нейронной сети (многослойного персептрона). Уделим внимание основному методу обучения многослойного персептрона — алгоритму обратного распространения ошибки — и его модификациям. Сравним эти методы обучения, определим достоинства и недостатки, а также предложим иной подход к решению задачи поиска глобального минимума функции энергии.
определенной выборке по некоторому алгоритму.
Выделяют три парадигмы обучения: с учителем, без учителя (или самообучение) и смешанная. Среди множества алгоритмов обучения с учителем (когда известны праг вильные ответы к каждому входному примеру, а веса подстраиваются, чтобы минимизировать ошибку) наиболее успешным является алгоритм обратного распространения ошибки. Его основная идея заключается в том, что изменение весов синапсов происходит с учетом локального градиента функции ошибки. Разница между реальными и правильными ответами нейронной сети, определяемыми на выходном слое, распространяется в обратном направлении (рис. 2) — навстречу потоку сигналов. В итоге каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети. Простейшее правило обучения соответствует методу наискорейшего спуска, то есть изменения сииаптических весов пропорционально их вкладу в общую ошибку.
Направление распространения данных
Направление распространения ошибки
Метод обратного распространения ошибки для многослойной
полносеязанной нейронной сети
На рис. 3 проиллюстрирован метод градиентного спуска. К весовым коэффициентам применяется поправка, которая определяется в соответствии с формулой (2)
— коэффициент синаптической связи
(2) Е — функция суммарной ошибки сети
Рис. 3. Метод градиентного спуска при минимизации ошибки сети
Основная идея этого метода состоит в распространении сигналов ошибки от выходов сети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Для возможности применения этого метода передаточная функция нейронов должна быть дифференцируема.
Для каждого узла определяется поправка, и это зависит от слоя, к которому относится узел. Кроме этого, на вход алгоритму нужно подавать структуру сети. Нейронные сети простой структуры (состоящие из двух уровней нейронов: скрытого и выходного) на практике дают хорошие результаты.
Недостатки алгоритма. Больше всего неприятностей приносит неопределенно долгий процесс обучения нейронной сети, при
этом она может и не обучиться вовсе. Причины могут быть следующими:
— паралич сети. В процессе обучения сети значения весов могут в результате коррекции стать очень большими величинами. Большинство нейронов будут функционировать в области, где производная сжимающей функции очень мала;
— локальные минимумы. Обратное распространение использует разновидность градиентного спуска — спуск вниз по поверхности ошибки, — непрерывно подстраивая веса в направлении к минимуму. Сеть может попасть в локальный минимум, когда рядом имеется гораздо более глубокий минимум;
— размер шага. Коррекции весов предполагаются бесконечно малыми. Это неосуществимо на практике, так как ведет к бесконечному времени обучения. Однако размер шага должен браться конечным.
Существует возможность переобучения сети. Весь набор образов, предоставленных к обучению, будет выучен сетью, но любые другие образы, даже очень похожие, могут быть классифицированы неверно.
Существуют современные алгоритмы второго порядка, такие как метод сопряженных градиентов и метод Левеиберга-Маркара, которые на многих задачах работают существенно быстрее (иногда на порядок). Разработаны также эвристические модификации этого алгоритма, хорошо работающие для определенных классов задач, — быстрое распространение и Дельта-дельта с чертой.
нахождения локального минимума функции на основе информации о ее значениях и ее градиенте. В случае квадратичной функции в Яп минимум находится за п шагов.
Метод сопряженных градиентов является методом первого порядка, в то же время скорость его сходимости квадратична. Этим он выгодно отличается от обычных градиентных методов. При оптимизации функций общего вида метод сопряженных направлений сходится в 4-5 раз быстрее метода наискорейшего спуска. При этом не требуется трудоемких вычислений вторых частных производных в отличие от методов второго порядка.
Аъи(г) = -7?— + аДги(£ — 1), (3)
нием, производится пакетная обработка данных. Вычисляется усредненный градиент поверхности ошибок по всему обучающему множеству, и веса корректируются один раз в конце каждой эпохи.
Метод быстрого распространения действует в предположении, что поверхность ошибок является локально квадратичной. В этом предположении алгоритм быстрого распространения работает так:
1. На первой эпохе веса корректируются по тому же правилу, что и в методе обратного распространения, исходя из локального градиента и коэффициента скорости обучения.
2. На последующих эпохах алгоритм использует предположение о квадратичности для более быстрого продвижения к точке минимума.
Исходные формулы метода быстрого распространения имеют ряд вычислительных недостатков. Во-первых, если поверхность
ошибок не является вогнутой, алгоритм может уйти в ложном направлении. Далее, если вектор градиента не меняется или меняется мало, шаг алгоритма может оказаться очень большим и даже бесконечным. Наконец, если по ходу встретился нулевой градиент, изменение весов вообще прекратится.
В методе Дельта-дельта с чертой скорости обучения для отдельных весов корректируются на каждой эпохе таким образом, чтобы соблюдались следующие важные эвристические требования:
1) если производная сохраняет знак на нескольких последовательных итерациях, то скорость обучения увеличивается (поверхность ошибок имеет малую кривизну, поэтому одинаковым продвижениям соответствуют примерно одинаковые понижения уровня);
2) если знак производной на протяжении нескольких последних итераций всякий раз менялся на противоположный, то скорость обучения значительно уменьшается (если этого не сделать, алгоритм может начать осциллировать вокруг точек с большой кривизной) .
Чтобы удовлетворить этим условиям, в методе Дельта-дельта с чертой задаются:
— начальная скорость обучения, используемая для всех весов на первой эпохе;
— коэффициент ускорения, который добавляется к скоростям обучения, когда производные не меняют знака;
— коэффициент замедления, на который умножаются скорости обучения в случае, когда производная меняет знак.
Применение линейного роста и экспоненциального убывания для скоростей обучения придает алгоритму большую устойчивость. Однако описанная схема может плохо рабо-
тать на поверхностях ошибок, искаженных помехами, где при выраженном общем понижающемся рельефе производные могут резко менять знак. Поэтому при реализации алгоритма для увеличения или уменьшения скорости обучения берется сглаженный вариант производной.
Веса корректируются по тем же формулам, что и в методе обратного распространения, с той разницей, что коэффициент инерции не используется, а каждый вес имеет свою собственную, зависящую от времени скорость обучения. Вначале всем скоростям обучения присваиваются одинаковые стартовые значения, затем на каждой эпохе они корректируются .
I 4_ е~т
Веса характеризуют силу синапти-ческой связи между нейронами. Крутизна сигмоидиой кривой, называемой функцией активации нейрона, определяется множителем С/Т, стоящим перед взвешенной суммой
Основной заслугой Дж. Хопфилда было использование при анализе работы нейронной сети связанной с ней так называемой функции энергии, или функции Ляпунова. Функция энергии зависит от состояния системы и при каждом его изменении может только уменьшиться. Из любого положения можно двигаться в направлении ближайшего локального минимума функции энергии. Локальные минимумы функции энергии называются аттракторами системы, а множество состояний, движение из которых приводит к данному аттрактору, — его бассейном притяжения. Состояние системы — это паттерн активностей всех ее нейронов, а аттрактор —
это состояние, соответствующее запомненному сетью образу.
Функция энергии в случае сигмоидалыюй функции активации может быть получена в явном виде. Она представляет собой сумму двух членов, первый из которых зависит от знаменателя Т, а второй — нет:
<3_ 2 Т
Когда значение Т очень мало, большую величину имеет множитель С/Т в уравнении сигмоидной функции активации. Функция активации имеет большую крутизну (близка к пороговой), вклад второго члена в функцию энергии пренебрежимо мал и ее форма определяется первым членом. Например, для сети из двух нейронов функция энергии в этом случае имеет два аттрактора, соответствующих активностям нейронов, близким к наивысшим.
Когда Т очень велико, то вклад первого члена в функцию энергии пренебрежимо мал, и она определяется вторым членом. В этом случае она имеет только один минимум, соответствующий нулевой активности нейрона. В промежуточных случаях каждый из членов вносит свой вклад в функцию энергии. С увеличением значения Т два первоначальных аттрактора становятся все менее выраженными и в конце концов полностью исчезают т. е. со временем рельеф функции энергии сглаживается.
На рис. 4 тонкой линией показана исходная несглаженная функция энергии, а толстой — сглаженная функция. Глобальный аттрактор, соответствующий стратегически более правильному решению проблемы, находится довольно далеко от исходного состояния сети и не может быть достигнут в случае несглажеииой функции энергии, так как сеть остановится в состоянии, соответствующем ближайшему аттрактору. И наоборот, в случае сглаженной функции энергии глобальный аттрактор может быть легко достигнут.
Рис. Эффект сглаживания нейронной сети
При сглаживании теряются мелкие детали, которые в определенных ситуациях могут быть очень важны, и это следует учитывать.
Сравнение методов обучения. Продемонстрируем зависимость работы нейронной сети от метода, выбранного для ее обучения. В программном пакете МАТЬАВ была спроектирована нейронная сеть, задачей которой являлось сопоставление входной группы точек одному из трех типов сигнала. Была выбрана архитектура многослойного персептро-на с одним промежуточным слоем. Входной слой состоит из 100 нейронов, выходной — из 3, число нейронов в скрытом слое — 8, 10 или 12. В качестве функции активации выбрана сигмоидальная функция, так как она легко дифференцируется. Обучение сети происходило разными методами. Это: — метод градиентного спуска;
— метод градиентного спуска с адаптивным обучением;
— метод градиентного спуска с учетом моментов;
— метод градиентного спуска с учетом моментов и с адаптивным обучением.
Процесс обучения завершается в одном из случаев: либо ошибка работы нейронной сети становится меньше значения, заданного изначально, либо количество эпох достигает заданного числа. Эпохой принято называть шаг алгоритма, действующего итеративно. Максимальная ошибка, заданная в начальных условиях для каждого метода тренировки, составляет 10-6, максимально допустимое число эпох — 5000. Результаты обучения по различным алгоритмам представлены в табл. 1-4.
Результаты обучения нейронных сетей методом градиентного спуска
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
нейронов в групп точек обучения Количество Погрешность
8 нейронов 100 групп точек 395,405 5000 0,0238
8 нейронов 160 групп точек 556,826 5000 0,0258
10 нейронов 100 групп точек 412,161 5000 0,0111
10 нейронов 160 групп точек 585,325 5000 0,0125
12 нейронов 100 групп точек 420,475 5000 0,0183
12 нейронов 160 групп точек 593,008 5000 0,0165
Результаты обучения нейронных сетей методом градиентного спуска с
Число нейронов в промежуточном слое Количество групп точек в обучающей выборке Время обучения сети, с Количество эпох Погрешность классификации
8 нейронов 100 групп точек 64,975 536 11,9580е-007
8 нейронов 160 групп точек 72,795 689 14,7110е-007
10 нейронов 100 групп точек 44,947 509 9,1795е-007
10 нейронов 160 групп точек 79,215 656 10,2940е-007
12 нейронов 100 групп точек 38,057 441 13,5030е-007
12 нейронов 160 групп точек 63,578 542 14,7440е-007
8 нейронов 100 групп точек 434,096 5000 0,0133
8 нейронов 160 групп точек 560,315 5000 0,0138
10 нейронов 100 групп точек 431,142 5000 0,0034
10 нейронов 160 групп точек 583,036 ■ 5000 0,0043
12 нейронов 100 групп точек 436,354 5000 0,0145
12 нейронов 160 групп точек 593,925 5000 0,0159
учётом моментов и с адаптивным обучением
8 нейронов 100 групп точек 27,858 319 9,3493е-007
8 нейронов 160 групп точек 36,652 319 10,0160е-007
10 нейронов 100 групп точек 28,582 314 9,8913е-007
10 нейронов 160 групп точек 39,68 312 9,3940е-007
12 нейронов 100 групп точек 27,27 310 11,0380е-07
12 нейронов 160 групп точек 38,007 312 14,1030е-007
Погрешность классификации — это основной критерий анализа результатов обучения. Обратим внимание на значения времени обучения сети и количества эпох.
Как видно из табл. 1 и 3, при обучении нейронных сетей двумя из предложенных методов, методом градиентного спуска и методом градиентного спуска с учетом моментов, было достигнуто максимальное количество шагов, при этом погрешность классификации в 104 выше заданного значения. Задачу можно считать нерешенной.
В табл. 2 и 4 показано, что другие два метода, метод градиентного спуска с адаптивным обучением и метод градиентного спуска с учетом моментов и с адаптивным обучением, с задачей справились, к тому же время обучения сети показано на порядок меньше.
Сравнивая полученные результаты, можно говорить о том, что оптимальной для обучения нейронной сети представляется выборка из 100 групп точек на каждый тип сигнала. Погрешность классификации в этом случае для каждой архитектуры нейронной сети преимущественно ниже, чем при обучении выборкой из 160 групп точек. При увеличении количества обучающих групп точек наблюдается явление переобучения сети.
Отметим, что наименьшая погрешность классификации признака наблюдается у нейронных сетей с 10 нейронами в промежуточном слое. Из этого можно заключить, что увеличение количества нейронов в скрытом слое не всегда приводит к улучшению работы сети.
Сделаем основной вывод: наилучшим образом обучаются сети, методом тренировки которых являются метод градиентного спуска с адаптивным обучением или метод градиентного спуска с учетом моментов и адаптивным обучением (последний алгоритм предпочтительнее). Данные методы обучения показывают погрешность классификации на 4-5 порядков меньше, чем метод градиентного спуска и метод градиентного спуска с учетом моментов.
Применение вейвлет-преобразова-ния. При обучении каждым из рассмотренных методов нейронная сеть считается наилучшим образом натренированной, если был найден глобальный минимум функции ошибок (или минимум функции энергии — выбор функции зависит от модели нейронной сети). Для определения его расположения потребовалось разное время.
В модели Хопфилда прибегают к варианту сглаживания функции энергии с целью сделать локальные минимумы менее выраженными. Однако данный подход следует применять с осторожностью, т. к. функция энергии может не иметь явных скачков, и тогда решение задачи станет неверным.
операций. Во-вторых, оно не только раскладывает сигнал на некоторое подобие частотных полос (путем анализа его в различных масштабах), но и представляет временную область, то есть моменты возникновения тех или иных частот в сигнале (рис. 5). Данное предположение является целью дальнейшего исследования оптимизации работы нейронных сетей.
На рис. 6 и 7 представлено разложение
функции энергии под действием различных вейвлет-преобразований. Рассматривая данные изображения, можно полагать, что области глобального минимума функции энергии соответствуют большие белые пропуски либо данной области характерен переход от темного цвета на нижних уровнях к светлому цвету на верхних уровнях. На рисунках области, представляющие интерес, обведены.
Signal and Approximation at level 1
Рис. 5. Сигнал и его аппроксимация на уровне 1
Scale of colors from MIN to MAX
Рис. 6. Разложение функции энергии под действием, вейвлет-функции
Хаара (максимальный уровень 8)
50 100 150 200 250 300 350 400 450 500
Scale oi colors from min to МАХ
Рис. 7. Разложение функции энергии под действием вейвлет-функции
Добеши (коэффициент равен 2, максимальный уровень -8)
Во многих случаях желательно наделять каждый нейрон обучаемым смещением. Это приводит к ускорению процесса обучения. Смещение обучается аналогично тому, как обучаются все остальные веса.
В связи с этим поверхность функции ошибки строится в трехмерном пространстве в базисе вес — смещение -ошибка, что расширяет возможности вей-влет-анализа.
1. Ежов А. А. Нейрокомпьютинг и его применение в экономике и бизнесе: учеб. пособие / А. А. Ежов, С. А. Шумский. — М. : МИФИ, 1998. — 224 с.
Васенков Данила Валентинович
МЕТОДЫ ОБУЧЕНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
С давних пор люди пытались объяснить, как функционирует их собственное мышление. Нейробиологи и нейроанатомы достигли значительного прогресса в изучении работы мозга. Исследуя структуру и функции нервной системы человека, они многое поняли в «электропроводке» мозга, но мало узнали о его функционировании. В процессе исследований выяснилось, что мозг имеет ошеломляющую сложность: миллиарды нейронов, каждый из которых соединен с сотнями или тысячами других, образуют систему, далеко превосходящую наши самые смелые мечты о суперкомпьютерах.
Понятие «искусственная нейросеть» впервые было введено в 40-х годах прошлого века. Искусственная нейросеть моделирует на логическом уровне деятельность нервной системы человека и животных. В 43-м году была разработана формальная модель нейрона, однако вскоре оказалось, что такая модель способна решать лишь очень ограниченное число задач. Эти трудности можно преодолеть, объединяя формальные нейроны в сеть. Возможности таких систем намного шире: объединенные в сеть формальные нейроны могут решать задачи, которые традиционно относятся к области «человеческой деятельности» (например распознавание образов и даже принятие решений на основе неполной информации). Особенно интересна способность ней-росетей обучаться и запоминать информацию, что напоминает мыслительные процессы человека. Именно поэтому в ранних работах по исследованию нейросетей часто упоминался термин «искусственный интеллект».
За последнее время интерес к искусственным нейронным сетям быстро возрос. Ими занялись специалисты из таких дале-
ких областей, как техническое конструирование, физиология, психология. Этот интерес понятен: так как искусственная нейронная сеть, по сути, представляет собой модель естественной нервной системы, поэтому создание и изучение таких сетей позволяет узнать многое о функционировании естественных систем.
Сама теория искусственных нейронных сетей появилась в 40-х годах благодаря последним на тот момент достижениям биологии, так как искусственные нейроны состоят из элементов, которые моделируют элементарные функции биологических нейронов. Эти элементы организуются по способу, который может соответствовать (или не соответствовать) анатомии мозга. Несмотря на такое поверхностное сходство, искусственные нейронные сети демонстрируют удивительные свойства, подобные свойствам естественного мозга. Например, искусственная нейронная сеть способна менять свое поведение в зависимости от внешней среды. Прочитав предъявленные ей входные сигналы (возможно, вместе с требуемыми выходами) она способна «обучиться» так, чтобы обеспечивать требуемую реакцию. После обучения сеть не реагирует на небольшие изменения входных сигналов. Эта способность видеть образ сквозь шум и искажения очень полезна, если нужно решать задачи распознавания образов. Стоит отметить, что нейронная сеть делает обобщения автоматически благодаря своей структуре, а не с помощью специально написанных программ.
Другим интересным свойством нейро-сетей является надежность: даже если несколько элементов будут работать неправильно или выйдут из строя, то сеть все равно будет способна выдавать правильные результаты, но с меньшей точностью.
Некоторые типы нейронных сетей обладают способностью генерировать абстрактный образ на основе нескольких входных сигналов. Например, можно обучить сеть, предъявляя ей последовательность искаженных изображений буквы «А». После обучения сеть сможет породить букву «А» без искажений, то есть сеть может сгенерировать то, что ей никогда не предъявлялось.
Тем не менее, стоит отметить, что искусственные нейронные сети не являются панацеей. Они очень плохо подходят для задач, где требуются точные и безошибочные математические расчеты.
В данной статье рассматриваются формальные модели нейрона и перцептрона, основные отличия нейросетевой архитектуры от классической архитектуры фон Неймана, а также приведен обзор методов, применяемых для обучения нейросетей. В приложении можно найти примеры задач, решаемых нейронными сетями и детальное описание алгоритма обучения однослойного и многослойного перцептрона.
1949 г. Д. Хебб (D. Hebb) высказал идеи о характере соединений нейронов мозга и их взаимодействии, а также предложил правила обучения нейронной сети.
1950-е гг. Появились программные модели искусственных нейросетей. Первые работы были проведены Натаниелом Рочес-тером (Nathanial Rochester) из исследовательской лаборатории IBM. И хотя дальнейшие реализации были успешными, эта модель потерпела неудачу, поскольку бурный рост разработок в области традиционных вычис-
лений оставил в тени нейронные исследования.
1958 г. Джон фон Нейман (John fon Neumann) разработал систему на основе вакуумных трубок, имитирующую простые функции нейронов.
В том же году нейробиолог Френк Ро-зенблатт (Frank Rosenblatt) начал работу над моделью перцептрона. Однослойный пер-цептрон, построенный Розенблаттом, в настоящее время считается классической моделью нейросети. Розенблатт использовал свой перцептрон, чтобы разделять входные сигналы на два класса. К сожалению, однослойный перцептрон мог выполнять лишь ограниченный класс задач.
Ранние успехи способствовали тому, что от нейронных сетей стали ожидать слишком много: больше, чем действительно можно было реализовать в рамках той модели. Чрезмерный оптимизм, процветающий в академическом и техническом сообществе, в конце концов привел множество специалистов к разочарованию, и все проекты исследования нейронных сетей были подвергнуты критике как бесперспективные. В результате, финансирование исследований было прекращено вплоть до 80-х годов.
80-е годы. Благодаря работам Джона Хопфилда (John Hopfield), возродился интерес к нейроинформатике. Хопфилд показал, как преодолеть ограничения нейро-сетей первого поколения, а также разработал теорию нейронных сетей, моделирующих ассоциативную память.
1985 г. Появились первые коммерческие нейрокомпьютеры, например, Mark III фирмы TRW (США).
1986 г. Дэвид Румельхарт с соавторами предложил алгоритм обучения многослойного перцептрона. В то же время в Киото (Япония) состоялась объединенная американо-японская конференция по нейронным сетям. На этой конференции нейронные сети объявили пятым поколением ЭВМ.
С 1985 г. Американский Институт Физики начал ежегодные встречи — «Нейронные сети для вычислений».
1987 г. Начало широкомасштабного финансирования разработок в области искусственных нейронных сетей в США, Японии и Западной Европе (японская программа «Human Frontiers» и европейская программа «Basic Research in Adaptive Intelligence and Neurocomputing»).
1989 г. Разработки и исследования в области искусственных нейросетей ведутся практически всеми крупными электротехническими фирмами. Нейрокомпьютеры становятся одним из самых динамичных секторов рынка (за два года объем продаж вырос в пять раз). Агентством DARPA (Defence Advanced Research Projects Agency) министерства обороны США начато финансирование программы по созданию сверхбыстродействующих образцов нейрокомпьютеров для разнообразных применений.
1992 г. Работы в области нейросетей находятся в стадии интенсивного развития. Ежегодно проводится десятки международных конференций и форумов по нейронным сетям, число специализированных периодических научных изданий по указанной тематике достигает двух десятков наименований.
1997 г. Годовой объем продаж на рынке искусственных нейросетей и нейрокомпьютеров превысил 9 млрд. долларов, а ежегодный прирост составил 50%.
2000 г. Благодаря переходу на субмикронные и нанотехнологии, а также успехам молекулярной и биомолекулярной технологии, появляются принципиально новые архитектурные и технологические подходы к созданию нейрокомпьютеров.
ЧТО ТАКОЕ НЕЙРОСЕТЬ
Исследователи до сих пор не пришли к единому мнению относительно определения нейронной сети. В литературе можно встретить множество вариантов, например:
«Нейронная сеть — система, состоящая из большого числа простых вычислительных элементов. Результат работы каждого элемента зависит только от его внутреннего состояния. Все элементы работают незави-
Тем не менее, большинство исследователей сходятся на том, что нейронная сеть -это система, состоящая из множества простых процессоров, каждый из которых обладает локальной памятью. Содержимое такой памяти принято называть состоянием процессора. Процессоры способны обмениваться между собой числовыми данными. Результат работы процессора зависит только от его состояния и данных, которые он получает на входе.1
Перед тем как использовать нейросеть, необходимо провести так называемую процедуру обучения, во время которой на основании поступающих данных состояния каждого элемента корректируются таким образом, чтобы сеть вычисляла правильный ответ. Другими словами, сеть «обучается» на примерах, подобно тому как ребенок учится по картинкам отличать кошку от собаки.
Можно провести следующую аналогию. Допустим, есть функция у = (2 • х + 1) / 2. Как получить у при х = 3? Очень просто: два умножается на три, затем прибавляется единица и полученный результат делится на два. Получается 3,5. Эта последовательность действий и является простейшей программой.
Однако есть и другой способ решить ту же задачу. Можно построить график этой функции, а затем по графику найти решение. Хотя этот способ и кажется «не математическим», но его достоинства сразу становятся очевидными, когда есть только график функции, но не сама функция. Например, может быть известно изображение буквы. Очевидно, что поиск функции, описы-
вающей данное изображение, будет очень трудоемким.
Правда, здесь возникает одна сложность.
Через заданные точки можно про—-■ вести бесконечное число кри-.вых. Следовательно, потом, пы-■■’ таясь определить у по х, мы по- «»‘ лучим бесконечно много вариантов ответа. Но эту проблему можно решить: во-первых, значения у будут близки, во-вторых, существует способ минимизировать ошибку. Это главное достоинство нейросетевой архитектуры. Для обработки в обычном компьютере всякую задачу нужно формализовать (изображение буквы превратить в функцию). При этом, если возникнет хотя бы небольшая ошибка в начальных данных или хотя бы одно из выражений будет повреждено, неверным окажется и конечный результат. В рассмотренном примере (у = (2 • х + 1) / 2), если первая двойка из-за каких-то неполадок превратится в 4, в итоге мы получим при х = 3 у = 6,5. А для графика потеря части данных не играет решающей роли. Если нарисовано изображение буквы, то всегда можно восстановить утраченную часть графика, продолжив оставшиеся линии.
На сегодняшний день существует множество моделей нейрона, которые различаются вычислительной сложностью и степе-
1 Следует отметить, что данное требование обычно нарушается на этапе обучения.
нью сходства с живым нейроном. Рассмотрим здесь классическую модель, называемую «формальный нейрон» (рис. 1).
Введем следующие обозначения: х1 — значение входного сигнала, 0 — пороговый уровень нейрона, wi — весовой коэффициент нейрона (данное значение часто называют весом, силой связи или весом соединения),
^ — функция активации, которая осуществляет преобразование,
у — выходное значение нейрона.2 Множество, состоящее из порогового уровня и всех весов, называют параметрами нейрона. Аналогично, параметрами сети называют множество параметров всех составляющих ее нейронов.
В этих обозначениях выход нейрона определяется следующей формулой:
у = ^ ( (Xi • Wi)-0).
Существует модификация формального нейрона без порогового уровня. В этом случае к нейрону добавляется еще один входной канал (пусть его номер равен к), причем хк = 1 для любого входного сигнала, а
wk = -0 . Очевидно, что эти модели эквивалентны:
X + хк^ = X — 0 .
Недостатки модели формального нейрона
Предполагается, что нейрон мгновенно вычисляет свой выход, поэтому с помощью таких нейронов нельзя моделировать непосредственно системы с внутренним состоянием.
• Формальные нейроны, в отличие от биологических, не могут обрабатывать информацию синхронно.
• Нет четких алгоритмов выбора функции активации.
• Невозможно регулировать работу всей сети.
• Излишняя формализация понятий «порог» и «весовые коэффициенты». У реальных нейронов порог меняется динамически, в зависимости от активности нейрона и общего состояния сети, а весовые коэффициенты изменяются в зависимости от проходящих сигналов.
Один нейрон может выполнять простейшие вычисления, но основные функции нейросетн обеспечиваются не отдельными
1 Их часто называют синапсами по аналогии с биологическими нейронами.
2 Или просто «выход нейрона».
3 От англ. «регсер1гоп». Помимо термина «перцептрон» в русскоязычной литературе часто используется термин «персептрон».
очередь, нейроны вычисляют выход независимо друг от друга. Очевидно, что размерность выхода (то есть количество элементов) равна количеству нейронов, а количество синапсов у всех нейронов должно быть одинаково и совпадать с размерностью входного сигнала.
Все, что способен сделать перцептрон, -сформировать отображение X ® У для «х е X. Мы не можем «извлечь» из перцеп-трона данное отображение полностью, а можем только посчитать образы произвольного числа точек.
Задача формализации, то есть выбора смысла, которым наделяются компоненты входного и выходного векторов, решается человеком на основе практического опыта. К сожалению, жестких рецептов формализации для нейронных сетей пока не создано.
• Определить, какой смысл вкладывается в компоненты входного вектора X. Входной вектор должен содержать формализованное условие задачи, то есть всю информацию, необходимую для того, чтобы получить ответ.
• Выбрать выходной вектор У таким образом, чтобы его компоненты содержали полный ответ для поставленной задачи.
Рис. 2. Однослойный перцептрон
• Выбрать вид функции активации нейронов. При этом желательно учесть специфику задачи, так как удачный выбор увеличит скорость обучения.
• Выбрать количество слоев и нейронов в слое.
• Задать диапазон изменения входов, выходов, весов и пороговых уровней на основе выбранной функции активации.
• Присвоить начальные значения весам и пороговым уровням. Начальные значения не должны быть большими, чтобы нейроны не оказались в насыщении (на горизонтальном участке функции активации), иначе обучение будет очень медленным. Начальные значения не должны быть и слишком малыми, чтобы выходы большей части нейронов не были равны нулю, иначе обучение тоже замедлится.
• Провести обучение, то есть подобрать параметры сети так, чтобы задача решалась наилучшим образом. По окончании обучения сеть сможет решать задачи того типа, которым она обучена.
• Подать на вход сети условия задачи в виде вектора X. Рассчитать выходной вектор У, который и даст формализованное решение задачи.
ОБЩИЙ ОБЗОР МЕТОДОВ ОБУЧЕНИЯ
Способность к обучению является фундаментальным свойством мозга. В контексте искусственных нейронных сетей процесс обучения может рассматриваться как настройка архитектуры сети, а также весов связей для эффективного выполнения поставленной задачи. Обычно нейронная сеть должна настроить веса по предоставленным обучающим примерам. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами,
Рис. 3. Проблема локальных минимумов
которые работают по заранее заложенным правилам.
Среди всех существующих методов обучения можно выделить два класса: детерминированный и стохастический.
Детерлинироганный жето^ итеративно корректирует параметры сети, основываясь на ее текущих параметрах, величинах входов, фактических и желаемых выходов. Яркой иллюстрацией подобного метода является метод обратного распространения ошибки.
Стохастические жетоны обучения изменяют параметры сети случайным образом. При этом сохраняются только те изменения, которые привели к улучшениям. В качестве примера стохастического метода обучения можно привести следующий алгоритм:
1. Выбрать параметры сети случайным образом и подкорректировать их на небольшую случайную величину. Предъявить множество входов и вычислить получающиеся выходы.
2. Сравнить эти выходы с желаемыми и вычислить разницу между ними. Эта разница называется ошибкой. Цель обучения состоит в том, чтобы минимизировать ошибку.
3. Если ошибка уменьшилась, коррекция сохраняется, в противном случае коррекция отбрасывается и выбирается новая.
Шаги 2 и 3 повторяются до тех пор, пока сеть не обучится.
Необходимо отметить, что стохастический метод обучения может попасть в «ловушку» локального минимума (рис. 3).
Допустим, что первоначальное значение ошибки равно или очень близко к точке А.
Если случайные шаги корректировки малы, то любые отклонения от точки А увеличат ошибку и будут отвергнуты. Таким образом, наименьшее значение ошибки в точке В никогда не будет найдено. Когда случайные коррекции параметров сети очень велики, ошибка будет меняться так резко, что никогда не установится в одном из минимумов.
Чтобы избежать подобных проблем, можно постепенно уменьшать средний размер случайных шагов коррекции. Когда средний размер шагов велик, значение ошибки будет принимать все значения с равной вероятностью. Если плавно уменьшать размер шагов, то будет достигнуто условие, при котором значение ошибки будет на некоторое время «застревать» в точке В. Когда размер шага уменьшится еще больше, значение ошибки будет «останавливаться» на короткое время и в точке А, и в точке В. Если уменьшать размер шага непрерывно, то, в конце концов, будет достигнута величина шага, достаточная для того, чтобы преодолеть локальный минимум А, но не локальный минимум В.
Обучение с учителем
Обучение без учителя
Хотя метод обучения с учителем успешно применяется для решения прикладных задач, многие исследователи критикуют его
1 Множество, на котором обучается сеть, называется обучающим множеством или обучающей выборкой.
Самым старым обучающим правилом (1949-й год) является постулат обучения Хэбба. На основании физиологических и психологических исследований Хэбб выдвинул гипотезу о том, как обучаются биологические нейроны. Он предположил, что вес соединения между двумя нейронами усиливается, если оба эти нейрона возбуждены.
Хэбб опирался на следующие нейрофизиологические наблюдения: если связанные между собой нейроны активизируются одновременно и регулярно, то сила связи возрастает. Важной особенностью этого правила является то, что изменение веса связи зависит только от активности нейронов, которые соединены данной связью.
Сам алгоритм выглядит следующим образом:
1. На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.
2. На вход сети подается входной сигнал и вычисляется выход.
3. На основании полученных выходных значений нейронов производится изменение весовых коэффициентов.
4. Повтор с шага 2 с новым образом из входного множества до тех пор, пока вы-
ходные значения сети не стабилизируются с заданной точностью.
Правило коррекции по ошибке
В 1957 г. Розенблатт разработал модель, которая вызвала большой интерес у исследователей. Модель использует алгоритм обучения с учителем, то есть обучающее множество состоит из множества входных векторов, для каждого из которых указан выходной вектор. Несмотря на некоторые ограничения, она стала основой для многих современных наиболее сложных алгоритмов обучения с учителем.
Обучение методом соревнования
В отличие от обучения Хэбба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. То
есть из всего множества выходных нейронов используется только один нейрон с самым большим выходом. Такой алгоритм напоминает процесс обучения биологических нейронных сетей. Обучение методом соревнования позволяет классифицировать входные данные: похожие примеры группируются сетью в один класс и представляются одним образцовым элементом. При этом каждый нейрон из множества выходных нейронов «отвечает» только за один класс. Очевидно, что общее число классов, с которыми способна работать сеть равно количеству выходных нейронов.
При обучении модифицируются только веса «победившего» нейрона. Это приводит к тому, что образцовый элемент становится чуть ближе к входному примеру.
Генетические алгоритмы — группа алгоритмов, основанных на моделировании развития биологической популяции.
Пусть есть функция Е(р), зависящая от вектора р, с помощью которой вычисляется ошибка. Требуется найти минимум Е.
Элементы множества р способны эволюционировать по следующим правилам:
Если Е(р0) — мало, то особь р0 считается удачной и получает приоритет при размножении. Вероятность гибели этой особи уменьшается.
Если Е(р0) — велико, то особь р0 считается неудачной, вероятность размножения для этой особи снижается и повышается вероятность гибели.
Мутации: любая точка (особь) может мутировать, то есть ее значение может сместиться на небольшую величину р0: = р0 + Ар, где Ар — небольшой по модулю вектор, характеризующий величину мутации.
Размножение: в соответствии с вероятностью размножения (см. шаг 1), каждая точка делится. Законы размножения зависят от выбранной модели.
Гибель: в соответствии с вероятностью, определенной на шаге 2, точка может «погибнуть», то есть она может быть удалена из множества р.
Точная теория эволюции пока не построена, поэтому нет четких правил выбора численных значений вероятностей гибели, размножения. Оптимальность выбранных алгоритмов пока может быть оценена только экспериментально.
Развитие теории искусственных нейронных сетей всегда вызывало немало энтузиазма и критики. Она развивалась быстрее, чем предсказывали пессимисты, но медленнее, чем надеялись оптимисты, — типичная ситуация. Тем не менее, нейронные сети уже сейчас с успехом используются в системах управления, распознавания образов, предсказания и диагностики, то есть там, где традиционные вычисления слишком трудны. К сожалению, для подобных задач пока не найдены оптимальные способы решения. Сравнительные исследования различных подходов (в том числе и без использования нейросетей) так и не привели к однозначным выводам. Очевидно, что в такой ситуации необходимо понять возможности, предпосылки и область применения всех существующих подходов и максимально использовать их преимущества для дальнейшего развития интеллектуальных систем. Подобные усилия могут привести к абсолютно новым алгоритмам, которые объединят искусственные нейросети с другими технологиями.
1. Wasserman P. Neural Computing — Theory and Practice. Van Nostrand Reinhold, 1989.
4. Зяенцев Я. Нейронные сети: основные модели. Учебное пособие. Воронежский государственный университет, 1999.
5. Короткий С. Нейронные сети: основные положения. http: //www. go tai. net/documents/ doc-nn-002.aspx.
6. .Короткий С. Нейронные сети: алгоритм обратного распространения. http://www. gotai.net/ documents/doc-nn-003. aspx.
7. Короткий С. Нейронные сети: обучение без учителя. http: //www. go tai. net/documents/ doc-nn-004.aspx.
8. Короткий С. Нейронные сети Хопфилда и Хэмминга. http://www.gotai.net/documents/ doc-nn-005.aspx.
9. Brown E.W. Applying Neural Networks to Character Recognition. Northeastern University internal paper.
10. Bishop C. M. Neural Networks for Pattern Recognition. Oxford University Press Inc., 2003.
11. P/nfcws A. Approximation theory of the MLP model in neural networks. Acta Numerica, 1999.
12. Hayk/n S. Neural Networks: A Comprehensive Foundation. NY: Macmillan, 1994.
13. Mgr/n A. Neural Networks for Pattern Recognition. Cambridge, MA: The MIT Press, 1993.
14. Zwrada J.M. Introduction To Artificial Neural Systems. Boston: PWS Publishing Company, 1992.
15. DARPA Neural Network Study, AFCEA International Press, 1988.
16. Krose B., Smagt P. An introduction to Neural Networks. University of Amsterdam, 1996.
17. McCw/Zoch W., P/ttc W. A Logical Calculus of the Ideas Imminent in Nervous Activity. Bulletin of Mathematical Biophisics 5: 115-33, 1943.
18. Rosenblatt F. The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain. Phichological Review, 1958.
19. M/nsky M., Papert S. Perceptrons. Cambridge, VA: MIT Press, 1969.
20. W/drow B., Hof M. Adaptive Switching Circuits. IRE Wescon Convention Record, W.Y., 1960.
21. Галушкин А.Я. Нейрокомпьютеры. Кн. 3. M.: ИПРЖ, 2000.
22. Логовский А. Новейшая история нейрокомпьютинга в России. Открытые системы № 3, 2001. http://www.osp.ru/text/302/179978/ p1.html.
Васенков Данила Валентинович, аспирант математико-механического факультета СПбГУ.
Наши авторы. 2007 Our authors, 2007
Глубокие нейронные сети: пути применения
Зачем нужны нейронные сети и как их обучают Сохранить в закладки19 января 2021Сохранить в закладки Что такое партнёрский материал? Что такое партнёрский материал? Сохранить курс https://www.youtube.com/embed/D2yW1UK8uC8?rel=0&showinfo=0&autoplay=0Глубокая нейронная сеть // ПостНаукаhttps://www.youtube.com/embed/KPy3cTz4PPA?rel=0&showinfo=0&autoplay=0Над материалом работаликандидат физико-математических наук, доцент Сколковского института науки и технологийисполнительный директор ПостНауки глубокие нейронные сети
Читать полностью Добавить в закладкиВы сможете увидеть эту публикацию в личном кабинете ПРОМО Вы нужны нам: как поддержать ПостНаукуДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинете лекции О силе трения в экономикеДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинете FAQ Как устроен компас?Добавить в закладкиВы сможете увидеть эту публикацию в личном кабинете FAQ Рациональное использование тепла: тепловые аккумуляторыДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинете tv Интервью с Эмилем Ахмедовым // LiveДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинете FAQ Почему небо голубое?Добавить в закладкиВы сможете увидеть эту публикацию в личном кабинетеДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинете FAQ 4 мифа о светеДобавить в закладкиВы сможете увидеть эту публикацию в личном кабинетеВнутренняя разработка в Computer Science
Обучение нейронной сети
Обучение нейронной сети- это процесс, в котором параметры нейронной сети настраиваются посредством моделирования среды, в которую эта сеть встроена. Тип обучения определяется способом подстройки параметров. Различают алгоритмы обучения с учителем и без учителя.Процесс обучения с учителем представляет собой предъявление сети выборки обучающих примеров. Каждый образец подается на входы сети, затем проходит обработку внутри структуры НС, вычисляется выходной сигнал сети, который сравнивается с соответствующим значением целевого вектора, представляющего собой требуемый выход сети.
Для того, чтобы нейронная сети была способна выполнить поставленную задачу, ее необходимо обучить (см. рис. 1). Различают алгоритмы обучения с учителем и без учителя. Процесс обучения с учителем представляет собой предъявление сети выборки обучающих примеров. Каждый образец подается на входы сети, затем проходит обработку внутри структуры НС, вычисляется выходной сигнал сети, который сравнивается с соответствующим значением целевого вектора, представляющего собой требуемый выход сети. Затем по определенному правилу вычисляется ошибка, и происходит изменение весовых коэффициентов связей внутри сети в зависимости от выбранного алгоритма. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
Рис. 1. Иллюстрация процесса обучения НС
При обучении без учителя обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т.е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.Для обучения нейронных сетей без учителя применяются сигнальные метод обучения Хебба и Ойа.
Математически процесс обучения можно описать следующим образом. В процессе функционирования нейронная сеть формирует выходной сигнал Y, реализуя некоторую функцию Y = G(X). Если архитектура сети задана, то вид функции G определяется значениями синаптических весов и смещенной сети.
Обучение состоит в поиске (синтезе) функции G, близкой к F в смысле некторой функции ошибки E. (см. рис. 1.8).
Для решения этой задачи могут использоваться следующие (итерационные) алгоритмы:
искусственные нейронные сети обучение нейронной сети