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

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

Другая основная проблема заключается в обратном. Это называется переоснащением, когда ваша модель слишком сложна для представления ваших данных.
Если вы возьмете тот же пример, в котором вы хотите создать классификатор, разделяющий собак и кошек, и продолжите обучение до тех пор, пока ВСЕ ваши примеры не идентифицируются правильно. . Точность 100% часто слишком хороша, чтобы быть правдой. Хотя это выглядит великолепно, это часто приводит к плохой точности реальных приложений, когда ваша сеть будет уверена в неправильном ответе. Вы не допускаете гораздо большего разнообразия новых данных по сравнению с тем, что ваша модель уже видела раньше. Это означает, что даже если вы покажете кошку, которая похожа на кошку в вашем обучающем наборе данных, если она не совсем такая же, она может быть неправильно классифицирована из-за небольшой разницы.

В результате плохая скорость классификации с новыми наборами данных.

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

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

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

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

Все рассмотренные техники будут описаны в дальнейших статьях, следите за публикациями!

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