|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Метод скорейшего спускаСреди методов, использующих первые производные, наиболее известен метод скорейшего спуска в разных модификациях. Основная идея метода основана на том, что вектор градиента ориентирован в направлении наибольшей крутизны поверхности в данной точке. Движение по вектору градиента приводит к скорейшему росту значений функции; движение в противоположную сторону (по антиградиенту) ведет к скорейшему убыванию функции. Простейшая схема алгоритма вполне очевидна и выглядит следующим образом: Пусть x0 – начальная точка. Вычислим в этой точке антиградиент g0=-gradF(x0). Двигаясь от x0 вдоль направления g0, найдем самую низкую точку с помощью любого метода одномерной минимизации (об одномерном поиске вдоль заданного направления см. раздел 2.1.2). Обозначим найденную точку x1. Вычислим в этой точке новый антиградиент g1 и, двигаясь вдоль него, найдем наинизшую точку x2. Повторяя эти шаги, получим последовательность точек, постепенно приближающихся к минимуму.
На первый взгляд кажется, что описанный выше алгоритм должен довольно быстро приводить к цели, поскольку мы все время движемся в сторону скорейшего убывания функции. Однако, при более внимательном рассмотрении оказывается, что его эффективность вовсе не так высока, как можно было ожидать. Прежде всего, отметим два очевидных факта. Во-первых, вектор градиента, вычисленный в некоторой точке x, направлен по нормали к линии уровня F(x)=const, проведенной через эту точку. Во-вторых, если на некоторой прямой найдена точка x, в которой функция принимает наименьшее (для данной прямой) значение, то эта прямая является касательной к линии уровня, проведенной через точку x. Отсюда следует, что последовательные направления поиска g0 и g1 взаимно ортогональны, поскольку вектор g0 направлен по касательной, а g1 – по нормали к линии уровня в точке x1. Рис. 7 иллюстрирует эту ситуацию. Таким образом, метод скорейшего спуска в изложенной модификации оказывается немногим лучше, чем простой покоординатный спуск: как там, так и здесь шаги делаются по взаимно перпендикулярным направлениям, и единственное преимущество градиентного метода в том, что первое направление поиска определяется не ориентацией координатных осей, а локальной топографией поверхности в окрестности начальной точки. Заметим, что в случае таких «неудобных» функций, как функция Розенброка (рис. 6), это преимущество становится весьма сомнительным. Избавиться от ортогональности последовательных перемещений позволяет вариант метода скорейшего спуска с демпфированием. После спуска по антиградиенту от точки x0 до точки относительного минимума x1, делается укороченный шаг, т. е. текущая точка переносится не в x1, а в промежуточное положение , где a – коэффициент демпфирования, обычно принимаемый равным 0.6¸0.8. Новое направление спуска в точке x¢1 уже не будет ортогональным к предыдущему, а образует с ним, как правило, тупой угол и приблизится к глобальному направлению на минимум. Несмотря на то, что на каждом шаге спуск прекращается, не доходя до минимума, конечная цель достигается за меньшее число шагов. Недостаток метода скорейшего спуска с демпфированием — увеличенный объем работы, поскольку в каждом направлении проводится поиск точек минимума, которые затем фактически не используются (они нужны только для оценки величины конечного шага). Поэтому был предложен еще один вариант градиентного метода, в котором от исходной точки по направлению скорейшего спуска делается шаг заранее заданной длины, заведомо меньшей расстояния до точки минимума. Разумеется, по мере приближения к минимуму величина шага должна корректироваться. Эффективность этого метода зависит от правильного выбора шага. В пределе, когда шаг становится очень малым, траектория спуска приближается к кривой, по которой будет скатываться в поле силы тяжести помещенная на поверхность материальная точка. Эта траектория ведет в точку минимума кратчайшим путем, так что название «метод скорейшего спуска» в полной мере относится именно к этой модификации алгоритма. Однако, на практике слишком малый шаг невыгоден, так как придется сделать большое число шагов, прежде, чем будет достигнут минимум. С другой стороны, чересчур большой шаг приведет к излишним отклонениям от оптимальной траектории. Повидимому, трудно предложить универсальный способ выбора шага, пригодный для любой задачи, и в этом один из главных недостатков рассматриваемого метода. 2.3.2 Метод Ньютона Метод Ньютона для поиска минимума функции нескольких переменных является частным случаем применения метода решения системы нелинейных уравнений. Как известно, уравнение метода Ньютона для решения системы уравнений вида можно представить в матричной форме следующим образом: , (10) где Dx – вектор поправок к начальному приближению x0, f – вектор, составленный из функций fi, а J – матрица Якоби (или якобиан системы) с элементами . Предполагается, что вектор f и матрица J в правой части уравнения (10) вычислены в точке x0. Переходя к задаче нахождения минимума (максимума) функции F(x), запишем условие экстремума в виде равенства нулю частных производных по всем переменным: , (11) или короче, . Взяв начальное приближение x0 и применяя метод Ньютона (10) к системе уравнений (11), получим: , (12) где H – матрица вторых производных (матрица Гессе или гессиан) функции F: . Метод Ньютона обладает квадратичной скоростью сходимости к решению и потому является одним из наиболее быстрых методов оптимизации. Однако, он требует вычисления вторых производных, что сильно ограничивает его практическое применение.
На рис. 8 показана геометрическая интерпретация уравнения (12), наглядно демонстрирующая разницу между методами градиентного и ньютоновского типа. Направление градиента (анитградиента), отвечающее наиболее крутому подъему (спуску) в точке начального приближения определяется локальной конфигурацией поверхности и, как правило, не совпадает с направлением к точке экстремума. Поэтому траектория движения к минимуму в градиентных методах представляет собой зигзагообразную ломаную линию (см. рис. 7). Результат умножения на матрицу в общем случае может быть представлен как комбинация поворота и изменения масштаба (растяжения или сжатия) вектора. Как видно из рис. 8, умножение вектора антиградиента на матрицу H-1 обеспечивает его поворот в сторону точки минимума. Нетрудно показать, что в том случае, когда F(x) является квадратичной функцией, вектор Dx, вычисленный по уравнению (12), приводит прямо в точку минимума, т. е. дает точное решение за один шаг. Для функции произвольного вида одного шага уже недостаточно, но скорость приближения к минимуму будет существенно выше, чем при спуске по антиградиенту. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |