Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Прикладной статистический анализ в горном деле (Многомерная математическая статистика)

..pdf
Скачиваний:
9
Добавлен:
12.11.2023
Размер:
11.62 Mб
Скачать

7.3. Функции активации нейрона

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

Функция активации нейрона (её в литературе именуют характеристической функцией) – это некоторая функция, генерирующая выходной сигнал нейрона. На вход этой функции подается сумма всех произведений сигналов и весов этих сигналов. Выбор активационной функции определяется спецификой поставленной задачи, либо ограничениями, накладываемыми некоторыми алгоритмами обучения. Его иногда именуют нелинейным преобразователем, поскольку это элемент искусственного нейрона, преобразующий текущее состояние нейрона (выходной сигнал адаптивного сумматора) в выходной сигнал нейрона по некоторому нелинейному закону (активационной функции) [54].

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

а) Пороговая функция. Это простая кусочно-линейная функция. Если входное значение меньше порогового (P < P*), то значение функции активации равно минимально допустимому, иначе – максимально допустимому. Таким образом, пока взвешенная сумма S не превысит некоторый порог θ, нейрон находится в «заторможенном» состоянии и на его выходе всегда будет нуль. Порог θ называют порогом активации или возбуждения, если сумма превысит величину порога, нейрон переходит в активное (говорят возбужденное) состояние и формирует на выходе единицу (рис. 7.4, а). В этом случае нейрон называется бинарным. Недостаток этой функции очевиден:

271

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

б) Линейный порог. Она также представляет несложную кусочно-линейную функцию. На ней имеется два линейных участка, где функция активации тождественно равна минимально допустимому и максимально допустимому значению, и есть участок, на котором функция строго монотонно возрастает (рис. 7.4, б). Использование активационной функции в виде линейного порога расширяет область значений выхода нейрона, но при этом он все еще остается линейным преобразователем, что значительно снижает аппроксимирующие возможности сети. Кроме этого, наличие двух точек разрыва, где функция не дифференцируема, делает невозможным использование линейного порога в градиентных алгоритмах обучения, где используется производная активационной функции [5].

Рис. 7.4. Графическое изображение некоторых функций активации

в) Сигмоидальная функция, или сигмоида (sigmoid, от бук-

вы S). Это монотонно возрастающие дифференцируемые

272

S-образные нелинейные функции, названные так за их характерную S-образную форму [72]. Сигмоида позволяет усиливать слабые сигналы и не насыщаться от сильных сигналов. Поэтому при обучении многослойных нейронных сетей их часто используют. Примерами таких функций являются гиперболический тангенс (рис. 7.4, в) и логистическая функция (рис. 7.4, г);

г) Гиперболический тангенс (hyperbolictangent, tanh). Эта функция принимает на входе произвольное вещественное число, а на выходе дает число в интервале от – 1 до 1. Подобно сигмоиде, гиперболический тангенс может насыщаться. Однако в отличие от сигмоидальной выход данной функции имеет значение от 0 до 1 [79].

В программных продуктах используются и некоторые иные функции [5; 18; 72; 82], параметры и значения которых приведены в табл. 7.1.

 

Таблица 7.1

Значения функций активации

 

 

Функция

Способ определения Y

 

 

Ступенчатая пороговая

Y = 0 при P < P*

Y = 1 при P P*

 

 

Y = 0 при P < P1*

Линейная пороговая

Y = a + bP при P1* ≤ P < P2*

Y = 1 при P P2*

 

 

P2* = P1* + 1 / b

Сигмоидальная

Y = 1 / (1 + ea(PP*))

 

 

 

Гиперболический тангенс

Y = a th(b P) = a (ebp ebp) / (ebp + ebp)

 

 

 

Арктангенс

Y = 2 arctg(P) / π

 

 

 

Линейная

Y = a + bP

Гауссиана

Y e b( p p* )

П р и м е ч а н и е : P*, P1*, P2* – пороговые значения; a, b – коэффициенты; e – основание натурального логарифма.

273

7.4. Обучение нейросети

Перед использованием уравнения регрессии мы должны были определить оптимальные параметры уравнения и значения коэффициентов. Вычисляя коэффициенты перед аргументами, мы как бы обучаем уравнение. Аналогично и в нейронных сетях перед решением какой-либо задачи потребуется настроить (обучить) сеть. Что можно менять, настраивая (обучая) сеть?

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

Таким образом, процесс обучения НС заключается в организации набора связей между нейронами и вычислении значений весовых связей между ними. Методы обучения формируют следующие типы ИНС:

обучаемые с учителем. Все примеры обучающей выборки включают и верные ответы, они входят в состав обучающей выборки. В ходе обучения веса вычисляются так, чтобы сеть генерировала в ответах значения, максимально приближённые к правильным [54];

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

со смешанным (гибридным) обучением. При смешанном обучении часть весов определяется посредством обучения с

274

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

В зависимости от правила подгонки весов (wi) ИНС делят на следующие категории [18; 54]:

правило коррекции по ошибке (дельта-правило). Разность между известным значением результата и реакцией сети используется для корректировки весовых коэффициентов. Корректировка заключается в небольшом (обычно менее 1 %) увеличении весов тех связей, которые усиливают правильные реакции, и уменьшении весов тех связей, которые способствуют ошибочным реакциям. Обычно используется для однослойных сетей;

правило обратного распространения ошибки. При обу-

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

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

конкурентное обучение (правило Кохонена, «победитель забирает все»). В каждом слое корректируются весовые коэффициенты только одного нейрона-победителя, у которого выход наиболее точно соответствует предъявленному образцу;

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

275

дится в состоянии локального энергетического минимума. Для выхода из него металл нагревают до высокой температуры, а затем медленно охлаждают, позволяя атомам занять правильные положения в решетке, соответствующие глобальному минимуму энергии. Отжиг в нейронной сети имитируется по следующему сценарию: на вход сети подаются обучающие данные и вычисляется выход; вычисляется значение средней квадратичной погрешности между желаемым и полученным выходными векторами; весовые коэффициенты изменятся случайным образом, затем вычисляются новый выход и результирующая ошибка. Если ошибка уменьшилась, оставляют измененные веса; если ошибка увеличилась, оставляют измененные веса с вероятностью, определяемой распределением Больцмана. Если ошибка осталась неизменной, то весовые коэффициенты возвращают к его предыдущему значению [18; 54].

7.5. Типы сетей

Для решения задач аппроксимации чаще всего используются сети типа «многослойный персептрон» и сети радиального базиса.

Нейросети на основе радиальных базисных функций (РБФ, RBF) являются хорошими аппроксиматорами. Семейство сетей на основе РБФ представлено достаточно широко, чтобы адекватно аппроксимировать любую непрерывную функцию на ограниченном множестве [24].

Нейронная сеть типа «многослойный персептрон»

(MLP). Её называют и иначе – «сети обратного распространения», «MLP-сеть» и т.п. Многослойный персептрон относится к классу сетей с последовательными связями [24]. Нейроны в них группируются в слои. На вход каждого нейрона подаются выходные сигналы активных нейронов предыдущего уровня, а на нейроны входного уровня подаются исходные данные. Слои, расположенные между входным и выходным уровнями, называются скрытыми. При этом общее количество слоёв в сети считается равным числу слоев нейронов, учитывая также и входной

276

слой. Число нейронов на входном уровне равно числу компонент входного вектора (каждому нейрону должно соответствовать одно значение) [24].

Количество нейронов входного слоя определяется числом независимых переменных ожидаемой функции, число нейронов выходного слоя равно числу зависимых переменных. Число скрытых слоев и количество нейронов в них определяется пользователем.

Нейронные сети радиального базиса. Сети радиальных базисных функций (RBF-сети) принципиально отличаются от многослойного персептрона. Многослойный персептрон решает задачу с помощью нейронов, производящих нелинейные преобразования своих взвешенных входов, алгоритм его обучения сложен и трудоемок. В RBF-сети активизация нейронов задается дистанцией между входным вектором и заданным в процессе обучения вектором-прототипом, а обучение происходит быстро и носит элементы обучения как «с учителем», так и «без учителя». В настоящее время радиальные базисные функции составляют одно из главных направлений исследований в области численного анализа [18; 24].

В основе сетей радиального базиса лежит подход, основанный на разбиении пространства окружностями или (в общем случае) гиперсферами. Гиперсфера задается своим центром и радиусом. Подобно тому, как элемент MLP-сети реагирует (нелинейно) на расстояние от данной точки до линии «сигмоидного склона», в сети, построенной на радиальных базисных функциях, элемент реагирует (нелинейно) на расстояние от данной точки до центра, соответствующего этому радиальному элементу. Поверхность отклика радиального элемента представляет собой гауссову функцию (колоколообразной формы) с вершиной в центре и понижением к краям. Наклон гауссова радиального элемента можно менять подобно тому, как можно менять наклон сигмоидной кривой в MLP-сети.

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

277

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

Сравнение сетей радиального базиса и многослойных пер-

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

[18; 24; 72]:

1.Сети RBF (в своей основной форме) имеют один скрытый слой, в то время как многослойный персептрон может иметь большее количество скрытых слоев.

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

3.Скрытый слой в сетях RBF является нелинейным, а выходной – линейным. В то же время скрытые и выходной слои многослойного персептрона, используемого в качестве классификатора, являются нелинейными. Если многослойный персептрон используется для решения нелинейных задач, в качестве узлов выходного слоя обычно выбираются линейные нейроны.

4.Аргумент функции активации каждого скрытого узла сети RBF представляет собой евклидову норму – расстояние между входным вектором и центром радиальной функции. В то же время аргумент функции активации каждого скрытого узла многослойного персептрона – это скалярное произведение входного вектора и вектора синаптических весов данного нейрона.

278

5. Многослойный персептрон обеспечивает глобальную аппроксимацию нелинейного отображения. С другой стороны, сеть RBF с помощью экспоненциально уменьшающихся локализованных нелинейностей (функций Гаусса) создает локальную аппроксимацию нелинейного отображения [24].

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

Линейные характеристики выходного слоя сети RBF означают, что такая сеть более тесно связана с персептроном Розенблатта, чем с многослойным персептроном. Тем не менее сети RBF отличаются от этого персептрона тем, что способны выполнять нелинейные преобразования входного пространства.

Принципиальным различием этих сетей является способ кодирования информации на скрытых слоях (способ построения адаптивного рельефа ошибки). Для MLP – гиперплоскости, для RBF – гиперсферы. Использование гиперсфер приводит к некоторой неэффективности сети RBF, которая связана с тем, что при работе сети в каждом конкретном случае используется лишь часть нейронов. Следствием этого является экспоненциальный рост размерности сети RBF при увеличении размерности входных данных, а также необходимость использования при обучении большего числа примеров. В большинстве случаев при решении одной и той же задачи размер сети RBF будет превышать размер сети MLP.

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

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

279

Недостатком сети MLP по сравнению с RBF является более высокая сложность обучения ввиду необходимости совместного обучения нескольких слоев нейронов.

7.6. Особенности обучения нейронных сетей

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

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

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

В математике доказана теорема Вейерштрасса о приближении. Эта теорема утверждает, что любая непрерывная функция на замкнутом интервале действительной оси может быть представлена равномерно сходящимся рядом полиномов [31; 82]. Имеется и теорема Колмогорова [37] об отображении практически любой функции с помощью суперпозиции непрерывных функций меньшего числа переменных. Она непосредственно применима к многослойному персептрону. Когда составляли уравнение в регрессионном анализе, мы использовали полином.

280

Соседние файлы в папке книги