Машинное обучение: методы регуляризации
Как не допустить, чтобы нейронная сеть стала настолько хорошей, что стала плохой.
Достаточно сложная нейронная сеть может дать ~ 100% точность данных, на которых она была обучена, но значительную ошибку на незнакомых/проверочных данных. Когда это происходит, сеть подгоняет обучающие данные. Это означает, что он делает прогнозы, которые слишком сильно привязаны к функциям, которые он изучил при обучении, но которые не обязательно коррелируют с ожидаемыми результатами.
Одним из способов ограничения переобучения является использование процесса, называемого регуляризация. Регуляризация обычно работает, наказывая нейронную сеть за сложность. Чем менее сложная, но точная модель, тем ниже стоимость.
Я объясню некоторые распространенные методы регуляризации. Если вы здесь только ради интуиции, не стесняйтесь пропускать разделы «технические пояснения».
Регуляризация L1 и L2
Интуиция
Чтобы улучшить свою задачу, нейронной сети нужно «сказать», делает ли она правильные прогнозы или нет, и если нет, то насколько они далеки от этого. Степень ошибочности называется стоимостью и рассчитывается с помощью функции стоимости.
Регуляризация L1 и L2 работает путем добавления дополнительных затрат к функции затрат. Эта дополнительная стоимость пропорциональна весу сети. Если веса распределены слишком широко, стоимость возрастет, а процесс обучения будет иметь тенденцию влиять на веса в сторону центрального значения.
Техническое объяснение
Регуляризация L1 использует норму L1 в качестве штрафа, который определяется как сумма абсолютных значений весов. Если W является вектором весов n, норма L1 W определяется как:
||W||₁ = |w1| + |w2| + … +|wn|
Регуляризация L2 использует норму L2, которая представляет собой квадратный корень из суммы квадратов весов:
||W||₂ = √(w1² + w2² + … +wn²)
На практике нет необходимости извлекать квадратный корень, он просто увеличивает вычислительную сложность без какой-либо выгоды для функции стоимости, поэтому вместо этого используется квадрат нормы L2:
||W||₂² = w1² + w2² + … +wn² = W · Wᵀ
Оба метода заставляют сеть подвергаться штрафу, который увеличивает отцовские веса от 0 (будь то положительные или отрицательные).
Таким образом, функция стоимости с регуляризацией будет использовать некоторое отношение нормы L1 или L2, контролируемое параметром регуляризации (гиперпараметр, обычно обозначаемый λ), который определяет степень применения регуляризации. .
Формула для функции стоимости с использованием нормализации L2:
Стоимость + λ / 2м · ||Вт||₂²
где m — количество обучающих примеров.
[Зачем делить на 2 м?]
Выбывать
Интуиция
Еще один способ уменьшить сложность — уменьшить количество узлов в сети. Именно этого и добивается отсев. Dropout — это метод случайного отключения узлов во время обучения, который эффективно заставляет сеть вести себя как система простых сетей, а не как одна чрезмерно сложная сеть. Выпадение можно настроить с помощью гиперпараметра, определяющего вероятность «выпадения» нейрона.
Техническое объяснение
…
Увеличение данных
Переобучение также можно уменьшить путем обучения на большем количестве данных. В этом состоит роль дополнения данных. Дополнение данных — это процесс применения различных соответствующих преобразований к входным данным, чтобы в сети был более разнообразный материал для обучения. Изменить данные может быть намного быстрее и дешевле, чем получать их с нуля.
Техническое объяснение
…
Ранняя остановка
Наконец, есть еще один распространенный метод уменьшения переобучения: ранняя остановка. В конце концов, сеть достигнет точки, когда она не станет намного более точной. Если сеть обучена после этой точки, она может только повысить точность обучающих данных и начать снижать общую точность. По этой причине хорошей идеей будет прекратить тренировку, как только произойдет определенный застой. Это идея ранней остановки.
Техническое объяснение
…
Теперь вы знаете несколько распространенных методов регуляризации. При использовании этих методов нейронные сети могут стать значительно более точными.