Аппроксимация функции ошибки

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

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

Содержание

В работе рассматривается метод аппроксимации функции ошибки функцией многомерного нормального распределения. Рассматриваются случаи матрицы ковариации общего вида, диагональной матрицы ковариации, а также диагональной матрицы ковариации с равными значениями дисперсии. Для нормировки получившихся функций распределения используется аппроксимация Лапласа.

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

Дана выборка D = \{(x_i, y_i)\}_{i = 1}^N, где x_i \in \mathbb{R}^n, i = 1, \dots, N - вектора независимой переменной, а y_i \in \mathbb{R}, i = 1, \dots, N - значения зависимой переменной. Предполагается, что

y = f(x, w), где f(x, w) - некоторая параметрическая функция, w \in W - вектор ее параметров.

Также предполагается, что задано апостериорное распределение параметров модели p(w | D, f), которому соответствует функция ошибки S(w):

p(w | D, f) = \frac{exp(-S(w))}{Z_S}.

Пусть w_{MP} = \arg\max_w p(w | D, f) - наиболее вероятные параметры модели. Требуется найти аппроксимацию Лапласа для функции p(w | D, f) в точке w_{MP}. Заметим, что в данной работе в качестве функции ошибки берется сумма квадратов ошибок аппроксимации

S(w) = \sum_{i = 1}^N (y_i - f(x_i, w))^2.

Описание решения

Сначала находим оптимальные значения параметров модели w:

w_{MP} = \arg\max_w p(w | D, f).

Далее необходимо найти аппроксимацию Лапласа в точке w_{MP}:

p^*(w| k, A) = k * \exp(-(w - w_{MP})^T A (w - w_{MP})),

где A - матрица, обратная к ковариационной матрице нормального распределения, а k - нормирующий коэффициент. Заметим, что в силу положительной определенности матрицы A ее можно представить в соответствии с разложением Холецкого: A = L L^T, где L - верхнетреугольная матрица. Параметризуем матрицу L следующим образом:

L(i, j) = \begin{cases}e^{h_{ij}} & i = j, \\ sinh(h_{ij}) & j > i, \\ 0 & j < i, \\ \end{cases} где h_{ij} \in \mathbb{R}, i, j = 1, \dots, N, j \ge i.

Также параметризуем нормирующий множитель k = exp(h_0). Получаем, что p^*(w | A, k) = p^*(w | h_{ij}, i, j = 1, \dots, N, j \ge i, h_0). Построим обучающую выборку D_S = (w_k, S(w_k)), k = 1, \dots, N_S, где точки w_k берутся равномерно из окрестности наиболее вероятных параметров w_{MP}, в которой мы хотим построить аппроксимацию. Для нахождения неизвестных параметров h_{ij}, i, j = 1, \dots, N, j \ge i, h_0 минимизируем квадратичный критерий для точек обучающей выборки D_S:

\sum_{k = 1}^{N_S} (S(w_k) - p^*(w_k | h_{ij}, h_0))^2 \to \min_{h_{ij}, h_0}.

После нахождения оптимальных значений параметров полученные распределения остается отнормировать в соответствии с аппроксимацией Лапласа:

Z_S = exp(-S(w_{MP})) * \sqrt{\frac{(2 \pi)^n}{\det A}}.

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

  • описание эксперимента

В эксперименте в качестве обучающей выборки использовался временной ряд цен на хлеб из 195 точек. Для приближения использовалась модель линейной регрессии $f(x, w) = w_1 + w_2 * x^2$. На картинках ниже графически представлены результаты (картинки скоро будут выложены).

Функция ошибки, пример графика
Функция ошибки, пример графика

Функция ошибки в рассмотренном случае хорошо аппроксимируется предложенным методом, причем качество аппроксимации возрастает с увеличением качества модели. Хорошее качество аппроксимации обусловлено тем, что функция ошибки в рассматриваемом примере принадлежит тому же классу, что и функция аппроксиматор.

Исходный код и полный текст работы

Смотри также

Литература

Данная статья является непроверенным учебным заданием.
Студент: Максим Панов
Преподаватель: В.В. Стрижов
Срок: 28 сентября 2011

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

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

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