Скоростной метод обучения многослойного персептрона
Экспериментальная часть проведена для решения задачи прогноза курса котировок на РТС, в частности использовались временные ряды для различных таймфреймов компании «Роснефть». Разработанный метод скоростного обучения будем сравнивать со стандартным методом обратного распространения ошибки. Программное обеспечение обоих методов для адекватности оценки написано на одном языке — VBA, при этом… Читать ещё >
Скоростной метод обучения многослойного персептрона (реферат, курсовая, диплом, контрольная)
Основным способом обучения многослойного персептрона является метод обратного распространения ошибки (далее BackProp). Данный метод обучения хорошо себя зарекомендовал при решении многих задач [1,2,4,9]. Но у данного метода есть недостатки, к которым можно отнести: длительное время обучения; частое нахождение локальных, а не глобальных минимумов; проблема выбора адекватной Данную проблему еще можно обозначить, как выбор минимально достаточной конфигурации сети для решаемой задачи. архитектуры сети и другие. Часть данных проблем можно обойти, используя различные способы, например расписание обучения, динамическое добавление нейронов в скрытые слои при старте с заведомо недостаточным количеством нейронов, добавление «шума» во входной сигнал и т. д. [5]. Но основной проблемой обучения нейронной сети является длительное время обучения, то есть через сколько итераций ошибка сети будет меньше заданной. Существуют методы на базе BackProp, которые ускоряют обучение, например метод RProp [7], но выигрывая в скорости, он проигрывает в точности, по сути, в адекватности решения поставленной задачи.
В данной работе предлагается метод обучения нейронной сети, который также как и алгоритм обратного распространения ошибки использует ошибку на выходах сети и последовательно пропускает ее через слои нейронной сети от выходного к входному. При этом не используются градиентные методы обучения. В основе предлагаемого метода лежит вычисление обратной функции от гиперболического тангенса, подсчет разницы между желательным и реальным значением на входе в нейрон и корректировка синаптических связей на необходимое значение. Предлагаемый метод относится к классу обучения с учителем. Укажем методы, которые отчасти сходны с предлагаемым — это обучение нейронной сети с помощью генетических алгоритмов, метод отжига, метод случайного обучения [3,7].
Для общности введем следующие обозначения, как показано на Рисунке 1, при этом нейрон функционирует стандартным способом:
(1).
(2),.
где — вектор, входящий в сумматор — го нейрона — го слоя; - функция активации нейрона (в данной работе рассматривается только гиперболический тангенс); - сигнал на выходе — го нейрона — го слоя, — веса синоптических связей между слоями.
Рисунок 1. Формальный нейрон В скоростном методе обучения ошибку можно считать:
- · по валидационной выборке после каждого поданного во время обучения примера;
- · суммарно по всем обучающим примерам.
Алгоритм скоростного обучения многослойного персептрона состоит из следующих шагов:
- 1. Подача на вход выбранного случайным образом примера и расчет значений на выходе сети. Или, в зависимости от выбранного способа пакетная подача примеров с суммированием ошибки на выходе.
- 2. Расчет обратной функции от гиперболического тангенса, то есть расчет того, что должно было входить в нейроны выходного слоя для правильного ответа сети. Обратная функция от гиперболического тангенса:
(3).
где — параметр гиперболического тангенса.
3. Расчет разницы между тем, что должно было входить в нейрон и тем, что реально было на него подано:
(4).
где — число которое должно было быть подано на вход нейрона выходного слоя для правильного ответа, — то что реально вошло в нейрон. Таким образом, мы вычисляем разницу между желаемым и действительным входом в нейрон.
4. Генератором случайных чисел разбиваем по всем синаптическим связям, входящим в данный нейрон в процентном соотношении Здесь крайне важно использовать генератор действительно случайных чисел, а не псевдослучайных.. При этом:
(5).
5. Вычисляем — на сколько нужно изменить сигнал, исходящий из нейрона предыдущего слоя, при этом учитываем, что данный сигнал идет на все нейроны последующего слоя умноженный на соответствующие веса связей. При этом мы хотим распределить ошибку и на веса связей и на выход предыдущего слоя, чтобы изменения затронули и предыдущие слои нейронной сети. Исходная система уравнений для первого нейрона (k-1) слоя:
. (6).
В данном случае получается (n+1) неизвестное — это и. Наиболее простым решением является следующее — пусть:
(7).
где — случайное число (). Далее подставляя установленное значение в первое уравнение системы (6) находим, после подставляем найденное значение выхода первого нейрона в остальные уравнения системы (6) находим новые значения весов связей. Система (6) составляется для каждого нейрона слоя (k-1).
6. Далее, аналогично вычисляются изменения для предыдущих слоев, в частности следующий шаг — вычислить через обратную функцию гиперболического тангенса, сколько должно получиться на входах нейронов слоя.
Экспериментальная часть проведена для решения задачи прогноза курса котировок на РТС, в частности использовались временные ряды для различных таймфреймов компании «Роснефть». Разработанный метод скоростного обучения будем сравнивать со стандартным методом обратного распространения ошибки. Программное обеспечение обоих методов для адекватности оценки написано на одном языке — VBA, при этом практически все функции и процедуры используются и для одного метода и для другого способа обучения, различие лишь в коде функции выполняющей непосредственно обучение Исходный код нейронной сети можно найти в сети Интернет по адресу: http: //apsheronsk. bozo.ru/Forex/forex.html .
При решении задач с помощью нейронных сетей необходимо вначале определиться с входами, выходами, количеством обучающих примеров, размером валидационной выборки и первоначальной структурой сети. Рассмотрим перечисленные этапы по порядку.
Определение входов и выходов. В задачах прогнозирования общепринято использование в качестве входного вектора так называемого «скользящего окна» [8].
Таблица № 1. Структура «скользящего окна» .
Вход № 1. | Вход № 2. | Вход № 3. | Вход № 4. | |
… | … | … | … | |
Выход в задачах прогнозирования нейронными сетями обычно используется один — прогнозное значение на следующей итерации. В рассматриваемой задаче на выходе должен формироваться сигнал значения изменения котировки на следующий момент времени. В качестве основного, прогнозируемого параметра целесообразно выбрать цену закрытия бара, либо подавать высоту японских свечей (или) Open — цена открытия бара, Low — низшая цена бара, High — наивысшая цена, Close — цена закрытия бара.. В качестве дополнительных входов в экспериментах использовались — относительное изменение цены на нефть марки Brent, так как «Роснефть» нефтяная компания, а также индекс РТС. Напомним также о необходимости качественного масштабирования входных данных [8].
На Рисунке 2 и 3 показаны типичные графики ошибок при обучении разными методами. Отметим, что одна итерация в скоростном методе по времени примерно равна 1.1 итерации метода BackProp.
Рисунок 2. График ошибки при методе обучения BackProp.
персептрон скоростной метод обучение Рисунок 3. График ошибки при скоростном методе обучения На Рисунке 3 видно высокое перерегулирование в процессе обучения по предлагаемому скоростному методу. В Таблице 2 представлены данные по времени обучения и точности воспроизводимости данных для скоростного и BackProp методов. Во временных показателях не учитывалось время предобработки данных, так как оно одинаково для обеих моделей.
Таблица 2 — Результаты экспериментов.
Кол-во обучающих примеров. | Ср. кол-во нейронов Количество нейронов в скрытом слое. Во всех экспериментах использовался один скрытый слой. | Ср. кол-во итераций обучения. | Точность при обучении, %. | Точность на новых примерах, %. | |||||
B Обозначения в колонках B — BackProp, F — скоростной метод обучения. | F. | B. | F. | B. | F. | B. | F. | ||
Таким образом, из экспериментов видно, что скоростной алгоритм обратного распространения ошибки существенно превосходит по времени обучения стандартный алгоритм обратного распространения ошибки при той же точности на валидационной выборке. В то же время на тех примерах, которые нейронная сеть не видела ни при обучении, ни при тестировании, стандартный алгоритм по точности превосходит скоростной. Авторы объясняют это тем, что стандартный алгоритм обратного распространения ошибки медленно и тщательно перерабатывает все примеры из обучающей выборки, а скоростной алгоритм действует по принципу «ближайшего шага к цели». Скоростной алгоритм обучения многослойного персептрона рекомендуется использовать, как оценочный, перед использованием стандартного алгоритма обратного распространения или его модификаций. То есть — если оценочный метод достигает за заданное количество итераций определенной ошибки, то весьма вероятно, что и стандартный алгоритм может обучиться на заданном множестве примеров. Также целесообразно использовать скоростной алгоритм обучения для задач в которых нет высоких требований по точности, но есть жесткие ограничения по времени обучения, например для задач решаемых в режиме реального времени.
- 1. Widrow B., Lehr M. A.30 years of adaptive neural networks: perceptron, madaline and backpropagation // Proceeding of the IEEE. — 1990. — Vol.78. — № 9. — P.1415 — 1442.
- 2. Вороновский Г. К. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности. Х.: ОСНОВА, 1997.112 с.
- 3. Галушкин.А. И. Нейрокомпьютерные системы. — М.: Издательское предприятие журнала «Радиотехника», 2000. — 205с.
- 4. Ежов А., Чечеткин В. Нейронные сети в медицине. «Открытые системы.» — 1997. — № 4. — С.34−37.
- 5. Заенцев И. В. Нейронные сети: основные модели. Учебное пособие. Воронеж: ВГУ. 1998. — 76с.
- 6. Пупков К. А., Егупов Н. Д. Методы классической и современной теории автоматического управления. Т.5. — М.: Издательство МГТУ им. Н. Э. Баумана, 2004. — 784 с.
- 7. Рутковская Д., Пилиньский М. Рутковский Л. «Нейронные сети, генетические алгоритмы и нечеткие системы». Пер. с польск., И. Д. Рудинского. М.: Горячая линия — Телеком, 2006.452 с.
- 8. Шумков Е. А. Система поддержки принятия решений предприятия на основе нейросетевых технологий: Дисс. канд. техн. наук. Краснодар, КубГТУ, 2004. — 158с.
- 9. Эрлих А. Технический анализ товарных и фондовых рынков. — М.: Юнити, 1996. — 215 с.