Что вы получите, прочитав эту статью?

Это будет краткое изложение основных выводов из статьи Dropout: A Simple Way to Prevent Neural Networks from Overfitting» кафедры компьютерных наук Университета Торонто, опубликованной в журнале Журнал исследований в области машинного обучения.

Кто пишет эту статью?

Я Олле из dataalliance.io и работаю с лекциями и семинарами для организаций, чтобы использовать возможности машинного обучения.

Ключевые области для понимания

Что такое переоснащение в машинном обучении

Нейронные сети — это методы глубокого обучения, когда пользователь передает в сеть некоторые данные, которые передаются через различные скрытые уровни, которые в конечном итоге выводят данные, указанные пользователем. Эти скрытые слои могут быть изменены нейронной сетью в зависимости от того, что дает оптимальный результат, который желает пользователь. Так, например, классическая проблема регрессии цен на жилье в Бостоне, которую мы вводим в различные характеристики домов, такие как количество комнат в нем или возраст дома, затем будет использоваться в нейронной сети для прогнозирования будущей цены на аналогичные дома.

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

Почему нам нужно предотвращать переоснащение?

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

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

Как авторы решают проблему переобучения?

Они представляют технику под названием Dropout, которая случайным образом удаляет единицы (и их связи) из обучающей выборки, чтобы не слишком сильно адаптировать единицы. Во время обучения создаются выпадающие выборки из экспоненциального числа различных «прореженных» сетей благодаря нашей технике выпадения. Затем, по словам авторов, когда мы тестируем модель, мы можем легко аппроксимировать эффект усреднения прогнозов всех этих прореженных сетей, просто используя одну не прореженную сеть с меньшими весами.

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

Но как это на самом деле выглядит в реальном коде?

Чтобы не быть лишним, я отсылаю вас к одному из моих любимых сайтов: Machine Learning Mastery, где Джейсон Браунли опубликовал статью о Регуляризации отсева в моделях глубокого обучения с помощью Keras.

Проверьте это, чтобы получить реальный пример использования и реализации отсева в машинном обучении.

Резюме

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

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

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

Ура!

использованная литература

https://www.facebook.com/jason.brownlee.39. (2016, 19 июня). Регуляризация отсева в моделях глубокого обучения с помощью Keras. Получено с веб-сайта Machine Learning Mastery: https://machinelearningmastery.com/dropout-regularization-deep-learning-models-keras/

Шривастава Н., Хинтон Г., Крижевский А., Суцкевер И., Салахутдинов Р. и Бенгио Ю. (2014). Dropout: простой способ предотвратить переобучение нейронных сетей. Journal of Machine Learning Research, 15(15), 1929–1958 гг. Получено с https://www.cs.toronto.edu/~hinton/absps/JMLRdropout.pdf