В этой статье представлен превосходный итерационный метод среди методов квадратичной оптимизации, метод сопряженных градиентов.
описание проблемы
Чтобы переформулировать проблему, нам нужно оптимизировать:
f(x)=21xTAx−bTx+c\label1(1)
матрицаAположительно определенная симметрия
Цель состоит в том, чтобы оптимизироватьx, так чтоf(x)получить минимальное значение
Задача с методом наискорейшего спуска
Жадные вычисления локальных минимумов
Нет глобального обзора, нет моделирования реальной модели
В результате процесс оптимизации требует повторных итераций для постепенного приближения к оптимальному значению.
ярмо
Ярмо — это китайский иероглиф, произносимый как è, который изначально относится к изогнутому дереву, которое помещается на шею животного во время движения, а расширенное значение — сдержанность и контроль. Этот текст был записан в таких документах, как «И Ли Цзи Си Ли» и «Сюнь Цзы Чжэн Лунь». --Энциклопедия Baidu
В математике много содержания, связанного с сопряжением, здесь сопряжение означает, что они связаны друг с другом и могут взаимодействовать при определенных условиях.
Источник идеи метода сопряженных градиентов
Для того, чтобы решить задачу о методе наискорейшего спуска туда и обратно, люди стали задумываться над тем, можно ли его непосредственно оптимизировать по определению квадратичной функции, которую нужно оптимизировать, и можно ли получить реальное оптимальное решение через конечно-шаговый расчет.
Затем, предполагая, что мы используем точную модель для проблемы, а не приблизительную локальную оптимальную модель, если мы можем вычислить координаты каждого измерения оптимального решения в N-мерном пространстве, мы можем достичь вышеуказанной цели.
Итак, как спроектировать это пространство, как пошагово рассчитать и интегрировать в реальные результаты — вот задача, которую должен решить метод сопряженных градиентов.
Основная идея этого метода состоит в том, чтобы установить набор оснований, которые линейно независимы в N-мерном пространстве. Теоретически, линейная комбинация этого набора оснований может представлять любую точку в пространстве. Метод сопряженных градиентов может точно решить положение цели в пространстве с помощью нескольких вычислений.Каждый компонент коэффициента в этой группе базисных пространств достигает цели решения оптимального значения
Этот метод и метод наискорейшего спуска отличаются от точного моделирования тем, что с точки зрения Бога каждый итерационный расчет доводит до предела значение компонента, который необходимо настроить в этом направлении, то есть последующий расчет не требует рассмотрим составляющую движения в этом направлении.Теперь это процесс точного решения задачи,а не процесс аппроксимации перехода к оптимальному значению путем простого пошагового моделирования
Определение сопряженной группы
ПредполагатьAзаnпорядок вещественной симметричной положительно определенной матрицы, если имеется дваnВиллевекторs1иs2удовлетворить
{% raw %}
s1TAs2=0\label2(2)
{% endraw %}
векторs1иs2для матрицыAСопрягать. еслиA— единичная матрица, то формула\eqref2стать\bf{s}_1$$\bf{s}_2, так что скалярное произведение двух векторов равно нулю, а два вектора геометрически ортогональны, что является частным случаем сопряжения.
Пусть A — симметричная положительно определенная матрица, если набор ненулевых векторовs1,s2,…,snудовлетворить
{% сырой %}
siTAsj=0(i=j)(3)
векторная системаsi(1≤i≤n)речь идет о матрицеAСопрягать.
какsi(1≤i≤n)линейно независимы, то мы называем набор векторов какnо матрицах в размерном пространствеAнабор сопряженных групп.
{% отрисовать%}
Роль сопряженных групп
Предположим, что имеется набор матриц оAсопряженная группаD:
заλiРешение для , мы знаем, что переменныеbиA, если мы получили пространство оAСопряженный базис (любой набор) мы можем решить непосредственноλi
Это захватывающий вывод, поэтому в настоящее время мы сосредоточимся на том, как быстро получить наборAсопряженная группа
Получить сопряженное основание по определению
С определением нетрудно придумать метод насильственного получения сопряженного основания:
С помощью этого метода мы можем получить сопряженное основание, вычисленное в соответствии с определением, внося\eqref8Без проблем рассчитываются экстремальные значения
Но на самом деле это количество операций равно алгебраическому решению {%raw%}Ax=bПроцесс {%endraw%} имеет значительную вычислительную сложность и не приносит прироста производительности задаче оптимизации
Метод сопряженных градиентов
Основные шаги этого алгоритма такие же, как и в методе наискорейшего спуска, а именно нахождение сопряженного направления и вычисление размера шага движения.
Найдите сопряженное направление
Из-за простоты вычисления градиента процесс нахождения сопряженного градиента зависит от вычисления направления градиента.
Цель оптимизацииx*, начальное положениеx1, сопряженное основание, которое необходимо получить, равноD={d1,d2,...,dn}
Рассчитать начальнуюx1Градиент положения, первое сопряженное основание является противоположным направлением градиента:
{% raw %}
d1=−g1=−(Ax1−b)=b−Ax1(9)
{% endraw %}
первоеiградиенты для удаленияjсопряженная группа(j<i)Компонент направления, который необходимо вычесть изβjКоличество:
В настоящее время, если мы можем определить, насколько перемещается каждая итерацияxiположение, получитьgi, то по первому в первыйi−1сопряженные основания определяют текущийiсопряженная группа
Поэтому наша текущая цель состоит в том, как определить расстояние движения в этом направлении после того, как мы получим сопряженное направление
Определить расстояние
{% raw %} был перемещенxkположение, следующее прямое направлениеdk, Движение впередαk, ошибкаek=x*−xk, это:
xk+1=xk+αkdk(12)
{% endraw %}
Вот два вида прогрессаαkидеи.
метод первый
определить первыйkдлина шагаαk, то есть коэффициент сопряженного основания, а условия ограничения коэффициента таковы:
{% raw %} направление текущей сопряженной группыdkс вектором ошибкиek+1=x*−xk+1Сопрягать:
На данный момент мы рассчитали ряд методов для вычисления сопряженных градиентов, и мы можем по очереди получить набор сопряженных оснований, но некоторые из шагов можно еще продолжить для упрощения вычисления.
Режим\eqref18ушел из-заdiпроцесс расчета\eqref13равно 0, в правой части, поскольку попарно сопряженные значения разных сопряженных векторов равны 0, конечное значение также равно 0
{% raw %} таким образом доказывает, что:kшаг вычисляемого градиентаgkи доk−1Сопряженный вектор шаговd1,d1,...,dk−1Ортогональный. {% отрисовать%}
{% raw %} затем для двух разных градиентовgi,gj(i=j), то два должны быть разделены на передний и задний, чтобы градиенты были ортогональны друг другу, то естьG={g1,g2,...,gn}составилnНабор ортонормированных базисов в размерном пространстве {% endraw %}
По формуле\eqref21иСледствие два, {% raw %} из-за общего случаяαjне 0, поэтому гарантируется для всех случаев\eqref20установлено, необходимоi=jиi=j+1час,djTAgi=0 {% endraw %}
Это означает, что текущее направление градиента сопряжено ортогонально всем сопряженным направлениям до и после текущего.
Упрощенные расчеты
Для формулы\eqref11, при решенииdkКоэффициенты, полученные в процессеβ, здесь подчеркнуто\eqref10:
{% raw %}
βi=diTAdidiTAgk
{% endraw %}
Зависит отСледствие три{%сырой%},\eqref10Чжунданi=kиi=k−1час,diTAgkЗначение равно 0 {% выводить %}
{% raw %} таким образом\eqref11можно упростить до: