Народное машинное обучение (6) Метод оптимизации — метод Ньютона

машинное обучение
Народное машинное обучение (6) Метод оптимизации — метод Ньютона

Народное машинное обучение — метод оптимизации — метод Ньютона


@[toc]

Введение

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

Функции

  • Быстрая сходимость;

Способ

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

анализировать

Рассмотрение задач неограниченной оптимизации

minxеRf(x)\min_{x \in R} f(x)

вx*x^*точка минимума целевой функции. Предполагая, что f(x) имеет непрерывную частную производную второго порядка, если значение k-й итерации равноx(k)x^{(k)}, то f(x) может бытьx(k)x^{(k)}Рядом выполняется разложение Тейлора второго порядка:

f(x)=f(xk)+gkT(xxk)+1/2(xxk)TH(xk)(xxk)f(x) = f(x^{k}) + g_{k}^{T}(x - x^{k}) + 1/2(x-x^{k})^TH(x^{k})(x - x^{k})

  • gk=g(xk)=(f(xk))g_k = g(x^{k})= \nabla(f(x^{k})) - вектор градиента f (x) вx(k)x^{(k)}значение .
  • H(xk)H(x^{k})- матрица Гессе функции f (x)[f2xiyj]nxn [\frac {\partial f^2} {\partial x_i \partial y_j}]_{nxn}существуетx(k)x^{(k)}значение .

Вот подробное объяснение матрицы Гессе в расширении Тейлора и временное объяснение расширения Тейлора бинарной функции. enter image description here

Затем продолжаем, необходимым условием для того, чтобы функция f(x) имела экстремальное значение, является то, что первая производная в точке экстремального значения равна 0, то есть вектор градиента равен 0. особенно когдаH(xk)H(x^{k})Когда это положительно определенная матрица, экстремальное значение функции f (x) является минимальным значением, поэтому:

(f(x))=0\nabla(f(x)) = 0

Производная по f(x), тогда

(f(x)=f(xk)+gkT(xxk)+1/2(xxk)TH(xk(xxk)))\nabla(f(x) = f(x^{k}) + g_{k}^{T}(x - x^{k}) + 1/2(x-x^{k})^TH(x^{k}(x - x^{k}))) =gk+H(xk)(xxk)= g_k + H(x^{k})(x - x^{k})ноgk+H(xk)(xk+1xk)=0 g_k + H(x^{k})(x^{k+1} - x^{k}) = 0 xk+1xk=H(xk)1gkx^{k+1} - x^{k}= -H(x^k)^{-1}g_kилиxk+1=xk+pk x^{k+1} = x^{k} + p_kвH(xk)pk=gk H(x^k)p_k = -g_k Вывод этой формулы завершен

алгоритм

Вход: целевая функция f(x), градиентg(x)=f(x) g(x) = \nabla f(x), матрица Гессе H(x), требование точности ε; Выход: точка минимума x^* функции f(x);

  1. взять начальное значение точкиx(0)x^{(0)}, к=0;
  2. рассчитатьgk=g(x(k))g_k = g(x^{(k)})
  3. какgk<ε||g_k|| < ε, затем останавливаем расчет и получаем решениеx*=x(k)x^* = x^{(k)}
  4. рассчитатьHk=H(x(k))H_k = H(x^{(k)}), и решить дляpkp_k

H(xk)pk=gk H(x^k)p_k = -g_k5. Итерация,xk+1=xk+pkx^{k+1} = x^{k} + p_k, запросить k++, перейти к шагу 2;