Регрессия ограничивающих рамок без задачи классификации

Вопрос или проблема

Я использую PyTorch для создания модели, которая обнаруживает определенные объекты на изображении. Я представил свою задачу как регрессию на ограничительные рамки, без какой-либо задачи классификации. Причина заключается в том, что мне не нужно знать класс, мне просто нужно, чтобы моя модель локализовала объект на изображении, если он существует.

Каждое изображение может содержать до 2 объектов с их ограничительными рамками, поэтому моя цель – матрица размером 2×2, или скорее тензор PyTorch с формой [2,4]

У меня есть 2 блока Conv2d и MaxPool2d, после которых у меня 3 блока Linear-ReLU-Dropout, и, наконец, Unflatten, чтобы изменить форму выходных данных модели для соответствия расчету функции потерь. Вот фрагмент из класса модели

Sequential(
            
  Conv2d(3, 32, kernel_size = (7,7)),
  MaxPool2d(kernel_size = (4,4)),
  Conv2d(32,16 , kernel_size = (3,3)),
  MaxPool2d(kernel_size=(2,2)),
  ReLU(),
  Flatten()    
)
Sequential(
    
   Linear(19600, 256),
   ReLU(),
   Dropout(0.2),
   Linear(256, 64),
   ReLU(),
   Dropout(0.2),
   Linear(64,8),
   Unflatten(1,(2,4))            
        
)

Метки выглядят так.

  1. Если в изображении нет объектов – это нулевой тензор формы [2,4]
  2. Если в изображении один объект – это тензор формы [2,4], где первая строка – это координаты ограничительной рамки в формате (xmin,ymin,xmax,ymax), а вторая строка – нули
  3. Если в изображении два объекта – это тензор формы [2,4], где обе строки содержат координаты ограничительных рамок в формате (xmin, ymin, xmax, ymax)

Я использую функцию потерь DIoU со средним уменьшением. Что я замечаю, это следующее:

  1. Мои потери на валидационном наборе постоянны на протяжении всех эпох
  2. Мои потери на тренировочном наборе уменьшаются до определенного момента, после которого они также становятся постоянными.
  3. Даже с такими переделанными моделями я все же пробовал делать выводы, чтобы увидеть, какие предсказания я получаю на тестовом наборе, и я получаю предсказания ограничительных рамок, которые являются очень большими положительными или отрицательными целыми числами, находящимися за пределами области моего изображения.

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

У меня складывается впечатление, что я упускаю что-то довольно фундаментальное, но не могу понять, что это может быть. Я новичок в pytorch, поэтому у кого-нибудь есть идеи, что я могу попробовать, чтобы это начало что-то учить? Рад предоставить больше фрагментов кода в комментариях.

Спасибо!

Удалите конечные нули для случаев без объектов и с одним объектом. Кодируйте только там, где находится объект, а не то, что другого объекта нет. Это сбивает обучение. Если на изображении нет ограничительных рамок, это нормально. Поэтому, если на определенном изображении нет объектов, просто не включайте соответствующие этому изображению ограничительные рамки в файл.

Ответ или решение

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

Постановка задачи

Цель вашего проекта заключается в локализации объектов на изображении, не учитывая их классификацию. Модель должна предсказывать координаты ограничительных рамок, что представлено тензором формы [2,4]. Эта архитектура означает, что вы ожидаете, что на изображении может находиться до двух объектов, каждый из которых описывается четырехзначным вектором: (xmin, ymin, xmax, ymax).

Проблемы и их причины

  1. Проблемы с потерей на валидационном этапе: Постоянная валидационная потеря может указывать на отсутствие генерализации модели или на проблемы с обучением, такие как несоответствие структуры данных или способы предобработки данных с самим тегированием.

  2. Некорректные предсказанные значения ограничительных рамок: Проблемы с чрезмерно большими или отрицательными координатами могут возникнуть из-за отсутствия нормализации данных или неправильной архитектуры сети.

Предложения по улучшению

  1. Обработка меток:

    • Убедитесь, что метки данных правильно интерпретируются. Если на изображении нет объектов, представление метки должно быть пустым, а не тензором с нулями. Используйте только те тензоры, которые действительно описывают присутствующие на изображении объекты.
  2. Архитектура сети:

    • Проверьте соответствие архитектуры модели задаче и распределению входных данных. Возможно, стоит пересмотреть выбор гиперпараметров, таких как количество слоёв, размер плоских слоев, или реализацию активации, применяемую в скрытых слоях.
    • Убедитесь, что используемые потери (DIoU) настроены для работы с текущим масштабом данных и предсказываемых значений.
  3. Предобработка данных:

    • Убедитесь, что данные изображений и метки предсказываемых значений должным образом нормализованы, и это соответствует реалиям предобработки тренингового набора.
  4. Стратегии обучения:

    • Рассмотрите использование адаптивной стратегии обучения, такой как использование динамического изменения скорости обучения или применения техники ранней остановки.
    • Исследуйте возможность ускорения выхода из локального минимума, такие как начальная предварительная тренировка с нагреваемым стартом.

Резюме

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

SEO Оптимизация

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

Оцените материал
Добавить комментарий

Капча загружается...