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

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

Перейти к: навигация, поиск

Содержание

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

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

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}\).

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

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


Первый шаг

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

S\(\mathbf{w, \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\)}

мы получим точку в которой градиент равен нулю

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

а матрица вторых производных неотрицательна

\frac{\partial^2}{\partial \mathbf{w}} S\(\mathbf{w}_0, \mathbf{\theta}\)= \sum_{j=1}^N{\mathbf{x}_j\mathbf{x}_j^{T}\frac{\partial^2}{\partial\mathbf{w}}\tilde{f}\(y_j-\mathbf{w}_0^T \mathbf{x}_j,\mathbf{\theta}_1\)}+ \frac{\partial^2}{\partial \mathbf{w}} \tilde{g}\(\mathbf{w}_0, \mathbf{\theta}_2\)\ge0,

поэтому справедливо разложение в ряд Тейлора

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}}\exp\(-S\(\mathbf{w}_0, \mathbf{\theta}\)\).

Второй шаг

На этом этапе необходимо обновить значения гиперпараметров, максимизируя полученное на первом шаге приближение

\(2\pi\)^{\frac{n}{2}} det{\frac{\partial^2 S}{\partial \mathbf{w}^2}}^{-\frac{1}{2}}\exp\(-S\(\mathbf{w}_0, \mathbf{\theta}\)\)\to\max\(\mathbf{\theta}\).

Или эквивалентно

S\(\mathbf{w}_0, \mathbf{\theta}\)+\frac{1}{2}\ln{det{\frac{\partial^2 S}{\partial \mathbf{w}^2}}} \to\min(\mathbf{\theta}).

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

Критерий останова

Повторение первого и второго шага проводится пока изменение параметров или гиперпараметров не станет меньше заданных значений.

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