Почему лосс не падает и модель не обучается?🧐
Для этого есть несколько причин, давайте разбираться
1. Первая и самая очевидная это переобучение, возможно, для обучения вам достаточно 50 эпох а не 100, и модель уже достигла своего максимума на 50 эпохе и дальнейшее обучение не имеет смысла. Для проверки этой гипотезы стоит протестировать чекпоинты модели на последних эпохах, когда лосс находится на плато. Если точность одинакова, достаточно высока и сохраняется на протяжении нескольких последних эпох, то на эти несколько последних эпох можно смело уменьшать длительность обучения.
2. Неподходящее расписание скорости обучения. Расписание изменения скорости обучения важная вещь и зачастую динамический лернинг рейт показывает лучшие результаты. На первых эпохах лучше двигаться "большими шагами" и более подробно исследовать гиперпространство на глобальный минимум в конце обучения (с маленькой скоростью). Если лосс вышел на плато, попробуйте добавить в свою модель расписание, в фреймворках для глубокого обучения их реализовано множество.
3. Если вы вообще не наблюдаете динамики в лоссе, то очевидно что модель не обучается. Тогда стоит поискать проблемы в данных, вот небольшой чеклист того, что стоит проверить:
✅ если это задача классифкации, представителей каждого класса должно быть примерно одинаковое количество, если вы имеете несколько классов которые представлены мало, вы можете сгруппировать их в один класс "другое"
✅ в данных отсутсвуют зашумленные/пустые атрибуты, выбросы и пустые поля
✅ данные нормализованы, если модель требует нормализации
✅ размер модели соответствует задаче и данным, слишком сложная модель при небольшом количестве данных ведет к переобучению, а слишком простая модель для сложной задачи соответсвенно к недообучению
Post #156
1.71K