функции f(t), t€(0,tmax). Делю ее на равные промежутки tbuff так, что для каждого промежутка известен его класс. а итоге получается тензор вида [16000*1*1*250] делаю в либе pytorch.
Модель следующая:
CNN(первые 4 слоя VGG-16) --> FC --> cross_entropy_loss.
Беда в том, что модель очень быстро переобучается. За 5 эпох на одном классе 100%, на других по нулям, за 5 другие теперь такая же ситуация, но на другом классе.
Переепробовал различные оптимизаторы Adam, SGD и гиперпараметры. Не смог избавиться от данной проьлемы.
Какую архитектцру можно подобрать для решения данной задачи?
Какие идеи можно имплементировать, чтобы решить задачу классификации входного 1d вектора?
а что ты хочешь если класс известен для любого промежутка
Если модель быстро переобучается, значит сеть имеет избыточную ёмкость. Уменьшить ёмкость сети. Следующее, что можно сделать — различные регуляризации. Хорошо от переобучения помогает dropout. Он же уменьшает эффективную ёмкость. Ещё похоже классы сильно смещены. Может помочь семплирование.
Вообще, судя по описанию проблемы, это не похоже на переобучение, больше похоже на слишком большой learning rate. Покажи график, как ведет себя loss?
Обсуждают сегодня