Скачать презентацию Тема 3 Методы оптимизации первого порядка Ø Метод Скачать презентацию Тема 3 Методы оптимизации первого порядка Ø Метод

Лекция3 Методы первого порядка.ppt

  • Количество слайдов: 24

Тема 3 Методы оптимизации первого порядка Ø Метод тяжелого шарика Ø Метод спуска по Тема 3 Методы оптимизации первого порядка Ø Метод тяжелого шарика Ø Метод спуска по градиенту Ø Метод сопряженных градиентов 2/14/2018 1

Общая характеристика методов первого порядка Ø Чем больше информации о функции известно, тем более Общая характеристика методов первого порядка Ø Чем больше информации о функции известно, тем более эффективно можно достичь минимума, если этой информацией правильно распорядиться Ø Методы нулевого порядка фактически не располагают никакой информацией о функции (это черный ящик). Правда в процессе спуска они ее накапливают и используют для очередного спуска (например метод Розенброка осуществляет поворот координат в зависимости от результатов предыдущего спуска) Ø В методах первого порядка при выборе следующего направления спуска используется градиент функции в текущей точке и в предыдущей 2/14/2018 2

Ø Как известно, направление градиента является направлением наискорейшего возрастания функции в данной точке. Следовательно, Ø Как известно, направление градиента является направлением наискорейшего возрастания функции в данной точке. Следовательно, противоположное направление является направлением наискорейшего убывания функции. Ø Это свойство в основном и используется для построения методов минимизации первого порядка. Ø При этом направление наискорейшего убывания в данной точке не всегда оказывается наилучшим для спуска к минимуму. Ø Поэтому для повышения эффективности вводят различные поправки. Ø При выборе очередного направления используют накопленную информацию о функции из предыдущих спусков. Ø Множество возможностей введения таких поправок определяет многообразие различных методов первого порядка. 2/14/2018 3

Метод тяжелого шарика • Представим себе котлован. Мы находимся на каком то склоне и Метод тяжелого шарика • Представим себе котлован. Мы находимся на каком то склоне и отпускаем круглый камень. • По какой траектории он будет катиться? Видимо по такой которая здесь показана • Траектория задается функцией координат от времени • От чего зависит эта траектория? 2/14/2018 f(x 1, x 2) x 2 x 1 4

Уравнение траектории тяжелого шарика - скорость движения шарика - ускорение шарика - сила тяжести Уравнение траектории тяжелого шарика - скорость движения шарика - ускорение шарика - сила тяжести шарика - сила трения шарика 2/14/2018 уравнение движения шарика 5

Решение уравнения Можно использовать разные методы решения этой задачи Коши Мы используем то, что Решение уравнения Можно использовать разные методы решения этой задачи Коши Мы используем то, что вам уже знакомо Задаем две точки Вычисляем градиент Подставляем в уравнение и получаем новую точку Подставляем 2/14/2018 получаем и т. д. 6

Вычисление градиента • Если функция задана аналитически, например • • • То просто пишем Вычисление градиента • Если функция задана аналитически, например • • • То просто пишем подпрограмму Procedure grad. F(var x, d. F: mas; n: byte); Begin df[1]: =6*x[1]; df[2]: =-2*x[2]; End; 2/14/2018 7

Вычисление градиента • Если функция задана в виде сложной программы, и производные невозможно просто Вычисление градиента • Если функция задана в виде сложной программы, и производные невозможно просто вычислить • Function F(var x: mas, n: byte): real; • Begin • f: =sqr(x[1]-x[2])+2*sqr(x[1]) • End; • • • То пишем подпрограмму Procedure grad. F(var x, d. F: mas, n: byte, h: real); Begin df[1]: =(F(x[1]+h, x[2])-F(x[1]-h, x[2]))/(2*h); df[2]: =(F(x[1], x[2]+h)-F(x[1], x[2]-h))/(2*h); 2/14/2018 8 End;

Резюме Ø Если правильно подобрать управляющие параметры a, b, и метод решения задачи Коши Резюме Ø Если правильно подобрать управляющие параметры a, b, и метод решения задачи Коши то метод шарика может конкурировать с методами нулевого порядка. Однако на настройку параметров уходит довольно много времени. Ø Метод тяжелого шарика имеет лишь методическое значение, в силу больших затрат на настройку и реализацию алгоритма Ø Однако он показывает, как можно систематически спускаться к минимуму если знать градиент функции Ø Более эффективны методы спуска, в которых очередное направление выбирается с использованием градиента Ø Ниже мы рассмотрим общий алгоритм таких методов 2/14/2018 9

Общий алгоритм метода спуска по градиенту Ø 1. Задается начальная точка и начальный шаг Общий алгоритм метода спуска по градиенту Ø 1. Задается начальная точка и начальный шаг h одномерного спуска. Ø 2. Вычисляется Ø x 2 g 0 d Ø 3. Выбирается направление x 1 2/14/2018 10

Общий алгоритм метода спуска по градиенту Ø 4. С помощью метода Мpp найти zm Общий алгоритм метода спуска по градиенту Ø 4. С помощью метода Мpp найти zm доставляющее x 2 Ø 5. Перейти в новую точку g 0 d zm x 1 2/14/2018 11

Общий алгоритм метода спуска по градиенту Ø 6 Проверим условие сходимости x 2 Ø Общий алгоритм метода спуска по градиенту Ø 6 Проверим условие сходимости x 2 Ø 6 Если оно выполнено, то минимум достигнут в текущей точке, иначе повторяем с п. 2 g 0 d g 1 x 1 2/14/2018 12

В случае длинного оврага, если начальная точка выбрана неудачно, метод спуска по градиенту может В случае длинного оврага, если начальная точка выбрана неудачно, метод спуска по градиенту может сильно замедляться x 2 x 1 Т. е. он имеет точно те же недостатки что и метод спуска по координатам. Ломанная траектория идет по перпендикулярам к предыдушей 2/14/2018 13

Программная реализация • • • Type fun=function (x: mas): real Procedure MPSP(F: fun; var Программная реализация • • • Type fun=function (x: mas): real Procedure MPSP(F: fun; var x 0: mas; eps, h: real; var fm: real); Procedure grad. F(var x, d. F: mas, n: byte, h: real); Begin df[1]: =(F(x[1]+h, x[2])-F(x[1]-h, x[2]))/(2*h); df[2]: =(F(x[1], x[2]+h)-F(x[1], x[2]-h))/(2*h); End; Var d: mas; 2/14/2018 14

Подпрограмма для функции (z) вдоль направления • function F 1(z: real): real; • begin Подпрограмма для функции (z) вдоль направления • function F 1(z: real): real; • begin • for k: =1 to n do • x[k]=x 0[k]+z*D[k]; • F 1: =F(x); • end; 2/14/2018 15

Реализация алгоритма спуска к минимуму • Begin • repeat • grad. F(x 0, d. Реализация алгоритма спуска к минимуму • Begin • repeat • grad. F(x 0, d. F, n); • for i: =1 to n do D[i]: =-d. F[i]; • zm: =MPP(0, h, h/5); • x 0: =x; • dl: =zm; • for i: =1 to n do • dl: =dl+abs(d. F[i]); • end; • Until dl

Метод сопряженных направлений • Два направления и называются сопряженными относительно симметричной, положительно определенной матрицы Метод сопряженных направлений • Два направления и называются сопряженными относительно симметричной, положительно определенной матрицы G если • Известно, что для квадратичной функции можно построить n взаимно сопряженных направлений, спуск по которым приведет к точке минимума ровно за n шагов. • На этом свойстве основана большая группа методов - сопряженных градиентов, сопряженных направлений, параллельных касательных и др. 2/14/2018 17

Квадратичная функция Ее матрица симметрична Если матрица положительно определенная Тогда квадратичная функция имеет минимум Квадратичная функция Ее матрица симметрична Если матрица положительно определенная Тогда квадратичная функция имеет минимум 2/14/2018 18

2/14/2018 19 2/14/2018 19

Сопряженные направления Для квадратичной функции n – переменных с положительно определенной матрицей G в Сопряженные направления Для квадратичной функции n – переменных с положительно определенной матрицей G в каждой точке x 0 можно построить набор n сопряженных (относительно ее матрицы) векторов, последовательный спуск по которым приведет точно в минимум d 2 d 1 Вопрос в том, как их построить, если не знать G 2/14/2018 20

Метод параллельных прямых В заданной точке х0 выбираем произвольный вектор d 1 и делаем Метод параллельных прямых В заданной точке х0 выбираем произвольный вектор d 1 и делаем спуск в точку х1 Вблизи точки х0 выбираем точку х01 Из нее также делаем спуск в направлении d 1 до точки х11 d 2 Вектор d 2 проведенный через точки х1 х11 является сопряженным к d 1 2/14/2018 21

Метод Флетчера-Ривса 2/14/2018 22 Метод Флетчера-Ривса 2/14/2018 22

Алгоритм метода Флетчера-Ривса Ø 1. Задается начальная точка и начальный шаг h одномерного спуска Алгоритм метода Флетчера-Ривса Ø 1. Задается начальная точка и начальный шаг h одномерного спуска , вычисляется. Повторяем n раз: Ø 2. Делаем спуск zm Ø 3. Переходим в новую точку Ø 4. Вычисляем Ø 5. Выбирается направление Ø 6. Пересылаем Конец повтора 2/14/2018 Если zm< повторим с п. 1 23

Конец 2/14/2018 24 Конец 2/14/2018 24