2 нейросетевые технологии 1 Устройство нейронных сетей
Скачать 217.06 Kb.
|
2 НЕЙРОСЕТЕВЫЕ ТЕХНОЛОГИИ2.1 Устройство нейронных сетей2.1.1 Биологический прототип нейронаИдея разработки систем обработки интеллектуальной информации по образу устройства нервной системы возникла давно. В 1943 г. МакКаллох и Питс создали упрощенную модель нервной клетки – нейрон. Мозг человека содержит до 1011 нейронов различных видов, при этом все они сложным образом связаны между собой и собраны в популяции – нейронные сети. С биологической точки зрения, клетка состоит из ядра, отростков (дендритов), через которые информация поступает в клетку, и аксона, передающего выходной сигнал в другие клетки посредством тысяч разветвлений – синапсов (рис 2). Простейший нейрон может иметь до 104 дендритов, принимающих электрохимические сигналы от других клеток. Определенные сложные комбинации этих входных сигналов, с учетом уровня чувствительности, вызывают возбуждение нейрона. После этого клетка через аксон передает сигнал другим клеткам, также имеющим свою систему связей. При поступлении сигнала изменяется вероятность возбуждения следующего нейрона. Если она увеличивается, то такая синоптическая связь называется возбуждающей, если уменьшается – тормозящей. Рисунок 2. Схема биологического нейрона Внутри биологической клетки сигнал распространяется гораздо медленнее, чем в электронных схемах. Однако вся сеть целиком оказывается высокоэффективной в решении таких сложных задач, как, например, распознавание образов (зрение, речь). Можно предположить, что причина таких потрясающих способностей мозга кроется в высокой организации связей и параллелизме в функционировании сети [5]. 2.1.2 Виды искусственных нейроновИскусственным нейроном называется простой элемент, сначала вычисляющий взвешенную сумму V входных величин хi: (1) Здесь N – размерность пространства входных сигналов. Затем полученная сумма сравнивается с пороговой величиной W0, вслед за чем вступает в действие нелинейная функция активации f (ее можно также охарактеризовать как «решающую функцию»). Коэффициенты {Wi} во взвешенной сумме обычно называют синоптическими коэффициентами или весами. Сама же взвешенная сумма V называется потенциалом нейрона i. Выходной сигнал тогда имеет вид f(V) (рис 3). Величину порогового барьера можно рассматривать как еще один весовой коэффициент при постоянном входном сигнале. При этом принято говорить о расширенном входном пространстве: нейрон с N мерным входом имеет N+1 весовой коэффициент. Если ввести в уравнение пороговую величину W0, оно перепишется так: В зависимости от способа преобразования сигнала и характера функции активации возникают различные виды нейронных структур: – статические нейроны – такие, в которых сигнал передается без задержки; – динамические, где учитывается возможность таких задержек («синапсы с запаздыванием») [6]; Рисунок 3 – Статический искусственный нейрон 2.1.3 Виды функции активацииФункции активации f могут быть различных видов: – линейная: выходной сигнал нейрона равен его потенциалу; – ступенчатая: нейрон принимает решение, выбирая один из двух вариантов (активен/неактивен); – линейная с насыщением: нейрон выдает значения, промежуточные между двумя предельными значениями А и В; – многопороговая: выходной сигнал может принимать, одно из q значений, определяемых (q – 1) порогом внутри предельных значений А и В; сигмоидная: рассматриваются два вида сигмоидных функций: (3) с выходными значениями в промежутке (0,1) и (4) с выходными значениями от –1 до 1. Коэффициент b определяет крутизну сигмоида. Поскольку сигмоидная функция является гладким отображением , крутизну bможно учесть через величины весов и порогов, и без ограничения общности можно полагать ее равной единице (рис 4). Рисунок 4 – Стандартная синмоидная функция (крутизна=1) Возможно также определить нейроны без насыщения, принимающие на выходе непрерывное множество значений. В задачах классификации выходное значение может определяться порогом – при принятии единственного решения, – или быть вероятностным – при определении принадлежности к классу. Чтобы учесть особенности конкретной задачи, могут быть выбраны различные другие виды функции активации – гауссова, синусоидальная, всплески (wavelets) и т.д [6]. 2.1.4 Нейронные сети с прямой связьюИскусственная нейронная сеть построена из нейронов, связанных друг с другом. Нейронные сети с прямой связью состоят из статических нейронов, так что сигнал на выходе сети появляется в тот же момент, когда подаются сигналы на вход. Организация (топология) сети может быть различной. Если не все составляющие ее нейроны являются выходными, говорят, что сеть содержит скрытые нейроны. Наиболее общий тип архитектуры сети получается в случае, когда все нейроны связаны друг с другом (но без обратных связей). В конкретных задачах нейроны обычно бывают сгруппированы в слои. На рис. 5 показана типовая схема нейронной сети с прямой связью с одним скрытым слоем. Рисунок 5. Нейронная сеть с прямой связью с одним скрытым слоем Нейронные сети с прямой связью и с сигмоидными функциями являются универсальным средством для приближения (аппроксимации) функций. Говоря точнее, любую вещественнозначную функцию нескольких переменных на компактной области определения можно сколь угодно точно приблизить с помощью трехслойной сети. При этом, правда, мы не знаем ни размеров сети, которая для этого потребуется, ни значений весов. При этом число скрытых элементов неограниченно возрастает при увеличении точности приближения. Сети с прямой связью, действительно, могут служить универсальным средством для аппроксимации, но нет никакого правила, позволяющего найти оптимальную топологию сети для данной задачи. Таким образом, задача построения нейронной сети является нетривиальной. Вопросы о том, сколько нужно взять скрытых слоев, сколько элементов в каждом из них, сколько связей и какие обучающие параметры, в имеющейся литературе, как правило, трактуются облегченно. Предлагаемая обычно процедура состоит в переборе различных архитектур с целью найти «наилучшую» или хотя 6ы удовлетворительную модель. Такая концепция представляется весьма ограниченной. В литературе можно найти многочисленные «правила» для определения числа скрытых узлов или количества весовых коэффициентов. Среди прочих могут предлагаться: среднее арифметическое числа входов и выходов, половина числа входов или удвоенный квадратный корень из произведения входов и выходов. Такие предложения математически необоснованны, и исследования в этой области ведутся очень активно. Каждый узел многослойной сети проектирует свой входной вектор на вектор весов посредством скалярного произведения. Таким образом, в простейшем случае сети с одним скрытым слоем вектор входного сигнала проектируется на вектор весов каждого из нейронов скрытого слоя. В результате мы получаем иное представление входного сигнала. После этого результаты проекций подвергаются нелинейным преобразованиям. Их цель –усилить те характеристики, за которые отвечает соответствующий узел. Компоненты вектора весов каждого узла подобраны так, чтобы выделить определенные свойства сигнала. Посредством нелинейного преобразования способность узла улавливать эти свойства увеличивается. Число характеристик, которые нужно уловить, чтобы осуществить правильную конструкцию сети, зависит от исходной задачи [6]. 2.1.5 Динамические сетиСледующий класс нейронных сетей – динамические, или рекуррентные, сети. Они построены из динамических нейронов, чье поведение описывается дифференциальными или разностными уравнениями, как правило, – первого порядка. Сеть организована так, что каждый нейрон получает входную информацию от других нейронов (возможно, и от себя самого) и из окружающей среды. Этот тип сетей имеет важное значение, так как с их помощью можно моделировать нелинейные динамические системы. Это – весьма общая модель, которую потенциально можно использовать в самых разных приложениях, например: ассоциативная память, нелинейная обработка сигналов, моделирование конечных автоматов, идентификация систем, задачи управления. Нейронные сети с временной задержкой. Перед тем, как описать собственно динамические сети, рассмотрим, как сеть с прямой связью используется для обработки временных рядов. Метод состоит в том, чтобы разбить временной ряд на несколько отрезков и получить таким образом статический образец для подачи на вход многослойной сети с прямой связью. Это осуществляется с помощью так называемой разветвленной линии задержки (рис. 6). Рисунок 6. Нейронная сеть с задержкой Архитектура такой нейронной сети с временной задержкой позволяет моделировать любую конечную временную зависимость вида (5) Поскольку рекуррентные связи отсутствуют, такая сеть может быть обучена при помощи стандартного алгоритма обратного распространения ошибки или какого–то из его многочисленных вариантов. Сети такой конструкции успешно применялись в задачах распознавания речи, предсказания нелинейных временных рядов и нахождения закономерностей в хаосе. Сети Хопфилда С помощью рекуррентных сетей Хопфилда (рис. 7) можно обрабатывать неупорядоченные (рукописные буквы), упорядоченные во времени (временные ряды) или пространстве (графики, грамматики) образцы. Рекуррентная нейронная сеть простейшего вида была введена Хопфилдом; она построена из N нейронов, связанных каждый с каждым, причем все нейроны являются выходными. Сети такой конструкции используются, главным образом, в качестве ассоциативной памяти, а также в задачах нелинейной фильтрации данных и грамматического вывода. Кроме этого, недавно они были применены для предсказания и для распознавания закономерностей в поведении цен акций [6]. Рисунок 7. Сеть Хопфилда 2.1.6 Самоорганизующиеся сетиВведенную Кохоненом [7] «самоорганизующуюся карту признаков» (рис. 8) можно рассматривать как вариант нейронной сети. Сеть такого типа рассчитана на самостоятельное обучение: во время обучения сообщать ей правильные ответы необязательно. В процессе обучения на вход сети подаются различные образцы. Сеть улавливает особенности их структуры и разделяет образцы на кластеры, а уже обученная сеть относит каждый вновь поступающий пример к одному из кластеров, руководствуясь некоторым критерием «близости». Сеть состоит из одного входного и одного выходного слоя. Количество элементов в выходном слое непосредственно определяет, сколько различных кластеров сеть сможет распознать. Каждый из выходных элементов получает на вход весь входной вектор. Как и во всякой нейронной сети, каждой связи приписан некоторый синаптический вес. В большинстве случаев каждый выходной элемент соединен также со своими соседями. Эти внутрислойные связи играют важную роль в процессе обучения, так как корректировка весов происходит только в окрестности того элемента, который наилучшим образом откликается на очередной вход. Выходные элементы соревнуются между собой за право вступить в действие и «получить урок». Выигрывает тот из них, чей вектор весов окажется ближе всех к входному вектору в смысле расстояния, определяемого, например, евклидовой метрикой. У элемента–победителя это расстояние будет меньше, чем у всех остальных. На текущем шаге обучения менять веса разрешается только элементу–победителю (и, может быть, его непосредственным соседям); веса остальных элементов при этом как бы заморожены. Выигравший элемент изменяет свой весовой вектор, немного перемещая его в сторону входного вектора. После обучения на достаточном количестве примеров совокупность весовых векторов с большой точностью приходит в соответствие со структурой входных примеров векторы весов в буквальном смысле моделируют распределение входных образов. Рисунок 8 – Самоорганизующаяся сеть Кохонена Очевидно, для правильного понимания сетью входного распределения нужно, чтобы каждый элемент сети становился победителем одинаковое число раз – весовые векторы должны быть равновероятными. Как установил Де Сиено, для этого необходимо присутствие некоторого механизма «справедливости». Один из возможных способов осуществления этого механизма следующий: в расстояние между входным и весовым вектором вносится некоторая добавка, положительная для тех элементов, которые часто выигрывают, и отрицательная для тех, которые чаще проигрывают. Таким образом, шансы проигрывающих элементов повышаются, и вся картина выравнивается. Величина добавки меняется в процессе обучения в соответствии с изменениями частоты выигрышей. Перед началом работы сети Кохонена нужно сделать две вещи: – векторы весов должны быть случайно распределены по единичной сфере; – все весовые и входные векторы должны быть нормированы на единицу. 2.1.7 Сеть со встречным распространениемСеть со встречным распространением (CPN, Counterpropagation Network) соединяет в себе свойства самоорганизующейся сети Кохонена и концепцию Outstar–сети Гроссберга. В рамках этой архитектуры элементы слоя сети Кохонена не имеют прямого выхода во внешний мир, а служат входами для выходного слоя, в котором связям адаптивно придаются веса Гроссберга. Эта схема возникла из работ Хехт–Нильсена [8]. СРМ–сеть нацелена на постепенное построение искомого отображения входов в выходы на основе примеров действия такого отображения. Сеть хорошо решает задачи, где требуется способность адаптивно строить математическое отображение по его точным значениям в отдельных точках. Сети данного вида успешно применяются в таких финансовых и экономических приложениях, как рассмотрение заявок на предоставление займов, предсказание трендов цен акций, товаров и курсов обмена валют. Говоря обобщенно, можно ожидать успешного применения СРМ–сетей в задачах, где требуется извлекать знания из больших объемов данных. Обучение СРМ–сети складывается из двух процессов адаптации. На первом этапе весовые векторы слоя Кохонена настраиваются так, чтобы моделировать распределение входных векторов. Очевидно, что этот процесс является процессом самостоятельной адаптации. При этом точность аппроксимации будет гарантирована только тогда, когда набор обучающих примеров будет статистически представительным (репрезентативным) для области, на которой действует отображение. Второй адаптационный процесс является несамостоятельным. Он начинается после того, как произошло обучение слоя Кохонена. Происходит настройка весов выходного слоя Гроссберга на примерах с заданным выходом. При этом настраиваются только веса, соответствующие связям с теми элементами слоя Кохонена, которые активируются (выигравшие элементы, посылающие выходной сигнал «1»), – вектор весов поворачивается в сторону целевого вектора. Поскольку при подаче на вход очередного вектора может активироваться только один из элементов слоя Кохонена, возможные выходные сигналы СРМ–сети совпадают с множеством весовых выходных векторов элементов Кохонена. В случае, когда слой Гроссберга состоит из единственного элемента, получающийся скалярный выход равен одному из весов, соответствующих соединениям этого элемента [6]. 2.2 ОбучениеСпособность к обучению является фундаментальным свойством мозга. В контексте ИНС процесс обучения может рассматриваться как настройка архитектуры сети и весов связей для эффективного выполнения специальной задачи. Обычно нейронная сеть должна настроить веса связей по имеющейся обучающей выборке. Функционирование сети улучшается по мере итеративной настройки весовых коэффициентов. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые следуют определенной системе правил функционирования, сформулированной экспертами. Для конструирования процесса обучения, прежде всего, необходимо иметь модель внешней среды, в которой функционирует нейронная сеть – знать доступную для сети информацию. Эта модель определяет парадигму обучения. Во–вторых, необходимо понять, как модифицировать весовые параметры сети, – какие правила обучения управляют процессом настройки. Алгоритм обучения означает процедуру, в которой используются правила обучения для настройки весов. Существуют три парадигмы обучения: с учителем, без учителя (самообучение) и смешанная. В первом случае нейронная сеть располагает правильными ответами (выходами сети) на каждый входной пример. Веса настраиваются так, чтобы сеть производила ответы как можно более близкие к известным правильным ответам. Усиленный вариант обучения с учителем предполагает, что известна только критическая оценка правильности выхода нейронной сети, но не сами правильные значения выхода. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки. В этом случае раскрывается внутренняя структура данных или корреляции между образцами в системе данных, что позволяет распределить образцы по категориям. При смешанном обучении часть весов определяется посредством обучения с учителем, в то время как остальная получается с помощью самообучения. Теория обучения рассматривает три фундаментальных свойства, связанных с обучением по примерам: емкость, сложность образцов и вычислительная сложность. Под емкостью понимается, сколько образцов может запомнить сеть, и какие функции и границы принятия решений могут быть на ней сформированы. Сложность образцов определяет число обучающих примеров, необходимых для достижения способности сети к обобщению. Слишком малое число примеров может вызвать "переобученность" сети, когда она хорошо функционирует на примерах обучающей выборки, но плохо – на тестовых примерах, подчиненных тому же статистическому распределению. Известны 4 основных типа правил обучения: коррекция по ошибке, машина Больцмана, правило Хебба и обучение методом соревнования. Правило коррекции по ошибке. При обучении с учителем для каждого входного примера задан желаемый выход d. Реальный выход сети у может не совпадать с желаемым. Принцип коррекции по ошибке при обучении состоит в использовании сигнала (d–у) для модификации весов, обеспечивающей постепенное уменьшение ошибки. Обучение имеет место только в случае, когда перцептрон ошибается. Обучение Больцмана. Представляет собой стохастическое правило обучения, которое следует из информационных теоретических и термодинамических принципов. Целью обучения Больцмана является такая настройка весовых коэффициентов, при которой состояния видимых нейронов удовлетворяют желаемому распределению вероятностей. Обучение Больцмана может рассматриваться как специальный случай коррекции по ошибке, в котором под ошибкой понимается расхождение корреляций состояний в двух режимах. Правило Хебба. Самым старым обучающим правилом является постулат обучения Хебба. Хебб опирался на следующие нейрофизиологические наблюдения: если нейроны с обеих сторон синапса активизируются одновременно и регулярно, то сила синаптической связи возрастает. Важной особенностью этого правила является то, что изменение синаптического веса зависит только от активности нейронов, которые связаны данным синапсом. Обучение методом соревнования. В отличие от обучения Хебба, в котором множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. Это явление известно как правило "победитель берет все". Подобное обучение имеет место в биологических нейронных сетях. Обучение посредством соревнования позволяет кластеризовать входные данные: подобные примеры группируются сетью в соответствии с корреляциями и представляются одним элементом. При обучении модифицируются только веса победившего нейрона. Эффект этого правила достигается за счет такого изменения сохраненного в сети образца (вектора весов связей победившего нейрона), при котором он становится чуть ближе к входному примеру[5]. 2.3 Алгоритм обратного распространения ошибкиСреди различных структур нейронных сетей одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами нейросети. Такие нейронные сети называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны, и подстройка синаптических связей идет в направлении, минимизирующем ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного перцептрона. В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух или более слойный перцептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах нейросети. Один из вариантов решения этой проблемы – разработка наборов выходных сигналов, соответствующих входным, для каждого слоя нейронной сети, что, конечно, является очень трудоемкой операцией и не всегда осуществимо. Второй вариант – динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный метод «тыка», несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант – распространение сигналов ошибки от выходов нейросети к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения нейронной сети получил название процедуры обратного распространения. Согласно методу наименьших квадратов, минимизируемой целевой функцией ошибки нейросети является величина: (6) где – реальное выходное состояние нейрона j выходного слоя N нейронной сети при подаче на ее входы р–го образа; dj,p – идеальное (желаемое) выходное состояние этого нейрона. Суммирование ведется по всем нейронам выходного слоя и по всем обрабатываемым сетью образам. Минимизация ведется методом градиентного спуска, что означает подстройку весовых коэффициентов следующим образом: (7) Здесь wij – весовой коэффициент синаптической связи, соединяющей i–ый нейрон слоя n –1 с j–ым нейроном слоя h, h – коэффициент скорости обучения, 0 (8) Здесь под уj, как и раньше, подразумевается выход нейрона j, а под Sj – взвешенная сумма его входных сигналов, то есть аргумент активационной функции. Так как множитель dyj/dsj является производной этой функции по ее аргументу, из этого следует, что производная активационной функция должна быть определена на всей оси абсцисс. В связи с этим функция единичного скачка и прочие активационные функции с неоднородностями не подходят для рассматриваемых нейронных сетей. В них применяются такие гладкие функции, как гиперболический тангенс или классический сигмоид с экспонентой. В случае гиперболического тангенса (9) Третий множитель Sj/Wij, очевидно, равен выходу нейрона предыдущего слоя . Что касается первого множителя в (3), он легко раскладывается следующим образом: (10) Здесь суммирование по k выполняется среди нейронов слоя n+1. Введя новую переменную (11) мы получим рекурсивную формулу для расчетов величин слоя n из величин более старшего слоя n+1. (12) Для выходного же слоя (13) Теперь мы можем записать (7) в раскрытом виде: (14) Иногда для придания процессу коррекции весов некоторой инерционности, сглаживающей резкие скачки при перемещении по поверхности целевой функции, (14) дополняется значением изменения веса на предыдущей итерации (15) где m – коэффициент инерционности, t – номер текущей итерации. Таким образом, полный алгоритм обучения нейросети с помощью процедуры обратного распространения строится так: 1. Подать на входы сети один из возможных образов и в режиме обычного функционирования нейронной сети, когда сигналы распространяются от входов к выходам, рассчитать значения последних. При этом (16) где М – число нейронов в слое n–1 с учетом нейрона с постоянным выходным состоянием +1, задающего смещение; – i–ый вход нейрона j слоя n. , где f() – сигмоид (17) , (18), где – q–ая компонента вектора входного образа. 2. Рассчитать d(N) для выходного слоя по формуле (13). Рассчитать по формуле (14) или (15) изменения весов D w(N) слоя N. 3. Рассчитать по формулам (12) и (14) (или (12) и (15)) соответственно d(N) и D w(N) для всех остальных слоев, n =N–1,...1. 4. Скорректировать все веса в НС (19) 5. Если ошибка сети существенна, перейти на шаг 1. В противном случае – конец [14]. 2.4 Правила обученияШум. В каждой реальной задаче присутствует шум, и необходимо уметь справляться с ним. В особенности это относится к задачам обработки временных рядов, в которых переменные получены в результате измерений в некоторой физической системе, причем в самой системе и/или в механизме измерений шум присутствует естественным образом. В финансовых приложениях данные зашумлены особенно сильно. Например, совершение сделок может регистрироваться в базе данных с запозданием, причем в разных случаях – с разным. Пропуск значений или неполную информацию также иногда рассматривают как шум: в таких случаях берется среднее или наилучшее значение, и это, конечно, приводит к зашумлению базы данных. Отрицательно сказывается на обучении неправильное определение класса объекта в задачах распознавания – это ухудшает способность системы к обобщению при работе с новыми (т. е. не входившими в число образцов) объектами [6]. Переобучение. Нейронные сети могут служить универсальным средством аппроксимации в том смысле, что при достаточно разветвленной архитектуре они реализуют широкий класс функций [9]. Как часто бывает, достоинство одновременно является и недостатком. Благодаря способности тонко улавливать структуру аппроксимируемой функции сеть достигает очень высокой степени соответствия на обучающем множестве, и в результате плохо делает обобщения при последующей работе с реальными данными. Это явление называется переобучением. Сеть моделирует не столько саму функцию, сколько присутствующий в обучающем множестве шум. Переобучение присутствует и в таких более простых моделях, как линейная регрессия, но там оно не так выражено, поскольку через обучающие данные нужно провести всего лишь прямую линию. Чем богаче набор моделирующих функций, тем больше риск переобучения. Объем обучающей выборки. Первое естественное желание состоит в том, чтобы увеличивать число примеров в обучающем множестве. Чем их больше, тем более представительны данные. Как и в любом физическом измерении, увеличение числа наблюдений уменьшает шум. Если имеется несколько измерений одного объекта, сеть возьмет их среднее значение, и это лучше, чем точно следовать одному единственному за–шумленному значению. Однако на практике и, особенно, в финансовых приложениях невозможно получить такое количество наблюдений, которое было бы желательно в свете положений статистики. Число необходимых примеров резко растет с увеличением сложности моделируемой функции и повышением уровня шума. Более того, доступные нам данные могут иметь все меньшее отношение к делу. Как, например, информация, собранная в 1950 году, может быть значимой для описания современного положения в финансовом мире? Наконец, могут существовать физические ограничения на размер базы данных, например, объем памяти или недопустимо большое время обучения [6]. Последовательный спуск, или использование подтверждающего множества. Другой способ избавиться от переобучения заключается в том, чтобы измерить ошибку сети на некотором множестве примеров из базы данных, не включенных в обучающее множество, – подтверждающем множестве. Ухудшение характеристик сети при работе с этим множеством указывает на возможное переобучение. Наоборот, если характеристики улучшаются, это значит, что обучение продолжается. Таким образом, переобучение можно обнаружить, наблюдая за тем, насколько последовательно уменьшается ошибка во время обучения сети. В любом реальном (не смоделированном на компьютере) приложении нужно использовать подтверждающее множество, так как уровень шума заранее не известен. Недостатком этого приема является уменьшение числа примеров, которые можно было бы взять в качестве обучающего множества. Малость базы данных – это серьезная проблема. Более того, оценка качества работы сети зависит от выбора образцов, составляющих подтверждающее множество. Даже при случайной выборке разные разбиения базы данных на обучающее и подтверждающее множества дают разные оценки[6]. Перекрестное подтверждение. Для того чтобы устранить произвол в разбиении базы данных, могут быть применены методы повторных проб [10]. Рассмотрим один из таких методов, который называется перекрестным подтверждением. Его идея состоит в том, чтобы случайным образом разбить базу данных на д попарно не пересекающихся подмножеств. Затем производится д обучений на ^ –1) множестве, а ошибка вычисляется по оставшемуся множеству. Если д достаточно велико, например, равно 10, каждое обучение задействует большую часть исходных данных. Если процедура обучения надежна, то результаты по д различным моделям должны быть очень близки друг к другу. После этого итоговая характеристика определяется как среднее всех полученных значений ошибки. К сожалению, при применении этого метода объем вычислений часто оказывается очень большим, так как требуется проделать д обучений, и в реальном приложении с большой размерностью это может быть невыполнимо. Оптимизация архитектуры. Разработаны различные методы изменения архитектуры сети с целью повысить способность сети к обобщению. Здесь есть два основных подхода: деструктивный подход: берется сеть заведомо большего размера, чем нужно, и в процессе обучения из нее удаляются связи и даже сами нейроны; конструктивный подход: первоначально берется маленькая сеть, и к ней, в соответствии со структурой и сложностью задачи, добавляются новые элементы [6]. Примером деструктивного подхода является метод уменьшения весов. Применяется он для того, чтобы предотвратить чрезмерный рост весов. В функцию включается штрафное слагаемое: (20) Множитель можно считать отношением среднего квадратичного остатков к среднему квадратичному весов. Добавленный член вызовет такое изменение весов: (21) заставляя уменьшаться те веса, на которые не действует первый член. Очевидно, чем больше вес, тем большее влияние он оказывает на функцию. Во втором варианте выражение для штрафа берется в виде (22) В результате малые коэффициенты убывают быстрее, чем большие. Кроме того, уменьшение весов помогает уходить с плоских участков поверхности на ранних стадиях обучения. В некоторых конструктивных методах наращивание сети происходит одновременно с обучением, например, STEPNET, «черепичный» алгоритм, «всплеск», нейронные деревья, каскадная корреляция [11]. 2.5 Способы обеспечения и ускорения сходимостиВыбор начальных весов. Перед тем, как начинать процесс обучения нейронной сети, необходимо присвоить весам начальные значения. Цель здесь должна состоять в том, чтобы найти как можно более хорошее начальное приближение к решению и таким образом сэкономить время обучения и улучшить сходимость. Классический подход к проблеме выбора начальных значений весов состоит в следующем: случайным образом выбрать малые величины весов, чтобы быть уверенным, что ни один из сигмоидных элементов не насыщен (и значения всех производных очень малы). Например, если сигмоидный элемент имеет наибольшую производную в интервале [–3, 3], подходящим выбором для начального веса будет случайное число, расположенное в интервале , где N–число входов нейрона. Из–за малости величины начального веса последующие его изменения также будут небольшими, так как при этом учитывается абсолютная величина веса. Таким образом, нужно найти компромисс между существенными изменениями в значениях сигмоидов и малостью абсолютных величин. Подобные правила рассчитаны на то, чтобы сеть начинала свою работу в линейном режиме и притом не на плоской части поверхности невязок. Однако нет гарантии, что такое начальное приближение приведет к глобальному минимуму или уменьшит время сходимости. Были разработаны другие методы, дающие еще более хорошее начальное приближение с точки зрения уменьшения времени обучения и обладающие большей устойчивостью в смысле локальных минимумов. Так, Дено и Ланжель разработали метод инициализации весов по прототипам, полученным из обучающего множества. Усовершенствованный классический метод выбора начальных значений использует данные анализа главных компонент, но для этого, безусловно, требуется меньше скрытых элементов, чем имеется входов. При использовании обучающих алгоритмов типа ВР выбор начального приближения очень важен. Уже на этом шаге нужно позаботиться о том, чтобы не попасть в локальный минимум [6]. Обход локальных минимумов. Поверхность невязки в пространстве весов в общем случае имеет локальные минимумы, и это является главным препятствием для процесса обучения нейронной сети, в особенности, для алгоритма спуска. Можно встретить утверждения, что в ряде случаев локальный минимум является вполне приемлемым решением, однако в общей ситуации необходимо разработать стратегию, которая позволяла бы избегать таких точек и гарантировала 6ы сходимость обучающего алгоритма к глобальному решению. Упорядочение данных. Для того чтобы обучающий алгоритм не стал двигаться в ложном направлении, нужно, прежде всего, упорядочить случайным образом последовательность примеров, которые он обрабатывает (так называемое «взбалтывание»). Это не так существенно для «эпохального» варианта ВР, но очень важно при стохастическом определении весов. Всякая программная реализация алгоритма типа ВР должна включать в себя случайное упорядочение обучающего множества. Более того, если какой–то из классов примеров представлен недостаточно, случайный выбор должен осуществляться таким образом, чтобы примеры из слабо представленной группы встречались чаще – этим будет устранен ложный крен при минимизации невязки. Пакетная обработка. При использовании стохастического варианта ВР (когда веса изменяются после каждого примера) может получиться так, что сеть будет зря тратить время на перемещения туда – обратно. Даже в простой задаче двоичной классификации на одном нейроне гиперплоскость может много раз колебаться вокруг своего оптимального положения, пока алгоритм будет обрабатывать поочередно образцы из разных классов. От этого явления несложно избавиться, взяв суммарное изменение весов после ряда примеров. Такой прием называется пакетной обработкой. Цель ее состоит в том, чтобы вычислять усредненное изменение весов. Очевидно, «эпохальный» вариант ВР представляет собой ту же пакетную обработку, где пакетом является все обучающее множество. Если в начале действия алгоритма брать небольшие пакеты, а затем увеличивать их объем вплоть до общего количества примеров в обучающем множестве, то этим будет сэкономлено время вычислений, но, тем не менее, обеспечена сходимость к глобальному решению. Особенно заметным этот эффект будет, если общее количество примеров очень велико или их размерность большая. Импульс. Другой часто применяемый прием состоит в том, что при определении направления поиска к текущему градиенту добавляется поправка– вектор смещения с предыдущего шага, взятый с некоторым коэффициентом. Можно сказать, что учитывается уже имеющийся импульс движения. Окончательная формула для изменения весов выглядит так: (23) где – число в интервале (0,1), которое задается пользователем. Часто значение волевым образом задается равным 0.9, безотносительно к специфике задачи и архитектуре сети. Метод импульса очень чувствителен к способу упорядочения примеров в обучающем множестве. Если подряд попалось несколько примеров из одного класса, импульс станет очень большим, и это нарушит ход процесса обучения. Сказанное еще раз свидетельствует о необходимости предварительного случайного упорядочения обучающего множества. Управление величиной шага. Ранее уже было сказано, что выбор величины шага имеет ключевое значение для успешной работы обучающего алгоритма. При слишком маленьком шаге обучение будет медленным и велика будет вероятность попадания в локальный минимум на поверхности невязки. Наоборот, при слишком большом шаге можно проскочить мимо глобального минимума. То, какой шаг следует считать малым, а какой большим, сильно зависит от архитектуры сети и от обучающих данных. Есть различные эвристические соображения для выбора шага. Можно уменьшать шаг по мере хода итераций, или же нормировать его на евклидову норму градиента невязки с предыдущего шага. Можно поступать и так: если на предыдущей итерации ошибка уменьшилась, величина шага умножается на некоторый коэффициент, больший единицы («поощрение»), а если увеличилась, то на коэффициент, меньший единицы («наказание»). Нужно понимать, что такого рода правила выбора шага являются чисто эвристическими и не могут гарантировать улучшение сходимости. Изменение производной сигмоида. Другой давно известный вычислительный трюк состоит в том, чтобы изменить величину производной сигмоида, умножив его на некоторую малую величину (обычно 0.1) с целью предотвратить «прилипание» к плоскому участку. Опыт, однако, показывает, что этот прием следует применять с осторожностью, так как он может порождать «вынужденную» сходимость в неправильном направлении. Методы второго порядка. При более последовательном подходе для улучшения процесса обучения можно использовать информацию о производных второго порядка от функции невязки. Соответствующие методы оптимизации называются квадратичными. Вся указанная информация собрана в матрице гессиана Н, имеющей размеры МГ\ух]Ч|\у, где МГ\у –число весов. Эта матрица содержит информацию о том, как изменяется градиент при малых смещениях по различным направлениям в пространстве весов. Прямое вычисление матрицы требует большого времени, поэтому разработаны методы, позволяющие избежать вычисления и хранения матрицы (спуск по сопряженному градиенту, масштабированный метод сопряженных градиентов, АВаскРrор, квази–ньютоновский метод, метод Левенберга–Маркара) [6]. 2.6Другие алгоритмы обученияМногочисленные исследования посвящены сравнению различных обучающих эвристик. В большинстве имеющихся нейронно–сетевых пакетов реализованы методы пакетной обработки, импульса, изменения величины шага, и даже более совершенные варианты алгоритмов типа алгоритма обратного распространения ошибки и квазиньютоновские методы. В литературе описано много других алгоритмов, реализующих иные подходы к задаче оптимизации. Так, в основанном на идеях статистической физики методе «замораживания» стабилизация алгоритма осуществляется за счет понижения «температурного» параметра. Другие подходы, такие, как метод случайного блуждания или Аlорех используют случайный поиск в пространстве весов, и это принципиально отличает их от систематического поиска в методе обратного распространения ошибки. Наконец, в последнее время пользуются успехом так называемые генетические алгоритмы, в которых набор весов рассматривается как индивид, подверженный мутациям и скрещиванию, а в качестве показателя его «качества» берется критерий ошибки. По мере того, как нарождаются новые поколения, все более вероятным становится появление оптимального индивида. Выбор эффективного обучающего алгоритма всегда включает в себя компромисс между сложностью решаемой задачи и техническими ограничениями (быстродействие и объем памяти компьютера, время, цена) [6]. |