Проблема оврагов. Метод покоординатного спуска
К сожалению, выбор антиградиента в качестве направления спуска не всегда является удачным. Особенно ярко это проявляется для овражных функций.
Градиентный метод сходится достаточно быстро, если для минимизируемой функции поверхности уровня близки к сферам (при m=2 линии уровня близки к окружностям).
Действительно, известно, что градиентный метод сходится очень медленно, если поверхности уровня минимизируемой функции сильно вытянуты в некоторых направлениях.
В двумерном случае рельеф соответствует поверхности U=Q(x1,x2) и напоминает рельеф местности с оврагом. Поэтому такие функции называют «овражными» (рис.1.8.5-1).
Рис. 1.8.5-1
Вдоль направлений, характеризующих «дно оврага», «овражная» функция меняется незначительно, а в других направлениях, характеризующих «склон оврага», происходит резкое изменение значений функции.
Если начальная точка Х0 попадает на «склон оврага» , то направление градиентного спуска оказывается почти перпендикулярным «дну оврага» и очередное приближение Х1 попадает на противоположный «склон оврага».
Следующий шаг в направлении ко «дну оврага» возвращает приближение Х2 напротивоположный «склон оврага» и т.д.
В результате вместо того, чтобы двигаться вдоль оврага (в направлении точки минимума), траектория спуска совершает зигзагообразные скачки поперек «оврага».
Один из существенных недостатков градиентного метода связан с его чувствительностью к погрешностям вычислений. Особенно сильно этот недостаток сказывается в малой окрестности точки минимума, где антиградиент, задающий направление поиска, мал по модулю. Поэтому эффективность градиентного метода на завершающей стадии существенно ниже, чем на начальной.
Проблему «оврагов» позволяют решать специально разработанные «овражные» и другие методы спуска, например, метод покоординатного спуска.
В методе покоординатного спуска в качестве очередного направления спуска выбирают направление одной из координатных осей. Наиболее известным является метод циклического покоординатного спуска.
Рассмотрим очередной n+1 цикл одного из вариантов этого метода, считая, что приближение к минимуму функции Q(X)=Q(x1, … xm) уже найдено Хn.
1-й шаг. На первом шаге проводят спуск по координате x1. Значения остальных координат x2 = x2(n) , x3 = x3(n) , … , xm= xm(n) фиксируют, а x1(n) выбирают из условия:
Q(x1(n+1) , x2(n) … xm(n) ) = min Q(x1, x2(n) … xm(n) )
x1
Фактически решается задача минимизации функции одной переменной.
Q(x1) = min Q(x1, x2(n) … xm(n) ).
2-шаг. На втором шаге производится спуск по координате x2. Значения остальных координат x1 = x1(n) , x3 = x3(n) , … , xm= xm(n) фиксируют, а x2(n+1) выбирают как решение задачи одномерной оптимизации
Q(x1(n+1) , x2(n+1) , x3(n) … xm(n+1) ) = min Q(x1(n+1), x2, x3(n) … xm(n) ).
x2
Аналогично осуществляют следующие шаги.
m-й шаг. На последнем шаге координату xm(n+1) определяют из условия
Q(x1(n+1) , x2(n+1) , … xm-1(n+1),xm(n+1) ) = minQ(x1(n+1), … xm-1(n+1),xm).
x2
В результате получается очередное приближение x(n+1) к точке минимума.
Далее цикл метода снова повторяется. Каждый цикл метода состоит из m шагов (т.е. по количеству переменных). Т.к. на k-том шаге очередного цикла значение координаты xk(n+1) определяют из условия минимизации функции f по направлению xk, то необходимо, чтобы в точке (x1(n+1) , x2(n+1) , … xk-1(n+1), xk, xk+1(n+1) , …xm(n+1)) производная обращалась в ноль.
На рисунке изображена графическая иллюстрация циклического покординатного спуска для случая m=2.
Рис. 1.8.5-2
Рис.1.8.5-3. Схема алгоритма метода наискорейшего спуска
Дата добавления: 2016-05-31; просмотров: 1990;