Перейти к основному содержимому

Дропаут

Усредняющий ансамбль

В разделе ансамблей машинного обучения мы видели, что частым способом упрощения набора переобученных моделей f1(x),...fM(x)f_1(x),...f_M(x) является построение усредняющего ансамбля:

y^=1Mm=1Mfm(x)\hat{y}=\frac{1}{M}\sum_{m=1}^M f_m(x)
Задача

Докажите, что мат. ожидание квадрата ошибки усредняющего ансамбля никогда не превосходит среднее мат. ожиданий ошибок базовых моделей f1(x),...fM(x)f_1(x),...f_M(x).

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

Дропаут

Эффективным способом моделирования усредняющего ансамбля без сопутствующих издержек по производительности и хранению является дропаут (dropout) [1].

Дропаут применяется к определённому слою нейросети, которым может выступать скрытый слой или входной слой (вектор признаков xx), но не выходной слой. Характер применения дропаута различается при обучении сети и её применении.

Обучение сети

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

При прореживании каждый нейрон прореживаемого слоя оставляется с вероятностью pp и исключается в вероятностью 1p1-p независимо от остальных нейронов. Значение по умолчанию: p=0.5p=0.5. Исключение нейрона означает, что исключается как сам нейрон, так и все входящие и исходящие из него связи. Практически исключение реализуется домножением весов на матрицу RR со случайными элементами из множества {0,1}\{0,1\}.

Обновление весов производится только по оставленным связям.

Если в прореживаемом слое MM нейронов, то по сути, во время обучения настраивается не одна, а целый ансамбль из 2M2^M моделей, представляющих собой различные варианты прореживания полной сети.

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

Применение настроенной сети

Дропаут Монте-Карло

Теоретически верным построением прогноза для настроенного ансамбля моделей будет усреднение по всевозможным вариантам прореживания RR:

y^(x)=12MRy^(xR)\hat{y}(x)=\frac{1}{2^M}\sum_{R}\hat{y}(x|R)

На практике усреднение уже по 10-20 случайным маскам даёт хороший результат. Такая схема применения называется дропаут Монте-Карло (Monte Carlo dropout).

Достоинством такого применения является то, что мы получаем не одно значение прогноза, а сразу несколько, за счёт чего можем оценить стандартное отклонение прогнозов, оценивающее ожидаемую ошибку прогноза. Недостатком является усложнение построения прогноза в KK раз, где KK - число реализаций прореживания, по которым мы производим усреднение.

Классическое применение

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

Это мотивируется следующим образом. Если z1,...zMz_1,...z_M - выходные активации прореживаемого слоя, то нейрон последующего слоя (во время обучения) принимает на вход

a=i=1Mwiziri,ri={1, с вероятностью p0, с вероятностью 1pa=\sum_{i=1}^M w_i z_i r_i,\quad r_i=\begin{cases} 1, \text{ с вероятностью } p \\ 0, \text{ с вероятностью }1-p \end{cases}

Если усреднить по всевозможным реализациям прореживания, то нейрон в среднем будет получать активацию

a=Er{i=1Mwiziri}=i=1Mwizipa = \mathbb{E}_r\left\{\sum_{i=1}^M w_i z_i r_i\right\} = \sum_{i=1}^M w_i z_i p

Обратив внимание, что

Erg(a)g(Er{a})\mathbb{E}_r g(a) \ne g(\mathbb{E}_r\{a\})

для не тождественной активации g()g(\cdot), поэтому классический дропаут не эквивалентен усреднению конечных выходов сети по всевозможным прореживаниям. Тем не менее, это приближение наиболее часто используется на практике из-за быстроты построения прогнозов.

Дополнительное ускорение

Слой дропаута при применении сети домножает активации нейронов на pp, что приводит к дополнительным операциям умножения во время построения прогноза.

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

Особенности применения дропаута

Параметром дропаута выступает вероятность оставления нейрона pp при прореживании.

Как влияет вероятность pp на сложность нейросети?

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

Дропаут можно применять к скрытым слоям и к входному слою (содержащему входной вектор признаков xx), но не к выходному слою.

Как правило, дропаут применяется не к одному, а сразу к нескольким слоям. Параметр pp подбирается по кросс-валидации, причём его можно выбирать своим для каждого слоя.

Рекомендации по выбору pp

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

Это связано с тем, что начальные слои содержат ключевую информации об обрабатываемом объекте (которую нельзя сильно затирать), а более глубокие слои - всевозможные высокоуровневые признаки (число которых избыточно, и часть из них отбрасывать как раз можно).

Обоснование метода

Настроенный дропаут способен обеспечить более качественные прогнозы за счёт того, что

  • он моделирует не одну, а ансамбль моделей, полученный всевозможными прореживаниями исходной модели;

  • если исходная модель переобучения, то параметр pp позволяет уменьшать её сложность и степень переобучения.

Дропаут препятствует переобучению в виде чрезмерной сонастройки отдельных нейронов на активации друг друга (neuron co-adaptation). Выходные нейроны не могут рассчитывать на активацию отдельного нейрона предыдущего слоя (поскольку он может быть прорежен), поэтому вынуждены использовать информацию со всех доступных нейронов.

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

Альтернатива дропауту

Альтернативным к дропауту методом регуляризации сети является метод DropConnect, при котором в вероятностью pp отбрасываются не нейроны, а отдельные связи на выбранном слое. Два варианта такого прореживания показаны ниже:

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

Литература

  1. Srivastava N. et al. Dropout: a simple way to prevent neural networks from overfitting //The journal of machine learning research. – 2014. – Т. 15. – №. 1. – С. 1929-1958.