Аппроксимация функции ошибки
Материал из MachineLearning.
(→Описание решения) |
|||
(36 промежуточных версий не показаны.) | |||
Строка 8: | Строка 8: | ||
Также предполагается, что задано апостериорное распределение параметров модели <tex>p(w | D, f)</tex>, которому соответствует функция ошибки <tex>S(w)</tex>: | Также предполагается, что задано апостериорное распределение параметров модели <tex>p(w | D, f)</tex>, которому соответствует функция ошибки <tex>S(w)</tex>: | ||
<center><tex>p(w | D, f) = \frac{exp(-S(w))}{Z_S}</tex>.</center> | <center><tex>p(w | D, f) = \frac{exp(-S(w))}{Z_S}</tex>.</center> | ||
- | Пусть <tex>w_{MP} = \arg\max_w p(w | D, f)</tex> - наиболее вероятные параметры модели. Требуется найти аппроксимацию Лапласа для функции <tex>p(w | D, f)</tex> в точке <tex>w_{MP}</tex>. Заметим, что в данной работе в качестве функции ошибки берется сумма квадратов ошибок аппроксимации | + | Пусть <tex>w_{MP} = \arg\max_w p(w | D, f)</tex> - наиболее вероятные параметры модели. Требуется найти [[Аппроксимация Лапласа | аппроксимацию Лапласа]] для функции <tex>p(w | D, f)</tex> в точке <tex>w_{MP}</tex>. Заметим, что в данной работе в качестве функции ошибки берется сумма квадратов ошибок аппроксимации |
<center><tex>S(w) = \sum_{i = 1}^N (y_i - f(x_i, w))^2</tex>.</center> | <center><tex>S(w) = \sum_{i = 1}^N (y_i - f(x_i, w))^2</tex>.</center> | ||
Строка 17: | Строка 17: | ||
<center><tex>p^*(w| k, A) = k * \exp(-(w - w_{MP})^T A (w - w_{MP}))</tex>,</center> | <center><tex>p^*(w| k, A) = k * \exp(-(w - w_{MP})^T A (w - w_{MP}))</tex>,</center> | ||
где <tex>A</tex> - матрица, обратная к ковариационной матрице нормального распределения, а <tex>k</tex> - нормирующий коэффициент. Заметим, что в силу положительной определенности матрицы <tex>A</tex> ее можно представить в соответствии с разложением Холецкого: <tex>A = L L^T</tex>, где <tex>L</tex> - верхнетреугольная матрица. Параметризуем матрицу <tex>L</tex> следующим образом: | где <tex>A</tex> - матрица, обратная к ковариационной матрице нормального распределения, а <tex>k</tex> - нормирующий коэффициент. Заметим, что в силу положительной определенности матрицы <tex>A</tex> ее можно представить в соответствии с разложением Холецкого: <tex>A = L L^T</tex>, где <tex>L</tex> - верхнетреугольная матрица. Параметризуем матрицу <tex>L</tex> следующим образом: | ||
- | <center><tex>L(i, j) = \begin{cases} | + | <center><tex>L(i, j) = \begin{cases}e^{h_{ij}} & i = j, \\ sinh(h_{ij}) & j > i, \\ 0 & j < i, \\ \end{cases}</tex> где <tex>h_{ij} \in \mathbb{R}, i, j = 1, \dots, N, j \ge i</tex>.</center> |
- | + | Также параметризуем нормирующий множитель <tex>k = exp(h_0)</tex>. | |
- | + | Получаем, что <tex>p^*(w | A, k) = p^*(w | h_{ij}, i, j = 1, \dots, N, j \ge i, h_0)</tex>. | |
- | + | Построим обучающую выборку <tex>D_S = (w_k, S(w_k)), k = 1, \dots, N_S</tex>, где точки <tex>w_k</tex> берутся равномерно из окрестности наиболее вероятных параметров <tex>w_{MP}</tex>, в которой мы хотим построить аппроксимацию. | |
- | + | Для нахождения неизвестных параметров <tex>h_{ij}, i, j = 1, \dots, N, j \ge i, h_0</tex> минимизируем квадратичный критерий для точек обучающей выборки <tex>D_S</tex>: | |
- | где <tex>h_{ij} \in \mathbb{R}, i, j = 1, \dots, N, j \ge i</tex>. Также параметризуем нормирующий множитель <tex>k = exp(h_0)</tex>. Получаем, что <tex>p^*(w | A, k) = p^*(w | h_{ij}, i, j = 1, \dots, N, j \ge i, h_0)</tex>. Построим обучающую выборку <tex>D_S = (w_k, S(w_k)), k = 1, \dots, N_S</tex>, где точки <tex>w_k</tex> берутся равномерно из окрестности наиболее вероятных параметров <tex>w_{MP}</tex>, в которой мы хотим построить аппроксимацию. Для нахождения неизвестных параметров <tex>h_{ij}, i, j = 1, \dots, N, j \ge i, h_0</tex> минимизируем квадратичный критерий для точек обучающей выборки <tex>D_S</tex>: | + | |
<center><tex>\sum_{k = 1}^{N_S} (S(w_k) - p^*(w_k | h_{ij}, h_0))^2 \to \min_{h_{ij}, h_0}.</tex></center> | <center><tex>\sum_{k = 1}^{N_S} (S(w_k) - p^*(w_k | h_{ij}, h_0))^2 \to \min_{h_{ij}, h_0}.</tex></center> | ||
- | |||
- | + | Заметим, что получаемые в результате решения данной оптимизационной задачи значения параметров могут существенно отличаться в зависимости от используемого для ее решения оптимизационного алгоритма. В данной работе рассматриваются два алгоритма оптимизации: [[Алгоритм Левенберга-Марквардта | Левенберг-Марквардт]] и [[Trust region | Trust region]]. | |
- | + | ||
- | + | После нахождения оптимальных значений параметров полученные распределения остается отнормировать в соответствии с аппроксимацией Лапласа: | |
- | * | + | <center><tex>Z_S = exp(-S(w_{MP})) * \sqrt{\frac{(2 \pi)^n}{\det A}}</tex>.</center> |
- | + | == Вычислительный эксперимент: качество аппроксимации == | |
- | + | В эксперименте в качестве обучающей выборки использовался временной ряд цен на хлеб из 195 точек. Для приближения использовалась модель линейной регрессии <tex>f(x, w) = w_1 + w_2 * x^2</tex>. На картинках ниже графически представлены результаты. | |
- | </ | + | |
+ | [[Изображение:results.png|1150px|thumb|Результаты эксперимента]] | ||
- | + | Функция ошибки в рассмотренном случае хорошо аппроксимируется предложенным методом, причем качество аппроксимации возрастает с увеличением качества модели. Хорошее качество аппроксимации обусловлено тем, что функция ошибки в рассматриваемом примере принадлежит тому же классу, что и функция аппроксиматор. | |
- | + | == Вычислительный эксперимент: устойчивость алгоритма == | |
- | + | Для сравнения устойчивости алгоритмов Левенберга-Марквардта и Trust region в качестве обучающей выборки использовался временной ряд цен на хлеб из 195 точек. Для приближения использовалась регрессионная модель <tex>f(x, w) = \frac{1 - \exp(w_1 + w_2 * x)}{1 + \exp(w_1 + w_2 * x)}</tex>. При таком виде целевой функции вид функции ошибки в окрестности оптимума несколько отличается от гауссовского. Рассматривалась зависимость оптимизированного значения параметров <tex>h_0</tex> и <tex>h_{22}</tex> от начального значения. | |
- | * | + | |
- | * | + | |
- | + | ||
- | + | ||
- | < | + | <gallery widths="500px" heights="300px"> |
- | + | Изображение:approximationSigmoid.png | Аппроксимация данных | |
- | + | Изображение:errorSigmoid.png | Функция ошибки | |
- | + | </gallery> | |
- | + | ||
- | + | <gallery widths="500px" heights="300px"> | |
- | + | Изображение:fullSigmoid.png | Аппроксимация функции ошибки в случае ковариационной матрицы общего вида | |
- | + | </gallery> | |
- | + | ||
- | + | <gallery widths="500px" heights="300px"> | |
- | </ | + | Изображение:stability1.png | Зависимость значения параметра <tex>h_0</tex>, полученного в результате оптимизации от его начального значения. |
+ | Изображение:stability2.png | Зависимость значения параметра <tex>h_{22}</tex>, полученного в результате оптимизации от его начального значения. | ||
+ | </gallery> | ||
== Исходный код и полный текст работы == | == Исходный код и полный текст работы == | ||
Строка 61: | Строка 57: | ||
== Смотри также == | == Смотри также == | ||
- | * [[ | + | * [[Аппроксимация Лапласа]] |
- | * [[ | + | * [[Алгоритм Левенберга-Марквардта]] |
== Литература == | == Литература == | ||
* [http://ya.ru Bishop, C. Pattern Recognition And Machine Learning. Springer. 2006.] | * [http://ya.ru Bishop, C. Pattern Recognition And Machine Learning. Springer. 2006.] | ||
- | {{ | + | {{ЗаданиеВыполнено|Максим Панов|В.В. Стрижов|2 декабря 2011|Maxx|Strijov}} |
[[Категория:Практика и вычислительные эксперименты]] | [[Категория:Практика и вычислительные эксперименты]] |
Текущая версия
|
В работе рассматривается метод аппроксимации функции ошибки функцией многомерного нормального распределения. Рассматриваются случаи матрицы ковариации общего вида, диагональной матрицы ковариации, а также диагональной матрицы ковариации с равными значениями дисперсии. Для нормировки получившихся функций распределения используется аппроксимация Лапласа.
Постановка задачи
Дана выборка , где - вектора независимой переменной, а - значения зависимой переменной. Предполагается, что
Также предполагается, что задано апостериорное распределение параметров модели , которому соответствует функция ошибки :
Пусть - наиболее вероятные параметры модели. Требуется найти аппроксимацию Лапласа для функции в точке . Заметим, что в данной работе в качестве функции ошибки берется сумма квадратов ошибок аппроксимации
Описание решения
Сначала находим оптимальные значения параметров модели :
Далее необходимо найти аппроксимацию Лапласа в точке :
где - матрица, обратная к ковариационной матрице нормального распределения, а - нормирующий коэффициент. Заметим, что в силу положительной определенности матрицы ее можно представить в соответствии с разложением Холецкого: , где - верхнетреугольная матрица. Параметризуем матрицу следующим образом:
Также параметризуем нормирующий множитель . Получаем, что . Построим обучающую выборку , где точки берутся равномерно из окрестности наиболее вероятных параметров , в которой мы хотим построить аппроксимацию. Для нахождения неизвестных параметров минимизируем квадратичный критерий для точек обучающей выборки :
Заметим, что получаемые в результате решения данной оптимизационной задачи значения параметров могут существенно отличаться в зависимости от используемого для ее решения оптимизационного алгоритма. В данной работе рассматриваются два алгоритма оптимизации: Левенберг-Марквардт и Trust region.
После нахождения оптимальных значений параметров полученные распределения остается отнормировать в соответствии с аппроксимацией Лапласа:
Вычислительный эксперимент: качество аппроксимации
В эксперименте в качестве обучающей выборки использовался временной ряд цен на хлеб из 195 точек. Для приближения использовалась модель линейной регрессии . На картинках ниже графически представлены результаты.
Функция ошибки в рассмотренном случае хорошо аппроксимируется предложенным методом, причем качество аппроксимации возрастает с увеличением качества модели. Хорошее качество аппроксимации обусловлено тем, что функция ошибки в рассматриваемом примере принадлежит тому же классу, что и функция аппроксиматор.
Вычислительный эксперимент: устойчивость алгоритма
Для сравнения устойчивости алгоритмов Левенберга-Марквардта и Trust region в качестве обучающей выборки использовался временной ряд цен на хлеб из 195 точек. Для приближения использовалась регрессионная модель . При таком виде целевой функции вид функции ошибки в окрестности оптимума несколько отличается от гауссовского. Рассматривалась зависимость оптимизированного значения параметров и от начального значения.
Исходный код и полный текст работы
Смотри также
Литература
Данная статья была создана в рамках учебного задания.
См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |