Аппроксимация функции ошибки
Материал из MachineLearning.
 (→Исходный код и полный текст работы)  | 
				|||
| (59 промежуточных версий не показаны.) | |||
| Строка 1: | Строка 1: | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
{{TOCright}}  | {{TOCright}}  | ||
| - | + | В работе рассматривается метод аппроксимации функции ошибки функцией многомерного нормального распределения. Рассматриваются случаи матрицы ковариации общего вида, диагональной матрицы ковариации, а также диагональной матрицы ковариации с равными значениями дисперсии. Для нормировки получившихся функций распределения используется [[ Аппроксимация Лапласа | аппроксимация Лапласа]].  | |
| - | + | ||
== Постановка задачи ==  | == Постановка задачи ==  | ||
| - | + | Дана выборка <tex>D = \{(x_i, y_i)\}_{i = 1}^N</tex>, где <tex>x_i \in \mathbb{R}^n, i = 1, \dots, N</tex> - вектора независимой переменной, а <tex>y_i \in \mathbb{R}, i = 1, \dots, N</tex> - значения зависимой переменной.   | |
| + | Предполагается, что   | ||
| + | <center><tex>y = f(x, w)</tex>, где <tex>f(x, w)</tex> - некоторая параметрическая функция, <tex>w \in W</tex> - вектор ее параметров.</center>  | ||
| + | Также предполагается, что задано апостериорное распределение параметров модели <tex>p(w | D, f)</tex>, которому соответствует функция ошибки <tex>S(w)</tex>:  | ||
| + | <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>. Заметим, что в данной работе в качестве функции ошибки берется сумма квадратов ошибок аппроксимации   | ||
| + | <center><tex>S(w) = \sum_{i = 1}^N (y_i - f(x_i, w))^2</tex>.</center>  | ||
==  Описание решения ==  | ==  Описание решения ==  | ||
| - | *   | + | Сначала находим оптимальные значения параметров модели <tex>w</tex>:  | 
| + | <center><tex>w_{MP} = \arg\max_w p(w | D, f).</tex></center>  | ||
| + | Далее необходимо найти аппроксимацию Лапласа в точке <tex>w_{MP}</tex>:   | ||
| + | <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> следующим образом:  | ||
| + | <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>:  | ||
| + | <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>  | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | </  | + | |
== Исходный код и полный текст работы ==  | == Исходный код и полный текст работы ==  | ||
| Строка 50: | Строка 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 в учебном процессе.  | 

