Документ взят из кэша поисковой машины. Адрес оригинального документа : http://top.sinp.msu.ru/lev/phd/node26.html
Дата изменения: Fri Aug 3 16:57:29 2001
Дата индексирования: Sat Feb 2 21:40:49 2013
Кодировка: koi8-r
Метод нейронных сетей next up previous contents
Next: Выбор оптимальных кинематических переменных Up: Применение метода нейронных сетей Previous: Применение метода нейронных сетей   Contents

Метод нейронных сетей

В настоящее время существует несколько методов разделения разных классов событий. В ряде работ [70] проводилось сравнение разных методов. Наиболее хорошие результаты по классификации и общности применения показал метод нейронных сетей. Метод основан на создании математической модели процессов, проходящих в биологических нейронных сетях [71], [72]. Исторически, этот метод прослеживается от 13-й проблемы Гильберта, ставящей вопрос "существует ли непрерывная функция трех переменных, которая не может быть представлена через композицию непрерывных функций двух переменных". Под композицией функций понимается подстановка одной функции в качестве аргумента другой.

Тринадцатая проблема Гильберта была решена в 1957 г. В.А. Арнольдом; oн показал, что любая непрерывная функция трех переменных представляется в виде композиции непрерывных функций двух переменных. В том же 1957 г. А.Н. Колмогоров доказал более сильную теорему. Теорема Колмогорова: любая непрерывная функция от n переменных $ F(x_1, x_2, ..., x_n)$ может быть представлена в виде

$\displaystyle F(x_1, x_2, ..., x_n)=\sum_{j=1}^{2n+1}g_j(\sum_{i=1}^nh_{ij}(x_i)),$ (a)

где $ g_j$ и $ h_{ij}$ непрерывные функции, причем $ h_{ij}$ не зависит от $ F$.

Эта теорема означает, что для реализации функций многих переменных достаточно операций суммирования и композиции функций одной переменной. Если перевести эту теорему на язык нейронных сетей, то она будет звучать так. Если известны функции $ h_{ij}$, то любую непрерывную функцию от $ n$ переменных можно точно реализовать с помощью простой трехслойной нейронной сети. Для этого достаточно подобрать $ 2n+1$ передаточных функций $ g_j$ нейронов скрытого слоя. Эта сеть не будет перцептроном в строгом смысле, так как на входах второго слоя к сигналам необходимо применить функции $ h_{ij}$, а не просто умножить их на веса ($ w_{ij}$). К сожалению, при всей своей математической красоте теорема Колмогорова мало применима на практике. Это связано с тем, что функции $ h_{ij}$— не гладкие и трудно вычисляемые; также неясно, каким образом можно подбирать функции $ g_j$ для данной функции F. Роль этой теоремы состоит в том, что она показала принципиальную возможность реализации сколь угодно сложных зависимостей с помощью относительно простых автоматов типа нейронных сетей [73].

Чтобы получить более значимые для практики результаты в этом направлении, приходится ослабить требования. Во-первых, непринципиально найти точное представление данной функции, — достаточно иметь приближенное. Во-вторых, можно по необходимости увеличивать число нейронов в скрытом слое, насколько это требуется. Новый вариант теоремы Колмогорова, обладающий этими особенностями, был открыт только в 1989 г. одновременно несколькими авторами [74].

Пусть $ F(x_1, x_2, ..., x_n)$ — любая непрерывная функция, определенная на ограниченном множестве, и $ \varepsilon > 0$ — любое сколь угодно малое число, означающее точность аппроксимации.

Теорема. Существуют такое число $ k$, набор чисел $ w_{ij}$, $ \theta_i$ и набор чисел $ \nu_i$, что функция

$\displaystyle f(x_1, x_2, ..., x_n)=\sigma(\sum_{i=1}^{k}\nu_i\sigma(\sum_{j=1}^{n}w_{ij}x_j + \theta_i)+\theta)$ (b)

приближает данную функцию $ F(x_1, x_2, ..., x_n)$ с погрешностью, не более $ \varepsilon$ на всей области определения, где функция $ \sigma$ - некоторая нелинейная функция, к примеру сигмойд:
$\displaystyle \sigma(x) = \frac{1}{1 + e^{-2x}}.$ (c)

Приведенная формула описывает математическую основу "feed-forward" нейронной сети с одним скрытым уровнем, схематично изображенную на рисунке 4.1. Данная теорема доказывает, что любую непрерывную функцию нескольких переменных можно с любой точностью реализовать с помощью обычной трехслойной нейронной сети вида 4.1, с достаточным количеством нейронов в скрытом слое ($ k$).

Процесс подбора весов называется обучением нейронной сети. Настоящим прорывом в теории обучения нейронных сетей [75] стало открытие в 1986 г. метода обратного распространения ошибки (error back-propagation). В настоящее время этот метод широко используется в различных приложениях, однако он требует настройки нескольких параметров обучения и не всегда приводит к оптимальному результату. Поэтому необходимо понимать, что хотя нейронная сеть и является механизмом, способным решить широкий класс задач, но правила управления этим механизмом пока что находятся на уровне догадок и эвристических соображений.

Figure 4.1: Схема "feed-forward" нейронной сети.
\begin{figure}
\centering\mbox{\epsfxsize =8cm\epsfysize =4cm\epsffile{nndiag.eps}}
\end{figure}

В представленном анализе применялись "feed-forward" нейронные сети. Данный тип состоит из набора нейронов (перцептронов) с прямым распространением сигнала. Каждый отдельный нейрон описывается следующим выражением:

$\displaystyle y_i = \sigma (\sum_{j=1}^{n}w_{ij}x_j + \theta_i),$ (d)

он содержит как минимум один входной сигнал ($ x_{j}$) и один выходной ($ y_{i}$), индекс $ i$ соответствует номеру нейрона, $ j$ пробегает число входных сигналов данного нейрона, $ \theta_i$ порог передачи сигнала на следующий уровень. Нейроны объединяются в слои; как показывает теорема приведенная выше, в большинстве случаев, достаточно трех слоев (входной, один скрытый и выходной), но можно использовать и более сложные сети. В нашей задаче достаточно, что бы последний слой (выходной) содержал только один нейрон. Число нейронов в первом слое (входной слой) соответствует числу входных сигналов в сеть (например, кинематических переменных, используемых для разделения сигнальных событий от фоновых, т.е. входного вектора). Остальные слои называются скрытыми и число нейронов на них строго говоря произвольно и определяется сложностью задачи и размером тренировочных образцов. В начале описываемого анализа проводилось сравнение сетей с одним и двумя скрытыми слоями и было найдено, что в силу существенного усложнения тренировки сети с двумя скрытыми слоями, использование такой сети в данной задаче не оправдано: аналогичные результаты достигаются быстрее сетью с одним скрытым слоем.

Смысл действия нейронных сетей в задаче распознавания классов событий в физике высоких энергий можно описать следующим образом. Существует некоторый вектор кинематических переменных (входной вектор), распределения по которым наиболее сильно отличаются для сигнальных и фоновых событий. К примеру можно выбрать те же кинематические переменные, которые описаны в предыдущей главе ( $ P_T,\ \eta,\ \hat{s},$...). При применении классических обрезаний по таким переменным мы удаляем прямоугольные области в пространстве входных кинематических переменных без учета корреляций между различными переменными. Можно оптимизировать такое разделение, используя более сложные многомерные функции, по которым производится обрезание пространства кинематических переменных, и включающии корреляционные зависимости между переменными. Именно такие функции, учитывающие корреляции между разными переменными, вычисляются в результате тренировки нейронных сетей. Результатом обрезания выходной переменной нейронной сети будет сложная гиперповерхность в пространстве входных переменных сети, а не набор прямоугольных обрезаний в случае классического анализа, описанного в предыдущей главе.

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

$\displaystyle \chi^2 = \frac{1}{2N}\sum_{i=1}^N (f_i - t_i)^2,$ (e)

здесь $ f_i$ реальный выход сети (4.2) для $ i$-ого события, $ t_i$ желаемый выход, а $ N$ число тренировочных событий.

Функцию ошибок можно переписать в терминах матрицы весов сети w и порогов $ \theta$ через формулу (4.2). Процесс тренировки сети заключается в минимизации функционала (4.5). Технику минимизации обычно называют методом тренировки сети; соответственно, могут быть использованы различные методы минимизации (тренировки).

Для построения и тренировки сети был использован пакет программ MLPfit [76], в котором заложено несколько алгоритмов тренировки. Для нахождения оптимального для данной задачи метода сравнивались два метода: "стохастический" [77] (наиболее широко используемый) и более мощный метод "Hybrid Linear-BFGS" [78], входящие в данный пакет программ. После сравнения результатов предпочтение было отдано последнему методу тренировки.

Основные этапы применения метода нейронных сетей к задаче экспериментального поиска описаны ниже.



Subsections
next up previous contents
Next: Выбор оптимальных кинематических переменных Up: Применение метода нейронных сетей Previous: Применение метода нейронных сетей   Contents