Пятница, 2024-04-26, 5:11 PM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Какие категории сайта вам самые интересные?

Результаты · Архив опросов

Всего ответов: 139

Начало » Статьи » Нейронные сети

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

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

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

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

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

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

Иногда степень достаточности определяется исходя из условий задачи и искомого результата. Однако, в большинстве случаев этот процесс протекает на интуитивном уровне и руководствующий принцип не фиксируется сознанием в достаточной мере. На самом деле этот момент является одним из самых важных в решении задач подобного типа, и оптимальное значение варьируемого параметра может зависеть от многих исходных величин и ограничений накладываемых на решение задачи. Таким образом, появляется необходимость в формализации данного принципа; в дальнейшем — Принципа Достаточности (ПД).

Обучение с учетом Принципа Достаточности

Как уже говорилось ранее, нейронные сети используются для решения ряда задач искусственного интеллекта. Рассмотрим обучение многослойной нейронной сети с обратным распространением ошибки в рамках решения задач классификации [5].

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

(1)

где ek – элементарная ошибка k-го нейрона выходного слоя сети, m – число нейронов в выходном слое сети.

Глобальная ошибка сети вычисляется по следующей формуле:

(2)

где Ei – локальная ошибка нейронной сети на i-м наборе, n – число обучающих наборов.

Идеально обученной, считается такая сеть, которая полностью повторяет ОВ [6], т.е. ее глобальная ошибка равна нулю. Но обучение нейронной сети до такой степени представляет собой очень трудоемкую задачу, а нередко и вовсе неразрешимую. Эти трудности обычно связаны с тем, что разные классы имеют похожие объекты, и чем таких объектов больше и чем больше они похожи, тем труднее будет обучить нейронную сеть.

Суть ПД заключается в отказе от обязательного стремления к Идеалу при поиске решения конкретной задачи. Рассматривая эту проблему с точки зрения ПД в рамках глобальной и локальной ошибки, можно сказать, что далеко не всегда необходима 100%-я точность распознавания. Иногда, для того чтобы отнести исследуемый объект к заданному классу, достаточно, чтобы ошибка сети на данном наборе не превышала некоторого .

В случае если оценка качества обученности сети ведется по глобальной ошибке, то по достижении заданного значения ?, обучение сети должно будет прекратиться. Если же кроме этого рассматриваются и локальные ошибки, ПД работает следующим образом: если , то можно считать, что i-й объект был распознан успешно и на данной итерации пересчет весовых коэффициентов не производится. Самым нижним уровнем является рассмотрение элементарных ошибок . В этом случае, если её величина укладывается в интервал , то мы считаем что , и уже это значение ошибки нейрона используется алгоритмом обучения для формирования новых весовых коэффициентов сети.

Минимальное значение зависит от характера обучающей выборки. В качестве параметров характеризующих ОВ рассмотрим ее полноту, равномерность и противоречивость. Полнота выборки характеризуется обеспеченностью классов обучающими наборами; количество обучающих наборов для класса должно в 3-5 раз больше, чем используемое в наборе число признаков класса [7]. Пусть величина, характеризующая полноту выборки, вычисляется следующим образом: (3)

где – число классов удовлетворяющих указанному условию, – общее число классов.

Равномерность ОВ показывает, на сколько равномерно распределены обучающие наборы по классам. Для ее вычисления рассмотрим величину – количество обучающих наборов для класса , тогда среднее отклонение этой величины по выборке для данного класса будет вычисляться по формуле: (4)

где k – количество классов. Вычислим мат-ожидания для величин и при условии, что они равновероятны и назовем их соответственно и :

; (5)

Тогда равномерность выборки будет вычисляться по формуле: (6)

Противоречивость – это процент противоречивых наборов в ОВ; противоречивыми считаются наборы (объекты), обладающие одинаковыми признаками, но относящиеся к разным классам. Таким образом, противоречивость есть:

(7)

где – число противоречивых наборов, – общее число наборов в ОВ.

Очевидно, что чем меньше противоречивость ОВ и выше её равномерность, тем уже может быть интервал ?.

Однако, в процессе обучения объекты классов, попадая в интервал ?, ложатся неравноудаленно от Эталона класса (рис. 2.1). Дифференцирование этих ситуаций позволит улучшить качество обучения сети, поскольку позволит корректировать веса с учетом удаленности реакции сети от эталонной. В данном случае, расстояние до эталона будет определять величину градиента изменения веса. Для этого необходимо либо разбить область ? на отрезки и каждому из них поставить в соответствие значение градиента (Рис. 2.2), либо задать на этом интервале функцию ?(t)=F(x) (Рис. 2.3).

Таким образом, предполагалось уменьшить число итераций обучения нейронной сети при заданной точности распознавания элементов выборки. Результатом применения этого метода стало то, что функция ошибки сети из колебательной становилась фактически монотонно убывающей.

Коррекция шага изменения весовых коэффициентов

В оригинальном варианте алгоритма обратного распространения ошибки [8] формула изменения весовых коэффициентов, для пары нейронов i, j (Рис. 1), выглядит следующим образом: , где Ej – ошибка j-го нейрона, Ai – уровень активации i-го нейрона, а – шаг изменения веса. Здесь – величина постоянная, однако очевидно, что если он будет слишком мал, то обучение будет проходить очень медленно. Если же велик — то, в момент достижения точки минимума (глобального или локального) функции ошибки ( – глобальная ошибка сети, – множество весовых коэффициентов сети) (Рис. 2), сеть не сможет в нее попасть и будет бесконечно долго колебаться вокруг нее, производя бесконечные пересчеты множества весов и ухудшая свои показатели.

Таким образом, возникает необходимость управлять величиной . Очевидно, что если необходимо достигнуть оптимального множества весовых коэффициентов за минимальное количество итераций, то выбор некоторого среднего значения шага не является приемлемым. Целесообразно в момент начала обучения нейронной сети установить некоторое его максимальное значение, обеспечив, таким образом, быстрое приближение к области, где находится и, затем, постепенно уменьшать его по приближению к самой точке оптимума: , где – декремент шага изменения весов сети.

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

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

Реорганизация распознаваемых классов

Еще одним методом ускорения обучения нейронных сетей является реорганизация множества распознаваемых классов. В зависимости от того, на сколько ОВ противоречива и неравномерна мы можем объединять классы между собой либо образовывать новые.

Рассмотрим ситуацию с неравномерной ОВ, здесь параметрами ПД выступают точность интерпретации исходных данных и размерность самой нейронной сети. Точность представления данных обуславливается формируемыми классами.

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

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

Уменьшать количество классов предлагается путем их объединения. Для выявления классов подлежащих объединению необходимо проанализировать построенную ОВ на предмет её равномерности и полноты. Если число обучающих наборов для некоторого класса не удовлетворяет условию полноты ОВ, либо оно значительно меньше, чем число наборов в других классах, то распознавание сетью этого класса будет затруднено. Примером результатов, полученных после анализа, может быть ситуация с классическим нормальным распределением, представленная на Рис. 3, где в качестве классов выбраны изменения некоторой величины в процентах. Для повышения равномерности ОВ выберем классы, обеспеченные обучающими наборами менее определенного и склеим близлежащие классы. Число обучающих наборов полученных классов преодолеет порог , и сеть сможет нормально и быстро обучиться. Однако, общее число распознаваемых классов уменьшится, что приведет к снижению точности нейронной сети в решении данной задачи. Таким образом, необходимо согласовать, используя понятие ПД, число классов, распознаваемых нейронной сетью, с её размерностью.

Формирование новых классов производится в седующих случаях:

1. если в классе кроме объектов, приближенных к эталону класса и имеющих низкую дисперсию – Правила, существуют объекты удаленные от эталона и (разрозненно) расположенные вблизи его границ – Исключения;

2. если дисперсия внутри класса велика и невозможно чётко определить эталон.

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

Таким образом, мы можем повысить скорость обучения нейронной сети либо за счет сокращения числа распозаваемых классов, либо, понижая противоречивость ОВ путем перемещения объектов между классами и образуя новые классы. В первом случае скорость обучения увеличивается из-за уменьшения размерности нейронной сети, во втором – из-за повышения качества ОВ.

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

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

Источник: http://neuralnets.ru

Категория: Нейронные сети | Добавил: X-SAM (2006-05-16)
Просмотров: 3461 | Рейтинг: 0.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz