Аппроксимация Лапласа (пример)
Материал из MachineLearning.
(→Смотри также) |
|||
Строка 1: | Строка 1: | ||
- | [[Аппроксимация Лапласа]] - способ оценки параметров нормального распределения при | + | [[Аппроксимация Лапласа]] - способ оценки параметров нормального распределения при аппроксимации заданной плотности вероятности. |
Строка 10: | Строка 10: | ||
'''3-1''' показать зависимость среднеквадратичной ошибки от значений параметров модели: <tex>SSE=SSE(w)</tex>; | '''3-1''' показать зависимость среднеквадратичной ошибки от значений параметров модели: <tex>SSE=SSE(w)</tex>; | ||
- | '''3-2''' построить график и сделать | + | '''3-2''' построить график и сделать аппроксимацию Лапласа для зависимости <tex>SSE=SSE(w)</tex>; |
- | '''3-3''' найти расстояния между | + | '''3-3''' найти расстояния между полученными зависимостями, используя [http://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence расстояние Кульбака - Лейблера]. |
==Описание алгоритма== | ==Описание алгоритма== | ||
- | При | + | При восстановлении регрессии рассматривалась следующая гипотеза порождения данных: |
<center><tex>y=f(x,w)+\epsilon</tex>, где</center> | <center><tex>y=f(x,w)+\epsilon</tex>, где</center> | ||
<center><tex>\epsilon\propto N(0,\sigma^2)</tex></center> | <center><tex>\epsilon\propto N(0,\sigma^2)</tex></center> | ||
Строка 25: | Строка 25: | ||
<tex>Z_D</tex> - нормировачный коэффициент. | <tex>Z_D</tex> - нормировачный коэффициент. | ||
- | '''3-1'''. В заданной модели ''f'', используя [[метод наименьших квадратов]], находим оптимальное значение вектора параметров <tex>\mathcal w_{opt}</tex>. Далее, фиксируем все параметры выбранной регрессионной модели (для определенности зададим им оптимальные значения) кроме одного (пусть этот незафиксированный параметр будет <tex>w_1</tex>). После чего, | + | '''3-1'''. В заданной модели ''f'', используя [[метод наименьших квадратов]], находим оптимальное значение вектора параметров <tex>\mathcal w_{opt}</tex>. Далее, фиксируем все параметры выбранной регрессионной модели (для определенности зададим им оптимальные значения) кроме одного (пусть этот незафиксированный параметр будет <tex>w_1</tex>). После чего, варьируя значение <tex>w_1</tex>, строим искомую зависимость <tex>SSE=SSE(w_1)</tex> и график <tex>p(y|x,w_1)</tex>. Таким образом построена зависимость от одного параметра <tex>w_1</tex>. |
Аналогично действуя, строится зависимость от большего количества параметров. | Аналогично действуя, строится зависимость от большего количества параметров. | ||
- | '''3-2'''. При | + | '''3-2'''. При аппроксимации Лапласа, полученную в пункте 3-1 функцию <tex>p(y|x,w_1)</tex> приближаем функцией многомерного нормального распределения <tex> N(w_{otp},A)</tex>. Воспользуемся нелинейной регрессионной моделью: |
<center><tex> p \propto exp((w - w_{otp})^T A^{-1} (w-w_{otp})) </tex></center> | <center><tex> p \propto exp((w - w_{otp})^T A^{-1} (w-w_{otp})) </tex></center> | ||
- | Другими словами, зная из пункта 3-1 значение <tex>p(D|w)</tex> (т.е. множество пар <tex>(p_i, w_i)</tex>, где <tex>w_i</tex> - вектор параметров ''i''-го сэмпла), надо получить корреляционную | + | Другими словами, зная из пункта 3-1 значение <tex>p(D|w)</tex> (т.е. множество пар <tex>(p_i, w_i)</tex>, где <tex>w_i</tex> - вектор параметров ''i''-го сэмпла), надо получить корреляционную матрицу <tex>A</tex>. |
- | Вначале, представляем элементы матрицы <tex>A</tex> в виде вектора параметров. Далее, используя [[метод Ньютона-Гаусса]], | + | Вначале, представляем элементы матрицы <tex>A</tex> в виде вектора параметров. Далее, используя [[метод Ньютона-Гаусса]],находим оптимальный вектора параметров (минимум суммы остаточных квадратов). Затем, делаем обратный переход от вектора параметров к матрице и получаем искомую корреляционную матрицу <tex>A</tex>. |
Строка 42: | Строка 42: | ||
Обозначим плотность распределения SSE как <tex> p_{SSE}</tex>, а его апроксимация лапласса <tex> p_{lap}</tex>. | Обозначим плотность распределения SSE как <tex> p_{SSE}</tex>, а его апроксимация лапласса <tex> p_{lap}</tex>. | ||
- | {{tip | Во время вычислительного эксперимента ''SSE'' принимало достаточно большие значения (порядка <tex>10^3 - 10^4</tex>). Как следствие, ''p(y)'' принимало значения порядка 1, и | + | {{tip | Во время вычислительного эксперимента ''SSE'' принимало достаточно большие значения (порядка <tex>10^3 - 10^4</tex>). Как следствие, ''p(y)'' принимало значения порядка 1, и аппроксимация Лапласа была некорректной. |
- | Поэтому, | + | Поэтому, аппроксимация Лапласа применялась не к самому распределению ''p(y)'', а к ''ln(p(y))'' (т.е. к ''-SSE'' c точностью до коэффициента).}} |
Строка 56: | Строка 56: | ||
<tex>D_{kl}(p_{SSE},p_{lap})=0.0085</tex>. | <tex>D_{kl}(p_{SSE},p_{lap})=0.0085</tex>. | ||
- | '''Повторим эксперимент''', только теперь | + | '''Повторим эксперимент''', только теперь варьируем сразу оба параметра <tex>w_1</tex> и <tex>w_2</tex>: |
[[Изображение:Sse(w1,w2)a.png|center|frame|Рис. 1. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | [[Изображение:Sse(w1,w2)a.png|center|frame|Рис. 1. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | ||
[[Изображение:Sse(w1,w2)verh.png|center|frame|Рис. 2. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>. Ось log(p) направлена вверх]] | [[Изображение:Sse(w1,w2)verh.png|center|frame|Рис. 2. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>. Ось log(p) направлена вверх]] | ||
- | + | аппроксимация Лапласа: | |
[[Изображение:Laplas.png|center|frame|Laplace approximation]] | [[Изображение:Laplas.png|center|frame|Laplace approximation]] | ||
Строка 90: | Строка 90: | ||
<tex>D_{kl}(p_{SSE},p_{lap})=4.3097*10^{-16}</tex> | <tex>D_{kl}(p_{SSE},p_{lap})=4.3097*10^{-16}</tex> | ||
- | '''Повторим эксперимент''', только теперь | + | '''Повторим эксперимент''', только теперь варьируем сразу оба параметра <tex>w_1</tex> и <tex>w_2</tex>(10000 случайных значений на отрезке [-100;100]): |
[[Изображение:Dva_parametr_bok.png|center|frame|Рис. 1. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | [[Изображение:Dva_parametr_bok.png|center|frame|Рис. 1. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | ||
Строка 96: | Строка 96: | ||
[[Изображение:Dva_parametr_verh.png|center|frame|Рис. 2. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>. Ось log(p) направлена вверх]] | [[Изображение:Dva_parametr_verh.png|center|frame|Рис. 2. Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>. Ось log(p) направлена вверх]] | ||
- | + | аппроксимация Лапласа: | |
[[Изображение:Laplas_bok.png|center|frame|Laplace Approximation]] | [[Изображение:Laplas_bok.png|center|frame|Laplace Approximation]] | ||
Строка 121: | Строка 121: | ||
<tex>D_{kl}(p_{SSE},p_{lap})=0.0794</tex>. | <tex>D_{kl}(p_{SSE},p_{lap})=0.0794</tex>. | ||
- | '''Повторим эксперимент''', только теперь | + | '''Повторим эксперимент''', только теперь варьируем сразу оба параметра <tex>w_1</tex> и <tex>w_2</tex>(10000 случайных значений на отрезках [4.5;5.5] и [6.5;7.5] соответственно): |
[[Изображение:Non_lin_2_par.png|center|frame| Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | [[Изображение:Non_lin_2_par.png|center|frame| Зависимость <tex>- SSE</tex> от <tex>w_1</tex> и <tex>w_2</tex>]] | ||
- | + | аппроксимация Лапласа: | |
[[Изображение:Non_lin_2_par_laplas.png|center|frame| Laplace Approximation]] | [[Изображение:Non_lin_2_par_laplas.png|center|frame| Laplace Approximation]] |
Версия 16:33, 14 декабря 2010
Аппроксимация Лапласа - способ оценки параметров нормального распределения при аппроксимации заданной плотности вероятности.
Содержание |
Постановка задачи
Задана выборка — множество значений свободных переменных и множество соответствующих им значений зависимой переменной. Необходимо для выбранной регрессионной модели :
3-1 показать зависимость среднеквадратичной ошибки от значений параметров модели: ;
3-2 построить график и сделать аппроксимацию Лапласа для зависимости ;
3-3 найти расстояния между полученными зависимостями, используя расстояние Кульбака - Лейблера.
Описание алгоритма
При восстановлении регрессии рассматривалась следующая гипотеза порождения данных:
В таком случае, при фиксированной модели f плотность вероятности появления данных равняется[1]:
- это функция регрессионных невязок, т.е. ;
- нормировачный коэффициент.
3-1. В заданной модели f, используя метод наименьших квадратов, находим оптимальное значение вектора параметров . Далее, фиксируем все параметры выбранной регрессионной модели (для определенности зададим им оптимальные значения) кроме одного (пусть этот незафиксированный параметр будет ). После чего, варьируя значение , строим искомую зависимость и график . Таким образом построена зависимость от одного параметра . Аналогично действуя, строится зависимость от большего количества параметров.
3-2. При аппроксимации Лапласа, полученную в пункте 3-1 функцию приближаем функцией многомерного нормального распределения . Воспользуемся нелинейной регрессионной моделью:
Другими словами, зная из пункта 3-1 значение (т.е. множество пар , где - вектор параметров i-го сэмпла), надо получить корреляционную матрицу .
Вначале, представляем элементы матрицы в виде вектора параметров. Далее, используя метод Ньютона-Гаусса,находим оптимальный вектора параметров (минимум суммы остаточных квадратов). Затем, делаем обратный переход от вектора параметров к матрице и получаем искомую корреляционную матрицу .
3-3. Расстояние Кульбака - Лейблера между двумя распределениями p(z) и q(z) равняется:
Вычислительный эксперимент
Обозначим плотность распределения SSE как , а его апроксимация лапласса .
Пример 1
Задуманная функция . Рассматривается линейная регрессионная модель с двумя параметрами: . и - оптимальное значение параметров (при которых SSE минимально).
Фиксируем один параметр и задаем различные значение (500 случайных значений на отрезке [-1;2]). Строим зависимость:
.
Повторим эксперимент, только теперь варьируем сразу оба параметра и :
аппроксимация Лапласа:
ковариационная матрица
На рис.2 наблюдается зависимость между коэффициентами и . Следовательно, ковариационная матрица не будет диагональной.
Пример 2
Задуманная функция , где - белый гауссовский шум. Рассматривается следующая регрессионная модель: линейная комбинация функций и .
и - оптимальное значение параметров (при которых SSE минимально).
Фиксируем один параметр и задаем различные значение (10000 случайных значений на отрезке [5;15]). Строим зависимость:
Повторим эксперимент, только теперь варьируем сразу оба параметра и (10000 случайных значений на отрезке [-100;100]):
аппроксимация Лапласа:
ковариационная матрица
Пример 3
Задуманная функция , где - белый гауссовский шум. Рассматривается существенно нелинейная регрессионная модель с двумя параметрами: .
Фиксируем один параметр и задаем различные значение (10000 случайных значений на отрезке [6.5;7.5]). Строим зависимость:
.
Повторим эксперимент, только теперь варьируем сразу оба параметра и (10000 случайных значений на отрезках [4.5;5.5] и [6.5;7.5] соответственно):
аппроксимация Лапласа:
ковариационная матрица
Смотри также
- Аппроксимация Лапласа
- Сэмплирование
- Сэмплирование на вики
- Ссылка на текст статьи
- Скачать код MATLAB можно здесь
Литература
- Bishop, C. Pattern Recognition And Machine Learning. Springer. 2006.
Примечания
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |