• Я доведу статью до вменяемого состояния и поправлю всё что напитиримил, честно! -- ЛипинБорис
  • Будет здорово услышать чью-нибудь критику по поводу статьи. :)
    • Ограниченность метода. Где (и почему?) нельзя использовать.
    • Примеры и причины плохой сходимости методы (структура функции потерь, плохой в смысле сходимости выбор шага).
    • Вообще сама идея сходимости метода. Туда же неравенство Канторовича (за корректность не ручаюсь).
    • Можно ещё указать, что метод используется (будучу немного модифицированным) в обратном распространении ошибки.
    • Это можно будет указать в будущей статье про НейронныеСети? :)
      • «...И жить торопиться, и чувствовать спешит...», П.А.Вяземский, кажется -- АтрашкевичАндрей
    • Боря, в алгоритме я не увидел выхода: когда завершается алгоритм? Я тупой, наверное. -- АтрашкевичАндрей
      • Действительно пока нету)
  • Мне одному режет глаз эти прыжки вниз формулы  Y sup i ?
  • Может стоит сделать реквест на возможность авторизованным пользователям аплоадить картинки?
  • «Функция потерь  J( THETA ) , считающая средний квадрат ошибки для всей выборки, выглядит следующим образом» : средний половинный, если быть точным, но это уже так, придурь из учебников по прикладной матстатистике. Понятно, что это делается для удобства, чтобы в производной меньше возьни было и что это монотонная операция, она экстремальное поведение функции не меняет, но всё же. -- АтрашкевичАндрей

Метод градиентного спуска (Gradient descent method)

Для заданного набора пар (Входное значение; Результат) или же  ( X sup i; Y sup i ) МетодГрадиентногоСпуска получает коэффициенты функции h(x), которая для всех входных параметров  X sup i получает значение, максимально близкое к  Y sup i .

NOTE: Здесь и далее буква i в выражениях  X sup i ,  Y sup i обозначает не степень, а номер пары в выборке.

ТУТ_НУЖНА_ВСЁ_НАГЛЯДНО_ОПИСЫВАЮЩАЯ_КАРТИНКА

Ошибкой для каждой пары  ( X sup i; Y sup i ) будем считать разницу между фактическим значением  Y sup i и тем значением, которое удалось получить с помощью h(x).

Функция потерь  J( THETA ) , считающая средний квадрат ошибки для всей выборки, выглядит следующим образом J( THETA )
=
1 over {2m} sum {(h sub theta (x sup (i) ) - y sup (i) ) sup 2}

[1]

THETA
искомые коэффициенты функции h(x);
m
количество пар в выборке.

Найти минимум функции потерь (минимизировать потери) можно используя производную. {partial {J( THETA )}} over
{ partial THETA }
=
1 over m sum {(h sub theta (x sup (i) ) - y sup (i) ) x sup (i)}

[2]

Так как функция потерь - квадратичная, она достигает минимума там, где её производная равна нулю.

Часто аналитическое решение уравнения [2] это слишком дорогая операция и легче с помощью формулы [3] пошагово получать значения  THETA наиболее близкие к оптимальным. THETA
=
THETA - alpha partial over { partial THETA} J( THETA )

[3]

В формуле выше  alpha - коэффициент, который называют скоростью обучения. При слишком низких его значениях поиск оптимальных коэффициентов будет занимать слишком много времени. Однако если коэффициент слишком высокий алгоритм не будет сходиться (опишу потом что это значит).

Алгоритм метода градиентного спуска:

  1. Случайно инициализируем коэффициенты  THETA ;
  2. Считаем значение производной функции потерь по формуле [2];
  3. Вычисляем новые коэффициенты  THETA по формуле [3];
  4. Переходим на шаг №2.

Содержание

Пример

НапишиМиня?!

Список дополнительной литературы:



КатегорияПрикладнаяМатематика | КатегорияМетодыОптимизации