Вычисление гиперпараметров при различных гипотезах порождения данных (пример)

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

(Различия между версиями)
Перейти к: навигация, поиск
Строка 2: Строка 2:
Рассмотрим следующую модель регрессии, описывающую связь между свободной и зависимой переменными
Рассмотрим следующую модель регрессии, описывающую связь между свободной и зависимой переменными
-
<center><tex>y= \mathbf{w}^T\mathbf{x} + \nu</tex></center>,
+
<center><tex>y= \mathbf{w}^T\mathbf{x} + \nu,</tex></center>
где <tex>y\in\mathbb{R},\; \mathbf{w},\; \mathbf{x}\in\mathbb{R}^n</tex>. Будем считать, что ошибка
где <tex>y\in\mathbb{R},\; \mathbf{w},\; \mathbf{x}\in\mathbb{R}^n</tex>. Будем считать, что ошибка
это случайная величина из параметрического семейства распределений, у которого существует дважды непрерывно
это случайная величина из параметрического семейства распределений, у которого существует дважды непрерывно
-
дифференцируемая плотность <tex>\mathbf{f(x, \theta_1)}</tex>, с параметром <tex>\mathbf{\theta_1}\in\mathbb{R}^{k_1}</tex>.
+
дифференцируемая плотность <tex>f(\mathbf{x, \theta_1})</tex>, с параметром <tex>\mathbf{\theta_1}\in\mathbb{R}^{k_1}</tex>.
Относительно весов <tex>\mathbf{w}</tex>, которые будем называть параметрами модели, сделаем аналогичные
Относительно весов <tex>\mathbf{w}</tex>, которые будем называть параметрами модели, сделаем аналогичные
-
предположения, т.е. что <tex>\mathbf{w}\in\mathbf{g(x, \theta_2)}</tex>, с параметром <tex>\mathbf{\theta_2}\in\mathbb{R}^{k_2}</tex>.
+
предположения, т.е. что <tex>\mathbf{w}</tex> имеет плотность <tex>g(\mathbf{x, \theta_2})</tex>, с параметром <tex>\mathbf{\theta_2}\in\mathbb{R}^{k_2}</tex>.
== Оценка гиперпараметров ==
== Оценка гиперпараметров ==
Гиперпараметрами модели будем называть пару параметров указанных выше распределений
Гиперпараметрами модели будем называть пару параметров указанных выше распределений
-
<tex>\theta=\(\mathbf{\theta_1, \theta_2}\)</tex>. Оценивать гиперпараметры и параметры модели будем следуя байесовскому выводу, т.е. максимизируя апостериорную вероятность гиперпараметров при условии появления данных <tex>\{(\mathbf{x}_j,y_j), \;j=1...N\}</tex>:
+
<tex>\theta=\(\mathbf{\theta_1, \theta_2}\)</tex>. Оценивать гиперпараметры модели будем максимизируя вероятность появления данных <tex>\{(\mathbf{x}_j,y_j), \;j=1...N\}</tex>:
-
<center><tex>p\(\mathbf{\theta}|D\)=\frac{p\(D|\mathbf{\theta}\)p\(\mathbf{\theta}\)} {\int{p\(D|\mathbf{\theta}\)p\(\mathbf{\theta}\)d\mathbf{\theta}}}\propto p\(D|\mathbf{\theta}\)\to\max\(\mathbf{\theta}\).</tex></center>
+
<center><tex>p\(D|\mathbf{\theta}\)= \int{p\(D|\mathbf{\theta, w}\)p\(\mathbf{w|\theta}\)d\mathbf{w}} \to\max\(\mathbf{\theta}\).</tex></center>
-
Используя формула Байеса, это выражение можно записать в виде интеграла по значениям параметров модели <tex>\mathbf{w}</tex>:
 
-
 
-
<center><tex>\int{p\(D|\mathbf{\theta, w}\)p\(\mathbf{\theta}\)p\(\mathbf{w}\)d\mathbf{w}} \to\max\(\mathbf{\theta}\).</tex></center>
 
Нетрудно видеть что выражение <tex>p\(D|\mathbf{\theta, w}\)</tex> есть вероятность появления данных при конкретной модели (фиксированных параметрах и гиперпараметрах). Так как мы считаем везде, что свободные переменные даны,
Нетрудно видеть что выражение <tex>p\(D|\mathbf{\theta, w}\)</tex> есть вероятность появления данных при конкретной модели (фиксированных параметрах и гиперпараметрах). Так как мы считаем везде, что свободные переменные даны,
то это есть распределение зависимой переменной <tex>y</tex>. Оно в свою очередь определяется распределением ошибки и может быть записано в виде:
то это есть распределение зависимой переменной <tex>y</tex>. Оно в свою очередь определяется распределением ошибки и может быть записано в виде:
-
<center><tex>p\(D|\mathbf{\theta, w}\)=\prod_{j=1}^N {p\(y_j|\mathbf{x}_j,\mathbf{\theta,w}\)} =\prod_{j=1}^{N}{\mathbf{f}(y_j-\mathbf{w}^T \mathbf{x}_j, \mathbf{\theta_1})}</tex></center>
+
<center><tex>p\(D|\mathbf{\theta, w}\)=\prod_{j=1}^N {p\(y_j|\mathbf{x}_j,\mathbf{\theta,w}\)} =\prod_{j=1}^{N}{\mathbf{f}(y_j-\mathbf{w}^T \mathbf{x}_j, \mathbf{\theta_1})}.</tex></center>
 +
 
 +
Плотность вероятности параметров модели <tex>p\(\mathbf{w|\theta}\)</tex> нам известна и равна <tex>g\(\mathbf{w|\theta}\)</tex>. В итоге мы получаем задачу оптимизации, которую необходимо решить для нахождения оценки гиперпараметров модели:
 +
 
 +
<center><tex>\int{\prod_{j=1}^{N}{\mathbf{f}(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} g\(\mathbf{w},\mathbf{\theta_2}\) d\mathbf{w}} \to\max\(\mathbf{\theta}\).</tex></center>
 +
 
 +
== Алгоритм нахождения гиперпараметров ==
 +
 
 +
Представленная выше задача оптимизации имеет вид максимизации интеграла функции, зависимой от переменных, по которым происходит максмизация. Для решения таких задач общего метода решения не существует. Предлагается искать решение в два этапа. На первом этапе при фиксированных гиперпараметрах ищется аналитическое приближение подинтегральной функции, интеграл от которой известен, с помощью приближения Лапласа. На втором этапе происходит оптимизация вычисленного приближения по гиперпараметрам. После этого повторяется первый шаг с новыми значениями гиперпараметров модели. Итерации повторяются пока решение не стабилизируется.
 +
 
 +
 
 +
== Первый шаг ==
 +
 
 +
Взяв минус логарифм от подинтегральную функции получим следующее выражение:
 +
 
 +
<center><tex>-\ln\(\prod_{j=1}^{N}{f(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} g\(\mathbf{w}, \mathbf{\theta}_2\)\)= \sum_{j=1}^{N}{-\ln{f(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} -\ln{g\(\mathbf{w}, \mathbf{\theta}_2\)}= \sum_{j=1}^{N}{\tilde{f}\(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1\)}+\tilde{g}\(\mathbf{w},\mathbf{\theta}_2\), </tex></center>
 +
 
 +
где введены новые обозначения <tex>\tilde{f}\(\mathbf{x, \theta_1}\)=-\ln{f\(\mathbf{x, \theta_1}\)}</tex>. Решив задачу
 +
 
 +
<center><tex>\mathbf{w}_0=argmin\; {\sum_{j=1}^{N}{\tilde{f}\(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1\)}+\tilde{g}\(\mathbf{w},\mathbf{\theta}_2\)}</tex></center>
 +
 
 +
мы получим точку в которой градиент равен нулю, а матрица вторых производных неотрицательна. Поэтому справедливо разложение в ряд Тейлора
 +
 
 +
<center><tex>S\(\mathbf{w, \theta}\)=S\(\mathbf{w}_0, \mathbf{\theta}\) + \frac{1}{2}\Delta\mathbf{w}\frac{\partial^2 S}{\partial \mathbf{w}^2}\Delta\mathbf{w} + o\(\Delta\mathbf{w}^2\).</tex></center>
 +
 
 +
Отбрасывая малый член, формулу можно проинтегрировать
 +
 
 +
<center><tex>\int{\exp\(-S\(\mathbf{w, \theta}\)\)d\mathbf{w}}= \exp\(-S\(\mathbf{w}_0, \mathbf{\theta}\)\) \int{\exp\(-\frac{1}{2}\Delta\mathbf{w}\frac{\partial^2 S}{\partial \mathbf{w}^2}\Delta\mathbf{w}\) d\mathbf{w}}= \(2\pi\)^{\frac{n}{2}} det{\frac{\partial^2 S}{\partial \mathbf{w}^2}}^{-\frac{1}{2}}.</tex></center>

Версия 20:44, 14 декабря 2010

Содержание

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

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

y= \mathbf{w}^T\mathbf{x} + \nu,

где y\in\mathbb{R},\; \mathbf{w},\; \mathbf{x}\in\mathbb{R}^n. Будем считать, что ошибка это случайная величина из параметрического семейства распределений, у которого существует дважды непрерывно дифференцируемая плотность f(\mathbf{x, \theta_1}), с параметром \mathbf{\theta_1}\in\mathbb{R}^{k_1}. Относительно весов \mathbf{w}, которые будем называть параметрами модели, сделаем аналогичные предположения, т.е. что \mathbf{w} имеет плотность g(\mathbf{x, \theta_2}), с параметром \mathbf{\theta_2}\in\mathbb{R}^{k_2}.

Оценка гиперпараметров

Гиперпараметрами модели будем называть пару параметров указанных выше распределений \theta=\(\mathbf{\theta_1, \theta_2}\). Оценивать гиперпараметры модели будем максимизируя вероятность появления данных \{(\mathbf{x}_j,y_j), \;j=1...N\}:

p\(D|\mathbf{\theta}\)= \int{p\(D|\mathbf{\theta, w}\)p\(\mathbf{w|\theta}\)d\mathbf{w}} \to\max\(\mathbf{\theta}\).


Нетрудно видеть что выражение p\(D|\mathbf{\theta, w}\) есть вероятность появления данных при конкретной модели (фиксированных параметрах и гиперпараметрах). Так как мы считаем везде, что свободные переменные даны, то это есть распределение зависимой переменной y. Оно в свою очередь определяется распределением ошибки и может быть записано в виде:

p\(D|\mathbf{\theta, w}\)=\prod_{j=1}^N {p\(y_j|\mathbf{x}_j,\mathbf{\theta,w}\)} =\prod_{j=1}^{N}{\mathbf{f}(y_j-\mathbf{w}^T \mathbf{x}_j, \mathbf{\theta_1})}.

Плотность вероятности параметров модели p\(\mathbf{w|\theta}\) нам известна и равна g\(\mathbf{w|\theta}\). В итоге мы получаем задачу оптимизации, которую необходимо решить для нахождения оценки гиперпараметров модели:

\int{\prod_{j=1}^{N}{\mathbf{f}(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} g\(\mathbf{w},\mathbf{\theta_2}\) d\mathbf{w}} \to\max\(\mathbf{\theta}\).

Алгоритм нахождения гиперпараметров

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


Первый шаг

Взяв минус логарифм от подинтегральную функции получим следующее выражение:

-\ln\(\prod_{j=1}^{N}{f(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} g\(\mathbf{w}, \mathbf{\theta}_2\)\)= \sum_{j=1}^{N}{-\ln{f(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1)} -\ln{g\(\mathbf{w}, \mathbf{\theta}_2\)}= \sum_{j=1}^{N}{\tilde{f}\(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1\)}+\tilde{g}\(\mathbf{w},\mathbf{\theta}_2\),

где введены новые обозначения \tilde{f}\(\mathbf{x, \theta_1}\)=-\ln{f\(\mathbf{x, \theta_1}\)}. Решив задачу

\mathbf{w}_0=argmin\; {\sum_{j=1}^{N}{\tilde{f}\(y_j-\mathbf{w}^T \mathbf{x}_j,\mathbf{\theta}_1\)}+\tilde{g}\(\mathbf{w},\mathbf{\theta}_2\)}

мы получим точку в которой градиент равен нулю, а матрица вторых производных неотрицательна. Поэтому справедливо разложение в ряд Тейлора

S\(\mathbf{w, \theta}\)=S\(\mathbf{w}_0, \mathbf{\theta}\) + \frac{1}{2}\Delta\mathbf{w}\frac{\partial^2 S}{\partial \mathbf{w}^2}\Delta\mathbf{w} + o\(\Delta\mathbf{w}^2\).

Отбрасывая малый член, формулу можно проинтегрировать

\int{\exp\(-S\(\mathbf{w, \theta}\)\)d\mathbf{w}}= \exp\(-S\(\mathbf{w}_0, \mathbf{\theta}\)\) \int{\exp\(-\frac{1}{2}\Delta\mathbf{w}\frac{\partial^2 S}{\partial \mathbf{w}^2}\Delta\mathbf{w}\) d\mathbf{w}}= \(2\pi\)^{\frac{n}{2}} det{\frac{\partial^2 S}{\partial \mathbf{w}^2}}^{-\frac{1}{2}}.
Личные инструменты