Автор: Пользователь скрыл имя, 10 Марта 2012 в 14:00, курсовая работа
Эта курсовая работа посвящена важному классу нейронных сетей — многослойным сетям прямого распространения. Обычно сеть состоит из множества сенсорных элементов (входных узлов или узлов источника), которые образуют входной слой; одного или нескольких скрытых слоев(hiddenlayer) вычислительных нейронов и одного выходного слоя(outputlayer) нейронов
Введение………………………………………………………………….…..3
Глава 1. Класс нейронных сетей многослойный персептрон……………....5
1.1.Многослойный персептрон…………………………………...5
1.2. Обучение многослойного персептрона …..6
Глава 2.Алгоритмы обучения………………..12
2.1. Улучшение работы алгоритма обратного распространения……12
2.2.Особенности архитектуры многослойный персептрон....................20
Заключение...........................................................................................................23
Алгоритм обратного распространения ошибки следующий:
1. Инициализировать синаптические веса маленькими случайными значениями.
2. Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.
3. Вычислить выход сети.
4. Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).
5. Подкорректировать веса сети для минимизации ошибки (как см. ниже).
6. Повторять шаги с 2 по 5 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.
Появление алгоритма обратного распространения ошибки стало знаковым событием в области развития нейронных сетей, так как он реализует вычислительно эффективный метод обучения многослойного персептрона. Будет неправильно утверждать, что алгоритм обратного распространения ошибки предлагает действительно оптимальное решение всех потенциально разрешимым проблем.
2.2. Улучшение работы алгоритма обратного распространения
Часто утверждают, что проектирование нейронных сетей, использующих алгоритм обратного распространения, является скорее искусством, чем наукой. При этом имеют в виду тот факт, что многочисленные параметры этого процесса определяются только на основе личного практического опыта разработчика. В этом утверждении есть доля правды. Тем не менее, приведем некоторые общие методы, улучшающие производительность алгоритма обратного распространения.
1. Режим: последовательный или пакетный (sequentialversusbatchupdate). Последовательный режим обучения методом обратного распространения (использующий последовательное предоставление примеров эпохи с обновлением весов на каждом шаге) в вычислительном смысле оказывается значительно быстрее. Это особенно сказывается тогда, когда обучающее множество является большим и в высокой степени избыточным. (Избыточные данные вызывают вычислительные проблемы при оценке Якобиана, необходимой для пакетного режима.)
2. Максимизация информативности (maximizinginformationcontent)
-Использование примеров, вызывающих наибольшие ошибки обучения.
-Использование примеров, которые радикально отличаются от ранее использованных.
Эти два эвристических правила мотивированы желанием максимально расширить область поиска в пространстве весов.
В задачах классификации, основанных на последовательном обучении методом обратного распространения, обычно применяется метод случайного изменения порядка следования примеров, подаваемых на вход многослойного персептрона, от одной эпохи к другой. В идеале такая рандомизация приводит к тому, что успешно обрабатываемые примеры будут принадлежать к различным классам. Более утонченным приемом является схема акцентирования(emphasizingsche
-Распределение примеров в эпохе, представляемой сети, искажается.
-Наличие исключений или немаркированных примеров может привести к катастрофическим последствиям с точки зрения эффективности алгоритма. Обучение на таких исключениях подвергает риску способность сети к обобщению в наиболее правдоподобных областях пространства входных сигналов.
3. Функция активации(activationfunction). Многослойный персептрон,
обучаемый по алгоритму обратного распространения, может в принципе
обучаться быстрее (в терминах требуемого для обучения количества
итераций), если сигмоидальная функция активации нейронов сети является
антисимметричной, а не симметричной.
Функция активацииназывается антисимметричной (т.е. четной функцией своего аргумента), если
,
что показано на рисунке 3, а. Стандартная логистическая функция не удовлетворяет этому условию (рисунок 3, б).
Известным примером антисимметричной функции активации является сигмоидальная нелинейная функция гиперболического тангенса(hyperbolictangent)
где а иb — константы. Удобными значениями для констант а и b являются следующие:
а = 1,7159, b = 2/3.
Определенная таким образом функция гиперболического тангенса имеет ряд полезных свойств.
- (1) = 1 и (-1) = -1.
-В начале координат тангенс угла наклона (т.е. эффективный угол) функции активации близок к единице:
(0) = ab= 1,7159 × 2/3 = 1,1424.
-Вторая производнаядостигает своего максимального значения
приv= 1.
4. Целевые значения (targetvalue). Очень важно, чтобы целевые значения выбирались из области значений сигмоидальной функции активации. Более точно, желаемый отклик нейрона jвыходного слоя многослойного персептрона должен быть смещен на некоторую величину ɛ от границы области значений функции активации в сторону ее внутренней части. В противном случае алгоритм обратного распространения будет модифицировать свободные параметры сети, устремляя их в бесконечность, замедляя таким образом процесс обучения и доводя скрытые нейроны до предела насыщения. В качестве примера рассмотрим антисимметричную функцию активации, показанную на рисунке 3, а. Для предельного значения +а выберем
Аналогично, для предельного значения -а установим
где — соответствующая положительная константа. Для выбранного ранее значения a = 1,7159 установим = 0,7159. В этом случае желаемый отклик будет находиться в диапазоне от —1 до +1 рисунок 3, а).
Рисунок 3.Границы решений, построенные для скрытого нейрона 1 сети, показанной на рисунке (а); границы решений для скрытого нейрона 2 сети (б) и для всей сети (в)
5. Нормализация входов (normalizingtheinputs). Все входные переменные должны быть предварительно обработаны так, чтобы среднее значение по всему обучающему множеству было близко к нулю, иначе их будет сложно сравнивать со стандартным отклонением . Для оценки практической значимости этого правила рассмотрим экстремальный случай, когда все входные переменные положительны. В этом случае синаптические веса нейрона первого скрытого слоя могут либо одновременно увеличиваться, либо одновременно уменьшаться. Следовательно, вектор весов этого нейрона будет менять направление, что приведетк зигзагообразному движению по поверхности ошибки. Такая ситуация обычно замедляет процесс обучения и, таким образом, неприемлема.
Рисунок 4. Асимметричная (а) и антисимметричная (б) функции активации
Чтобы ускорить процесс обучения методом обратного распространения, входные векторы необходимо нормализовать в двух следующих аспектах
- Входные переменные, содержащиеся в обучающем множестве, должны быть некоррелированны(uncorrelated)
- Некоррелированные входные переменные должны быть масштабированы так, чтобы их ковариация была приближенно равной(approximatelyequal). Тогда различные синаптические веса сети будут обучаться приблизительно с одной скоростью.
На рисунке 5 показан результат трех шагов нормализации: смещения среднего, декорреляции и выравнивания ковариации, примененных в указанном порядке.
Рисунок 5. Результаты трех шагов нормализации: смещения среднего, декорреляции и выравнивания ковариации
6. Инициализация(initialization). Хороший выбор начальных значений синаптических весов и пороговых значений (threshold) сети может оказать неоценимую помощь в проектировании.
Если синаптические веса принимают большие начальные значения, то нейроны, скорее всего, достигнут режима насыщения. Если такое случится, то локальные градиенты алгоритма обратного распространения будут принимать малые значения, что, в свою очередь, вызовет торможение процесса обучения. Если же синаптическим весам присвоить малые начальные значения, алгоритм будет очень вяло работать в окрестности начала координат поверхности ошибок. В частности, это верно для случая антисимметричной функции активации, такой как гиперболический тангенс. К сожалению, начало координат являетсяседловой точкой(saddlepoint), т.е. стационарной точкой, где образующие поверхности ошибок вдоль одной оси имеют положительный градиент, а вдоль другой — отрицательный. По этим причинам нет смысла использовать как слишком большие, так и слишком маленькие начальные значения синаптических весов. Как всегда, золотая середина находится между этими крайностями.
Для примера рассмотрен многослойный персептрон, в котором в качестве функции активации используется гиперболический тангенс. Пусть пороговое значение, применяемое к нейронам сети, равно нулю. Исходя из этого, индуцированное локальное поле нейронаjможно выразить следующим образом:
Предположим, что входные значения, передаваемые нейронам сети, имеют нулевое среднее значение и дисперсию, равную единице, т.е.
Далее предположим, что входные сигналы некоррелированны:
и синаптические веса выбраны из множества равномерно распределенных чисел с нулевым средним
7. Обучение по подсказке(hints). Обучение на множестве примеров связано с аппроксимацией неизвестной функцией отображения входного сигнала на выходной. В процессе обучения из примеров извлекается информация о функциии строится некоторая аппроксимация этой функциональной зависимости. Процесс обучения на примерах можно обобщить, добавив обучение по подсказке, которое реализуется путем предоставления некоторой априорной информации о функции. Такая информация может включать свойства инвариантности, симметрии и прочие знания о функции, которые можно использовать для ускорения поиска ее аппроксимации и, что более важно, для повышения качества конечной оценки. Использование соотношения является одним из примеров такого подхода.
8. Скорость обучения (learningrates). Все нейроны многослойного персептрона в идеале должны обучаться с одинаковой скоростью. Однако последние слои обычно имеют более высокие значения локальных градиентов, чем начальные слои сети. Исходя из этого параметру скорости обучения следует назначать меньшие значения для последних слоев сети и большие — для первых. Чтобы время обучения для всех нейронов сети было примерно одинаковым, нейроны с большим числом входов должны иметь меньшее значение параметра обучения, чем нейроны с малым количеством входов.
2.3. Особенности обучения методом обратного распространения
Обучение методом обратного распространения возникло как стандартный алгоритм обучения многослойного персептрона, по сравнению с которым все…остальные…алгоритмы обучения часто отбраковываются по тем или иным…соображениям. Алгоритм обратного распространения получил свое название и потому, что частные производные функции стоимости (как меры производительности) по свободным параметрам сети (синаптическим весам и порогам) определяются с помощью обратного распространения сигнала ошибки (вычисленного выходными нейронами) по сети, слой за слоем. Таким образом, решается задача присваивания коэффициентов доверия в самой элегантной из возможных форм. Вычислительная мощь этого алгоритма вытекает из двух его характерных особенностей.
• Локальность метода изменения синаптических весов и порогов многослойном персептроне.
• Эффективность метода вычисления всех частных производных функциистоимости по свободным параметрам.
В течение каждой отдельно взятой эпохи данных обучения алгоритм обратногораспространения работает в одном из двух режимов: последовательном…или…пакетном.
…В последовательном режиме все синаптические веса всех нейронов сети перссчитываются при подаче каждого примера обучения. Отсюда следует, что…оценка вектора градиента поверхности ошибок, используемая во всех вычислениях, является стохастической (случайной) по своей природе. Поэтому такой режим (как, в общем, и весь метод) получил название "стохастического обратного распространения". С другой стороны, в пакетном режиме изменение синаптических весов и порогов выполняется один раз за всю эпоху. Это приводит к более точной оценке вектора градиента, используемого при вычислениях. Несмотря на свои недостатки, последовательная (стохастическая) форма обучения методом обратного распространения при создании нейронных сетей используется гораздо чаще, особенно в больших задачах. Для того чтобы добиться наилучшего результата, требуется основательная настройка алгоритма.