Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ
Посмотреть оригинал

Метод градиентного спуска для обучения модели линейной регрессии

Наиболее простой и понятный, вместе с тем часто используемый метод математического программирования для решения задач такого рода — метод градиентного спуска (gradient descent). Это итерационный алгоритм, на каждом шаге которого вектор весов w меняется в направлении наибольшего убывания целевого функционала[1] [2], т.е. в направлении антиградиента:

где г) — параметр, называемый скоростью обучения.

Выбор параметра скорости обучения (learning rate) выполняется экспериментальным путем, зависит от природы данных, для которых подбирается значение этого параметра. Если минимизируемая функция достаточно гладкая, то параметр г| можно выбрать достаточно большим, вследствие чего время работы алгоритма обучения будет малым. Однако если целевая функция имеет сильную кривизну, то в случае больших значений скорости обучения возможна ситуация, при которой вектор весов w будет «перескакивать» свое оптимальное значение. Для таких случаев следует брать малые значения параметра г — скорость сходимости к минимуму функции (локальному!) будет малой, однако меньше шанс его пропустить.

Для реализации алгоритма обучения возможны два подхода:

  • 1) пакетный {batch) — на каждой итерации алгоритма обучающая выборка просматривается целиком и после этого рассчитывается новое значение вектора w;
  • 2) стохастический (stochastic)[3] — на каждой итерации алгоритма случайным образом выбирается только один объект из обучающей выборки.

Первый метод вычислительно более сложен, однако он быстрее сходится к минимуму благодаря просмотру всей выборки. Второй метод предполагает менее трудоемкие вычисления, но требует разработки алгоритма выбора следующего элемента для обучения.

Пакетный метод реализовать очень просто — необходимо выполнять обновление весов при помощи усредненного значения антиградиента на всех примерах из обучающей выборки до тех пор, пока не стабилизируется оценка функционала Q, т.е. пока его значение на станет изменяться слишком медленно или не перестанет меняться вообще, или до тех пор, пока изменяются веса тю. Сам метод обновления весов для линейной регрессии можно представить следующим образом:

С точки зрения оптимального использования вычислительных ресурсов более интересен алгоритм стохастического градиента. Ниже представлен его псевдокод.

Вход:

  • XL — обучающая выборка.
  • • ц — темп обучения.
  • X — параметр сглаживания Q.

Выход:

• Вектор весов w.

Алгоритм:

  • 1. Инициализировать веса w-y
  • 2. Инициализировать текущую оценку функционала

  • 3. Пока значение Q не стабилизируется и (или) веса w не перестанут изменяться, повторять:
  • 3.1. Выбрать Xj из XL.
  • 3.2. Вычислить выходное значение алгоритма a(wyXj) и ошибку

3.3. Сделать шаг градиентного спуска:

4. Оценить значение функционала Q:

Существует несколько способов инициализации вектора весов w

  • 1) инициализировать вектор нулями;
  • 2) инициализировать вектор случайными числами в диапазоне

где k — размерность признакового пространства. С точки

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

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

Метод стохастического градиента позволяет использовать выборки сверхбольших размеров для обучения в противоположность пакетному методу. Также в методе можно варьировать сам алгоритм обучения — если выборка слишком большая, то после просмотра объекта из нее этот объект можно удалять из выборки и тем самым оптимизировать использование ресурсов компыотера. Если же выборка слишком мала, то можно выбирать объекты с возвратом и тем самым выполнять бутстрэппинг выборки.

Однако метод стохастического градиента не лишен недостатков, в частности:

  • • возможна медленная сходимость алгоритма;
  • • если функционал Q(w) имеет большое количество экстремальных точек, то есть большая вероятность застревания алгоритма в локальных минимумах. Для борьбы с этим используется метод случайной модификации вектора w, вследствие которой одна или несколько координат вектора немного меняются и тем самым снижается вероятность застревания.

К текущему моменту мы рассмотрели модель линейной регрессии и способ ее обучения. Однако в чистом виде данная модель редко когда является полезной, так как в практических задачах редко можно увидеть линейные закономерности в данных. Следующий подпараграф описывает способ перехода от линейной регрессии к нелинейной.

  • [1] Subjects // Clinical Pharmacology and Therapeutics. 1968. № 9.
  • [2] См.: Хофер Э., Лундерштедт P. Численные методы оптимизации. М.: Машиностроение, 1981.
  • [3] Bottou L. Stochastic Gradient Descent Tricks // Microsoft. Research. 2012. URL:http://research.microsoft.com/pubs/192769/tricks-2012.pdf
 
Посмотреть оригинал
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы