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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Пример 1)
(Смотри также)
 
(1 промежуточная версия не показана)
Строка 143: Строка 143:
* [[Сэмплирование]]
* [[Сэмплирование]]
* [http://en.wikipedia.org/wiki/Sampling_(statistics)#Notes Сэмплирование на вики]
* [http://en.wikipedia.org/wiki/Sampling_(statistics)#Notes Сэмплирование на вики]
-
* [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/LaplaceApproximationExample/zaytsev_yevgen_laplace_aproximation/ Скачать код MATLAB можно здесь]
+
* [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Group774/Zaitsev2010Laplace/zaytsev_yevgen_laplace_aproximation/ Скачать код MATLAB можно здесь]
== Литература ==
== Литература ==

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

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


Содержание

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

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

3-1 показать зависимость среднеквадратичной ошибки от значений параметров модели: SSE=SSE(w);

3-2 построить график и сделать аппроксимацию Лапласа для зависимости SSE=SSE(w);

3-3 найти расстояния между полученными зависимостями, используя расстояние Кульбака - Лейблера.

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

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

y=f(x,w)+\epsilon, где
\epsilon\propto N(0,\sigma^2)

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

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

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

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

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

3-2. При аппроксимации Лапласа, полученную в пункте 3-1 функцию p(y|x,w_1) приближаем функцией многомерного нормального распределения  N(w_{otp},A). Воспользуемся нелинейной регрессионной моделью:

 p \propto exp((w - w_{otp})^T A^{-1} (w-w_{otp}))

Другими словами, зная из пункта 3-1 значение p(D|w) (т.е. множество пар (p_i, w_i), где w_i - вектор параметров i-го сэмпла), надо получить корреляционную матрицу A.

Вначале, представляем элементы матрицы A в виде вектора параметров. Далее, используя метод Ньютона-Гаусса,находим оптимальный вектора параметров (минимум суммы остаточных квадратов). Затем, делаем обратный переход от вектора параметров к матрице и получаем искомую корреляционную матрицу A.


3-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) принимало значения порядка 1, и аппроксимация Лапласа была некорректной.

Поэтому, аппроксимация Лапласа применялась не к самому распределению p(y), а к ln(p(y)) (т.е. к -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})=4.9491*10^{-5}

ковариационная матрица FIXIT: матрица не является положительно определенной! По критерию Сильвестра элементы не диагонали должны быть положительны A=10^3*\begin{Vmatrix}
-0.1021 & -0.3141\\
-0.3141 & -1.3242\\
\end{Vmatrix}


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

Пример 2

Задуманная функция y=7.5x + 12tanx+\epsilon, где \epsilon - белый гауссовский шум. Рассматривается следующая регрессионная модель: линейная комбинация функций x и tanx.

y(x)=w_1*x+w_2tanx.

w_1_{opt} и w_2_{opt} - оптимальное значение параметров (при которых SSE минимально).

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

D_{kl}(p_{SSE},p_{lap})=4.3097*10^{-16}

Повторим эксперимент, только теперь варьируем сразу оба параметра w_1 и w_2(10000 случайных значений на отрезке [-100;100]):

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

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

Laplace Approximation
Laplace Approximation
Laplace Approximation.   Ось log(p) направлена вверх
Laplace Approximation. Ось log(p) направлена вверх

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

ковариационная матрица A=10^4*\begin{Vmatrix}
-2.9234 & 0.0413\\
0.0413 & -3.9066\\
\end{Vmatrix}

Пример 3

Задуманная функция y=exp(7+log(5x))+\epsilon, где \epsilon - белый гауссовский шум. Рассматривается существенно нелинейная регрессионная модель с двумя параметрами: y(x)=exp(w_1+log(w_2x)).

Фиксируем один параметр w_2=5 и задаем различные значение w_1 (10000 случайных значений на отрезке [6.5;7.5]). Строим зависимость:

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

Повторим эксперимент, только теперь варьируем сразу оба параметра w_1 и w_2(10000 случайных значений на отрезках [4.5;5.5] и [6.5;7.5] соответственно):

Зависимость  от  и
Зависимость - SSE от w_1 и w_2

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

Laplace Approximation
Laplace Approximation


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

ковариационная матрица A=10^{11}*\begin{Vmatrix}
-2.7859 & 0.0056\\
0.0056 & 0.0146\\
\end{Vmatrix}

Смотри также

Литература

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

Примечания



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


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

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

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