Лекция 9. Нелинейная регрессия
Краткое содержание
1. Нелинейная регрессия: постановка задачи
2. Методы Гаусса-Ньютона, Левенберга-Марквардта, доверительных областей
3. Функции в MATLAB/GNU Octave
4. Практическая реализация нелинейной регрессии в MATLAB/GNU Octave
Виды регрессии
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
Численные методы и МНК
𝜑 𝛽1, … , 𝛽𝑘 , 𝑥11, 𝑥21, … 𝑥𝑚1 = 𝑦1𝜑 𝛽1, … , 𝛽𝑘 , 𝑥12, 𝑥22, … , 𝑥𝑚2 = 𝑦2
…𝜑 𝛽1, … , 𝛽𝑘 , 𝑥1𝑛, 𝑥2𝑛, … , 𝑥𝑚𝑛 = 𝑦𝑛
𝐹 Ԧ𝛽 =
𝑖
ො𝑦𝑖 − 𝑦𝑖2 =
𝑖
𝜑 Ԧ𝛽, Ԧ𝑥𝑖 − 𝑦𝑖2=
𝑖
𝑓𝑖2
𝜕𝐹 Ԧ𝛽
𝜕𝛽1= 0
⋯
𝜕𝐹 Ԧ𝛽
𝜕𝛽𝑚= 0
Рассматриваемые численные методы1. Метод Ньютона2. Метод Гаусса-Ньютона3. Метод Левенберга-Марквардта4. Метод доверительных областей с
ломаным шагом
Нелинейная система уравнений
Минимизируемая сумма квадратов
Система уравнений для поиска минимума (ср. с линейным МНК)
Как правило, полученную систему уравнений нельзя решить аналитическими методами
Нужно использовать численные методы
3
Метод Ньютона
Одномерный случай (нелинейное уравнения)𝑓 𝑥 ≈ 𝑓 𝑥0 + 𝑓′ 𝑥0 𝑥 − 𝑥0 = 0
𝑥 = 𝑥0 −𝑓(𝑥0)
𝑓′ 𝑥0
Многомерный случай (система нелинейных уравнений)
𝐹 Ԧ𝛽 ≈ 𝐹 Ԧ𝛽0 +
𝑖
𝜕𝐹 Ԧ𝛽0𝜕𝛽𝑖
𝛽𝑖 − 𝛽𝑖0
= 0 ⇒ 𝐹 Ԧ𝛽0 + 𝛻𝐹 Ԧ𝛽0 Ԧ𝑝 = 0
Особенности метода Ньютона1. Быстро сходится (квадратичная сходимость)2. В случае нескольких корней может быть найден любой из них
(зависит от начального приближения)3. Скорость сходимости (и сама сходимость) может зависеть от
начального приближения
4
Программа
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
Матричная запись и метод Гаусса-Ньютона
Система уравнений и метод Ньютона
Градиент (𝛁𝑭), матрицы Якоби (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
Демпфирование метода Гаусса-Ньютона
В некоторых случаях метод Гаусса-Ньютона не сходитсяНеобходимо сочетать его с методом градиентного спуска
Начальное приближение𝜷𝟎 и λ
Вычислить шаг метода
𝑭 𝜷𝒌 + 𝒑< 𝑭 𝜷𝒌 ?
𝜷𝒌+𝟏 = 𝜷𝒌𝜷𝒌+𝟏 = 𝜷𝒌 + 𝒑
Критерии останова*?
Настроить 𝝀
Конец
𝛽0 - параметры модели𝜆 – параметры регуляризации: задают соотношение между Г.-Н. и градиентным спуском
Да Нет
Следующаяитерация
ДаНет
Критерии останова:(а) 𝑝 < 𝛽tol(б) 𝐹 𝛽𝑘 − 𝐹 𝛽𝑘+1 < 𝐹tol(в) 𝜆 < 𝜆min или 𝜆max < 𝜆? 7
Метод Левенберга-Марквардта
Является комбинацией методовГаусса-Ньютона и градиентного
спуска
Ԧ𝑝 = −𝜉𝛻𝐹 Ԧ𝛽 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
Метод доверительных окрестностей с ломаным шагом(Trust-region dogleg method)
Разложим функцию 𝑭(𝜷) в ряд Тейлора в окрестностях точки 𝜷𝐹 𝛽 + 𝑝 ≈ 𝐿 𝑝= 𝐹 𝛽 + 𝛻𝐹 ⊤𝑝 + 0.5𝑝⊤𝐻𝑝
𝐿(𝑝) = 𝐹 𝛽 + 2 𝐽⊤𝑓 ⊤𝑝 + 𝑝⊤ 𝐽⊤𝐽 𝑝
Глобальный минимум функции 𝐿(𝑝):𝜕𝐿(𝑝)
𝜕𝑝𝑖= 0 ⇒ 𝛻𝐹 + 𝐻𝑝 = 0
Для сходимости ищут минимум 𝐿 𝑝внутри доверительной окрестности Δ:
min𝑝 <Δ
𝐿(𝑝)
Радиус Δ варьируют в зависимости от результатов предыдущего шага
Точное нахождение шага с учётом границы
окрестности сложно!Нужны приближения!
9
Ԧ𝑝gnԦ𝑝sdΔ3
𝛽(𝑘)
Δ2Δ1
Доверительные окрестности
Зависимость шага Ԧ𝑝 от Δ
Ломаный шаг (приближение)
МДО с ломаным шагом (Trust-region dogleg method)
Ԧ𝑝gn
Ԧ𝑝dl
Ԧ𝑝sdΔ
𝛽(𝑘)
Ломаный шаг метода Ԧ𝑝dl
Свойства ломаного шага при положительно определённой H:1. Значение 𝐿(𝑝) монотонно убывает
при движении от 𝛽(𝑘) до Ԧ𝑝gn2. Если пересекает границы
окрестности, то в одной точке
Если шаг не пересекает границы окрестности, то 𝑝dl = 𝑝gn
Оценка качества шага метода Ԧ𝑝dlНа каждой итерации
𝜌 =𝐿 0 − 𝐿(𝑝)
𝐹 𝛽 − 𝐹(𝛽 + 𝑝)
ρ0 𝜂1 𝜂2
Не менять ΔУменьшить Δ Увеличить Δ
Принятьшаг
Отвергнутьшаг
𝑝gn - шаг метода Гаусса-Ньютона
𝑝sd - шаг метода наискорейшего градиентного спуска
10
О функциях в 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
Нелинейная регрессия: практическая реализация
Шаг 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
Нелинейная регрессия: доверительные интервалы
Линейная регрессия
𝑠𝜷2 = ො𝜎2diag 𝑋⊤𝑋 −1
𝑋 =1 𝑥1
(1)⋯ 𝑥𝑚
(1)
⋮ ⋮ ⋱ ⋮
1 𝑥1(𝑛)
⋯ 𝑥𝑚(𝑛)
Нелинейная регрессия
𝑠𝜷2 = ො𝜎2diag 𝐽⊤𝐽 −1
diag – главная диагональ матрицы
Матрица Якоби 𝐽 и ошибка регрессии ො𝜎𝟐 рассчитываются в
точке 𝜷
ቐ𝜑 𝛽, 𝑥1 = 𝑦1
⋯𝜑 𝛽, 𝑥𝑛 = 𝑦𝑛
𝜑 𝛽, 𝑥 = 𝜑 መ𝛽, 𝑥 +
𝑖
𝜕𝜑( መ𝛽, 𝑥)
𝜕 መ𝛽𝑖𝛽𝑖 − 𝛽𝑖
𝐽 መ𝛽 𝛽 − መ𝛽 = 𝑦 − ො𝑦 = 𝑒
Исходная система уравнений Результат линеаризациив векторной форме
Разложение в ряд Тейлора 𝐽( መ𝛽) - аналог матрицы 𝑋в линейной регрессии
13
Рекомендуемая литература
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 с.
МДО с ломаным шагом: некоторые формулы
𝐹 𝛽 + 𝑝 ≈ 𝐿 𝑝 = 𝐹 𝛽 +
𝑖
𝜕𝐹(𝛽)
𝜕𝛽𝑖𝑝𝑖 +
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