Прогнозирование на основе аппарата нейронных сетей

Автор работы: Пользователь скрыл имя, 28 Декабря 2011 в 00:41, курсовая работа

Описание работы

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

Файлы: 1 файл

курсовая.rtf

— 607.47 Кб (Скачать файл)

     4.2.2 Описание НС и алгоритма обратного распространения

     Чтобы обучить нейронную сеть решению какой-либо задачи, мы должны подправлять веса каждого элемента таким образом, чтобы уменьшалась ошибка - расхождение между действительным и желаемым выходом. Для этого нужно, чтобы нейронная сеть вычисляла производную от ошибки по весам (EW) . Другими словами, она должна вычислять, как изменяется ошибка при небольшом увеличении или уменьшении каждого веса. Чаще всего для вычисления EW применяется алгоритм обратного распространением.

     Чтобы реализовать этот алгоритм, мы сначала должны дать математическое описание нейронной сети. Предположим, что элемент j - типичный элемент выходного слоя, а элемент i - типичный элемент слоя, который предшествует выходному. Активность элемента выходного слоя определяется двухшаговой процедурой. Сначала вычисляется суммарный взвешенный вход Xj с помощью формулы Xj = S (Yi * Wij) , (4.1) i где Yi - уровень активности i-го элемента в предшествующем слое и Wij - вес связи между i-м и j-м элементами.

     Далее, элемент вычисляет активность Yj с помощью некоторой функции от суммарного взвешенного входа. Обычно применяется сигма-функция: Yj = 1 / (1 + e^(-Xj) ) . (4.2) После того как активности всех выходных элементов определены, сеть вычисляет ошибку, которая определяется выражением E = 1/2 * S (Yj - Dj) ^2, (4.3) j где Yj - уровень активности j-го элемента в верхнем слое, а Dj желаемый выход j-го элемента.

     Алгоритм обратного распространения состоит из четырех шагов.

     1) Вычислить, насколько быстро меняется ошибка при изменении выходного элемента. Эта производная ошибки (EA) есть разность между действительной и ожидаемой активностью.  

     dE EAj = ---- = Yj - Dj. (4.4) dYj  

     2) Вычислить, насколько быстро изменяется ошибка по мере изменения суммарного входа, получаемого выходным элементом. Эта величина (EI) есть результат шага 1, умноженный на скорость изменения выходного элемента с изменением его суммарного входа.  

     dE dE dYj EIj = = --- * --= EIj Yj (1 - Yj) . (4.5) dXj dYj dXj  

     3) Вычислить, как быстро изменяется ошибка по мере изменения веса на входной связи выходного элемента. Эта величина (EW) есть результат шага 2, умноженный на уровень активности элемента, из которого исходит связь.  

     dE dE dXj EWij = ---- = --- * --- = EIj Yi. (4.6) dWij dXj dXij  

     4) Вычислить, как быстро изменяется ошибка с изменением активности элемента из предыдущего слоя. Этот ключевой шаг позволяет применять обратное распространение к многослойным сетям. Когда активность элемента из предыдущего слоя изменяется, это влияет на активности всех выходных элементов, с которыми он связан. Поэтому, чтобы подсчитать суммарное воздействие на ошибку, мы складываем все эти воздействия на выходные элементы. Но эти воздействия нетрудно подсчитать. Этот результат шага 2, умноженный на вес связи к соответствующему выходному элементу.  

     dE dE dXj EAi = ---- = S (--- * ---) = S (EIj Wij) . (4.7) dYi j dXj dYij j  

     Пользуясь шагами 2 и 4, мы можем преобразовать величины EA одного слоя элементов в EA предыдущего слоя. Эту процедуру можно повторять, чтобы вычислять EA стольких предыдущих слоев, сколько их есть. Зная EA для элемента, мы можем воспользоваться шагами 2 и 3, чтобы вычислить EW на его выходных связях.  

     4.2.3 Современная оценка алгоритма обратного распространения

     На протяжении нескольких лет после его изобретения алгоритм обратного распространением оставался почти незамеченным, вероятно, потому, что не был в должной мере оценен специалистами. В начале 80-х годов Д. Румельхарт, работавший в то время в Калифорнийском университете в Сан-Диего, и Д. Паркер из Станфордского университете независимо друг от друга вновь открыли алгоритм. В 1986 году Румельхарт, Р. Уильямс, также из Калифорнийского университета в Сан-Диего, и Джеффери Е. Хинтон [5] продемонстрировали способность алгоритма обучить скрытые элементы вырабатывать интересные представления для сложных паттернов на входе и тем самым сделали его известным.

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

     Р. Андерсен из Массачусетского технологического института и Д. Зипсер из Калифорнийского университета в Сан-Диего показали, что алгоритм обратного распространения представляет собой весьма эффективный инструмент для понимания функций некоторых нейронов в коре головного мозга. Они научили нейронную сеть реагировать на зрительные стимулы, применив алгоритм обратного распространения. Затем они обнаружили, что реакция скрытых элементов удивительно схожа с реакцией реальных нейронов, выполняющих преобразование зрительной информации, поступающей от сетчатки, в форму, необходимую для более глубоких областей мозга, перерабатывающих зрительную информацию. 

     Выводы  

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

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

     Более серьезную проблему представляет собой быстродействие алгоритма обратного распространения. Здесь центральным является вопрос о том, как быстро растет время, необходимое для обучения, по мере возрастания размеров сети. Время, требующееся для вычисления производных от ошибки по весам на заданном тренировочном примере, пропорционально размерам сети, поскольку объем вычислений пропорционален количеству весов. Однако более крупные сети требуют большего количества тренировочных примеров, и им приходится модифицировать веса большее число раз. Следовательно, время обучения растет значительно быстрее, чем размеры сети.

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

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

 

      5. Прогнозирование курса UKB/USD  

     В данной главе описаны эксперименты по прогнозированию курса американского доллара по отношению к украинскому карбованцу (UKB/USD) . Сначала описаны задачи исследования и общая структура экспериментов. Далее описаны проделанные эксперименты, при этом подробно перечислены особенности каждого из них. Для экспериментов, которые показали удовлетворительные результаты обучения (сеть распознала не менее 80% образов, на которых обучалась) в приложениях приведены таблицы с подробным описанием результатов по каждому образу, который распознавался. 

     5.1 Общий подход к прогнозированию курса UKB/USD  

     Исследования проводились на основе модели сети с обратным распространением (подробнее смотри главу 3) . Примененная методика прогнозирования подробно описана в главе 4.

     Целью экспериментов было прогнозирование курса UKB/USD. Для достижения данной цели было проведено исследование влияния представления исторических и прогнозируемых данных на ошибку прогнозирования. Также были рассмотрены вопросы влияния структуры НС на скорость обучения сети и ошибку прогнозирования. При этом ставились следующие задачи: - поиск критериев прогнозирования; - поиск оптимального представления исторических данных о курсе; - поиск оптимального представления результата прогнозирования; - поиск оптимального размера окна; - поиск оптимальной структуры сети.

     Прогнозирование курса UKB/USD проводилось на основе временной последовательности ежедневных данных о курсе. Такой подход к прогнозированию основан на идее американских экономистов, что для прогнозирования некоторых экономических показателей вполне достаточно исследования истории их изменения. Успешное применение данного подхода другими исследователями [7] для прогнозирования курсов DM/USD и SUR/USD позволяет надеяться на успех прогнозирования UKB/USD.

     Исходными данными для экспериментов служили ежедневные измерения курса UKB/USD с 15.06.93 по 26.06.95 всего 842 измерений (данные взяты из архивов банка Porto-Franco) . Прогнозировалось среднее значение курса за день (среднее арифметическое дневных курсов покупки и продажи) .

     Каждый из экспериментов, можно разбить на несколько этапов. Первым этапом было формирование обучающей выборки. На этом этапе определяется вид представления исторических и прогнозируемых данных и происходит формирование наборов, подаваемых на входные нейроны и соответствующих им наборов снимаемых с выходов сети (подробнее смотри раздел 2.2.4) . Большинство опытов прогнозировало не фактический курс, а его относительное изменение (ОИК) . Относительное изменение курса определяется по формуле OIKt = (Kt+1 - Kt) /Kt (5.1) Для автоматизации процесса формирования обучающих выборок был использован пакет MS EXCEL 5.0.

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

     На третьем этапе проводилось тестирование обучения сети. На вход подавалось порядка 4 - 5% наборов из обучающей выборки и определялось качество распознавания сети. Опыт считался успешным, если относительная достоверность распознавания образов была не менее 80%.

     На четвертом этапе проводилась симуляция прогнозирования. На вход сети подавались наборы, которые не были внесены в обучающую выборку, но результат по ним (прогноз) известен.

     Результаты успешных опытов приведены в приложениях 2.1-2.3. Каждая из таблиц приложений разделены на две части. В первой расположены результаты тестирования обучения, во второй - результаты симуляции прогнозирования. Первый столбец в таблице описания опытов содержит номер набора в тестовой или симуляционной выборке. Остальные столбцы содержат результаты экспериментов. В них может находиться знак *, или пара цифр. Энак * означает, что данный набор распознан правильно. Цифры в строке обозначают, что при распознавании произошла ошибка. Первая цифра обозначает номер нейрона, который соответствует фактическому значению переменной, а вторая - фактическому.  

Информация о работе Прогнозирование на основе аппарата нейронных сетей