В данной статье представлен распространенный итерационный метод оптимизации квадратичных форм — метод наискорейшего спуска.
описание проблемы
Чтобы переформулировать проблему, нам нужно оптимизировать:
f(x)=21xTAx−bTx+c\label1(1)
матрицаAположительно определенная симметрия
Цель состоит в том, чтобы оптимизироватьx, так чтоf(x)получить минимальное значение
крутой спуск
Когда однажды богам надоело решать оптимизационные задачи алгебраическими методами, они предложили метод оптимизации, заключающийся в итеративном вычислении и постепенном приближении к оптимальному решению.Идея метода также проста и интуитивно понятна.
смысл
Наша цель — найти минимальное значение функции, и я уже знаю, что эта функция — всего лишь точка минимума, что эквивалентно нахождению нижней точки поверхности, блок-схема метода наискорейшего спуска:
Так оx0Для того, чтобы найти минимальное значение, необходимо двигаться в обратном направлении градиента, но чтобы обеспечить плавный процесс вывода, коэффициент прямого расстояния не имеет значения знака, пусть первыйiРасстояние, которое должен пройти шаг, равноальфаi, то для первогоiКусокxi,имеют:
xi+1=xi+альфаigi\label3(3)
коэффициентальфаiрешать
метод 1:
Направления градиента двух позиций до и после действия должны быть ортогональны, иначе позиция текущего действия может принять меньшее значение:
который:
{% raw %}
giTgi+1=0(4)
в:
gi=Axi−b(5)
xi+1=xi+альфаigi=xi+альфаi(Axi−b)(6)
gi+1=Axi+1−b=A(xi+альфаigi)−b(7)
Тогда есть:
giTgi+1=giTA(xi+альфаigi)−giTb=0
giTAxi+альфаigiTAgi−giTb=0
альфаigiTAgi+giTgi=0
альфаi=−giTAgigiTgi(8)
{% endraw %}
Способ 2
Определить направление градиентаgпосле решенияальфа, так как метод наискорейшего спуска определяет локальное оптимальное решение в направлении каждого шага, то есть положение, где минимальное значение получается при движении в этом направлении, тоальфаВозьмем производную так, чтобы производная была равна 0:
Зависит от\eqref1и\eqref3,имеют:
f(x)=21(x+альфаg)TA(x+альфаg)−bT(x+альфаg)+c(9)
Для текущего местоположения, которое было определеноxi, который в настоящее время можно рассматривать примерно какxi,альфаiФункция:
По формуле\eqref3, получить следующую выбранную позициюxi+1
Определить текущий размер градиента, если градиент меньше определенного порогаεТо есть считается, что достигнуто минимальное значение:
ε≥∥gi+1∥(13)
В противном случае сделайте следующий шаг вперед
анализировать
Метод наискорейшего спуска — это метод жадной оптимизации, который просто подходит к текущей задаче.Он аппроксимирует глобальное оптимальное решение путем пошагового вычисления локального оптимального решения.Суть его такова:
Подбирайте текущую квадратичную форму к многомерной сфере
Движение к центру подгоночной сферы
Погрешность расчета, точность измерения
Если точности недостаточно, подогнать следующую высокоразмерную сферу по ошибке
Прежде всего следует сказать, что этот метод является сходящимся, т. е. в рамках определяемой нами задачи он может постепенно сходиться к оптимальному решению Доказательство более сложное.Extras (2) - Скучная деривация на самом крутом спуске
Есть также некоторые проблемы с этим методом, поскольку моделирование слишком простое, расчетные результаты оптимального значения и реальное минимальное значение по-прежнему пропускают отклонения.
Происхождение метода сопряженных градиентов
Схема подгонки метода наискорейшего спуска слишком проста, что делает этот метод обреченным на невозможность легкого получения глобального оптимального решения.
Если существует итерационный метод оптимизации, который может правильно подогнать действительную квадратичную форму, то при нахождении оптимального значения по этой модели глобальное оптимальное решение будет получено итерационно
С этим первоначальным замыслом великие боги предложили метод сопряженных градиентов.