exponenta event banner

Алгоритмы наименьших квадратов (подгонка модели)

Определение наименьших квадратов

Наименьшие квадраты, в общем, это задача нахождения вектора x, который является локальным минимизатором функции, которая является суммой квадратов, возможно, подверженных некоторым ограничениям:

minx‖F (x) 22=minx∑iFi2 (x)

так, что  x ≤ b, Aeq· x = beq, lb ≤ x ≤ ub.

Есть несколько Оптимизации решающие устройства Toolbox™, доступные для различных типов F (x) и различных типов ограничений :

Решающее устройствоF (x)Ограничения
mldivideC· x - dНичего
lsqnonnegC· x - dx ≥ 0
lsqlinC· x - dБордюр, линейный
lsqnonlinОбщие сведения F (x)Связанный
lsqcurvefitF (x, xdata) - ydataСвязанный

Существует пять алгоритмов наименьших квадратов в решателях Optimization Toolbox, в дополнение к алгоритмам, используемым в mldivide:

  • lsqlin внутренняя точка

  • lsqlin активный аппарат

  • Область доверия - отражающая (нелинейные или линейные наименьшие квадраты)

  • Левенберг-Марквардт (нелинейные наименьшие квадраты)

  • Алгоритм, используемый lsqnonneg

Все алгоритмы, кроме lsqlin активные наборы являются крупномасштабными; см. Крупномасштабные и среднемасштабные алгоритмы. Общий обзор нелинейных методов наименьших квадратов см. в Dennis [8]. Конкретные подробности о методе Левенберга-Марквардта можно найти в Moré [28].

Линейные наименьшие квадраты: внутренняя точка или активный набор

lsqlin 'interior-point' алгоритм использует алгоритм quadprog внутренней точки-выпуклой, и lsqlin 'active-set' алгоритм использует активный набор quadprog алгоритм. quadprog задача определения заключается в минимизации квадратичной функции

minx12xTHx + cTx

с учетом линейных ограничений и ограничивающих ограничений. lsqlin функция минимизирует квадратную 2-норму вектора Cx-d  , подверженного линейным ограничениям и ограничивающим ограничениям. Другими словами, lsqlin минимизирует

Cx−d‖22= (Cx d) T (Cx d) = (xTCT dT) (Cx d) = (xTCTCx) (xTCd dTCx) + dTd = 12xT (2CTC) x + (− 2CTd) Tx + dTd.

Это вписывается в quadprog фреймворк путем установки матрицы H на 2CTC, а вектора c на (-2CTd). (Добавочный термин dTd не влияет на расположение минимума.) После этого переформулировать lsqlin проблема, quadprog вычисляет решение.

Примечание

quadprog 'interior-point-convex' алгоритм имеет два кодовых пути. Он принимает один, когда матрица Гессена H является обычной (полной) матрицей двойников, и он принимает другой, когда H является разреженной матрицей. Дополнительные сведения о разреженном типе данных см. в разделе Разреженные матрицы. Как правило, алгоритм быстрее для больших задач, которые имеют относительно мало ненулевых членов, когда вы указываете H как sparse. Аналогично, алгоритм быстрее для небольших или относительно плотных проблем, когда вы указываете H как full.

Доверие-область-отражающие наименьшие квадраты

Алгоритм наименьших квадратов, отражающий область доверия

Многие методы, используемые в решателях Optimization Toolbox, основаны на областях доверия, простой, но мощной концепции оптимизации.

Чтобы понять подход доверительной области к оптимизации, рассмотрим задачу неограниченной минимизации, минимизируйте f (x), где функция принимает векторные аргументы и возвращает скаляры. Предположим, что вы находитесь в точке x в n-пространстве и хотите улучшить, т.е. переместитесь в точку с меньшим значением функции. Основная идея состоит в том, чтобы аппроксимировать f более простой функцией q, которая разумно отражает поведение функции f в окрестности N вокруг точки x. Эта окрестность является областью доверия. Пробный этап s вычисляется путем минимизации (или приблизительно минимизации) над N. Это подпроблема области доверия,

мин {q (s ), s∈N}.(1)

Текущая точка обновляется до x + s, если f ( x + s ) < f (x); в противном случае текущая точка остается неизменной, и N, область доверия, уменьшается, и вычисление пробного этапа повторяется.

Ключевые вопросы при определении конкретного подхода области доверия к минимизации f (x) заключаются в том, как выбрать и вычислить аппроксимацию q (определенную в текущей точке x), как выбрать и изменить область доверия N и как точно решить подпроблему области доверия. В этом разделе рассматривается неограниченная проблема. В последующих разделах обсуждаются дополнительные осложнения из-за наличия ограничений на переменные.

В стандартном способе доверительной области ([48]) квадратичное приближение q определяется первыми двумя членами приближения Тейлора к F при x; окрестность N обычно имеет сферическую или эллипсоидальную форму. Математически обычно указывается подпроблема области доверия

min {12 sTHs +   sTg так  , что Ds‖≤Δ},(2)

где g - градиент f в текущей точке x, H - гессеновская матрица (симметричная матрица вторых производных), D - диагональная масштабная матрица, Δ - положительный скаляр, а ∥. ∥ - 2-норма. Существуют хорошие алгоритмы для решения уравнения 2 (см. [48]); такие алгоритмы обычно включают вычисление всех собственных значений H и процесс Ньютона, применяемый к светскому уравнению

1Δ−1‖s‖=0.

Такие алгоритмы обеспечивают точное решение уравнения 2. Однако они требуют времени, пропорционального нескольким факторизациям Н. Поэтому для проблем региона доверия необходим другой подход. Несколько аппроксимационных и эвристических стратегий, основанных на уравнении 2, были предложены в литературе ([42] и [50]). Подход аппроксимации, используемый в решателях Optimization Toolbox, заключается в ограничении подпроблемы области доверия двумерным подпространством S ([39] и [42]). После вычисления подпространства S работа по решению уравнения 2 является тривиальной, даже если необходима полная информация о собственном значении/собственном векторе (поскольку в подпространстве задача является только двумерной). Доминирующая работа теперь перешла к определению подпространства.

Двумерное подпространство S определяют с помощью процесса предварительно кондиционированного сопряженного градиента, описанного ниже. Решатель определяет S как линейное пространство, охватываемое s1 и s2, где s1 находится в направлении градиента g, а s2 является либо приближенным направлением Ньютона, т.е. решением

H⋅s2=−g,(3)

или направление отрицательной кривизны,

s2T⋅H⋅s2<0.(4)

Философия, лежащая в основе этого выбора S, состоит в том, чтобы форсировать глобальную сходимость (через самое крутое направление спуска или отрицательное направление кривизны) и достичь быстрой локальной сходимости (через шаг Ньютона, когда она существует).

Эскиз неограниченной минимизации с использованием идей области доверия теперь легко дать:

  1. Сформулируйте двухмерную подпроблему области доверия.

  2. Решите уравнение 2, чтобы определить пробный этап s.

  3. Если f (x + s) < f (x), то x = x + s.

  4. Отрегулируйте Δ.

Эти четыре шага повторяются до сходимости. Измерение Δ области доверия корректируется в соответствии со стандартными правилами. В частности, он уменьшается, если стадия испытания не принимается, то есть f (x + s) ≥ f (x). Для обсуждения этого аспекта см. [46] и [49].

Решатели Optimization Toolbox рассматривают несколько важных особых случаев f со специализированными функциями: нелинейные наименьшие квадраты, квадратичные функции и линейные наименьшие квадраты. Однако лежащие в основе алгоритмические идеи те же, что и для общего случая. Эти особые случаи рассматриваются в последующих разделах.

Масштабные нелинейные наименьшие квадраты

Важным частным случаем для f (x) является нелинейная задача наименьших квадратов

minx∑ifi2 (x) =minx‖F (x) ‖ 22,(5)

где F (x) - векторнозначная функция с компонентом i F (x), равным fi (x). Основной метод, используемый для решения этой проблемы, является таким же, как в общем случае, описанном в документе Методы доверительной области для нелинейной минимизации. Однако для повышения эффективности используется структура нелинейной задачи наименьших квадратов. В частности, приблизительное направление Гаусса-Ньютона, т.е. решение

min‖Js+F‖22,(6)

(где J - якобиан F (x)) используется для определения двумерного подпространства S. Вторые производные функции компонента fi (x) не используются.

В каждой итерации метод предварительно кондиционированных сопряженных градиентов используется для приблизительно решения нормальных уравнений, т.е.

JTJ = JTF,

хотя нормальные уравнения явно не формируются.

Масштабные линейные наименьшие квадраты

В этом случае решаемой функцией f (x) является

f (x) =‖Cx+d‖22,

возможно, подвержены линейным ограничениям. Алгоритм генерирует строго выполнимые итерации, сходящиеся, в пределе, к локальному решению. Каждая итерация включает в себя приблизительное решение большой линейной системы (порядка n, где n - длина x). Итерационные матрицы имеют структуру матрицы C. В частности, метод предварительно кондиционированных сопряженных градиентов используется для приблизительно решения нормальных уравнений, т.е.

CTCx = CTd,

хотя нормальные уравнения явно не формируются.

Метод области доверия подпространства используется для определения направления поиска. Однако вместо ограничения шага до (возможно) одного шага отражения, как в случае нелинейной минимизации, кусочно-отражающий поиск линии проводится при каждой итерации, как в квадратичном случае. Для получения подробной информации о поиске строк см. [45]. В конечном счете, линейные системы представляют подход Ньютона, фиксирующий условия оптимальности первого порядка в решении, что приводит к сильным локальным скоростям сходимости.

Функция умножения Якобиана.  lsqlin может решить линейно-ограниченную задачу наименьших квадратов без явного использования матрицы C. Вместо этого он использует функцию умножения якобиана jmfun,

W = jmfun(Jinfo,Y,flag)

которые вы предоставляете. Функция должна вычислить следующие продукты для матрицы Y:

  • Если flag == 0 тогда W = C'*(C*Y).

  • Если flag > 0 тогда W = C*Y.

  • Если flag < 0 тогда W = C'*Y.

Это может быть полезно, если C велик, но содержит достаточно структуры, которую можно записать jmfun без явного образования C. Пример см. в разделе Функция умножения якобиана с линейными наименьшими квадратами.

Метод Левенберга-Марквардта

Задача наименьших квадратов сводит к минимуму функцию f (x), которая является суммой квадратов.

minxf (x) =‖F (x) 22=∑iFi2 (x).(7)

Проблемы этого типа возникают в большом количестве практических применений, особенно тех, которые включают в себя подгонку функций модели к данным, таким как нелинейная оценка параметров. Этот тип задачи также появляется в системах управления, где цель состоит в том, чтобы выход y (x, t) следовал непрерывной модельной траектории (t) для вектора x и скаляра t. Эта задача может быть выражена как

minx∈ℜn∫t1t2 (y (x, t) − (t)) 2dt,(8)

где y (x, t) и start( t) - скалярные функции.

Дискретизируйте интеграл для получения аппроксимации

minx∈ℜnf (x) =∑i=1m (y (x, ti) start( ti)) 2,(9)

где ti равномерно разнесены. В этой задаче вектор F (x) равен

F (x) = [y (x, t1) −φ (t1) y (x, t2) −φ (t2)... y (x, TM) −φ (TM)].

В этом типе проблемы остаточная ∥F (x), вероятно, будет небольшой при оптимальной, поскольку общая практика заключается в установлении реально достижимых целевых траекторий. Хотя вы можете минимизировать функцию в уравнении 7, используя общий метод неограниченной минимизации, как описано в Основах неограниченной оптимизации, некоторые характеристики задачи часто можно использовать для повышения итеративной эффективности процедуры решения. Градиентная и гессеновская матрица  уравнения 7 имеют особую структуру.

Обозначают матрицу m-на-n якобиана F (x) как J (x), градиентный вектор f (x) как G (x), матрицу Гессена f (x) как H (x) и матрицу Гессена каждого Fi (x) как Di (x),

G (x) = 2J (x) TF (x) H (x) = 2J (x) TJ (x) + 2Q (x),(10)

где

Q (x) =∑i=1mFi (x) ⋅Di (x).

Свойство матрицы Q (x) состоит в том, что когда остаточный ∥F (x) ∥ стремится к нулю, когда xk приближается к решению, то Q (x) также стремится к нулю. Так, когда ∥F (x) ∥ мал в решении, эффективным методом является использование направления Гаусса - Ньютона в качестве основы для процедуры оптимизации.

При каждой большой итерации k метод Гаусса-Ньютона получает направление поиска dk, которое является решением линейной задачи наименьших квадратов

mindk∈ℜn‖J (xk) dk + F (xk) ‖ 22.(11)

Направление, полученное из этого метода, эквивалентно направлению Ньютона, когда члены Q (x) = 0. Алгоритм может использовать направление поиска dk как часть стратегии поиска строки, чтобы гарантировать, что функция f (x) уменьшается при каждой итерации.

Метод Гаусса - Ньютона часто сталкивается с проблемами, когда член второго порядка Q (x) неиглибибельен. Метод Левенберга - Марквардта преодолевает эту проблему.

Метод Левенберга - Марквардта (см. [25] и [27]) использует направление поиска, которое является решением линейного набора уравнений

(J (xk) TJ (xk) + λ kI) dk = J (xk) TF (xk),(12)

или, необязательно, уравнений

(J (xk) TJ (xk) + λ kdiag (J (xk) TJ (xk))) dk = J (xk) TF (xk),(13)

где скаляр λ k управляет как величиной, так и направлением dk, и diag(A) означает матрицу диагональных членов в A. Установка опции ScaleProblem кому 'none' для выбора уравнения 12 или набора ScaleProblem кому 'Jacobian' для выбора уравнения 13.

Начальное значение параметра λ 0 задается с помощью InitDamping вариант. Иногда, 0.01 значение по умолчанию для этого параметра может быть неподходящим. Если вы обнаружите, что алгоритм Левенберга-Марквардта делает мало начального прогресса, попробуйте установить InitDamping в значение, отличное от значения по умолчанию, например 1e2.

Когда λ k равно нулю, направление dk идентично направлению метода Гаусса-Ньютона. Поскольку λ k стремится к бесконечности, dk стремится к самому крутому направлению спуска, а величина стремится к нулю. Следовательно, для некоторых достаточно больших λ k верен термин F (xk + dk) < F (xk). Поэтому можно управлять термином λ k, чтобы обеспечить спуск даже тогда, когда алгоритм встречает члены второго порядка, которые ограничивают эффективность метода Гаусса - Ньютона. Когда шаг успешен (даёт меньшее значение функции), алгоритм устанавливает λ k + 1 = λ k/10. Когда шаг оказывается неудачным, алгоритм устанавливает λ k + 1 = λ k * 10.

Внутри алгоритма Левенберга-Марквардта используется допуск оптимальности (критерий остановки) 1e-4 умножает допуск функции.

Метод Левенберга - Марквардта, таким образом, использует направление поиска, являющееся пересечением между направлением Гаусса - Ньютона и наиболее крутым направлением спуска.

Еще одно преимущество метода Левенберга-Марквардта заключается в том, что якобиан J является дефицитным по рангу. В этом случае метод Гаусса-Ньютона может иметь численные проблемы, поскольку проблема минимизации в уравнении 11 является неуместной. Напротив, метод Левенберга - Марквардта имеет полный ранг на каждой итерации, и, следовательно, избегает этих проблем.

На следующем рисунке показаны итерации метода Левенберга-Марквардта при минимизации функции Розенброка, заведомо трудной задачи минимизации, которая находится в форме наименьших квадратов.

Метод Левенберга-Марквардта о функции Розенброка

Более полное описание этого рисунка, включая сценарии, генерирующие итеративные точки, см. в разделе Минимизация функции банана.

Связанные ограничения в методе Левенберга-Марквардта

Когда проблема содержит связанные ограничения, lsqcurvefit и lsqnonlin изменить итерации Левенберга-Марквардта. Если предлагаемая итеративная точка x лежит за пределами границ, алгоритм проецирует шаг на ближайшую осуществимую точку. Другими словами, когда P определен как оператор проекции, который проецирует неосуществимые точки на осуществимую область, алгоритм изменяет предложенную точку x на P (x). По определению, оператор проекции P работает на каждом компоненте xi независимо в соответствии с

P (xi) = { lbiif xi <  lbiubiif xi > ubixiotherwise

или, эквивалентно,

P (xi) = мин (max (xi, lbi), ubi).

Алгоритм изменяет критерий остановки для меры оптимальности первого порядка. Пусть x - предлагаемая итеративная точка. В неограниченном случае критерием остановки является

∇f (x) ∞≤tol,(14)

где tol - значение допуска оптимальности, которое равно 1e-4*FunctionTolerance. В ограниченном случае критерием остановки является

x P (x−∇f (x)) ‖ ∞2≤tol‖∇f (x) ‖ ∞.(15)

Чтобы понять этот критерий, сначала обратите внимание, что если x находится внутри осуществимой области, то оператор P не имеет эффекта. Таким образом, критерий остановки становится

x P (x−∇f (x)) ∞2=‖∇f (x) ∞2≤tol‖∇f (x) ‖ ∞,

который совпадает с исходным критерием остановки без ограничений, ∇f (x) ∞≤tol. Если граничная зависимость активна, что означает x - ∇f (x) неосуществимо, то в точке, где алгоритм должен остановиться, градиент в точке на границе перпендикулярен границе. Поэтому точка x равна P (x - ∇f (x)), проекции самого крутого шага спуска, как показано на следующем рисунке.

Условие остановки Левенберга-Марквардта

Sketch of x minus the projection of x minus gradient of f(x)

См. также

| | | |

Связанные темы