Глава 4. Нелинейный метод наименьших квадратов

advertisement
Глава 4
Нелинейный метод наименьших квадратов
Постановка задачи. Что будет, если зависимость наблюдаемых
значений yi от параметров нелинейная, т.е.
yi = h(xi ;  ) +  i = h i ( ) +  i , i = 1, ..., n,
(1)
где xi  значение (скалярного или векторного) аргумента в i-ом наблюдении, h
 функция заданного вида, зависящая от параметров  = ( 1 , ...,  k)T,
истинное значение  неизвестно и подлежит оценке по yi; ошибки измерений i
независимы и в совокупности для  = (1 , ...,  n )T выполняются условия E =
0, cov( ,  ) = 2In ? Свойства оптимальности оценки НК, доказанные в
линейном случае, целиком основывались на линейности модели (5’) гл.1 по  и
на линейности НК-оценок
 = Arg min || y – h () || 2 ,
(2)
где h () = (h 1 ( ) , h 2 ( ) , ..., h n ( ) )T  Rn . Ни то, ни другое не имеет места
для h(x ;  ) нелинейного вида. Оценка (2) обычно не может быть записана в
явной форме, а получается численно в итерационной процедуре минимизации
Q ( ) = || y – h () || 2.
(3)
Поэтому в общем случае МНК не обоснован, и метод МП является
единственным обоснованным методом :
 МП = Arg max L ( ) ,
(4)
и в зависимости от ф.р. ошибок получим разные оценки (4) (см. пример 3 гл.1
для линейного случая). В частности, если   Nn (0 ,  2 I n ), то
 МП = Arg max [exp {–1/(2  2 )  || y – h () || 2 }] = Arg min Q ( ) =  , (5)
т.е. получаем обоснование нелинейного МНК в случае нормальности ошибок.
Однако, в отличие от линейного случая, оценка (2) не будет нормально
распределённой (вспомним, что результат теоремы 2.4 был основан на
линейности  = L y) . Поэтому вся теория нормальной регрессии тут не
проходит. В частности, несмещённость и эффективность НК-оценки  лишь
асимптотическая, как и для любой МП-оценки.
Таким образом, рассмотрение нелинейного случая в основном касается
вычислительной стороны  как искать (2) ? Однако прежде, чем искать,
поставим вопрос о существовании и единственности НК-оценки.
Пример 1. Оценка (2) может не существовать. Пусть y1 = y2 = ... = yn = 0,
1
  R , h (x ;  ) = e  x , xi > 0, i = 1, ..., n . Тогда
Q ( ) =
n
e
2  x
i
, inf Q ( ) = 0, но он не достигается ни в какой
i 1
конечной точке  , а лишь при     . 
Пример 2 . (решение (2) может быть не единственным). Пусть опять yi =
0, i = 1, ..., n , и пусть  = (1 , 2 , 3 )T ,
h (x;  ) = exp{ -1x } - exp{ -2x } - 3 (exp{ -x } - exp{ -10x }).
Нетрудно видеть, что опять inf Q ( ) = 0, но он достигается при
47
(а) 1 = 1, 2 = 10, 3 = 1; (б) 1 = 10, 2 = 1, 3 = -1; (в) 1 = a , 2 = -a,
3 = 0 ;   a    . 
Наконец, из (5) вытекает, что под НК-оценкой понимается  ,
реализующая глобальный минимум Q( ) (3). Однако при нелинейной h(x; ) ,
как правило, Q( ) имеет несколько минимумов, а найденное  * может давать
не глобальный, а локальный минимум Q() (неподходящее решение). Задача
глобальной минимизации очень трудна, и до настоящего времени в общем
случае не решена. Поэтому, чтобы иметь хоть какую-то гарантию успеха, на
практике пробуют несколько разных начальных приближений в одной из
описанных ниже итерационных процедур, и убеждаются, что все эти начальные
приближения приводят к одному и тому же решению (в противном случае за 
принимают то, которое даёт наименьшее значение Q() ).
Пример 3. Пусть n = 5, опять yi = 0; xi = i, i = 1, ..., 5 , и пусть   R1 ,
h (x ;  ) = 1 – cos(2 ) + 0.36 x  2. Ясно, что min Q ( ) = 0, и он достигается в
точке  = 0 (глобальный минимум). Но имеются ещё четыре локальных
минимума вблизи точек -2, -1, 1, 2 (в этих точках функция f() = 1 – cos(2)
принимает наименьшее значение, равное 0). Если использовать, как это обычно
делается, итерационный алгоритм, и взять в качестве начального приближения
для  значение  (0) , отделённое от нуля одним из локальных минимумов, то
процедура локальной минимизации найдёт в качестве  * локальный минимум.
Function Sum(h(x i ,theta)2 , i=1,...5), h(x,theta) = 1 - cos(2*pi*theta)+0.36*x*theta*theta
500
450
400
350
300
250
200
150
100
50
0
-3
-2
-1
0
1
2
3
Действительно, автор провёл вычислительный эксперимент, используя
функцию FindMinimum из пакета Mathematica (version 2.2). Получились такие
результаты:
48
 (0) = 0.5
 (0) = 1.2
 (0) = 2.2
Q( (0) ) = 25.8455  * = 0.0251734
Q( *) = 8.70710 -8
Q( (0) ) = 27.9141  * = 0.936574
Q( *) = 6.25756
Q( (0) ) = 205.484  * = 1.86034
Q( *) = 99.5182.
Как же минимизировать целевую функцию (3) ? Для некоторых частных
видов модельной функции h(x;) можно использовать подходящее
преобразование переменных, делающее модельную функцию линейной.
Например, если в примере 1 взять
g (x; ) = ln h (x; ) = - x ,
(*)
и если данные не искусственно сконструированные (y1 = y2 = ... = yn = 0), а более
реальные (y1 , y2 , ... yn > 0) , можно рассмотреть zi = lnyi . Такова же ситуация в
случае модельной функции – гиперболы
h(x;) = 1/ (1 + 2 x)
(g(x; ) = 1/ h(x;), zi = 1/ yi ). Однако при преобразованиях типа (*) теряется
аддитивность ошибок:
zi = ln yi  ln h(xi ; ) + i’ = g(xi ; ) + i’,
где i’ – ошибка для преобразованных данных. Поэтому минимизация целевой
функции
n
( z
i 1
i
 g( x i ; ) ) 2
(**)
не то же самое, что минимизация (3), так что решение (**) не есть НК-оценка.
Правда, если |  i | << |h(x; )|, можно взять по формуле Тейлора линейную (по  i )
i
i
часть разложения yi : zi = ln h(xi ; ) + ln (1+
)  ln h(xi ; ) +
=
h( x i ; )
h( x i ; )
g(xi ; ) + i’. Однако и в этом случае преобразованная ошибка  i’ не имеет
2

1 
  V ar{  i } , так что нужно
постоянной дисперсии, Var{i’} = 
 h( x i ; ) 
использовать оценку Эйткена (20) из гл.1, а не обычную НК-оценку (10) гл.1.
Таким образом, преобразование переменных требует осторожности, и
правильнее рассматривать решение линеаризованной задачи (**) в качестве
метода выбора начального приближения для , а затем решать нелинейную
задачу (3) итерационными методами.
Градиентные методы. Какими? Обычно модельная функция h(x;) 
гладкая функция  (в дальнейшем нам понадобится, чтобы h ( ), h ( ) и h (
) были непрерывны), а Q() квадратичная по h (т.е. тоже гладкая) . Теория и
практика оптимизации показывают, что для локальной минимизации гладкой
функции (3) более эффективны градиентные методы, а не алгоритмы типа
случайного поиска. При этом решение ищется итерационно :
 (l+1) =  (l) +  (l) ,
(6)
(l)
(l+1)
где l  номер шага,   приближение для  на l -ой итерации, 
 на l+1(l)
k
ой итерации,   R  итерационный шаг. Итерационный шаг определяется
направлением  l (единичный вектор, ||  l || = 1, лежащий на луче, проведённом
из  (l) ) , и величиной шага  l > 0, так что
 (l) =  l  l .
(7)
49
Хотелось бы, чтобы очередной шаг приближал нас к решению  *
(обозначаем его  *, а не  потому, что ищется не глобальный, а локальный
минимум (3)). Однако мы не знаем  * , поэтому считаем шаг удачным, если он
уменьшил целевую функцию (3).
Определение 1. Шаг  (l) допустимый, если Q( (l) +  (l)) < Q( (l)) .
Определение 2. Градиентный метод называется допустимым , если он
состоит из одних лишь допустимых шагов.
В дальнейшем мы будем рассматривать только допустимые градиентные
методы. Общую итерационную процедуру такого метода можно описать так:
Пусть начальное приближение для  есть  (1) . Положим l := 1.
Находим  l  направление допустимого шага.
Определяем величину шага  l , вычисляем по (7)  (l) и  (l+1) =  (l) +  (l)
Проверяем условия останова. Если они выполнены, полагаем
 *:=  (l+1)
(l)
(l+1)
и идём на шаг 5. Иначе присваиваем  := 
, l := l+1 и идём на шаг 2.
Стоп.
В книге Гилл Ф., Мюррей У., Райт М. “Практическая оптимизация”. М.:
Мир, 1985 при изложении теории оптимизации приводятся условия локального
минимума функции в точке  * –
А) Необходимые:
1. Вектор градиента g( *) = 0 ;
2. матрица вторых производных (матрица Гессе (Hesse), гессиан,
играющая в оптимизации ключевую роль) H  0 в точке  *.
Б) Достаточные:
1. g( *) = 0 ;
2. H > 0 в точке  *.
Поэтому в качестве условий останова обычно фигурируют:
а) малость изменения (относительного) целевой функции 
(Q( (l)) – Q( (l+1))) / Q( (l))  1 ;
б) малость относительного изменения параметров 
|  (jl 1)   (jl ) |
max
 2 ;
j 1,...,k
|  (jl ) |
в) малость градиента Q (т.к.  Q /   = 0 в стационарной точке) 
|| gl+1 || =
Q

 3 .
 
( l  1)
Ни одно отдельно взятое условие останова не гарантирует достижения
минимума. Так, если   R1 , для Q(), имеющей горизонтальную точку
перегиба  ’, в этой точке выполнены условия останова a) и в), а если эта Q()
быстро убывает, то в точке  ” , расположенной на таком участке на склоне,
выполнено условие останова б), но ни та, ни другая точка не является точкой
локального минимума. Надёжным условием останова является совместное
выполнение всех трёх критериев (при этом нужно согласовывать допуски 1, 2,
3   ).
50
Вернёмся к рассмотрению допустимого шага. Для заданного направления
 рассмотрим f() = Q( +   ) (индекс итерации для краткости опускаем).
Пусть мы ещё не в точке минимума, так что градиент не равен нулю, || g || > 0.
Имеем
T
f  Q 
    = g T .
   
При рассмотрении малой окрестности точки  можно записать
f() = Q( +  )  f(0) +     |
=0
(8)
= Q( ) +  g T .
Чтобы шаг был допустимым, требуется, чтобы Q( +  ) < Q( ), т.е.
 g  должно быть меньше 0 при достаточно малых . Так как  > 0, отсюда
следует условие
g T < 0
(9)
(в допустимом шаге направление шага составляет с градиентом тупой угол).
Теорема 4.1. Для того, чтобы шаг  был допустимым, необходимо и
достаточно выполнение условия
 =–Rg,
(10)
kxk
где R  R
,R>0.
Доказательство (а) Достаточность . Покажем, что из (10) следует (9).
Поскольку || g || > 0 , имеем
g T = – g TR g < 0 .
T
(б) Необходимость. Пусть g T < 0 . Покажем, что
R Ik–
gg
T
T
g g


T
 g
T
(11)
 требуемая матрица. Действительно, R = R T очевидно, и выполняется
равенство – R g = – g + g+  =  , т.е. (10). Покажем, что для всех z  R k , || z ||
> 0 квадратичная форма z TR z > 0. Действительно,
( z T g ) 2  ( z T ) 2 
T
T
 .
z Rzz z –
  
gT g
 T g 

––––––––––
–––––––––
Первое подчёркнутое слагаемое   согласно неравенству Коши-Шварца : (|| z|| 2
|| g || 2 - (z T g) 2 ) / || g || 2   , причём равенство реализуется при z =  g. Но в
этом случае второе слагаемое равно -  2( Tg) > 0 (согласно (9)). Напротив, если
второе слагаемое z T равно 0, то z ортогонален  , но при этом первое
слагаемое больше 0, ибо оно равно 0 лишь при z =  g , но тогда было бы g   ,
что противоречит (9).

Итак, различные допустимые методы отличаются видом матрицы R и
способом выбора величины шага  на итерациях. Таким образом,
 (l+1) =  (l) –  l R l g l , где  l > 0, R l > 0 .
51
(12)
1. Метод наискорейшего спуска. Согласно (10),  = – R g , с R > 0 , ||
|| = 1. Простейший способ выбора R – положить её единичной матрицей, с
точностью до константы:
g
1
R=
,
(10’)
Ik   = 
|| g||
|| g||
т.е. направление шага выбирается по антиградиенту. Это метод наискорейшего
спуска, предложенный Коши 150 лет назад. Величина шага в нём произвольна:
 = const > 0   (l+1) =  (l) –  l g l .
(12’)
Метод является допустимым, и значения целевой функции вдали от минимума
уменьшаются довольно быстро. Но вблизи от точки  * для функций с сильно
вытянутыми линиями уровня, например, для функции (долины) Розенброка:
Q() = 100 (2 – 1 2 )2 + (1 - 1 )2
итерации наискорейшего спуска приводят к шагам от борта к борту долины, так
что количество итераций до достижения  * = Arg min Q() велико, сходимость
крайне медленная. Поэтому метод наискорейшего спуска редко используют при
решении практических задач.
2. Метод Ньютона. Недостаток метода наискорейшего спуска в том, что
он “видит ближайшую перспективу”, даваемую градиентом. Между тем, как вы
знаете из теории дифференцируемых функций одной или нескольких
переменных, поведение графика (поверхности) функции, радиус её кривизны
определяются вторыми производными. Рассматривается квадратичное
приближение для Q( ) :
Q( )      Q( (l)) + ( –  (l)) T g l + 1/2( –  (l)) TH l ( –  (l)) ,
(13)
где H l  R k x k  матрица вторых производных Q( ) (матрица Гессе ). В
качестве  (l+1) принимается стационарная точка  , т.е. решение уравнения
Эйлера
0 =  /  gl + H l ( –  (l))   (l+1) =  (l)– H l -1 gl .
(14)
Шаг (14) будет допустимым, если H l > 0 . Но достаточным условием
минимума является H l > 0 в точке минимума  *, а так как H ( ) непрерывна,
то в близкой окрестности  * обеспечено H l > 0 . Таким образом, метод
Ньютона будет допустимым вблизи  * с R = H l -1,  l = 1.
Его достоинства:
1. Для квадратичной функции    он сходится за одну итерацию.
2. Для не квадратичных функций он имеет максимальную скорость
сходимости (квадратичную) среди общих градиентных методов [2] :
||  (l+1)||  const ||  (l)|| 2.
Недостатки:
1. Не гарантировано выполнение условия H l > 0 вне близкой
окрестности  *.  Нужны хорошие начальные оценки.
2. Вычисление в итерациях матрицы Hl часто более трудоёмко, чем её
обращение (или решение системы (14)), т.к. ищем вторые
производные h( )  всего k(k+1)/2 производных в точках x1 , ..., xn , n
 k.
52
Чтобы не вычислять вторые производные целевой функции, но в то же
время использовать быструю скорость сходимости метода Ньютона, в общих
методах оптимизации были разработаны квази-ньютоновские методы, первый
из которых – метод Дэвидона-Флетчера-Пауэлла (или переменной метрики). В
этих методах последовательно (на итерациях) строятся приближения E(l) к
матрице Гессе H , причём переход к следующему приближению E(l+1)
производится путём обновления (модификации) матрицами С (l) ранга 1 или
ранга 2 по формуле
E(l+1) = E(l) + С (l) ,
где, например, для случая поправок ранга 1
С (l) = Const (b(l) - E(l) s(l)) (b(l) - E(l) s(l))T,
а
s(l) =  (l+1) –  (l) =  (l), b(l) = g (l+1) - g (l)
(обновление E(l+1) делается уже после вычисления нового приближения  (l+1)).
Таким образом, для вычисления очередного приближения E(l+1)
требуются только первые производные целевой функции Q( ) для построения
вектора b(l). Показано, что последовательность матриц {E(l)} сходится к H за
конечное, довольно малое, число шагов. В качестве начального приближения
можно брать единичную матрицу: E(1) = Ik . Из (14) ясно, что на каждом
итерационном шаге метода Ньютона нужно вычислять обратную к матрице H
матрицу, что требует O(n 3) флоп работы. При использовании вместо неё
матрицы E(l+1) , например. в случае поправок ранга 1, можно использовать
формулу Шермана-Моррисона (см., например, Голуб Г., Ван Лоун Ч.
“Матричные вычисления” М.: Мир, 1999. Стр. 58): если матрица A  R m x m , а u ,
v – векторы длины m, то
(A + u v T ) – 1 = A – 1 – A – 1 u (1 + v T A – 1 u) – 1 v T A – 1.
Если матрица A – 1 (у нас E(l)) уже вычислена, то обращение матрицы A + u v
T
(у нас E(l+1)) по формуле Шермана-Моррисона потребует всего лишь O(n 2)
флоп. Таким образом, при использовании квази-ньютоновских методов не
только не нужно вычислять вторые производные функции регрессии, но и
обращение матрицы E(l+1) можно делать экономично.
Более подробно материалы по теории и (что особенно ценно !) по
практике оптимизации можно посмотреть в превосходной книге Гилл Ф.,
Мюррей У., Райт М. “Практическая оптимизация”. М.: Мир, 1985. При
изложении метода МП в конфирматорном факторном анализе мы ещё вспомним
квази-ньютоновские методы...
Название “метод Ньютона” связано с задачей поиска изолированного
корня x0 функции f(x), т.е. в простейшем одномерном случае ищется решение
уравнения
f(x) = 0.
(*)
Ньютон использовал (если излагать метод в современных обозначениях)
линейное разложение по формуле Тейлора в окрестности точки t
53
df
* = 0 ,
dx x  x
где точка x* расположена между x и t. Отсюда, если производная – гладкая
функция, а точки x и t близки, можно взять производную в точке x = t , а не в x*
и получить очередное приближение для корня x0 в виде:
f(t )
x=t.
(**)
f' ( x ) x=t
f(x) = f(t) +(x - t)


df
– матрица, а операция деления
dx
заменяется в (**) на обращение этой матрицы и умножения результата
обращения на x.
Как мы видели, среди и необходимых, и достаточных условий минимума
(само по себе оно – признак стационарной точки) – 0 = g( *) = Q /  .
2Q
df
Полагая в формуле (*) f = g (так что вместо
нужно подставить H =
 2
dx
), придём к итерационному шагу типа (**) метода Ньютона, совпадающему с
(14).
Метод Гаусса-Ньютона. От второго (а частично и от первого) из
указанных недостатков метода Ньютона свободен учитывающий специфику (3)
В многомерном случае x –
вектор,
метод Гаусса-Ньютона. Пусть ei = ei ( ) = yi – h(xi ;  ) . Тогда Q( ) =
n
 e i2 () ,
i 1
и мы имеем
g 
H =
n
h( x i ;  )
Q(  )
 2 ei
;
 
 
i 1
n
n
h( x i ;  ) h( x i ;  )
 2 h( x i ; )
 2 Q( )
.
+ 2
 2 ei
 
 
   
   
i 1
i 1
(15)
Если остатки ei малы, то можно пренебречь первым слагаемым в H и
рассматривать приближение
n
h( x i ;  ) h( x i ;  )
.
H  G = 2
(16)
 
 
i 1
Пусть матрица X  Rn
x k
и имеет элементы Xij =
h( x i ;  )
, причём
 j
вектор  берётся в точке  (l) . Тогда имеем в матричной форме
g = – 2 XT e , G = 2 XTX ,
и в указанном приближении вместо (14) будем иметь
 (l+1) =  (l) – G l -1 gl =  (l) + (XTX )-1 XT e (l)
(17)
в качестве шага метода Гаусса-Ньютона. Очевидно, что G  0 (матрица Грама)
при всех  , и для её вычисления нужны лишь первые производные
 по
параметрам. Недостатки метода: (а) сходимость несколько медленная, чем в
методе Ньютона; (б) по-прежнему не гарантировано условие допустимости
G
*
> 0 вдали от  .
54
Иначе метод Гаусса-Ньютона называют ещё методом линеаризации.
Действительно, в матричном виде h( )  h ( (l)) + X ( –  (l)) . Тогда e = y
– h( )  y – h( (l)) – X( –  (l)) = e (l) – X  . Задача минимизации НК с Q( )
= ||e|| 2  ||e(l) – –X  || 2 является задачей линейного МНК относительно  и
даёт решение
 (l) = (XTX ) -1 XT e (l) ,
(17’)
что совпадает с (17). Итак, в методе Гаусса-Ньютона R l = G l -1,  l = 1.
Метод Левенберга-Марквардта. Чтобы гарантировать нам в матрице
Rl положительную определённость, воспользуемся следующим результатом:
Лемма 4.1. Пусть A = A T  R k x k , а P  R k x k и P > 0 . Тогда
существует такое  > 0, что A +  P > 0 при  >  .
Доказательство. Так как A = A T и P = P T , то симметричность
матрицы A +  P при любом  очевидна. Для доказательства положительной
определённости осталось показать, что если z  R k – произвольный ненулевой
вектор, || z || > 0 , || A||  спектральная норма матрицы A, а dk > 0  наименьшее
с.з. матрицы P , то при  >  = || A|| / dk будет выполнено неравенство z T(A +
 P ) z = z TA z +  z TP z > 0. По неравенству Коши-Шварца для произвольных
векторов a , b  Rk
T
a b
-1
 +1,
|| a||||
 b||
и, в частности, при a = z , b = A z получим z TA z  – || z || || A z ||  – || z || || A || ||
z || = – || A || || z || 2 . Так как матрица P > 0, то по формуле (15) гл.1 она имеет
спектральное разложение P = V D V T, где диагональная матрица D – матрица
упорядоченных по убыванию собственных значений d1  d2  ...  dk > 0, а V –
ортогональная матрица, V  Rk x k , то
k
z TP z = z T V D V T z = w T D w =  d i  w i2  dk  || w || 2 = dk  || z || 2,
j 1
где w = V z , и || w || = || z || из-за ортогональности V . Следовательно, при  >
 = || A|| / dk будет z T(A +  P ) z > 0.
T
Основываясь на этом результате, Левенберг предложил заменить в (17)
матрицу (XTX )-1 на ( XTX +  I k ) –1,  > 0. При достаточно большом 
матрица (XTX + I k)-1 > 0 , что делает шаг допустимым. Однако добавление к
диагонали матрицы XTX значения  имеет разный эффект в зависимости от
величины (XTX) jj : если этот элемент, скажем, порядка 104  105, то добавление
сравнительно малого  (вблизи минимума   10-4  10-5) не изменит значения
(XTX) jj +  (при точности 10-7 компьютеров типа IBM PC). Если же (XTX) jj
близка к 0 (скажем, порядка 10-6), то вклад  в диагональную компоненту
(XTX+Ik)jj будет преобладающим.
Поэтому Марквардт предложил добавлять к XTX умноженную на 
матрицу P = diag{XTX}. Если только какой-либо столбец X не равен 0 , то P > 0.
Если вернуться к интерпретации метода Гаусса-Ньютона как метода
линеаризации модельной функции, то шаг метода Левенберга-Марквардта
получится из минимизации целевой функции
Q ( ) = || e(l) – X  || 2 +  ( )T P  .
(18)
55
Введём матрицу V = P 1/2 = diag{P11 1/2, ..., Pkk 1/2} = VT. Тогда (18)
перепишется в виде
Q ( ) = || e(l) – X  || 2 +  ( )TV TV  = || e(l) – X  z || 2 + || z || 2,
где z = V  , X  = X V -1. Последнее выражение тождественно целевой функции
в гребневой регрессии (её нетрудно получить из формулы (8) гл.3).
Значение  изменяется с итерациями: на первых, вдали от  *,  велико,
так что член P преобладающий, и итерация (в варианте Левенберга) близка к
итерации метода наискорейшего спуска (по антиградиенту), что обеспечивает
допустимость шага и быстрое уменьшение значений Q( ). С приближением к 
*
значения  уменьшаются, и метод Левенберга-Марквардта близок к методу
Гаусса-Ньютона, что обеспечивает его эффективность на последних итерациях.
Марквардт предложил следующий алгоритм итераций:
Пусть  (1)  начальное приближение, l = 1. Положим  = 0.01.
Изменяем :=  / 10.
Вычисляем пробное значение  (l+1) для  (l+1).
Проверяем допустимость шага, т.е. что Q ( (l+1)) < Q ( (l)). Если шаг
допустимый, то идём на шаг 6 алгоритма, иначе на шаг 5.
Если шаг  (l+1) не является допустимым, изменяем := 10 и идём на шаг 3.
Полагаем  (l+1) =  (l+1). Проверяем условия останова. Если они
выполнены, то  *:=  (l+1) , и идём на шаг 8.
Если условия останова не выполнены, то обновляем значения
 (l) := 
(l+1)
, l:= l + 1 и идём на шаг 2.
Стоп.
Казалось бы, метод Левенберга-Марквардта – всё, чего можно пожелать:
он обеспечивает допустимость градиентного метода (R > 0 при всех l ), и в то
же время объём работы обычно не намного больше, чем в методе ГауссаНьютона. Однако практики всегда чем-то недовольны !
В частности, мы рассматривали до сих пор дело так, будто модельная
h
функция h(x;) задана аналитически, и её производные
относительно легко

вычислить. Между тем это не единственно возможный способ задания h. В
частности, в задачах физической или химической кинетики функция h(x;)
определяется из системы ДУ 1-го порядка:
y '  f ( x , y , ) ,
(19)
где f( . ) – известного вида (нелинейная) функция, x – аргумент (в таких задачах
аргументом обычно является время, x = t ),   Rk – неизвестные параметры
системы ДУ, y – точное решение: y  R n , y = h(x;). Обычно для нелинейных
ДУ решение находят численно, так что вычисление модельной функции –
довольно дорогое дело. Но мало того: чтобы применять метод Гаусса-Ньютона
или Левенберга-Марквардта в задаче минимизации
Q ( ) = || y – y || 2
(2’)
56
(где y = (y1 , …, yn )
– измеренные с ошибкой компоненты решения y ),
h
нужны ещё производные
, j = 1, …, k. Так как аналитическое выражение
 j
T
для h неизвестно, то рассматривают конечно-разностные аналоги
h( x ;  1 ,...,  j 1 ,  j   j ,  j 1 ,...,  k )  h( x ; )
h
=
,
 j
 j
(20)
т.е. приходится решать (19) при значении j-го параметра в точке  j   j , т.е.
для вычисления k производных систему (19) нужно решать k раз ! и так – на
каждой итерации. В результате применение градиентных методов в таких
задачах очень дорого.
В 1978 г. Рэлстон и Дженнрич (Ralston, M.L., and Jennrich, R.J. (1978) Dud
a derivative-free algorithm for nonlinear least squares // Technomenrics. V.20, No 1.
P.7) предложили алгоритм DUD (Doesn’t Using Derivatives), в котором
приближения к поверхности целевой функции Q ( ) находятся на основе не
касательных, а секущих плоскостей. При этом, в отличие от (20), на каждом
итерационном шаге систему (19) нужно решать не k раз, а только один. Этот
метод эффективен и для других задач, где вычисление производных модельной
функции очень трудоёмко.
Я не имею времени для изложения этого метода. В литературе на
русском языке его идея достаточно подробно изложена в книге Е.З.Демиденко
“Оптимизация и регрессия”, 1989. Начиная с 1978 г., программная реализация
DUD вошла в состав статистического пакета BNDP, в том числе и в версию для
IBM PC.
57
Download