Определение гиперпараметров для MVR
Материал из MachineLearning.
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
{{stub}} | {{stub}} | ||
- | + | == Выбор регрессионных моделей и гипотез порождения данных == | |
- | |||
- | + | Общий подход к сравнению нелинейных моделей заключается в следующем. Рассмотрим набор конкурирующих моделей <tex>f_1,...,f_M</tex>. Априорная вероятность модели<tex>f_i</tex> определена как <tex>P(f_i)</tex>. При появлении данных <tex>D</tex> апостериорная вероятность модели<tex>P(f_i|D)</tex> может быть найдена по теореме Байеса, | |
- | <tex> | + | <tex>P(f_i|D)=\frac{P(f_i)p(D|f_i)}{\sum_{\iota=1}^Mp(D|f_\iota)P(f_\iota)},</tex> |
- | + | где <tex>p(D|f_i)</tex> - функция соответствия модели данным. Знаменатель дроби обеспечивает выполнение условия<tex>\sum_{i=1}^MP(f_i|D)=1</tex>. | |
- | <tex> | + | Вероятности моделей <tex>f_1</tex> и <tex>f_2</tex>, параметры которых идентифицированы по данным <tex>D</tex>, сравнимы как |
- | + | <tex>\frac{P(f_1|D)}{P(f_2|D)}=\frac{P(f_1)p(D|f_1)}{P(f_2)p(D|f_2)}.</tex> | |
- | <tex> | + | Отношение <tex>\frac{p(D|f_1)}{p(D|f_2)}</tex> - есть отношение правдоподобия моделей. Отношение <tex>\frac{P(f_1)}{P(f_2)}</tex> является априорной оценкой предпочтения одной модели другой. При моделировании отдается предпочтение наиболее простым и устойчивым моделям. Если априорные оценки <tex>P(f_i)</tex> моделей одинаковы, то есть, нет причины предпочитать одну модель другой, то их необходимо сравнивать по значениям <tex>p(D|f_i)</tex>: |
- | + | <tex>p(D|f_i)=\int{}p(D|\w,f_i)p(\w|f_i)d\w.</tex> | |
- | Мы имеем следующий итерационный процесс пересчета | + | Апостериорная плотность распределения параметров <tex>\w</tex> функции <tex>f_i</tex> при заданной выборке <tex>D</tex> равна |
+ | |||
+ | <tex>p(\w|D,f_i)=\frac{p(D|\w,f_i)p(\w|f_i)}{p(D|f_i)},</tex> | ||
+ | |||
+ | где <tex>p(\w|f_i)</tex> - априорно заданная плотность вероятности параметров начального приближения, <tex>p(D|\w,f_i)</tex> - функция правдоподобия параметров модели, а знаменатель <tex>p(D|f_i)</tex> обеспечивает выполнение условия <tex>\int{}p(\w|D,f_i)d\w=1</tex>. Он задан интегралом в пространстве параметров <tex>\int{}p(\w'|D,f_i)p(\w'|f_i)d\w'.</tex> | ||
+ | Вышеприведенные формулы называются формулами Байесовского вывода первого и второго уровня. | ||
+ | |||
+ | Рассмотрим регрессию <tex>y=f_i(\be,\x)+\nu</tex> с аддитивным Гауссовским шумом с дисперсией <tex>\sigma_\nu</tex> и с нулевым матожиданием. Тогда плотность вероятности появления данных | ||
+ | |||
+ | <tex>p(y|x,\w,\beta,f_i)\triangleq{}p(D|\w,\beta,f)=\frac{\exp(-\beta{}E_D(D|\w,f_i))}{Z_D(\beta)},</tex> | ||
+ | |||
+ | где <tex>\beta=\frac{1}{\sigma^2_\nu}</tex>. Нормирующий множитель <tex>Z_D(\beta)</tex> задан выражением | ||
+ | |||
+ | <tex>Z_D(\beta)=\left(\frac{2\pi}{\beta}\right)^{\frac{N}{2}}</tex> | ||
+ | |||
+ | и взвешенный функционал ошибки в пространстве данных | ||
+ | |||
+ | <tex>\beta{}E_D=\frac{\beta}{2}\sum_{n=1}^N(f_i(\x_n)-y_n)^2.</tex> | ||
+ | |||
+ | Введем регуляризующий параметр '''<tex>\alpha</tex>''', который отвечает за то, насколько хорошо модель должна соответствовать зашумленным данным. Функция плотности вероятности параметров с заданным гиперпараметром <tex>\alpha</tex> имеет вид | ||
+ | |||
+ | <tex>p(\w|\alpha,f_i)=\frac{\exp(-\alpha{}E_W(\w|f_i))}{Z_W(\alpha)},</tex> | ||
+ | |||
+ | где <tex>\alpha</tex> --- обратная дисперсии распределения параметров, <tex>\alpha=\sigma_\w^{-2}</tex>, а нормирующая константа <tex>Z_W</tex> определена дисперсией распределения параметров как | ||
+ | |||
+ | <tex>Z_W(\alpha)=\left(\frac{2\pi}{\alpha}\right)^\frac{W}{2}.</tex> | ||
+ | |||
+ | Требование к малым значениям параметров предполагает Гауссовское априорное распределение с нулевым средним: | ||
+ | |||
+ | <tex>p(\w)=\frac{1}{Z_W}\exp{(-\frac{\alpha}{2}||\w||^2)}.</tex> | ||
+ | |||
+ | Так как переменные <tex>\alpha</tex> и <tex>\beta</tex> являются параметрами распределения параметров модели, в дальнейшем будем называть их гиперпараметрами. Исключая нормирующую константу <tex>Z_W</tex>, которая не зависит от параметров <tex>\w</tex> и логарифмируя, получаем: | ||
+ | |||
+ | <tex>\alpha{E}_W=\frac{\alpha}{2}||\w||^2.</tex> | ||
+ | |||
+ | Эта ошибка регуляризирует параметры, начисляя штраф за их чрезмерно большие значения. | ||
+ | При заданных значениях гиперпараметров <tex>\alpha</tex> и <tex>\beta</tex> для фиксированной функции <tex>f_i</tex> получаем: | ||
+ | |||
+ | <tex>p(\w|D,\alpha,\beta)=\frac{p(D|\w,\beta)p(\w|\alpha)}{p(D|\alpha,\beta)}.</tex> | ||
+ | |||
+ | Записывая функцию ошибки в виде <tex>S(\w)=\alpha{}E_W+\beta{}E_D</tex>, получаем | ||
+ | |||
+ | <tex>p(\w|D,\alpha,\beta,f_i)=\frac{\exp(-S(\w|f_i))}{Z_S(\alpha,\beta)},</tex> | ||
+ | |||
+ | где <tex>Z_S</tex> - нормирующий множитель. | ||
+ | |||
+ | |||
+ | == Нахождение параметров модели == | ||
+ | |||
+ | Рассмотрим итеративный алгоритм для определения оптимальных параметров <tex>\w</tex> и гиперпараметров <tex>\alpha,\beta</tex> при заданной модели <tex>f_i</tex>. Корректный подход заключается в интегрировании всех неизвестных параметров и гиперпараметров. Апостериорное распределение параметров определяется как | ||
+ | |||
+ | <tex>p(\w|D)=\iint{}p(\w,\alpha,\beta|D)d\alpha{}d\beta=\iint{}p(\w|\alpha,\beta,D)p(\alpha,\beta|D)d\alpha{}d\beta,</tex> | ||
+ | |||
+ | что требует выполнить интегрирование апостериорного распределения параметров <tex>p(\w|\alpha,\beta,D)</tex> по пространству, размерность которого равна количеству параметров. Вычислительная сложность этого интегрирования весьма велика. Интеграл может быть упрощен при подходящем выборе начальных значений гиперпараметров. | ||
+ | |||
+ | Приближение интеграла заключается в том, что апостериорная плотность распределения гиперпараметров <tex>p(\alpha,\beta|D)</tex> имеет выраженный пик в окрестности наиболее правдоподобных значений гиперпараметров <tex>\alpha^\m,\beta^\m</tex>. Это приближение известно как аппроксимация Лапласа. При таком допущении интеграл упрощается до | ||
+ | |||
+ | <tex> p(\w|D)\approx{}p(\w|\alpha^\m,\beta^\m,D)\iint{p(\alpha,\beta|D)}d\alpha{}d\beta\approx{}p(\w|\alpha^\m,\beta^\m,D). </tex> | ||
+ | |||
+ | Необходимо найти значения гиперпараметров, которые оптимизируют апостериорную плотность вероятности параметров, а затем выполнить все остальные расчеты, включающие <tex>p(\w|D)</tex> при фиксированных значениях гиперпараметров. | ||
+ | |||
+ | Для нахождения функционала <tex>p(\w|\alpha,\beta,D)</tex>, который использует апостериорное распределение параметров, рассмотрим аппроксимацию ошибки <tex>S(\w)</tex> на основе рядов Тейлора второго порядка: | ||
+ | |||
+ | <tex>S(\w)\approx{}S(\w^\m)+\frac{1}{2}(\w-\w^\m)^TA(\w-\w^\m).</tex> | ||
+ | |||
+ | В выражении нет слагаемого первого порядка, так как предполагается, что <tex>\w^\m</tex> определяет локальный минимум функции ошибки, то есть <tex>\frac{\partial{}S(\w^\m)}{\partial{}w_\xi}=0</tex> для всех значений <tex>\xi</tex>. Матрица <tex>A</tex> - это матрица Гессе функции ошибок: | ||
+ | |||
+ | <tex> A=\nabla^2{}S(\w^\m)=\beta\nabla^2{}E_D(\w^\m)+\alpha{}I. </tex> | ||
+ | |||
+ | Обозначим первое слагаемое правой части через <tex>H</tex>, тогда <tex>A=H+\alpha{I}</tex>. Подставив полученное приближенное значение <tex>S(\w)</tex> в уравнение и обозначив <tex>\Delta\w=\w-\w^\m</tex>, получим | ||
+ | |||
+ | <tex> p(\w|\alpha,\beta,D)=\frac{1}{\hat{Z}_S}\exp\left(-S(\w^\m)-\frac{1}{2}\Delta\w^TA\Delta\w\right), </tex> | ||
+ | |||
+ | Оценим нормирующую константу <tex>\hat{Z}_S</tex>, необходимую для аппроксимации кривой Гаусса, как | ||
+ | |||
+ | <tex> \hat{Z}_S=\exp(-S(\w^\m))(2\pi)^\frac{W}{2}(\det{}A)^{-\frac{1}{2}}.</tex> | ||
+ | |||
+ | Максимизируем функцию <tex>p(D|\alpha,\beta)</tex>, изменяя значения гиперпараметров <tex>\alpha</tex> и <tex>\beta</tex>. Это можно выполнить, интегрируя функцию плотности вероятности данных по пространству параметров <tex>\w</tex>: | ||
+ | |||
+ | <tex> p(D|\alpha,\beta)=\int{}p(D|\w,\alpha,\beta)p(\w|\alpha,\beta)d\w=\int{}p(D|\w,\alpha,\beta)p(\w|\alpha)d\w, </tex> | ||
+ | |||
+ | где второй интеграл справедлив по причине того, что распределение параметров не зависит от дисперсии шума в силу гипотезы о Гауссовском распределении шума. Для упрощения вычислений мы допускаем, что распределение <tex>p(\alpha,\beta)</tex> является равномерным. | ||
+ | |||
+ | Запишем вероятность данных через функцию ошибки: | ||
+ | |||
+ | <tex>p(D|\alpha,\beta)=\frac{1}{Z_D(\beta)}\frac{1}{Z_D(\alpha)}\int\exp(-S(\w)))d\w. </tex> | ||
+ | |||
+ | Из значений <tex>Z_D(\alpha)</tex>, <tex>Z_D(\beta)</tex> и предыдущего выражения получим: | ||
+ | |||
+ | <tex> \ln{}p(D|\alpha,\beta)=-\alpha{}E_W^\m-\beta{}E_D^\m-\frac{1}{2}\ln|A|+\frac{W}{2}\ln{\alpha}+\frac{N}{2}\ln\beta-\frac{N}{2}\ln{}(2\pi).</tex> | ||
+ | |||
+ | Для того, чтобы оптимизировать это выражение относительно <tex>\alpha</tex>, найдем производную: | ||
+ | |||
+ | <tex>\frac{d}{d\alpha}\ln|A|=\frac{d}{d\alpha}\ln\left(\prod_{j=1}^W\lambda_j+\alpha\right)</tex> | ||
+ | |||
+ | В этом выражении <tex>\lambda_1,...,\lambda_W</tex> - собственные значения матрицы <tex>H</tex>. Так как функция ошибки на данных не является квадратичной функцией параметров, как при линейной или RBF регрессии, то непосредственно оптимизировать величину <tex>\alpha</tex> невозможно, гессиан <tex>Н</tex> не является константой, а зависит от параметров <tex>\w</tex>. Так как мы принимаем <tex>A=H+\alpha{}I</tex> для вектора <tex>\w^\m</tex>, который зависит от выбора <tex>\alpha</tex>, то собственные значения <tex>H</tex> косвенным образом зависят от <tex>\alpha</tex>. Таким образом, формула (\ref{dda}) игнорирует параметры модели. | ||
+ | |||
+ | С использованием этого приближения, производная с учетом <tex>\alpha</tex> равна | ||
+ | |||
+ | <tex> \ln{}p(D|\alpha,\beta)=-E_W^\m-\frac{1}{2}\sum_{j=1}^W\frac{1}{\lambda_j+\alpha}+\frac{W}{2\alpha}. </tex> | ||
+ | |||
+ | Приравнивая последнее выражение к нулю и преобразовывая, получаем выражение для <tex>\alpha</tex> | ||
+ | |||
+ | <tex> 2\alpha{}E_W^\m=W-\sum_{j=1}^W\frac{\alpha}{\lambda_j+\alpha}.</tex> | ||
+ | |||
+ | Обозначим вычитаемое правой части через <tex>\gamma</tex> | ||
+ | |||
+ | <tex> \gamma=\sum_{j=1}^W\frac{\alpha}{\lambda_j+\alpha}. </tex> | ||
+ | |||
+ | Те компоненты суммы, в которых <tex>\lambda_j\gg\alpha</tex> привносят вклад, близкий к единице, а те компоненты суммы, в которых <tex>0<\lambda_j\ll\alpha</tex>, привносят вклад, близкий к нулю. Таким образом, <tex>\gamma</tex> может быть интерпретирована как мера числа хорошо обусловленных параметров модели. | ||
+ | |||
+ | Для нахождения гиперпараметра <tex>\beta</tex> рассмотрим задачу оптимизации. Обозначим через <tex>\mu_j</tex> собственные значение матрицы <tex>\nabla^2{}E_D</tex>. Так как <tex>H=\beta\nabla^2{}E_D</tex>, то <tex>\lambda_j=\beta\mu_j</tex> и следовательно, <tex> \frac{d\lambda_j}{d\beta}=\mu_j=\frac{\lambda_j}{\beta}.</tex> Отсюда, | ||
+ | |||
+ | <tex>\frac{d}{d\beta}\ln|A|=\frac{d}{d\beta}\sum_{j=1}^W\ln(\lambda_j+\alpha)=\frac{1}{\beta}\sum_{j=1}^W\frac{\lambda_j}{\lambda_j+\alpha}.</tex> | ||
+ | |||
+ | Дифференцируя, как и в случае нахождения <tex>\alpha</tex>, мы находим, что оптимальное значение <tex>\beta</tex> определено как | ||
+ | |||
+ | <tex>2\beta{}E_D^\m=N-\sum_{j=1}^W\frac{\lambda_j}{\lambda_j+\alpha}=N-\gamma.</tex> | ||
+ | |||
+ | Таким образом, на каждом шаге для модели определены гиперпараметры <tex>\alpha,\beta,\gamma</tex>. При этом <tex>\beta</tex> определена для всей модели, а <tex>\alpha</tex> и <tex>\gamma</tex> для каждой функции из суперпозиции. Так как оптимизация параметров <tex>w</tex> дает нам положительно определенную форму гессиана, его собственные значения <tex>\lambda</tex> больше нуля, и, таким образом, <tex>\gamma</tex> меньше <tex>W</tex>. | ||
+ | |||
+ | Мы имеем следующий итерационный процесс пересчета <tex>\alpha</tex> и <tex>\gamma</tex>: | ||
<tex>\alpha_{ij}^{new} = \frac{W-\gamma_i}{E_W(b_{ij})}</tex> | <tex>\alpha_{ij}^{new} = \frac{W-\gamma_i}{E_W(b_{ij})}</tex> | ||
Строка 24: | Строка 144: | ||
<tex>\gamma = \sum_{j=1}^{W}\frac{\alpha}{\lambda_j+\alpha}</tex> | <tex>\gamma = \sum_{j=1}^{W}\frac{\alpha}{\lambda_j+\alpha}</tex> | ||
- | Процесс сходится, так как увеличение | + | Процесс сходится, так как увеличение <tex>\alpha</tex> ведет к увеличению <tex>\gamma</tex>, что на следующем шаге ведет к уменьшению <tex>\alpha</tex>. |
Строка 30: | Строка 150: | ||
title=Код, считающий гиперпараметры:| | title=Код, считающий гиперпараметры:| | ||
content=<br /> | content=<br /> | ||
- | for m=1: | + | for m=1:100 |
- | + | gamma(m)=0; | |
- | + | for i=1:size(Model.wFound,2) | |
- | + | gamma(m)=gamma(m)+max(alpha)/(lambda(i)+max(alpha)); | |
- | + | end | |
- | + | for i=1:size(Model.wFound,2) | |
- | + | alpha(i,m)=(size(Model.wFound,2)-gamma(m))/Model.wFound(i)^2; | |
- | + | end | |
- | + | Model.alpha=alpha(:,m); | |
+ | beta(m)=(size(y,1)-gamma(m))/Model.errTest; | ||
+ | Model.beta=beta(m); | ||
+ | Model.wFound = fminsearch(@qualitySSEhyper,Model.wFound,[] ,x,y,Model.Handle,Model.alpha,Model.beta); | ||
+ | weights(:,m)=Model.wFound; | ||
+ | Hessian=findHessian(Model,x,y); | ||
+ | lambda(:,m)=eig(Hessian); | ||
end | end | ||
}} | }} | ||
+ | [[Изображение:Allvariants.jpg|thumb]] | ||
+ | [[Изображение:Dataset.jpg|thumb]] |
Текущая версия
Выбор регрессионных моделей и гипотез порождения данных
Общий подход к сравнению нелинейных моделей заключается в следующем. Рассмотрим набор конкурирующих моделей . Априорная вероятность модели определена как . При появлении данных апостериорная вероятность модели может быть найдена по теореме Байеса,
где - функция соответствия модели данным. Знаменатель дроби обеспечивает выполнение условия.
Вероятности моделей и , параметры которых идентифицированы по данным , сравнимы как
Отношение - есть отношение правдоподобия моделей. Отношение является априорной оценкой предпочтения одной модели другой. При моделировании отдается предпочтение наиболее простым и устойчивым моделям. Если априорные оценки моделей одинаковы, то есть, нет причины предпочитать одну модель другой, то их необходимо сравнивать по значениям :
Апостериорная плотность распределения параметров функции при заданной выборке равна
где - априорно заданная плотность вероятности параметров начального приближения, - функция правдоподобия параметров модели, а знаменатель обеспечивает выполнение условия . Он задан интегралом в пространстве параметров Вышеприведенные формулы называются формулами Байесовского вывода первого и второго уровня.
Рассмотрим регрессию с аддитивным Гауссовским шумом с дисперсией и с нулевым матожиданием. Тогда плотность вероятности появления данных
где . Нормирующий множитель задан выражением
и взвешенный функционал ошибки в пространстве данных
Введем регуляризующий параметр , который отвечает за то, насколько хорошо модель должна соответствовать зашумленным данным. Функция плотности вероятности параметров с заданным гиперпараметром имеет вид
где --- обратная дисперсии распределения параметров, , а нормирующая константа определена дисперсией распределения параметров как
Требование к малым значениям параметров предполагает Гауссовское априорное распределение с нулевым средним:
Так как переменные и являются параметрами распределения параметров модели, в дальнейшем будем называть их гиперпараметрами. Исключая нормирующую константу , которая не зависит от параметров и логарифмируя, получаем:
Эта ошибка регуляризирует параметры, начисляя штраф за их чрезмерно большие значения. При заданных значениях гиперпараметров и для фиксированной функции получаем:
Записывая функцию ошибки в виде , получаем
где - нормирующий множитель.
Нахождение параметров модели
Рассмотрим итеративный алгоритм для определения оптимальных параметров и гиперпараметров при заданной модели . Корректный подход заключается в интегрировании всех неизвестных параметров и гиперпараметров. Апостериорное распределение параметров определяется как
что требует выполнить интегрирование апостериорного распределения параметров по пространству, размерность которого равна количеству параметров. Вычислительная сложность этого интегрирования весьма велика. Интеграл может быть упрощен при подходящем выборе начальных значений гиперпараметров.
Приближение интеграла заключается в том, что апостериорная плотность распределения гиперпараметров имеет выраженный пик в окрестности наиболее правдоподобных значений гиперпараметров . Это приближение известно как аппроксимация Лапласа. При таком допущении интеграл упрощается до
Необходимо найти значения гиперпараметров, которые оптимизируют апостериорную плотность вероятности параметров, а затем выполнить все остальные расчеты, включающие при фиксированных значениях гиперпараметров.
Для нахождения функционала , который использует апостериорное распределение параметров, рассмотрим аппроксимацию ошибки на основе рядов Тейлора второго порядка:
В выражении нет слагаемого первого порядка, так как предполагается, что определяет локальный минимум функции ошибки, то есть для всех значений . Матрица - это матрица Гессе функции ошибок:
Обозначим первое слагаемое правой части через , тогда . Подставив полученное приближенное значение в уравнение и обозначив , получим
Оценим нормирующую константу , необходимую для аппроксимации кривой Гаусса, как
Максимизируем функцию , изменяя значения гиперпараметров и . Это можно выполнить, интегрируя функцию плотности вероятности данных по пространству параметров :
где второй интеграл справедлив по причине того, что распределение параметров не зависит от дисперсии шума в силу гипотезы о Гауссовском распределении шума. Для упрощения вычислений мы допускаем, что распределение является равномерным.
Запишем вероятность данных через функцию ошибки:
Из значений , и предыдущего выражения получим:
Для того, чтобы оптимизировать это выражение относительно , найдем производную:
В этом выражении - собственные значения матрицы . Так как функция ошибки на данных не является квадратичной функцией параметров, как при линейной или RBF регрессии, то непосредственно оптимизировать величину невозможно, гессиан не является константой, а зависит от параметров . Так как мы принимаем для вектора , который зависит от выбора , то собственные значения косвенным образом зависят от . Таким образом, формула (\ref{dda}) игнорирует параметры модели.
С использованием этого приближения, производная с учетом равна
Приравнивая последнее выражение к нулю и преобразовывая, получаем выражение для
Обозначим вычитаемое правой части через
Те компоненты суммы, в которых привносят вклад, близкий к единице, а те компоненты суммы, в которых , привносят вклад, близкий к нулю. Таким образом, может быть интерпретирована как мера числа хорошо обусловленных параметров модели.
Для нахождения гиперпараметра рассмотрим задачу оптимизации. Обозначим через собственные значение матрицы . Так как , то и следовательно, Отсюда,
Дифференцируя, как и в случае нахождения , мы находим, что оптимальное значение определено как
Таким образом, на каждом шаге для модели определены гиперпараметры . При этом определена для всей модели, а и для каждой функции из суперпозиции. Так как оптимизация параметров дает нам положительно определенную форму гессиана, его собственные значения больше нуля, и, таким образом, меньше .
Мы имеем следующий итерационный процесс пересчета и :
Процесс сходится, так как увеличение ведет к увеличению , что на следующем шаге ведет к уменьшению .
for m=1:100 gamma(m)=0; for i=1:size(Model.wFound,2) gamma(m)=gamma(m)+max(alpha)/(lambda(i)+max(alpha)); end for i=1:size(Model.wFound,2) alpha(i,m)=(size(Model.wFound,2)-gamma(m))/Model.wFound(i)^2; end Model.alpha=alpha(:,m); beta(m)=(size(y,1)-gamma(m))/Model.errTest; Model.beta=beta(m); Model.wFound = fminsearch(@qualitySSEhyper,Model.wFound,[] ,x,y,Model.Handle,Model.alpha,Model.beta); weights(:,m)=Model.wFound; Hessian=findHessian(Model,x,y); lambda(:,m)=eig(Hessian); end