Аппроксимация Лапласа (пример)

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

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

Аппроксимация Лапласа - способ оценки параметров нормального распределения при апроксимации заданой плотности вероятности.


Содержание

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

Задана выборка — множество X^N=\{{x}_1,\ldots,{x}_N|x\in\R^M\} значений свободных переменных и множество \{y_1,\ldots, y_N| y\in\R\} соответствующих им значений зависимой переменной. Необходимо для выбранной регрессионной модели f(w,x):

  1. показать зависимость среднеквадратичной ошибки от значений параметров модели: SSE=SSE(w);
  2. построить график и сделать апроксимацию Лапласа для нее;
  3. найти расстояния между получеными зависимостями, используя расстояние Кульбака - Лейблера.

Описание алгоритма

При востановлении регрессии рассматривалась следующая гипотеза порождения данных:

y=f(x,w)

В таком случае, при фиксированной модели f плотность вероятности появления данных равняется[1]:

p(y|x,w)=\frac{1}{Z_D}exp(-E_D), где

E_D - это функция регрессионных невязок, т.е. SSE;

Z_D - нормировачный коэффициент.

1. В заданной модели f, используя метод наименьших квадратов, находим оптимальное значение вектора параметров \mathcal w_{opt}. Далее, фиксируем все параметры выбранной регрессионной модели (для определенности зададим им оптимальные значения) кроме одного (пусть этот незафиксированный параметр будет w(1)). После чего, варируя значение w(1), строим искомую зависимость SSE=SSE(w(1)) и его график. Таким образом построена зависимость от одного параметра w(1). Аналогично действуя, строится зависимость от большего количества параметров.

2. При построении апроксимации Лапласса вначале рассмотрим одномерный случай. Пусть есть распределение p(z):

p(z)=\frac{1}{Z}f(z), где

Z=\int f(z)dz - нормировочный коэффициент.

Первый шаг при построении апроксимации Лапласса, нахождение максимума, т.е. такого z_0, что p'(z_0)=0. Далее, раскладываем lnf(z) в ряд Тейлора в окресности z_0:

lnf(z)=lnf(z_0)-\frac{1}{2}A(z-z_0)^2

где

A=-\frac{d^2}{dz^2}lnf(z)|_{z=z_0}.

Тогда

f(z)=f(z_0)exp(-\frac{A}{2}(z-z_0)^2).

Апроксимация Лапласса примет вид:

q(z)=(\frac{A}{2\pi})^{1/2}exp(-\frac{A}{2}(z-z_0)^2).

В многомерном случае (размерности M), аналогично действуя, придем к:

q(z)=(\frac{|\mathbf{A}|}{(2\pi)^M})^{1/2}exp(-\frac{1}{2}(\mathbf{z}-\mathbf{z_0})^T A (\mathbf{z}-\mathbf{z_0})).

где A Гаусиан, размера M x M, равный:

\mathbf{A}=-\nabla \nabla lnf(\mathbf{z})|_{\mathbf{z}=\mathbf{z_0}}.

3. Расстояние Кульбака - Лейблера между двумя распределениями p(z) и q(z) равняется:

D_{kl}(p,q)=\sum\limits_{z\in \mathcal{Z}} p(z) \ln \frac{p(z)}{q(z)}

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

Обозначим плоность распределения SSE как  p_{SSE}, а его апроксимация лапласса  p_{lap}.

Во время вычислительного эксперимента SSE принимало достаточно большие значения (порядка 10^3 - 10^4). Как следствие, p(y|x,w) принимало значения порядка 1, и апроксимация Лапласса была некоректной. Поэтому, апроксимация Лапласса применялась не к самому распределению p(y|x,w), а к ln(p(y|x,w)) (т.е. к -SSE c точностью до коэффициента).


Пример 1

Задуманная функция y=x + sin3x. Рассматривается линейная регрессионная модель с двумя параметрами: y(x)=w_1+w_2x. w_1_{opt} и w_2_{opt} - оптимальное значение параметров (при которых SSE минимально).

Фиксируем один параметр w_1=w_1_{opt} и задаем различные значение w_2 (500 случайных значений на отрезке [-1;2]). Строим зависимость:

D_{kl}(p_{SSE},p_{lap})=0.0085.

Повторим эксперимент, только теперь варируем сразу оба параметра w_1 и w_2:

Рис. 1. Зависимость  от  и
Рис. 1. Зависимость - SSE от w_1 и w_2
Рис. 2. Зависимость  от  и . Ось log(p) направлена вверх
Рис. 2. Зависимость - SSE от w_1 и w_2. Ось log(p) направлена вверх

апроксимация Лапласса:

Laplace approximation
Laplace approximation

D_{kl}(p_{SSE},p_{lap})=1.2481

На рис.2 наблюдается зависимость между коэффициентами w_1 и w_2. Следовательно, ковариационная матрица cov(w_1,w_2) не будет диагональной.

Смотри также

Литература

  • Bishop, C. Pattern Recognition And Machine Learning. Springer. 2006.

Примечания



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

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

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

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