бесплатно рефераты
 

Классификация сейсмических сигналов на основе нейросетевых технологий

описание алгоритма обучения и методов его оптимизации.

6.1 Структура нейронной сети.

Итак, для решения задачи идентификации типа сейсмического события

предлагается использовать одну из самых универсальных нейроархитектур –

многослойный персептрон, а точнее его двухслойную реализацию (рис. 6.1).

Как показали эксперименты, увеличение числа скрытых слоев не приводит к

лучшим результатам, а лишь усложняет процесс обучения, поэтому и была

выбрана именно реализация с одним скрытым слоем нейронов.

На вход сети подается p-мерный вектор признаков {xi, i=1,2,…,p}. Для

определенности будем рассматривать случай, когда p=9, хотя исследования

проводились и для p=5, p=18. Оптимальное количество нейронов на скрытом

слое H подбиралось экспериментально для разных p. Соответственно при p = 9

достаточно брать H равным также 9 или немного больше. Для разбиения

исходных данных на два класса на выходе сети достаточно одного нейрона.

Между входным и скрытым слоями, а также между скрытым и выходным слоями

использовалась полносвязная структура.

С учетом этих дополнений опишем принятые на рисунке 7.1 обозначения:

p – размерность исходных данных (количество признаков используемых для

классификации);

H – число нейронов на скрытом слое;

xi – компонента входного вектора признаков, i = 1,…,p;

x0 ( 1 – постоянное воздействие используемое для работы нейронной сети;

wji – весовые коэффициенты между входным и скрытым слоями, i = 0,1,…,p ,

j = 1,…,H;

vk - весовые коэффициенты между скрытым и выходным слоями, k = 0,1,…,H.

zj – значение выхода j-го нейрона скрытого слоя; z0 ( 1, j = 1,…,H;

[pic]

y – значение выходного нейрона сети (выход сети)

[pic] (12)

f1(x) –функция активации нейронов скрытого слоя;

f2(x) –функция активации нейрона выходного слоя.

В качестве функции активации f1(x) для нейронов скрытого слоя и f2(x)

для единственного нейрона на выходе сети предлагается использовать одну и

ту же функцию, а именно сигмоидную функцию активации, для краткости будем

обозначать ее как f(x):

[pic],

с производной в виде

[pic].

Вид такой функции представлен на рис.6.2

Т.к. значения функции f(x) ограничены в диапазоне [0, 1], результат

сети y(x) может принимать любые действительные значения из этого же

диапазона, в следствии чего логично интерпретировать выходы сети следующим

образом: если y(x) > 0.5, то вектор принадлежит к одному классу (взрывы), в

противном случае к другому (землетрясения).

6.2 Исходные данные.

На вход нейронной сети предлагается подавать вектора признаков

составленные из сейсмограмм. О том, какие признаки были использованы для

этой задачи и как они получены, было рассказано ранее в разделе 3.1. Стоит

отметить, что проблема формирования векторов признаков – это исключительно

проблема сейсмологии. Поэтому для исследования эффективности применения

нейронных сетей в качестве исходных данных были использованы уже готовые

выборки векторов, которые содержали в себе примеры и землетрясений и

взрывов.

Размерность векторов признаков p=9, хотя , как было отмечено в

предыдущем разделе, проводились эксперименты и с другим количеством

признаков.

Для работы с нейросетью рекомендуется использовать исходные данные не в

первоначальном виде, а после предварительной обработки при помощи процедуры

индивидуальной нормировки по отдельному признаку, описанной в разделе 5.2.

Это преобразование состоит в следующем:

[pic]

где

xi – исходное значение вектора признаков, точнее его i-я компонента;

xi,min – минимальное значение по i-му признаку, найденное из всей

совокупности исходных данных, включающей оба класса событий;

xi,max – максимальное значение по i-му признаку …

Выбор именно этой нормировки, а не более универсальных, которые описаны

в разделе 5, в настоящих исследованиях продиктованы тем обстоятельством,

что непосредственно признаки измеренные по сейсмограммам, подвергаются

последовательно двум нелинейным преобразованиям в соответствии с функциями

y=Ln(x) и z=(1/7)(y1/7-1),

и уже из этих значений формируются обучающие вектора. Такие преобразования

приводят к большей кластеризации точек в многомерном пространстве, однако

диапазон изменения каждого из признаков не нормирован относительно

интервала [-1, 1], а выбранная нормировка позволяет без потери информации

перенести все входные значения в нужный диапазон.

6.3 Определение критерия качества системы и функционала его оптимизации.

Если через [pic] обозначить желаемый выход сети (указание учителя), то

ошибка системы для заданного входного сигнала (рассогласование реального и

желаемого выходного сигнала) можно записать в следующем виде:

[pic][pic], где

k — номер обучающей пары в обучающей выборке, k=1,2,…,n1+n2

n1 - количество векторов первого класса;

n2 - число векторов второго класса.

В качестве функционала оптимизации будем использовать критерий минимума

среднеквадратической функции ошибки:

[pic]

6.4 Выбор начальных весовых коэффициентов.

Перед тем, как приступить к обучению нейронной сети, необходимо задать

ее начальное состояние. От того насколько удачно будут выбраны начальные

значения весовых коэффициентов зависит, как долго сеть за счет обучения и

подстройки будет искать их оптимальное величины и найдет ли она их.

Как правило, всем весам на этом этапе присваиваются случайные величины

равномерно распределенные в диапазоне [-A,A], например [-1,1], или [-3,3].

Однако, как показали эксперименты, данное решение не является наилучшим и в

качестве альтернативы предлагается использовать другие виды начальной

инициализации, а именно:

1. Присваивать весам случайные величины, заданные не равномерным

распределением, а нормальным распределением с параметрами N[(,(], где

выборочное среднее (=0, а дисперсия ( = 2, или любой другой небольшой

положительной величине. Для формирования нормально распределенной

величины можно использовать следующий алгоритм:

Шаг 1. Задать 12 случайных чисел x1, x2, …,x12 равномерно

распределенных в диапазоне [0,1]. xi ( R[0,1].

Шаг 2. Для искомых параметров ( и ( величина [pic], полученная по

формуле:

[pic]

будет принадлежать нормальному распределению с параметрами N[(,(].

2. Можно производить начальную инициализацию весов в соответствии

с методикой, предложенной Nguyen и Widrow [7]. Для этой методики

используются следующие переменные

[pic] число нейронов текущего слоя

[pic] количество нейронов последующего слоя

[pic] коэффициент масштабирования:

[pic]

Вся процедура состоит из следующих шагов:

Для каждого нейрона последующего слоя[pic]:

Инициализируются весовые коэффициенты (с нейронов текущего слоя):

[pic]случайное число в диапазоне [-1,1] ( или [pic]).

Вычисляется норма [pic]

Далее веса преобразуются в соответствии с правилом:

[pic]

Смещения [pic] выбираются случайным образом из диапазона [pic].

Обе предложенные методики позволили на практике добиться лучших

результатов, в сравнении со стандартным алгоритмом начальной инициализации

весов.

6.5 Алгоритм обучения и методы его оптимизации.

Приступая к обучению выбранной нейросетевой модели, необходимо было

решить, какой из известных типов алгоритмов, градиентный (обратное

распространения ошибки) или стохастический (Больцмановское обучение)

использовать. В силу ряда субъективных причин был выбран именно первый

подход, который и представлен в этом разделе.

Обучение нейронных сетей как минимизация функции ошибки.

Когда функционал ошибки нейронной сети задан (раздел 6.3), то главная

задача обучения нейронных сетей сводится к его минимизации. Градиентное

обучение – это итерационная процедура подбора весов, в которой каждый

следующий шаг направлен в сторону антиградиента функции ошибки.

Математически это можно выразить следующим образом:

[pic], или , что то же самое : [pic],

здесь (( - темп обучения на шаге (. В теории оптимизации этот метод

известен как метод наискорейшего спуска.[]

Метод обратного распространения ошибки.

Исторически наибольшую трудность на пути к эффективному правилу

обучения многослойных персептронов вызвала процедура расчета градиента

функции ошибки [pic]. Дело в том, что ошибка сети определяется по ее

выходам, т.е. непосредственно связана лишь с выходным слоем весов. Вопрос

состоял в .том, как определить ошибку для нейронов на скрытых слоях, чтобы

найти производные по соответствующим весам. Нужна была процедура передачи

ошибки с выходного слоя к предшествующим слоям сети, в направлении обратном

обработке входной информации. Поэтому такой метод, когда он был найден,

получил название метода обратного распространения ошибки (error back-

propagation ).

Разберем этот метод на примере двухслойного персептрона с одним

нейроном на выходе.(рис 6.1) Для этого воспользуемся введенными ранее

обозначениями. Итак,

[pic] -Функция ошибки (13)

[pic] -необходимая коррекция весов коррекция весов (14)

для выходного слоя (v записывается следующим образом.

[pic]

Коррекция весов между входным и скрытым слоями производится по формуле:

[pic] (15)

[pic] [pic] [pic]

Подставляя одно выражение в другое получаем

[pic] (16)

Производная функции активации, как было показано ранее (раздел 6.1),

вычисляется через значение самой функции. [pic][pic]

Непосредственно алгоритм обучения состоит из следующих шагов:

1. Выбрать очередной вектор из обучающего множества и подать его на вход

сети.

2. Вычислить выход сети y(x) по формуле (12).

3. Вычислить разность между выходом сети и требуемым значением для данного

вектора (13).

4. Если была допущена ошибка при классификации выбранного вектора, то

подкорректировать последовательно веса сети сначала между выходным и

скрытым слоями (15), затем между скрытым и входным (16).

5. Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех

пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

Несмотря на универсальность, этот метод в ряде случаев становится

малоэффективным. Для того, чтобы избежать вырожденных случаев, а также

увеличить скорость сходимости функционала ошибки, разработано много

модификаций стандартного алгоритма, в частности две из которых и

предлагается использовать.

Многостраничное обучение.

С математической точки зрения обучение нейронных сетей (НС) – это

многопараметрическая задача нелинейной оптимизации. В классическом методе

обратного распространения ошибки (single-режим) обучение НС рассматривается

как набор однокритериальных задач оптимизации. Критерий для каждой задачи -

качество решения одного примера из обучающей выборки. На каждой итерации

алгоритма обратного распространения параметры НС (синаптические веса и

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

образом, в процессе обучения циклически решаются однокритериальные задачи

оптимизации.

Из теории оптимизации следует, что при решении многокритериальных задач

модификации параметров следует производить, используя сразу несколько

критериев (примеров), в идеале - все. Тем более нельзя ограничиваться одним

примером при оценке производимых изменений значений параметров.

Для учета нескольких критериев при модификации параметров используют

агрегированные или интегральные критерии, которые могут быть, например,

суммой, взвешенной суммой или квадратным корнем от суммы квадратов оценок

решения отдельных примеров.

В частности, в настоящих исследованиях изменения весов проводилось

после проверки всей обучающей выборки, при этом функция ошибки

рассчитывалась в виде :

[pic]

где,

k - номер обучающей пары в обучающей выборке, k=1,2,…,n1+n2

n1 - количество векторов первого класса;

n2 - число векторов второго класса.

Как показывают тестовые испытания, обучение при использовании пакетного

режима, как правило сходится быстрее, чем обучение по отдельным примерам.

Автоматическая коррекция шага обучения.

В качестве еще одного расширения традиционного алгоритма обучения

предлагается использовать так называемый градиентный алгоритм с

автоматическим определением длины шага (. Для его описания необходимо

определить следующий набор параметров:

. начальное значение шага(0 ;

. количество итераций, через которое происходит запоминание данных сети

(синоптических весов и смещений);

. величина (в процентах) увеличения шага после запоминания данных сети, и

величина уменьшения шага в случае увеличения функции ошибки.

В начале обучения записываются на диск значения весов и смещений сети.

Затем происходит заданное число итераций обучения с заданным шагом. Если

после завершения этих итераций значение функции ошибки не возросло, то шаг

обучения увеличивается на заданную величину, а текущие значения весов и

смещений записываются на диск. Если на некоторой итерации произошло

увеличение функции ошибки, то с диска считываются последние запомненные

значения весов и смещений, а шаг обучения уменьшается на заданную величину.

При использовании автономного градиентного алгоритма происходит

автоматический подбор длины шага обучения в соответствии с характеристиками

адаптивного рельефа, и его применение позволило заметно сократить время

обучения сети без потери качества полученного результата.

Эффект переобучения.

Одна из наиболее серьезных трудностей изложенного подхода обучения

заключается в том, что таким образом минимизируется не та ошибка, которую

на самом деле нужно минимизировать, а ошибка, которую можно ожидать от

сети, когда ей будут подаваться совершенно новые наблюдения. Иначе говоря,

хотелось бы, чтобы нейронная сеть обладала способностью обобщать результат

на новые наблюдения. В действительности сеть обучается минимизировать

ошибку на обучающем множестве, и в отсутствие идеального и бесконечно

большого обучающего множества это совсем не то же самое, что минимизировать

"настоящую" ошибку на поверхности ошибок в заранее неизвестной модели

явления [5]. Иначе говоря, вместо того, чтобы обобщить известные примеры,

сеть запомнила их. Этот эффект и называется переобучением.

Соответственно возникает проблема – каким методом оценить ошибку

обобщения? Поскольку эта ошибка определена для данных, которые не входят в

обучающее множество, очевидным решением проблемы служит разделение всех

имеющихся в нашем распоряжении данных на два множества: обучающее – на

котором подбираются конкретные значения весов, и валидационного – на

котором оцениваются предсказательные способности сети. На самом деле,

должно быть еще и третье множество, которое вообще не влияет на обучение и

используется лишь для оценки предсказательных возможностей уже обученной

сети. Ошибки, полученные на обучающем, валидационном и тестовом множестве

соответственно называются ошибка обучения, валидационная ошибка и тестовая

ошибка.

В нейроинформатике для борьбы с переобучением используются три основных

подхода:

. Ранняя остановка обучения;

. Прореживание связей (метод от большого к малому);

. Поэтапное наращивание сети ( от малого к большому).

Самым простым является первый метод. Он предусматривает вычисление во время

обучения не только ошибки обучения, но и ошибки валидации, используя ее в

качестве контрольного параметра. В самом начале работы ошибка сети на

обучающем и контрольном множестве будет одинаковой. По мере того, как сеть

обучается, ошибка обучения, естественно, убывает, и, пока обучение

уменьшает действительную функцию ошибок, ошибка на контрольном множестве

также будет убывать. Если же контрольная ошибка перестала убывать или даже

стала расти, это указывает на то, что сеть начала слишком близко

аппроксимировать данные и обучение следует остановить. Рисунок 6.5 дает

качественное представление об этой методике.

Использование этой методики в работе с сейсмическими данными затруднено

тем обстоятельством, что исходная выборка очень мала, а хотелось бы как

можно больше данных использовать для обучения сети. В связи с этим было

принято решение отказаться от формирования валидационного множества, а в

качестве момента остановки алгоритма обучения использовать следующее

условие: ошибка обучения достигает заданного минимального уровня, причем

значение минимума устанавливается немного большим чем обычно. Для проверки

этого условия проводились дополнительные эксперименты, показавшие что при

определенном минимуме ошибки обучения достигался относительный минимум

ошибки на тестовых данных.

Два других подхода для контроля переобучения предусматривают

постепенное изменение структуры сети. Только в одном случае происходит

эффективное вымывание малых весов (weight elimination) ,т.е. прореживание

малозначительных связей, а во втором, напротив, поэтапное наращивание

сложности сети. [3,4,5].

6.6 Формирование обучающей выборки и оценка эффективности обученной

нейросетевой модели.

Из исходных данных необходимо сформировать как минимум две выборки –

обучающую и проверочную. Обучающая выборка нужна для алгоритма настройки

весовых коэффициентов, а наличие проверочной, тестовой выборки нужно для

оценки эффективности обученной нейронной сети.

Как правило, используют следующую методику: из всей совокупности данных

случайным образом выбирают около 90% векторов для обучения, а на оставшихся

10% тестируют сеть. Однако, в условиях малого количества примеров эта

процедура становится неэффективной с точки зрения оценивания вероятности

ошибки классификации. В разделе 4.4 был описан другой, наиболее точный

метод расчета ошибки классификации. Это, так называемый, метод скользящего

экзамена (синонимы: cross-validation, “plug-in”-метод).[7,9].

В терминах нейронных сетей основную идею метода можно выразить так:

выбирается один вектор из всей совокупности данных, а остальные

используются для обучения НС. Далее, когда процесс обучения будет завершен,

предъявляется этот выбранный вектор и проверяется правильно сеть распознала

его или нет. После проверки выбранный вектор возвращается в исходную

выборку. Затем выбирается другой вектор, на оставшихся сеть вновь

обучается, и этот новый вектор тестируется. Так повторяется ровно n1+n2

раз, где n1–количество векторов первого класса, а n2 - второго.

По завершению алгоритма общая вероятность ошибки P подсчитывается

следующим образом:

[pic], где

N= n1+n2 - общее число примеров;

Страницы: 1, 2, 3, 4, 5, 6


ИНТЕРЕСНОЕ



© 2009 Все права защищены.