Я использую сеть для классификации изображений. Задача мультикласса (получил 12 класс)
Мой тренировочный набор состоит из 3500 изображений, класс разбалансирован (например, класс A = 1200 изображений, класс B = 50 изображений). Я использую вес класса, чтобы бороться с дисбалансом, и увеличение данных
edit увеличение данных осуществляется с помощью функции keras, выполняющей только вращение и отражение. Я только дополняю тренировочный набор
Так как у некоторых из моих классов действительно очень маленькие данные, я сделал разделенный 60% обучающий / 20% проверочный / 20% тестовый набор (то есть для класса B я получил 30 обучающих данных / 10 проверочных данных / 10 тестовых данных)
Затем я сделал другое разделение, с каждым разом различные данные обучения / проверки и тестирования
Результат стабилен => моя метрика (оценка микро F1) не сильно меняется при различном разделении, а матрица путаницы показывает, что эффекта класса нет: разное разделение не означает другого результата для данного класса
Теперь я применяю свою модель к набору без метки. Около 10 000 изображений.
и результат очень плохой: когда я набрал 60% оценки точности для класса B на тестовом наборе, моя точность составляет около 5% для набора без метки
Мой вопрос:
это может быть чрезмерным? Когда я прекращаю тренировку модели, потеря тренировки = 0,3 / тренировка F1 = 95%. Валидационные потери = 0,7 / валидация F1 = 80%
Я так не думаю, так как потеря проверки не увеличивается (я останавливаю модель до ее увеличения)
Что я мог исследовать, чтобы понять, почему мой результат настолько плох в новом наборе с 10 000 данных (когда я говорю свой результат, я говорю о точности, поскольку это единственная метрика, которую я могу легко вычислить для некоторых классов)