Модель Тригга-Лича

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Введение)
 
(43 промежуточные версии не показаны)
Строка 1: Строка 1:
-
== Введение ==
+
''Модель Тригга-Лича'' применяется в адаптивных методах прогнозирования временных рядов.
-
''Модель Тригга-Лича'' применяется в адаптивных методах прогнозирования временных рядов. Модель Тригга-Лича является моделью с повышенной способностью к самообучению - моделью с адаптивными параметрами адаптации.
+
 +
Модель Тригга-Лича относится к моделям с адаптивными параметрами адаптациями, то есть, является моделью с повышенной способностью к самообучению.
-
Существует довольно очевидная теорема: ''"Если непрерывная функция на концах некоторого интервала имеет значения разных знаков, то внутри этого интервала у нее есть корень (как минимум, один, но м.б. и несколько)"''. На базе этой теоремы построено численное нахождение приближенного значения корня функции. Обобщенно этот метод называется '''дихотомией''', т.е. '''делением отрезка на две части'''. Обобщенный алгоритм выглядит так:
+
А. Триггом и А. Личем было предложено модифицировать предсказывающие системы, использующие экспоненциальное сглаживание, посредствои изменения скорости реакции в зависимости от величины контнольного сигнала. В простейшей модели это эквивалентно регулированию параметра сглаживания <tex>\alpha</tex>. Наиболее очевидный способ заставить систему автоматически реагировать на расхождение прогнозов и фактических данных - это увеличение <tex>\alpha</tex> с тем, чтобы придать больший вес свежим данным и, таким образом, обеспечить более быстрое приспособление модели к новой ситуации. Как только система приспособилась, необходимо опять уменьшить величину <tex>\alpha</tex> для фильтрации шума.
-
#Задать начальный интервал <tex>[X_{left}..X_{right}]</tex>;
+
Простой способ достижения такой адаптивной скорости состоит в выборе
-
#Убедиться, что на концах функция имеет разный знак;
+
-
#Повторять
+
-
#*выбрать внутри интервала точку <tex>X</tex>;
+
-
#*сравнить знак функции в точке <tex>X</tex> со знаком функции в одном из концов;
+
-
#**если совпадает, то переместить этот конец интервала в точку <tex>X</tex>,
+
-
#**иначе переместить в точку <tex>X</tex> другой конец интервала;
+
-
:пока не будет достигнута нужная точность.
+
-
Варианты метода дихотомии различаются выбором точки деления. Рассмотрим варианты дихотомии: '''метод половинного деления''' и '''метод хорд'''.
+
::<tex>\alpha_t=|K_t|</tex>,
-
== Метод половинного деления==
+
где <tex>K_t</tex> - [[следящий контрольный сигнал]].
-
'''Метод половинного деления''' известен также как '''метод бисекции'''. В данном методе интервал делится ровно пополам.
+
[[Изображение:tl1.jpg|frame|Рис. 1. Сравнение реакций полиномиальных моделей нулевого порядка Брауна (<tex>\beta=0,9</tex>) и Тригга-Лича на ступенчатое изменение уровня ряда, <tex>\tau=1</tex>]]
-
Такой подход обеспечивает гарантированную сходимость метода независимо от сложности функции - и это весьма важное свойство. Недостатком метода является то же самое - метод никогда не сойдется быстрее, т.е. сходимость метода всегда равна сходимости в наихудшем случае.
+
[[Изображение:tl2.jpg|frame|Рис. 2. Сравнение реакций на линейное изменение уровня ряда полиномиальных моделей первого порядка Брауна и Тригга-Лича, <tex>\beta^2=0,9, \; \tau=1</tex>]]
-
Метод половинного деления:
+
[[Изображение:tl3.jpg|frame|Рис. 3. Сравнение моделей Брауна и Тригга-Лича, <tex>n=4; \; \beta^n=0,9, \; \tau=1</tex>]]
-
#Один из простых способов поиска ''корней функции одного аргумента''.
+
-
#Применяется для нахождения ''значений действительно-значной функции'', определяемому по какому-либо критерию (это может быть сравнение на ''минимум'', ''максимум'' или конкретное число).
+
-
=== Метод половинного деления как метод поиска корней функции ===
+
[[Изображение:tl4.jpg|frame|Рис. 4. Сравнение реакций простейших моделей Брауна и Тригга-Лича <tex>(n=1)</tex> на единичный импульс, <tex>\tau=1</tex>]]
-
==== Изложение метода ====
+
-
Перед применением метода для поиска корней функции необходимо отделить корни одним из известных способов, например, графическим методом. Отделение корней необходимо в случае, если неизвестно на каком отрезке нужно искать корень.
+
-
Будем считать, что корень <tex>t</tex> функции <tex>f(x)=0</tex> отделён на отрезке <tex>[a,b]</tex>. Задача заключается в том, чтобы найти и уточнить этот корень методом половинного деления. Другими словами, требуется найти приближённое значение корня с заданной точностью <tex>\eps</tex>.
+
На рис.1 показано испытание полиномиальной модели нулевого порядка с переменным параметром <tex>\alpha</tex> при прогнозировании искусственного ряда.
-
Пусть функция <tex>f</tex> непрерывна на отрезке <tex>[a,b]</tex>,
+
Крестики на рисунке отражают значения членов временного ряда, в котором наблюдается изменение ступенчатого типа. Ряд искусственно генерирован по модели
-
::<tex>f(a)\cdot f(b)<0, \; \eps=0,01</tex> и <tex>t\in[a,b]</tex> - единственный корень уравнения <tex>f(x)=0, \; a\le t\le b</tex>.
+
-
(Мы не рассматриваем случай, когда корней на отрезке <tex>[a,b]</tex> несколько, то есть более одного. В качестве <tex>\eps</tex> можно взять и другое достаточно малое положительное число, например, <tex>0,001</tex>.)
+
::<tex>x_t=a'_1+\eps_t</tex>, при <tex>t<t_1</tex>;
-
Поделим отрезок <tex>[a,b]</tex> пополам. Получим точку <tex>c= \frac {a+b}{2}, \; a<c<b</tex> и два отрезка <tex>[a,c], \; [c,b]</tex>.
+
::<tex>x_t=a''_1+\eps_t</tex>, при <tex>t>t_1</tex>;
-
*Если <tex>f(c)=0</tex>, то корень <tex>t</tex> найден (<tex>t=c</tex>).
+
-
*Если нет, то из двух полученных отрезков <tex>[a,c]</tex> и <tex>[c,b]</tex> надо выбрать один <tex>[a_1;b_1]</tex> такой, что <tex>f(a_1)\cdot f(b_1)<0</tex>, то есть
+
-
**<tex>[a_1;b_1] = [a,c]</tex>, если <tex>f(a)\cdot f(c)<0</tex> или
+
-
**<tex>[a_1;b_1] = [c,b]</tex>, если <tex>f(c)\cdot f(b)<0</tex>.
+
-
:Новый отрезок <tex>[a_1;b_1]</tex> делим пополам. Получаем середину этого отрезка <tex>c_1=\frac {a_1+b_1}{2}</tex> и так далее.
+
-
Для того, чтобы найти приближённое значение корня с точностью до <tex> \eps >0</tex>, необходимо остановить процесс половинного деления на таком шаге <tex>n</tex>, на котором <tex>|b_n-c_n|<\eps</tex> и вычислить <tex>x=\frac {a_n+b_n}{2}</tex>. Тогда можно взять <tex>t\approx x</tex>.
+
::<tex>a'_1=const</tex>;
-
==== Реализация метода на С++ и числовой пример ====
+
::<tex>a'_1=const</tex>;
 +
::<tex>a'_1\ne a''_1</tex>,
 +
где <tex>\eps_t</tex> - неавтокоррелирванные случайные нормальные отклонения с нулевым математическим ожиданием и дисперсией <tex>\sigma_2</tex>.
 +
 +
Реакция простейшей модели экспоненциального типа с постоянным коэффициентом сглаживания <tex>\alpha=0,1</tex> отмечена кружками. Пунктирная линия характеризует реакцию подобной же системы, но с переменным <tex>\alpha_t</tex>. Можно видеть, что система с адаптивным <tex>\alpha</tex> приспосабливается к ступенчатым изменениям намного быстрее, а после отработки ступеньки размах ее колебаний не больше, чем у обычной системы, поскольку контрольный сигнал, построенный по принципу сглаженной ошибки, остается большим, как правило, только пока прогнозирующая система находится в переходном режиме. Аналогичная модификация возможна и для более сложных моделей. Рассмотрим частный случай обобщенной модели Р.Брауна ([[модель Брауна]]) - модель линейного роста (<tex>n=2</tex>)
 +
 +
::<tex>\hat x_\tau(t)=\hat a_{1,t}+\hat a_{2,t}\tau</tex>,
 +
 +
для которой уравнения обновления коэффицинтов будут:
 +
 +
::<tex>\hat a_{1,t}=\hat a_{1,t-1}+\hat a_{2,t-1}+(1-\beta^2)\eps_1(t-1)</tex>;
 +
::<tex>\hat a_{2,t}=\hat a_{2,t-1}+(1-\beta)^2\eps_1(t-1)</tex>.
 +
 +
Из уравнений видно, что оценка среднего уровня процесса <tex>\hat a_1</tex> реагирует на ошибку прогноза со скоростью <tex>1-\beta^2</tex>. В моделях Р.Брауна с <tex>n</tex> параметрами скорость реакции определяется величиной <tex>1-\beta^n</tex>, называемой эквивалентной постоянной сглаживания.
 +
 +
В многопараметрической модели Р.Брауна представляется естественным приравнять эквивалентную постоянную сглаживания модулю контрольного сигнала. В линейной модели мы могли бы положить
 +
 +
::<tex>1-\beta^2_t=|K_t|</tex>,
 +
 +
откуда
 +
 +
::<tex>\beta_t=\sqr{1-|K_t|}</tex>.
 +
 +
Это означало бы, что каждый элемент вектора <tex>h</tex> как функции от <tex>\beta</tex> каждый раз претерпевает соответствующие изменения. Однако эксперименты показали, что зависимость всех элементов <tex>h_i</tex> от контрольного сигнала ухудшает прогноз, делая его неустойчивым. Если же ограничить модификацию вектора <tex>h</tex> только его первой составляющей <tex>h_1</tex>, то эксперимент показывает, что во всех случаях такая система приводит к более стабильным результатам.
 +
 +
На рис. 2 показан ряд с линейной тенденцией роста, на который наложены те же случайные данные, что и на рис. 1. В этом примере среднеквадратичное отклонение шума взято пропорциональным среднему уровню ряда. Реакция, соответствующая прогнозу на один шаг вперед обычной модели линейного роста с эквивалентной постоянной <tex>1-\beta^2=0,1</tex>, отмечена кружками. Прогнозы аналогичной модели, но с <tex>h_1=|K_t|</tex> показаны пунктиром.
 +
 +
На рис. 3 линия, обозначенная крестиками, показывает те же случайные данные, но с синусоидальным колебанием с периодом 52 (52 недели в году).
 +
 +
Через 15 интервалов возникает ступенчатое изменение и отмеченная кружками линия показывает реакцию модели
 +
 +
::<tex>\hat x_\tau(t)=\hat a_{1,t}+\hat a_{2,t}\tau+\hat a_{3,t}sin{\frac{2\pi\tau}{52}}+\hat a_{4,t}cos{\frac{2\pi\tau}{52}}</tex>,
 +
 +
при <tex>1-\beta^4=0,1, \; \tau=1</tex>.
 +
 +
Пунктирная линия обозначает реакцию той же модели, когда <tex>h_1=|K_t|</tex>.
 +
 +
Практическое моделирование доло результаты, похожие на представленные на рис. 1-3, т.е. приравнивание <tex>h_1</tex> модулю следящего контрольного сигнала дает значительно большую скорость приспособления к новому характеру ряда.
 +
 +
Ясно, что не во всех реально возникающих ситуациях модели с адаптивным параметром <tex>\alpha</tex> дают лучшие прогнозы по сравнению с обычными адаптивными системами. На рис. 4 показаны сравнительные реакции этих моделей на большой одиночный импульс. Система с адаптивной скоростью испытывает большее возмущение от этой случайной помехи. М.Л. Шоун предлагает решать проблему чрезмерной реакции на большой одиночный импульс путем задержки использования контрольного сигнала на один шаг. Если взять в качестве первого элемента вектора <tex>h</tex> для данного момента <tex>t</tex> модуль контрольного сигнала, подсчитанный в предыдущий момент <tex>t-1</tex>, то отмеченный недостаток преодолевается. Реакция на ступеньку или на линейный тренд станет при этом медленнее.
 +
 +
Метод приравнивания <tex>h_1=|K_t|</tex> прост и эффективен. Особенно он удобен там, где прогнозы делаются на компьютерах для большого числа рядов. Если динамика ряда не изменяется, то шум фильтруется столь же эффективно, как и обычным методом с постоянным параметром <tex>\alpha</tex>. Когда такие возмущения все же случаются, адаптация происходит более быстро.
 +
 +
Этот метод особенно ценен для моделирования рядов с короткой историей или на первоначальном этапе построения модели. Чтобы им воспользоваться, достаточно провести грубую оценку коэффициентов прогнозирующей модели. Если ошибки прогнозов по этой модели велики, то у контрольного сигнала проявляется тенденция к быстрому абсолютному росту и система приспосабливается с соответствующей скоростью. Этот метод позволяет обойти проблему определения оптимального значения <tex>\alpha</tex>. Однако возникает задача выбора наилучшего значения <tex>\gamma</tex> для подсчета контрольного сигнала.
 +
 +
В приведенных выше примерах моделирования величина <tex>\gamma=0,1</tex>. Если необходима большая осторожность по отношению к скорости процесса адаптации, величину <tex>\gamma</tex> можно уменьшить и взять <tex>\gamma=0,05</tex>. После того как <tex>\gamma</tex> задана, модель работает автоматически. Иногда все же необходимо вмещательство для корректировки прогнозов, даваемых системой с адаптивной скоростью реакции, так как нельзя ожидать, что система справится с любыми изменениями в структуре ряда. Кроме того, исследователь может располагать ценной дополнительной информацией.
 +
 +
Моделирование реакции простейшей модели на ступенчатые изменения показало, что хотя модель довольно быстро устанавливается на новом среднем уровне, контрольный сигнал еще некоторое время остается большим. Это мешает системе отфильтровать случайный шум, что особенно проявляется, когда константа <tex>\gamma</tex>, использованная для получения сглаженной ошибки и среднего абсолютного отклонения, мала, скажем, <tex>0,05</tex>. Большая величина <tex>\gamma</tex> увеличивает дисперсию экспоненциальной средней ошибки, до некоторой степени ухудшая возможности достижения цели, ради которой используется адаптивная скорость реакции.
{{Задание|Коликова Катя|Vokov|31 декабря 2009}}
{{Задание|Коликова Катя|Vokov|31 декабря 2009}}
 +
 +
== Литература==
 +
''Лукашин Ю. П.'' Адаптивные методы краткосрочного прогнозирования временных рядов (стр. 98 - 103). — М.: Финансы и статистика, 2003.

Текущая версия

Модель Тригга-Лича применяется в адаптивных методах прогнозирования временных рядов.

Модель Тригга-Лича относится к моделям с адаптивными параметрами адаптациями, то есть, является моделью с повышенной способностью к самообучению.

А. Триггом и А. Личем было предложено модифицировать предсказывающие системы, использующие экспоненциальное сглаживание, посредствои изменения скорости реакции в зависимости от величины контнольного сигнала. В простейшей модели это эквивалентно регулированию параметра сглаживания \alpha. Наиболее очевидный способ заставить систему автоматически реагировать на расхождение прогнозов и фактических данных - это увеличение \alpha с тем, чтобы придать больший вес свежим данным и, таким образом, обеспечить более быстрое приспособление модели к новой ситуации. Как только система приспособилась, необходимо опять уменьшить величину \alpha для фильтрации шума.

Простой способ достижения такой адаптивной скорости состоит в выборе

\alpha_t=|K_t|,

где K_t - следящий контрольный сигнал.

Рис. 1.  Сравнение реакций полиномиальных моделей нулевого порядка Брауна () и Тригга-Лича на ступенчатое изменение уровня ряда,
Рис. 1. Сравнение реакций полиномиальных моделей нулевого порядка Брауна (\beta=0,9) и Тригга-Лича на ступенчатое изменение уровня ряда, \tau=1
Рис. 2.  Сравнение реакций на линейное изменение уровня ряда полиномиальных моделей первого порядка Брауна и Тригга-Лича,
Рис. 2. Сравнение реакций на линейное изменение уровня ряда полиномиальных моделей первого порядка Брауна и Тригга-Лича, \beta^2=0,9, \; \tau=1
Рис. 3.  Сравнение моделей Брауна и Тригга-Лича,
Рис. 3. Сравнение моделей Брауна и Тригга-Лича, n=4; \; \beta^n=0,9, \; \tau=1
Рис. 4.  Сравнение реакций простейших моделей Брауна и Тригга-Лича  на единичный импульс,
Рис. 4. Сравнение реакций простейших моделей Брауна и Тригга-Лича (n=1) на единичный импульс, \tau=1

На рис.1 показано испытание полиномиальной модели нулевого порядка с переменным параметром \alpha при прогнозировании искусственного ряда.

Крестики на рисунке отражают значения членов временного ряда, в котором наблюдается изменение ступенчатого типа. Ряд искусственно генерирован по модели

x_t=a'_1+\eps_t, при t<t_1;
x_t=a''_1+\eps_t, при t>t_1;
a'_1=const;
a'_1=const;
a'_1\ne a''_1,

где \eps_t - неавтокоррелирванные случайные нормальные отклонения с нулевым математическим ожиданием и дисперсией \sigma_2.

Реакция простейшей модели экспоненциального типа с постоянным коэффициентом сглаживания \alpha=0,1 отмечена кружками. Пунктирная линия характеризует реакцию подобной же системы, но с переменным \alpha_t. Можно видеть, что система с адаптивным \alpha приспосабливается к ступенчатым изменениям намного быстрее, а после отработки ступеньки размах ее колебаний не больше, чем у обычной системы, поскольку контрольный сигнал, построенный по принципу сглаженной ошибки, остается большим, как правило, только пока прогнозирующая система находится в переходном режиме. Аналогичная модификация возможна и для более сложных моделей. Рассмотрим частный случай обобщенной модели Р.Брауна (модель Брауна) - модель линейного роста (n=2)

\hat x_\tau(t)=\hat a_{1,t}+\hat a_{2,t}\tau,

для которой уравнения обновления коэффицинтов будут:

\hat a_{1,t}=\hat a_{1,t-1}+\hat a_{2,t-1}+(1-\beta^2)\eps_1(t-1);
\hat a_{2,t}=\hat a_{2,t-1}+(1-\beta)^2\eps_1(t-1).

Из уравнений видно, что оценка среднего уровня процесса \hat a_1 реагирует на ошибку прогноза со скоростью 1-\beta^2. В моделях Р.Брауна с n параметрами скорость реакции определяется величиной 1-\beta^n, называемой эквивалентной постоянной сглаживания.

В многопараметрической модели Р.Брауна представляется естественным приравнять эквивалентную постоянную сглаживания модулю контрольного сигнала. В линейной модели мы могли бы положить

1-\beta^2_t=|K_t|,

откуда

\beta_t=\sqr{1-|K_t|}.

Это означало бы, что каждый элемент вектора h как функции от \beta каждый раз претерпевает соответствующие изменения. Однако эксперименты показали, что зависимость всех элементов h_i от контрольного сигнала ухудшает прогноз, делая его неустойчивым. Если же ограничить модификацию вектора h только его первой составляющей h_1, то эксперимент показывает, что во всех случаях такая система приводит к более стабильным результатам.

На рис. 2 показан ряд с линейной тенденцией роста, на который наложены те же случайные данные, что и на рис. 1. В этом примере среднеквадратичное отклонение шума взято пропорциональным среднему уровню ряда. Реакция, соответствующая прогнозу на один шаг вперед обычной модели линейного роста с эквивалентной постоянной 1-\beta^2=0,1, отмечена кружками. Прогнозы аналогичной модели, но с h_1=|K_t| показаны пунктиром.

На рис. 3 линия, обозначенная крестиками, показывает те же случайные данные, но с синусоидальным колебанием с периодом 52 (52 недели в году).

Через 15 интервалов возникает ступенчатое изменение и отмеченная кружками линия показывает реакцию модели

\hat x_\tau(t)=\hat a_{1,t}+\hat a_{2,t}\tau+\hat a_{3,t}sin{\frac{2\pi\tau}{52}}+\hat a_{4,t}cos{\frac{2\pi\tau}{52}},

при 1-\beta^4=0,1, \; \tau=1.

Пунктирная линия обозначает реакцию той же модели, когда h_1=|K_t|.

Практическое моделирование доло результаты, похожие на представленные на рис. 1-3, т.е. приравнивание h_1 модулю следящего контрольного сигнала дает значительно большую скорость приспособления к новому характеру ряда.

Ясно, что не во всех реально возникающих ситуациях модели с адаптивным параметром \alpha дают лучшие прогнозы по сравнению с обычными адаптивными системами. На рис. 4 показаны сравнительные реакции этих моделей на большой одиночный импульс. Система с адаптивной скоростью испытывает большее возмущение от этой случайной помехи. М.Л. Шоун предлагает решать проблему чрезмерной реакции на большой одиночный импульс путем задержки использования контрольного сигнала на один шаг. Если взять в качестве первого элемента вектора h для данного момента t модуль контрольного сигнала, подсчитанный в предыдущий момент t-1, то отмеченный недостаток преодолевается. Реакция на ступеньку или на линейный тренд станет при этом медленнее.

Метод приравнивания h_1=|K_t| прост и эффективен. Особенно он удобен там, где прогнозы делаются на компьютерах для большого числа рядов. Если динамика ряда не изменяется, то шум фильтруется столь же эффективно, как и обычным методом с постоянным параметром \alpha. Когда такие возмущения все же случаются, адаптация происходит более быстро.

Этот метод особенно ценен для моделирования рядов с короткой историей или на первоначальном этапе построения модели. Чтобы им воспользоваться, достаточно провести грубую оценку коэффициентов прогнозирующей модели. Если ошибки прогнозов по этой модели велики, то у контрольного сигнала проявляется тенденция к быстрому абсолютному росту и система приспосабливается с соответствующей скоростью. Этот метод позволяет обойти проблему определения оптимального значения \alpha. Однако возникает задача выбора наилучшего значения \gamma для подсчета контрольного сигнала.

В приведенных выше примерах моделирования величина \gamma=0,1. Если необходима большая осторожность по отношению к скорости процесса адаптации, величину \gamma можно уменьшить и взять \gamma=0,05. После того как \gamma задана, модель работает автоматически. Иногда все же необходимо вмещательство для корректировки прогнозов, даваемых системой с адаптивной скоростью реакции, так как нельзя ожидать, что система справится с любыми изменениями в структуре ряда. Кроме того, исследователь может располагать ценной дополнительной информацией.

Моделирование реакции простейшей модели на ступенчатые изменения показало, что хотя модель довольно быстро устанавливается на новом среднем уровне, контрольный сигнал еще некоторое время остается большим. Это мешает системе отфильтровать случайный шум, что особенно проявляется, когда константа \gamma, использованная для получения сглаженной ошибки и среднего абсолютного отклонения, мала, скажем, 0,05. Большая величина \gamma увеличивает дисперсию экспоненциальной средней ошибки, до некоторой степени ухудшая возможности достижения цели, ради которой используется адаптивная скорость реакции.


Данная статья является непроверенным учебным заданием.
Студент: Участник:Коликова Катя
Преподаватель: Участник:Vokov
Срок: 31 декабря 2009

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Литература

Лукашин Ю. П. Адаптивные методы краткосрочного прогнозирования временных рядов (стр. 98 - 103). — М.: Финансы и статистика, 2003.

Личные инструменты