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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Описание решения)
(Описание решения)
Строка 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}
+
<tex>L(i, j) = \begin{cases}
exp(h_{ij}) & i = j, \\
exp(h_{ij}) & i = j, \\
sinh(h_{ij}) & j > i, \\
sinh(h_{ij}) & j > i, \\
0 & j < i, \\
0 & j < i, \\
-
\end{cases}</tex></center>
+
\end{cases}</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>:
где <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>

Версия 13:57, 26 сентября 2011

Содержание

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

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

Дана выборка 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}
                   exp(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}}.

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

Цель вычислительного эксперимента - ...

  • описание эксперимента
  • иллюстрации с комментариями
y = 1; % There is no need to post all your code here. Only extracts and only if it is necessary.
Функция ошибки, пример графика
Функция ошибки, пример графика

Требования к оформлению графиков:

  • шрифт должен быть больше,
  • толщина линий равна двум,
  • заголовки осей с большой буквы,
  • заголовок графика отсутствует (чтобы не дублировать подпись в статье);
  • рекомендуется сразу сохранять EPS и PNG (для TeX и для Wiki).
h = figure; hold('on');
plot(xi,y,'r-', 'Linewidth', 2); 
plot(xi,y,'b.', 'MarkerSize', 12);
axis('tight');
xlabel('Time, $\xi$', 'FontSize', 24, 'FontName', 'Times', 'Interpreter','latex');
ylabel('Value, $y$', 'FontSize', 24, 'FontName', 'Times', 'Interpreter','latex');
set(gca, 'FontSize', 24, 'FontName', 'Times')
saveas(h,'ModelOne.eps', 'psc2');
saveas(h,'ModelOne.png', 'png');

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

Смотри также

Литература

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

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

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

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