Свойство инвариантности обновлений Vowpal Wabbit - Объяснение

datascience.stackexchange https://datascience.stackexchange.com/questions/1147

  •  16-10-2019
  •  | 
  •  

Вопрос

Один из обсуждаемых приятных аспектов процедуры, которую Vowpal Wabbit использует для обновления sgd PDF это так называемая весовая инвариантность, описанная в ссылке следующим образом:

"Среди этих обновлений мы в основном сосредоточены на роман набор обновлений, которые удовлетворяют дополнительным инвариантности собственность:для всех весов важности, равных h, обновление эквивалентно двум обновлениям с весом важности h/2.Мы называем эти обновления инвариантными по важности ".

Что это значит и почему это полезно?

Это было полезно?

Решение

Часто разные выборки данных имеют разный вес (например, стоимость ошибки неправильной классификации для одной группы данных выше, чем для других классов).Большинство показателей ошибок имеют вид $ \ sum_i e_i $, где e_i - потеря (например, квадрат ошибки) в точке данных $ i $.Следовательно, взвешивания вида $ \ sum_i w_i e_i $ эквивалентны дублированию данных w_i раз (например, для целого числа w_i).

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

Теперь, хотя это легко сделать в пакетном режиме, в режиме больших данных vowpal wabbits online это сложно:учитывая, что у вас большой набор данных, вы не хотите просто представлять данные n раз, чтобы справиться с взвешиванием (потому что это увеличивает вашу вычислительную нагрузку).Аналогично, простое умножение вектора градиента на взвешивание - что правильно при пакетном градиентном спуске - вызовет большие проблемы при стохастическом / онлайн-градиентном спуске:по сути, вы стреляете в одном направлении (подумайте о больших целочисленных весах), затем вы стреляете в другом, что вызывает значительную нестабильность.SGD, по сути, полагается на то, что все ошибки должны быть примерно одного порядка (так что скорость обучения может быть установлена соответствующим образом).Итак, что они предлагают, так это гарантировать, что обновление для обучающей выборки x_i с весом n эквивалентно представлению обучающей выборки x_i n раз подряд.

Идея заключается в том, что представление его последовательно уменьшает проблему, потому что градиент ошибки (для этого единственного примера $ x_i $) уменьшается для каждого последующего представления и обновления (по мере приближения к минимуму для этого конкретного примера).Другими словами, последовательные обновления обеспечивают своего рода контроль с обратной связью.

Для меня это звучит так, как будто у вас все равно будут нестабильности (вы получаете нулевую ошибку на x_i, затем вы получаете нулевую ошибку на x_i + 1, ...).скорость обучения необходимо будет скорректировать с учетом размера отягощений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top