Для разработки нейронной сети, которая будет прогнозировать финансово-хозяйственные показатели, решены такие задачи: выбор входных и выходных данных, топологии сети,
метода обучения нейронной сети, активационной функции. Временного ряда динамики цен будет достаточно, чтобы сделать точный прогноз. Он разбит на три множества: обучающую,
тестирующую и контрольную выборки, которые подаются на входы сети.
Предобработка данных является важным шагом при применении обучаемых с учителем нейросетей и определяет скорость обучения, величины ошибок обучения и обобщения и иные
свойства сети. Для предобработки количественных величин чаще всего применяют линейный сдвиг интервала значения признака, например, в интервал [-1,1]. Формула пересчета
значения признака x для i-го примера выборки в интервал [a,b] такова:
где xmin , xmax - минимальное и максимальное выборочные значения признака. При отсутствии жестких ограничений на диапазон значений предобработанного
признака может быть выполнено масштабирование, дающее нулевое среднее и единичную дисперсию предобработанной величине, по формуле:
где M(x),σ(x) - исходное выборочное среднее и среднее квадратичное отклонение. Получение нулевых средних для входных сигналов сети ускоряет градиентное обучение, поскольку
снижает отношение максимального и минимального ненулевого собственных чисел матрицы вторых производных целевой функции по параметрам сети.[1]
В качестве топологии данной нейронной сети предложен многослойный персептрон, так как он в среднем показывает наилучшие результаты в задачах прогнозирования временных рядов.
В этой топологии нейроны регулярным образом организованы в слои, причем элементы некоторого слоя связаны только с нейронами предыдущего слоя, и информация распространяется
от предыдущих слоёв к последующим. Входной слой, состоящий из чувствительных (сенсорных) S-элементов, на который поступают входные сигналы Хi, никакой обработки информации не
совершает и выполняет лишь распределительные функции. Каждый S-элемент связан с совокупностью ассоциативных элементов (А-элементов) первого промежуточного слоя, а А-элементы
последнего слоя соединены с реагирующими элементами (R-элементами).
Рисунок 1. Структура многослойного персептрона(Анимация: 5 кадров, задержка 0,4 сек, размер 28,6 Кб)
Взвешенные комбинации выходов R-элементов составляют реакцию системы, которая указывает на принадлежность распознаваемого объекта определенному образу. Если распознаются только
два образа, то в персептроне устанавливается один R-элемент, который обладает двумя реакциями – положительной и отрицательной. Если образов больше двух, то для каждого образа
устанавливают свой R-элемент, а выход каждого такого элемента представляет линейную комбинацию выходов A-элементов. [2]
В качестве метода обучения нейронной сети был выбран метод обратного распространения ошибки. Основная идея обратного распространения состоит в том, как получить оценку ошибки
для нейронов скрытых слоев. Заметим, что известные ошибки, делаемые нейронами выходного слоя, возникают вследствие неизвестных пока ошибок нейронов скрытых слоев. Чем больше
значение синаптической связи между нейроном скрытого слоя и выходным нейроном, тем сильнее ошибка первого влияет на ошибку второго. Следовательно, оценку ошибки элементов скрытых
слоев можно получить, как взвешенную сумму ошибок последующих слоев. При обучении информация распространяется от низших слоев иерархии к высшим, а оценки ошибок, делаемые сетью
- в обратном направлении [3].
На этапе обучения происходит вычисление синаптических коэффициентов w. При этом в отличие от классических методов в основе лежат не аналитические вычисления, а методы обучения
по образцам с помощью примеров сгруппированных в обучаемом множестве. Для каждого образа из обучающей выборки считается известным требуемое значение выхода нейронной сети. Этот
процесс можно рассматривать как решение оптимизационной задачи. Ее целью является минимизации функции ошибки или невязки Е на обучающем множестве путем выбора значений синоптических
коэффициентов w.
где di – требуемое (желаемое) значение выхода на j-м образце выборки;
yi – реальное значение;
p – число образцов обучающей выборки.
Минимизация ошибки Е обычно осуществляется с помощью градиентных методов. При изменение весов происходит в направлении обратном направлению наибольшей крутизны функции ошибки.
где 0 < &eta &le 1 - определяемый пользователем параметр.
Существует два подхода к обучению. В первом из них веса w пересчитываются после подачи всего обучающего множества, и ошибка имеет вид
Во втором подходе ошибка пересчитывается после каждого образца:
Пусть
, то есть
Тогда
, где yj(Sj)- активационная функция. Для
Третий сомножитель:
Можно показать, что
При этом суммирование k идет среди нейронов n-го слоя. Введем новое обозначение:
Для внутреннего нейрона:
Для внешнего нейрона:
Таким образом, полный алгоритм обучения обратного распространения строится так:
1. Подать на входы сети один из возможных образцов в режиме обычного функционирования НС, когда сигналы распространяются от входа к выходам рассчитать
значения выходов всех нейронов (обычно начальное значение веса составляют малые значения).
2. Рассчитать значения &delta jn для нейронов выходного слоя по формуле (13)
3. Рассчитать значения &delta jn для всех внутренних нейронов по формуле (12)
4. С помощью формулы (14) для всех связей найти приращения весовых коэффициентов &Delta W jn.
5. Скорректировать синаптические веса:
6. Повторить шаги 1-5 для каждого образа обучающей выборки пока ошибка Е не станет достаточно маленькой.
В качестве активационной функции входного и выходного слоя будет линейная функция.
Нейроны скрытых слоев будут активироваться с помощью рациональной сигмоидальной
Эффективность данного варианта определяется тем, что данная функция является строго монотонно возрастающей, непрерывной и дифференцируемой и на вычисление
рациональной сигмоиды по сравнению с другими затрачивается меньше процессорного времени.
Рисунок 2. График прогнозирования временного ряда
После выбора общей структуры нужно экспериментально подобрать параметры сети. Для сети необходимо подобрать число слоев и количество нейронов в каждом из них.
При выборе количества слоев и нейронов в них следует исходить из того, что способности сети тем выше, чем больше суммарное число связей между нейронами. С другой
стороны, число связей ограничено сверху количеством записей в обучающих данных.
Опираясь на результаты полученных экспериментальным путем, в результате реализации предложенной нейронной сети в пакете MatLab, очевидно, что данная топология
нейронной сети и метод ее обучения является крайне эффективным в задачах прогнозирования.