Метод наискорейшего спуска

Метод наискорейшего спуска является итерационным, относится
к методам первого порядка и на каждой итерации требует вычисления
n частных производных минимизируемой функции.

Как и в § 2.2, решаем задачу (2.1.1): найти x * Î En, для которого выполнено условие

f (x *) = min f (x),

x Î En

где x = (x 1, x 2, …, xn) т – вектор варьируемых параметров x 1, x 2, …, xn; n – размерность вектора х; f (x) – вещественная скалярная функция векторного аргумента или функция n -переменных; Enn- мерное евклидово пространство.

Метод решения этой задачи представим в виде

x (k + 1) = x (k) + a ks (k), k = 0, 1, 2, …, (2.3.1)

т. е. начиная с некоторой начальной точки x (0) Î En строится последовательность точек x ( k ) Î En, k = 1, 2, …, которая в общем случае бесконечна и, если метод корректен, должна сходиться к x * Î En – точке минимума функции f (x).

Как известно, вектор градиента Ñ f (x) функции f (x)

Ñ f (x) = (¶f (x)/ ¶x 1, ¶f (x)/ ¶x 2, …, ¶f (x)/ ¶xn)т, (2.3.2)

вычисленный в точке x, задает направление наискорейшего возрастания f (x) при движении из данной точки. Модуль градиента при этом численно равен скорости возрастания. Тогда вектор Ñ f (x), обратный по направлению вектору градиента, указывает направление наискорейшего убывания f (x) при движении из точки x. Поэтому естественным является желание выбирать вектор Ñ f (x ( k )) в качестве вектора s ( k ) на каждом шаге процесса

s (k) = –Ñ f (x (k)) (2.3.3)

в предложении, что такой выбор будет способствовать максимально быстрому убыванию функции f (x) при переходе от x ( k ) к x ( k + 1)и в конечном счете приведет к наиболее быстрому определению ее минимума.

Метод наискорейшего спуска можно представить в виде следующего алгоритма:

1. Начать с x (0) Î En, задав e > 0 и k = 0.

2. Вычислить Ñ f (x ( k )) = (¶f (x ( k ))/ ¶x 1, ¶f (x ( k ))/ ¶x 2, …, ¶f (x ( k ))/ ¶xn)т.

3. Если || Ñ f (x ( k )) | | £ e, перейти к выполнению п. 7.

4. Найти a k из решения задачи минимизации функции одной переменной

j(a k) = min {j(a) = f (x (k) – a Ñ f (x (k))}. (2.3.4)

a > 0

5. Вычислить x ( k + 1) по формуле

x (k + 1) = x (k) – a k Ñ f (x (k)). (2.3.5)

6. Если || x ( k + 1)x ( k ) | | / | | x ( k ) || £ e, перейти к выполнению п. 8.

7. Положить k: = k + 1 и перейти к выполнению п. 2.

8. Процесс окончен: x ( k ) – искомая точка минимума функции f (x).

Отметим некоторые важные свойства метода наискорейшего спуска:

1. Является итерационным, относится к методам первого порядка и на каждой итерации требует вычисления n частных производных минимизируемой функции.

2. Для решения одномерной задачи (2.3.4) при выполнении п. 4 алгоритма на каждом шаге может быть использован любой из методов одномерной минимизации. На практике точное решение большого числа одномерных оптимизационных задач не всегда желательно из-за роста вычислительных затрат, поэтому часто ограничиваются достаточно хорошими приближенными решениями, что без видимого ухудшения скорости сходимости метода может существенно уменьшить общий объем вычислительной работы на каждом шаге алгоритма.

3. Демонстрирует хорошие свойства и скорость сходимости на большом удалении от точки локального минимума функции f (x). В непосредственной близости от этой точки существенно ухудшаются практические свойства метода, что вызвано так называемыми "овражными" эффектами. В результате длина шагов значительно уменьшается, вычислительная устойчивость метода падает, поэтому часто не достигается требуемой точности определения решения задачи.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: