Лекция 9. Нелинейная...

15
Лекция 9. Нелинейная регрессия Краткое содержание 1. Нелинейная регрессия: постановка задачи 2. Методы Гаусса-Ньютона, Левенберга-Марквардта, доверительных областей 3. Функции в MATLAB/GNU Octave 4. Практическая реализация нелинейной регрессии в MATLAB/GNU Octave

Transcript of Лекция 9. Нелинейная...

Page 1: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Лекция 9. Нелинейная регрессия

Краткое содержание

1. Нелинейная регрессия: постановка задачи

2. Методы Гаусса-Ньютона, Левенберга-Марквардта, доверительных областей

3. Функции в MATLAB/GNU Octave

4. Практическая реализация нелинейной регрессии в MATLAB/GNU Octave

Page 2: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Виды регрессии

1. Линейная регрессия

𝑦 = 𝑏0 + 𝑏1𝑥1 +⋯+ 𝑏𝑛𝑥𝑛𝑋𝛽 = 𝑦; መ𝛽 = 𝑋⊤𝑋 −1𝑋⊤𝑦

2. Нелинейная регрессия, поддающаяся линеаризации

𝑦 = 𝑏0 + 𝑏1𝑓1(𝑥1, … , 𝑥𝑛) + ⋯+ 𝑏𝑛𝑓𝑛(𝑥1, … , 𝑥𝑛)

Примеры: 𝑘 = 𝑘0 exp −𝐸𝑎

𝑅𝑇⇒ ln𝑘 = ln 𝑘0 −

𝐸𝑎

𝑅𝑇; 𝑐𝑝 𝑇 = 𝑎 + 𝑏𝑇 + 𝑐𝑇2;

3. Нелинейная регрессия, не поддающаяся линеаризации

𝑦 = 𝑓 𝛽1, … , 𝛽𝑚, 𝑥1, … , 𝑥𝑛 = 𝑓( Ԧ𝛽, Ԧ𝑥)

Пример: 𝑦 =1

1+exp −𝛽1−𝛽2𝑥

Для решения таких задач используют численные методы: Ньютона, Гаусса-Ньютона, градиентного спуска, Левенберга-Марквардта

2

Page 3: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Численные методы и МНК

𝜑 𝛽1, … , 𝛽𝑘 , 𝑥11, 𝑥21, … 𝑥𝑚1 = 𝑦1𝜑 𝛽1, … , 𝛽𝑘 , 𝑥12, 𝑥22, … , 𝑥𝑚2 = 𝑦2

…𝜑 𝛽1, … , 𝛽𝑘 , 𝑥1𝑛, 𝑥2𝑛, … , 𝑥𝑚𝑛 = 𝑦𝑛

𝐹 Ԧ𝛽 =

𝑖

ො𝑦𝑖 − 𝑦𝑖2 =

𝑖

𝜑 Ԧ𝛽, Ԧ𝑥𝑖 − 𝑦𝑖2=

𝑖

𝑓𝑖2

𝜕𝐹 Ԧ𝛽

𝜕𝛽1= 0

𝜕𝐹 Ԧ𝛽

𝜕𝛽𝑚= 0

Рассматриваемые численные методы1. Метод Ньютона2. Метод Гаусса-Ньютона3. Метод Левенберга-Марквардта4. Метод доверительных областей с

ломаным шагом

Нелинейная система уравнений

Минимизируемая сумма квадратов

Система уравнений для поиска минимума (ср. с линейным МНК)

Как правило, полученную систему уравнений нельзя решить аналитическими методами

Нужно использовать численные методы

3

Page 4: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Метод Ньютона

Одномерный случай (нелинейное уравнения)𝑓 𝑥 ≈ 𝑓 𝑥0 + 𝑓′ 𝑥0 𝑥 − 𝑥0 = 0

𝑥 = 𝑥0 −𝑓(𝑥0)

𝑓′ 𝑥0

Многомерный случай (система нелинейных уравнений)

𝐹 Ԧ𝛽 ≈ 𝐹 Ԧ𝛽0 +

𝑖

𝜕𝐹 Ԧ𝛽0𝜕𝛽𝑖

𝛽𝑖 − 𝛽𝑖0

= 0 ⇒ 𝐹 Ԧ𝛽0 + 𝛻𝐹 Ԧ𝛽0 Ԧ𝑝 = 0

Особенности метода Ньютона1. Быстро сходится (квадратичная сходимость)2. В случае нескольких корней может быть найден любой из них

(зависит от начального приближения)3. Скорость сходимости (и сама сходимость) может зависеть от

начального приближения

4

Page 5: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Программа

format long;

delta = 1e-15;

x0 = 0.5;

x = x0 + 2*delta;

while abs(x-x0) >= delta

x0 = x;

f = cos(x0)-x0^3;

df = -sin(x0)-3*x0^2;

x = x0 – f/df;

disp(x);

end

Метод Ньютона: практическая реализация

Уравнение𝑓 𝑥 = cos 𝑥 − 𝑥3 = 0

𝑓′ 𝑥 = −sin 𝑥 − 3𝑥2 = 0

Касательная

Функция

Прибл.решение

Начальноеприбл.

2.000000000000000

1.348055393079852

1.001262924310922

0.880591138294078

0.865691456412747

0.865474078978736

0.865474033101617

0.865474033101614 5

Page 6: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Матричная запись и метод Гаусса-Ньютона

Система уравнений и метод Ньютона

Градиент (𝛁𝑭), матрицы Якоби (J) и Гессе (H)

МНК и метод Гаусса-Ньютона

𝜕𝐹 Ԧ𝛽

𝜕𝛽1= 0

𝜕𝐹 Ԧ𝛽

𝜕𝛽𝑚= 0

⇒𝜕𝐹 Ԧ𝛽

𝜕𝛽𝑖≈𝜕𝐹 Ԧ𝛽 0

𝜕𝛽𝑖+

𝑗

𝜕𝐹 Ԧ𝛽 0

𝜕𝛽𝑖𝜕𝛽𝑗𝛽𝑗 − 𝛽𝑗

0= 0

𝛻𝐹 Ԧ𝛽 0 + 𝐻 Ԧ𝛽 0 Ԧ𝑝 = 0 ⇒ 𝐽⊤ Ԧ𝛽 0 𝑓 Ԧ𝛽 0 + 𝐽⊤ Ԧ𝛽 0 𝐽 Ԧ𝛽 0 Ԧ𝑝 = 0

𝛻𝐹 𝑖 =𝜕𝐹

𝜕𝛽𝑖=

𝜕

𝜕𝛽𝑖

𝑗

𝑓𝑗2 = 2

𝑗

𝑓𝑗𝜕𝑓𝑗

𝜕𝛽𝑖= 2𝐽⊤𝑓; 𝐽𝑖𝑗 =

𝜕𝑓𝑖𝜕𝛽𝑗

=𝜕𝜑( Ԧ𝛽, 𝑥𝑖)

𝜕𝛽𝑗

𝐻𝑖𝑗 =𝜕𝐹 𝛽

𝜕𝛽𝑖𝜕𝛽𝑗=

𝜕

𝜕𝛽𝑗2

𝑘

𝑓𝑘𝜕𝑓𝑘𝜕𝛽𝑖

= 2

𝑘

𝜕𝑓𝑘𝜕𝛽𝑖

𝜕𝑓𝑘𝜕𝛽𝑗

+ 𝑓𝑘𝜕𝑓𝑘

𝜕𝛽𝑖𝜕𝛽𝑗≈0

≈2

𝑘

𝜕𝑓𝑘𝜕𝛽𝑖

𝜕𝑓𝑘𝜕𝛽𝑗

= 2𝐽⊤𝐽

6

Page 7: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Демпфирование метода Гаусса-Ньютона

В некоторых случаях метод Гаусса-Ньютона не сходитсяНеобходимо сочетать его с методом градиентного спуска

Начальное приближение𝜷𝟎 и λ

Вычислить шаг метода

𝑭 𝜷𝒌 + 𝒑< 𝑭 𝜷𝒌 ?

𝜷𝒌+𝟏 = 𝜷𝒌𝜷𝒌+𝟏 = 𝜷𝒌 + 𝒑

Критерии останова*?

Настроить 𝝀

Конец

𝛽0 - параметры модели𝜆 – параметры регуляризации: задают соотношение между Г.-Н. и градиентным спуском

Да Нет

Следующаяитерация

ДаНет

Критерии останова:(а) 𝑝 < 𝛽tol(б) 𝐹 𝛽𝑘 − 𝐹 𝛽𝑘+1 < 𝐹tol(в) 𝜆 < 𝜆min или 𝜆max < 𝜆? 7

Page 8: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Метод Левенберга-Марквардта

Является комбинацией методовГаусса-Ньютона и градиентного

спуска

Ԧ𝑝 = −𝜉𝛻𝐹 Ԧ𝛽 0 (градиентный спуск)

2𝐽⊤𝐽 Ԧ𝑝 = −𝛻𝐹 (метод Гаусса-Ньютона)

𝐽⊤𝐽 + 𝜆𝐼 Ԧ𝑝 = −𝐽⊤𝑓 = −0.5𝛻𝐹(вариант 1)𝐽⊤𝐽 + 𝜆diag 𝐽⊤𝐽 Ԧ𝑝 = −𝐽⊤𝑓 = −0.5𝛻𝐹(вариант 2)

Является итерационным. При итерациях варьируется параметр 𝝀:

1. Задать 𝛽(0), 𝜆0 > 0, 𝜈 > 1 и 𝑘 = 1. Задать 𝑟 = −1.2. Решить уравнение для 𝛽(𝑘−1) и 𝜆𝑘 = 𝜆𝑘−1𝜈

𝑟, получив шаг 𝑝𝑘3. Если значение 𝐹 не уменьшилось, то 𝑟 = 𝑟 + 1. Иначе 𝛽 𝑘 = 𝛽 𝑘−1 +

𝑝𝑘, 𝑟 = −1 , 𝑘 = 𝑘 + 1.4. Если критерии останова не выполнены, то перейти к шагу 2Сходится медленнее метода Гаусса-Ньютона, но менее требователен к начальному приближению. Широко применяется на практике.

Обозначения

𝐹 = 𝑅𝑆𝑆 𝛽 = σ𝑖 𝑓𝑖2

𝑝𝑘 = 𝛽(𝑘) − 𝛽(𝑘−1)

𝜆 > 0 – параметр регуляризации𝜈 > 1 (обычно 𝜈 ≈ 10) – задаёт

скорость варьирования 𝜆

8

Page 9: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Метод доверительных окрестностей с ломаным шагом(Trust-region dogleg method)

Разложим функцию 𝑭(𝜷) в ряд Тейлора в окрестностях точки 𝜷𝐹 𝛽 + 𝑝 ≈ 𝐿 𝑝= 𝐹 𝛽 + 𝛻𝐹 ⊤𝑝 + 0.5𝑝⊤𝐻𝑝

𝐿(𝑝) = 𝐹 𝛽 + 2 𝐽⊤𝑓 ⊤𝑝 + 𝑝⊤ 𝐽⊤𝐽 𝑝

Глобальный минимум функции 𝐿(𝑝):𝜕𝐿(𝑝)

𝜕𝑝𝑖= 0 ⇒ 𝛻𝐹 + 𝐻𝑝 = 0

Для сходимости ищут минимум 𝐿 𝑝внутри доверительной окрестности Δ:

min𝑝 <Δ

𝐿(𝑝)

Радиус Δ варьируют в зависимости от результатов предыдущего шага

Точное нахождение шага с учётом границы

окрестности сложно!Нужны приближения!

9

Ԧ𝑝gnԦ𝑝sdΔ3

𝛽(𝑘)

Δ2Δ1

Доверительные окрестности

Зависимость шага Ԧ𝑝 от Δ

Ломаный шаг (приближение)

Page 10: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

МДО с ломаным шагом (Trust-region dogleg method)

Ԧ𝑝gn

Ԧ𝑝dl

Ԧ𝑝sdΔ

𝛽(𝑘)

Ломаный шаг метода Ԧ𝑝dl

Свойства ломаного шага при положительно определённой H:1. Значение 𝐿(𝑝) монотонно убывает

при движении от 𝛽(𝑘) до Ԧ𝑝gn2. Если пересекает границы

окрестности, то в одной точке

Если шаг не пересекает границы окрестности, то 𝑝dl = 𝑝gn

Оценка качества шага метода Ԧ𝑝dlНа каждой итерации

𝜌 =𝐿 0 − 𝐿(𝑝)

𝐹 𝛽 − 𝐹(𝛽 + 𝑝)

ρ0 𝜂1 𝜂2

Не менять ΔУменьшить Δ Увеличить Δ

Принятьшаг

Отвергнутьшаг

𝑝gn - шаг метода Гаусса-Ньютона

𝑝sd - шаг метода наискорейшего градиентного спуска

10

Page 11: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

О функциях в GNU Octave и MATLAB

Именованные функции Анонимные функции

Функция – фрагмент программного кода, который можно вызывать из другихчастей программы. Имеет входные и выходные параметры (аргументы), а такжесвою область видимости для переменных.

См. также: вложенные функции (nested function), MEX-файлы, объектно-ориентированное программирование

Хранятся в переменных. Синтаксис:func = @(arg1,…,argn) expression

Примеры:sqr = @(x) x.^2

len = @(x,y) sqrt(x.^2 + y.^2)

Хранятся в файлах. Синтаксис:% Справочная информация

function [o1,…,om]=funcname(i1,…,in)

% Тело функции

end

Пример:% SQREQ_ROOTS Finds the roots

% of square equation

function [x1,x2] = sqreq_roots(a,b,c)

D = b.^2 - 4*a.*c;

x1 = (-b + sqrt(D)) ./ (2*a);

x2 = (-b - sqrt(D)) ./ (2*a);

end

11

Page 12: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Нелинейная регрессия: практическая реализация

Шаг 1. Задание аппроксимирующей функции

𝑦 = 𝛽1 + 𝛽2 exp(−𝛽3𝑥)

Шаг 2. Задание якобиана𝜕𝑦𝑖𝜕𝛽1

= 1

𝜕𝑦𝑖𝜕𝛽2

= exp −𝛽3𝑥𝑖

𝜕𝑦𝑖𝜕𝛽3

= −𝑥𝛽2 exp(−𝛽3𝑥𝑖)

Шаг 3. Запись на языке Octave

b0 = [10 10 10];

[b, res, J] = ...

lsqfit_lm(X,Y,@func, b0);

[db, b_lb, b_ub, sb] = ...

lsqfit_ci(b, res, J);

function [F, J] = func(b, x)

F = b(1) + b(2)*exp(-b(3)*x);

if nargout == 2

df_db1 = ones(size(x));

df_db2 = exp(-b(3)*x);

df_db3 = -b(2)*exp(-

b(3)*x).*x;

J = [df_db1 df_db2 df_db3];

end

Шаг 4. Подбор начального приближение и визуализация

результатов

12

Page 13: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Нелинейная регрессия: доверительные интервалы

Линейная регрессия

𝑠𝜷2 = ො𝜎2diag 𝑋⊤𝑋 −1

𝑋 =1 𝑥1

(1)⋯ 𝑥𝑚

(1)

⋮ ⋮ ⋱ ⋮

1 𝑥1(𝑛)

⋯ 𝑥𝑚(𝑛)

Нелинейная регрессия

𝑠𝜷2 = ො𝜎2diag 𝐽⊤𝐽 −1

diag – главная диагональ матрицы

Матрица Якоби 𝐽 и ошибка регрессии ො𝜎𝟐 рассчитываются в

точке 𝜷

ቐ𝜑 𝛽, 𝑥1 = 𝑦1

⋯𝜑 𝛽, 𝑥𝑛 = 𝑦𝑛

𝜑 𝛽, 𝑥 = 𝜑 መ𝛽, 𝑥 +

𝑖

𝜕𝜑( መ𝛽, 𝑥)

𝜕 መ𝛽𝑖𝛽𝑖 − 𝛽𝑖

𝐽 መ𝛽 𝛽 − መ𝛽 = 𝑦 − ො𝑦 = 𝑒

Исходная система уравнений Результат линеаризациив векторной форме

Разложение в ряд Тейлора 𝐽( መ𝛽) - аналог матрицы 𝑋в линейной регрессии

13

Page 14: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

Рекомендуемая литература

14

[1] Levenberg K. A method for the solution of certain non-linear problems in least

squares // Quarterly of Applied Mathematics. 1944. V. 2. N 2. P.164-168.

https://doi.org/10.1090/qam/10666

[2] Marquardt D. W. An Algorithm for Least-Squares Estimation of Nonlinear

Parameters //, J. Soc. Indust. Appl. Math. 1963. V. 11. N 2. P. 431-441.

http://dx.doi.org/10.1137/0111030

[3] Lourakis M. I. A., Argyros A. A. Is Levenberg-Marquardt the Most Efficient

Optimization Algorithm for Implementing Bundle Adjustment? 2005. ICCV'05

Proceedings of the Tenth IEEE International Conference on Computer Vision. V. 2.

Beijing, China. P.1526-1531. http://dx.doi.org/10.1109/ICCV.2005.128.

[4] Nocedal J., Wright, S. J. Numerical Optimization. 2006. Springer New York.

http://dx.doi.org/10.1007/978-0-387-40065-5, ISBN 978-0-387-30303-1.

[5] Гилл Ф., Мюррей У., Райт М. Практическая оптимизация. Пер. с англ.

Москва, «Мир», 1985. 509 с.

Page 15: Лекция 9. Нелинейная регрессияtd.chem.msu.ru/uploads/files/courses/general/statexp/...Лекция 9. Нелинейная регрессия Краткое

МДО с ломаным шагом: некоторые формулы

𝐹 𝛽 + 𝑝 ≈ 𝐿 𝑝 = 𝐹 𝛽 +

𝑖

𝜕𝐹(𝛽)

𝜕𝛽𝑖𝑝𝑖 +

1

2

𝑖

𝑗

𝜕2𝐹(𝛽)

𝜕𝛽𝑖𝜕𝛽𝑗𝑝𝑖𝑝𝑗

𝐿 𝑝 = 𝐹 𝛽 + 𝛻𝐹 ⊤𝑝 + 0.5𝑝⊤𝐻𝑝 = 𝐹 𝛽 + 2 𝐽⊤𝑓 ⊤𝑝 + 𝑝⊤ 𝐽⊤𝐽 𝑝

Минимум функции L (ищется методом Гаусса-Ньютона):𝜕𝐿(𝑝)

𝜕𝑝𝑖=𝜕𝐹(𝛽)

𝜕𝛽𝑖+

𝑗

𝜕2𝐹(𝛽)

𝜕𝛽𝑖𝜕𝛽𝑗𝑝𝑗 = 0 ⇒ 𝛻𝐹 + 𝐻𝑝 = 0 ⇒ 𝑝𝑔𝑛 = − 𝐽⊤𝐽 −1𝐽⊤𝑓

15

Метод наискорейшего спуска𝑝𝑠𝑑 = −𝜉𝛻𝐹 𝛽 = −2𝜉𝑔; 𝑔 = 𝐽⊤𝑓𝜕𝐿(𝜉)

𝜕𝜉= −4 g 2 + 4𝜉𝑔⊤𝐻𝑔 = 0

𝜉 =𝑔 2

𝑔⊤𝐻𝑔=

𝑔 2

2 𝐽𝑔 2

Матрица Гессе 𝑯 – положительно определённая

𝐻 = 2𝐽⊤𝐽𝑝⊤𝐻𝑝 = 2 𝐽𝑝 ⊤𝐽𝑝 = 2 𝐽𝑝 2 ≥ 0