В этом варианте градиентного метода величина шага α n на каждой итерации выбирается из условия выполнения неравенства
f (xn +1) = f (xn – α nf ′(xn)) ≤ f (xn) – εα n || f ′(xn)||2, | (11) |
где ε ∈ (0, 1) — некоторая заранее выбранная константа. Условие (11) гарантирует (если, конечно, такие α n удастся найти), что получающаяся последовательность будет релаксационной. Процедуру нахождения такого α n обычно оформляют так. Выбирается число δ ∈ (0, 1) и некоторый начальный шаг α0. Теперь для каждого n полагают α n = α0 и делают шаг градиентного метода. Если с таким α n условие (11) выполняется, то переходят к следующему n. Если же (11) не выполняется, то умножают α n на δ ("дробят шаг") и повторяют эту процедуру до тех пор пока неравенство (9) не будет выполняться. В условиях теоремы 1. эта процедура для каждого n за конечное число шагов приводит к нужному α n.
З а д а ч а 8. Докажите (воспользуйтесь неравенством (8)).
З а д а ч а 9. Сходится ли градиентный метод с дроблением шага для функции f (x) = | x | p при p ∈ (1, 2)?
|
|
Можно показать, что в условиях теоремы 2. градиентный метод с дроблением шага линейно сходится. Описанный алгоритм избавляет нас от проблемы выбора α на каждом шаге, заменяя ее на проблему выбора параметров ε, δ и α0, к которым градиентный метод менее чувствителен. При этом, разумеется, объем вычислений возрастает (в связи с необходимостью процедуры дробления шага), впрочем, не очень сильно, поскольку в большинстве задач основные вычислительные затраты ложатся на вычисление градиента.
Метод наискорейшего спуска.
Этот вариант градиентного метода основывается на выборе шага из следующего соображения. Из точки xn будем двигаться в направлении антиградиента до тех пор пока не достигнем минимума функции f на этом направлении, т. е. на луче L = { x ∈ R m: x = xn – α f ′(xn); α ≥ 0}:
α n = argminα∈[0, ∞) f (xn – α f ′(xn)). | (12) |
Рис. 5.
Другими словами, α n выбирается так, чтобы следующая итерация была точкой минимума функции f на луче L (см. рис. 5). Такой вариант градиентного метода называется методом наискорейшего спуска. Заметим, кстати, что в этом методе направления соседних шагов ортогональны. В самом деле, поскольку функция φ: α → f (xn – α f ′(xn)) достигает минимума при α = α n, точка α n является стационарной точкой функции φ:
|
= (f ′(xn – α nf ′(xn)), – f ′(xn)) = –(f ′(xn +1), f ′(xn)). |
Метод наискорейшего спуска требует решения на каждом шаге задачи одномерной оптимизации (12). Практика показывает, что этот метод часто требует меньшего числа операций, чем градиентный метод с постоянным шагом.
|
|
В общей ситуации, тем не менее, теоретическая скорость сходимости метода наискорейшего спуска не выше скорости сходимости градиентного метода с постоянным (оптимальным) шагом.
З а д а ч а 10. Докажите, что если f (x) = (Ax, x)/2 + (b, x) + c, где A — симметричный оператор в R m, а b, c ∈ R m, то шаг α n метода наискорейшего спуска задается явной формулой
|
З а д а ч а 11. Пусть λ1,..., λ m — собственные числа оператора A. Покажите, что градиентный метод для функции f (x) = (Ax, x)/2 + (b, x) + c с шагами α0 = 1/λ1, α1 = 1/λ2,..., α m –1 = 1/λ m за m шагов дает точное решение: xm = x *.