Исследование скорости сходимости параметров и гиперпараметров (пример)

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{TOCright}} Для фиксированной регрессионной модели исследуется скорость сходимости параметров и гиперпа...)
(Исходный код)
 
(11 промежуточных версий не показаны.)
Строка 7: Строка 7:
<center><tex>\mathbf{y} = f(\mathbf{x}, \mathbf{w}) + \mathbf{\varepsilon}</tex></center>
<center><tex>\mathbf{y} = f(\mathbf{x}, \mathbf{w}) + \mathbf{\varepsilon}</tex></center>
-
Пусть случайная величина <tex>\mathbf{\varepsilon}</tex> имеет нормальное распределение <tex>\mathbf{\varepsilon} \in N(0, \sigma^2)</tex>.
+
Пусть случайная величина <tex>\mathbf{\varepsilon}</tex> имеет нормальное распределение <tex>\mathbf{\varepsilon} \in N(0, \sigma^2)</tex>. При этом будем обозначать <tex>\mathbf{\beta}=\frac1{\sigma^2}</tex>.
-
Вектор параметров модели <tex>\mathbf{w}</tex> рассматривается как многомерная случайная величина. Пусть плотность распределения параметров имеет вид многомерного нормального распределения <tex>N(\mathbf{0}, A)</tex> с матрицей ковариации <tex>A</tex>.
+
Вектор <tex>\mathbf{w}</tex> называется параметрами модели и рассматривается как многомерная случайная величина. Пусть плотность распределения параметров имеет вид многомерного нормального распределения <tex>N(\mathbf{0}, A)</tex> с матрицей ковариации <tex>A</tex>. В данном примере будут рассматриваться 2 случая: <tex>A^{-1}=diag(\alpha_1, \alpha_2, \dots, \alpha_W)=diag(\mathbf{\alpha})</tex>, где <tex>W</tex> - число параметров модели, и <tex>A^{-1}=\alpha I_W</tex>, где <tex>I_W</tex> - единичная матрица размерности <tex>W</tex>.
-
Рассматриваются 3 типа моделей:
+
Величины <tex>\mathbf{\beta}</tex> и <tex>\mathbf{\alpha}</tex> называются гиперпараметрами модели.
-
1) модель полиномиальной регрессии <tex>y=\sum_{i=1}^na_ix^{i-1}</tex>
+
Для нескольких фиксированных функций <tex>f</tex>, задающих модель, через двухуровневый байесовский вывод происходит настройка параметров и гиперпараметров. Требуется проанализировать изменение параметров и гиперпараметров по мере настройки.
-
2) модель <tex>y = a + b\, ln x</tex>
 
-
3) модель <tex>y = a + \frac{b}{x}</tex>
+
=Алгоритм настройки регрессионной модели (двухуровневый байесовский вывод)=
 +
Настройка модели происходит через двухуровневый байесовский вывод.
-
3) модель <tex>y = a + b\, e^{-cx}</tex>
+
==Описание метода==
 +
Т.к. <tex>\mathbf{\varepsilon} \in N(0, \beta^{-2})</tex>, то для фиксированной модели f плотность вероятности появления данных
-
4) модель трехпараметрического распределения Вейбулла <tex>y=abx^{b-1}\exp(-a(x-c)^b)</tex>
+
<center><tex>P(y|\,\mathbf{x},\mathbf{w}, \beta, f)\equiv P(D|\, \mathbf{w}, \beta, f)=(\frac{2 \pi}\beta)^{-\frac{N}2}\, \exp(-\beta E_D)</tex>,</center>
 +
где
 +
<center> <tex>E_D = \frac12 \sum_{n=1}^N (f(\mathbf{w},\mathbf{x}_n)-y_n)^2</tex></center>
-
5) модель с тригонометрическими функциями <tex>y=a_0+\sum_{i=1}^n\bigl(a_i\cos(i\omega{x})+b_i\sin(i\omega{x})\bigr)</tex>
+
Т.к. <tex>\mathbf{w} \in N(\mathbf{0}, A)</tex>, то
 +
<center><tex>P(\mathbf{w}|\, A, f)=\frac{1}{(2 \pi)^{\frac{W}2}{|A|}^{\frac12}}\,\exp(-E_W)</tex>,</center>
 +
где
 +
<center><tex>E_W = \frac12 \mathbf{w}^T A^{-1}\mathbf{w}</tex></center>
-
Для каждой модели происходит настройка через двухуровневый байесовский вывод. Требуется проанализировать изменение параметров и гиперпараметров по мере настройки в каждой модели.
+
Тогда, если обозначить <tex> S(\mathbf{w})=E_W + \beta E_D = \frac12 \mathbf{w}^T A^{-1}\mathbf{w} + \beta E_D</tex>, то
 +
 
 +
<center><tex>P(\mathbf{w}|\,D, A, \beta, f)= \frac{P(D|\, \mathbf{w}, \beta, f) P(\mathbf{w}|\, A, f)}{P(D|\, A, \beta, f)} \propto \exp(-S(\mathbf{w}))</tex></center>
 +
 
 +
Таким образом, минимизация <tex> S(\mathbf{w})</tex> по <tex>\mathbf{w}</tex> дает максимум априорной плотности распределения параметров <tex>\mathbf{w}</tex> на выборке <tex>D</tex>. Минимизация осуществляется алгоритмом Левенберга-Марквардта.
 +
 
 +
 
 +
 
 +
Считая, что в точке минимума <tex>\mathbf{w}^*</tex> функционал <tex> S(\mathbf{w})</tex> представим в виде:
 +
 
 +
<center><tex> S(\mathbf{w}) = S(\mathbf{w}^*) + \frac12 \Delta\mathbf{w}^T H \Delta\mathbf{w}</tex>, где
 +
<tex>H=-\nabla\nabla S(w)|_{w=w^*}</tex> - гессиан функции ошибок,</center>
 +
 
 +
получаем, что логарифм функции правдоподобия равен
 +
 
 +
<center><tex>ln P(D|\,\mathbf{\alpha}, \mathbf{\beta})= - \frac12 ln|A| - \frac{N}2 ln 2\pi + \frac{N}2 ln \beta - \beta E_D - E_W -\frac12 ln|H| </tex></center>
 +
 
 +
 
 +
 
 +
Гиперпараметры <tex>\mathbf{\beta}</tex> и <tex>\mathbf{\alpha}</tex> находятся итерационно из условия максимизации полученной функции правдоподобия:
 +
 
 +
При <tex>A^{-1}=diag(\mathbf{\alpha})=diag(\alpha_1, \alpha_2, \dots, \alpha_W)</tex>
 +
 
 +
:<tex>\alpha_i= \frac{-\lambda_i + \sqrt{\lambda_i^2 + 4 \frac{\lambda_i}{w_i^2}}}2</tex>, где <tex>\lambda_i</tex> - собственные числа матрицы <tex>H_D</tex> - части Гессиана, не зависящей от <tex>A</tex>.
 +
 
 +
:<tex>\beta= \frac{N-\gamma}{2 E_D}</tex>, где <tex>\gamma=\sum^W_{j=1}\frac{\lambda_j}{\lambda_j+a_j}</tex>
 +
 
 +
 
 +
При <tex>A^{-1}=\alpha I_W</tex>
 +
 
 +
:<tex>\alpha = \frac{W-\delta}{\mathbf{w}^T \mathbf{w}}</tex>, где <tex>\delta=\sum^W_{j=1}\frac{\alpha}{\lambda_j+\alpha}</tex>
 +
 
 +
:<tex>\beta= \frac{N-\gamma}{2 E_D}</tex>, где <tex>\gamma=\sum^W_{j=1}\frac{\lambda_j}{\lambda_j+\alpha}</tex>
 +
 
 +
==Алгоритм==
 +
1) Задаем начальные значения <tex>\mathbf{w_0}</tex>, <tex>\mathbf{\alpha_0}</tex> и <tex>\mathbf{\beta_0}</tex>
 +
 
 +
2) Ищем локальный минимум функции ошибки <tex> S(\mathbf{w})</tex> по <tex>\mathbf{w}</tex>
 +
 
 +
3) Ищем локальный максимум функции правдоподобия гиперпараметров <tex>P(D|\,\mathbf{\alpha}, \mathbf{\beta})</tex> по <tex>\mathbf{\alpha}, \mathbf{\beta}</tex>
 +
 
 +
4) Повторяем шаги 2 и 3 до сходимости функционала <tex> S(\mathbf{w})</tex>
 +
 
 +
=Вычислительный эксперимент=
 +
Эксперименты проводятся на 6 моделях, для каждой из которых рассматриваются 2 случая: <tex>A^{-1}=diag(\mathbf{\alpha})</tex> (alpha variable) и <tex>A^{-1}=\alpha I_W</tex> (alpha constant).
 +
 
 +
Для каждого случая проводится настройка модели по описанному алгоритму. Затем строятся графики изменения параметров и гиперпараметров по шагам алгоритма (величины параметров и гиперпараметров нормированы).
 +
 
 +
'''Рассматриваемые модели''':
 +
 
 +
1) модель полиномиальной регрессии <tex>y=\sum_{i=1}^4 w_i x^{i-1}</tex>
 +
 
 +
[[Изображение:1ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:1ParamConvergence(AlphaVariable).png|border|530x500px]]
 +
 
 +
 
 +
2) модель <tex>y = w_1 + w_2\, ln x</tex>
 +
 
 +
[[Изображение:2ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:2ParamConvergence(AlphaVariable).png|border|500x420px]]
 +
 
 +
3) модель <tex>y = w_1 + \frac{w_2}{x}</tex>
 +
 
 +
[[Изображение:3ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:3ParamConvergence(AlphaVariable).png|border|500x420px]]
 +
 
 +
4) модель <tex>y = w_1 + w_2\, e^{-w_3x}</tex>
 +
 
 +
[[Изображение:4ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:4ParamConvergence(AlphaVariable).png|border|500x420px]]
 +
 
 +
5) модель трехпараметрического распределения Вейбулла <tex>y=w_1 w_2 x^{w_2-1}\exp(-w_1(x-w_3)^{w_2})</tex>
 +
 
 +
[[Изображение:5ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:5ParamConvergence(AlphaVariable).png|border|500x420px]]
 +
 
 +
6) модель с тригонометрическими функциями <tex>y=a_0+\sum_{i=1}^n\bigl(a_i\cos(i\omega{x})+b_i\sin(i\omega{x})\bigr)</tex>
 +
 
 +
[[Изображение:6ParamConvergence(AlphaConst).png|border|500x420px]]
 +
[[Изображение:6ParamConvergence(AlphaVariable).png|border|500x420px]]
 +
 
 +
{{tip|Код требует дополнительной проверки: очень быстрая сходимость в большинстве вариантов.}}
 +
 
 +
== Литература ==
 +
* Стрижов В. В. Методы индуктивного порождения регрессионных моделей. М.: ВЦ РАН. 2008. 55&nbsp;с. [[Media:strijov08ln.pdf|Брошюра, PDF]].
 +
* Стрижов В. В., Сологуб Р.А. Алгоритм выбора нелинейных регрессионных моделей с анализом гиперпараметров. Всероссийская конференция «Математические методы распознавания образов» (ММРО-14). 2009. стр. 184-187
 +
 
 +
== Исходный код ==
 +
[https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/MIPT2006-2010OldProj/Sintsova2010Bayesian/ Sintsova2010Bayesian]
 +
 
 +
{{ЗаданиеВыполнено|Валентина Синцова|В.В.Стрижов|24 декабря 2010||Strijov}}
 +
[[Категория:Практика и вычислительные эксперименты]]

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

Содержание

Для фиксированной регрессионной модели исследуется скорость сходимости параметров и гиперпараметров при ее настройке через двухуровневый байесовский вывод.

Постановка задачи

Рассмотрим следующую модель регрессии, описывающую связь между свободной и зависимой переменными:

\mathbf{y} = f(\mathbf{x}, \mathbf{w}) + \mathbf{\varepsilon}

Пусть случайная величина \mathbf{\varepsilon} имеет нормальное распределение \mathbf{\varepsilon} \in N(0, \sigma^2). При этом будем обозначать \mathbf{\beta}=\frac1{\sigma^2}.

Вектор \mathbf{w} называется параметрами модели и рассматривается как многомерная случайная величина. Пусть плотность распределения параметров имеет вид многомерного нормального распределения N(\mathbf{0}, A) с матрицей ковариации A. В данном примере будут рассматриваться 2 случая: A^{-1}=diag(\alpha_1, \alpha_2, \dots, \alpha_W)=diag(\mathbf{\alpha}), где W - число параметров модели, и A^{-1}=\alpha I_W, где I_W - единичная матрица размерности W.

Величины \mathbf{\beta} и \mathbf{\alpha} называются гиперпараметрами модели.

Для нескольких фиксированных функций f, задающих модель, через двухуровневый байесовский вывод происходит настройка параметров и гиперпараметров. Требуется проанализировать изменение параметров и гиперпараметров по мере настройки.


Алгоритм настройки регрессионной модели (двухуровневый байесовский вывод)

Настройка модели происходит через двухуровневый байесовский вывод.

Описание метода

Т.к. \mathbf{\varepsilon} \in N(0, \beta^{-2}), то для фиксированной модели f плотность вероятности появления данных

P(y|\,\mathbf{x},\mathbf{w}, \beta, f)\equiv P(D|\, \mathbf{w}, \beta, f)=(\frac{2 \pi}\beta)^{-\frac{N}2}\, \exp(-\beta E_D),

где

E_D = \frac12 \sum_{n=1}^N (f(\mathbf{w},\mathbf{x}_n)-y_n)^2

Т.к. \mathbf{w} \in N(\mathbf{0}, A), то

P(\mathbf{w}|\, A, f)=\frac{1}{(2 \pi)^{\frac{W}2}{|A|}^{\frac12}}\,\exp(-E_W),

где

E_W = \frac12 \mathbf{w}^T A^{-1}\mathbf{w}

Тогда, если обозначить  S(\mathbf{w})=E_W + \beta E_D = \frac12 \mathbf{w}^T A^{-1}\mathbf{w} + \beta E_D, то

P(\mathbf{w}|\,D, A, \beta, f)= \frac{P(D|\, \mathbf{w}, \beta, f) P(\mathbf{w}|\, A, f)}{P(D|\, A, \beta, f)} \propto \exp(-S(\mathbf{w}))

Таким образом, минимизация  S(\mathbf{w}) по \mathbf{w} дает максимум априорной плотности распределения параметров \mathbf{w} на выборке D. Минимизация осуществляется алгоритмом Левенберга-Марквардта.


Считая, что в точке минимума \mathbf{w}^* функционал  S(\mathbf{w}) представим в виде:

 S(\mathbf{w}) =  S(\mathbf{w}^*) + \frac12 \Delta\mathbf{w}^T H \Delta\mathbf{w}, где H=-\nabla\nabla S(w)|_{w=w^*} - гессиан функции ошибок,

получаем, что логарифм функции правдоподобия равен

ln P(D|\,\mathbf{\alpha}, \mathbf{\beta})= - \frac12 ln|A| - \frac{N}2 ln 2\pi + \frac{N}2 ln \beta - \beta E_D - E_W -\frac12 ln|H|


Гиперпараметры \mathbf{\beta} и \mathbf{\alpha} находятся итерационно из условия максимизации полученной функции правдоподобия:

При A^{-1}=diag(\mathbf{\alpha})=diag(\alpha_1, \alpha_2, \dots, \alpha_W)

\alpha_i= \frac{-\lambda_i + \sqrt{\lambda_i^2 + 4 \frac{\lambda_i}{w_i^2}}}2, где \lambda_i - собственные числа матрицы H_D - части Гессиана, не зависящей от A.
\beta= \frac{N-\gamma}{2 E_D}, где \gamma=\sum^W_{j=1}\frac{\lambda_j}{\lambda_j+a_j}


При A^{-1}=\alpha I_W

\alpha = \frac{W-\delta}{\mathbf{w}^T \mathbf{w}}, где \delta=\sum^W_{j=1}\frac{\alpha}{\lambda_j+\alpha}
\beta= \frac{N-\gamma}{2 E_D}, где \gamma=\sum^W_{j=1}\frac{\lambda_j}{\lambda_j+\alpha}

Алгоритм

1) Задаем начальные значения \mathbf{w_0}, \mathbf{\alpha_0} и \mathbf{\beta_0}

2) Ищем локальный минимум функции ошибки  S(\mathbf{w}) по \mathbf{w}

3) Ищем локальный максимум функции правдоподобия гиперпараметров P(D|\,\mathbf{\alpha}, \mathbf{\beta}) по \mathbf{\alpha}, \mathbf{\beta}

4) Повторяем шаги 2 и 3 до сходимости функционала  S(\mathbf{w})

Вычислительный эксперимент

Эксперименты проводятся на 6 моделях, для каждой из которых рассматриваются 2 случая: A^{-1}=diag(\mathbf{\alpha}) (alpha variable) и A^{-1}=\alpha I_W (alpha constant).

Для каждого случая проводится настройка модели по описанному алгоритму. Затем строятся графики изменения параметров и гиперпараметров по шагам алгоритма (величины параметров и гиперпараметров нормированы).

Рассматриваемые модели:

1) модель полиномиальной регрессии y=\sum_{i=1}^4 w_i x^{i-1}


2) модель y = w_1 + w_2\, ln x

3) модель y = w_1 + \frac{w_2}{x}

4) модель y = w_1 + w_2\, e^{-w_3x}

5) модель трехпараметрического распределения Вейбулла y=w_1 w_2 x^{w_2-1}\exp(-w_1(x-w_3)^{w_2})

6) модель с тригонометрическими функциями y=a_0+\sum_{i=1}^n\bigl(a_i\cos(i\omega{x})+b_i\sin(i\omega{x})\bigr)


Код требует дополнительной проверки: очень быстрая сходимость в большинстве вариантов.


Литература

  • Стрижов В. В. Методы индуктивного порождения регрессионных моделей. М.: ВЦ РАН. 2008. 55 с. Брошюра, PDF.
  • Стрижов В. В., Сологуб Р.А. Алгоритм выбора нелинейных регрессионных моделей с анализом гиперпараметров. Всероссийская конференция «Математические методы распознавания образов» (ММРО-14). 2009. стр. 184-187

Исходный код

Sintsova2010Bayesian


Данная статья была создана в рамках учебного задания.
Студент: Участник:Валентина Синцова
Преподаватель: В.В.Стрижов
Срок: 24 декабря 2010


В настоящее время задание завершено и проверено. Данная страница может свободно правиться другими участниками проекта MachineLearning.ru.

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

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