В моем предыдущем посте я написал о своем пути от новичка в области машиностроения до получения степени магистра машинного обучения в Университете Торонто. В этом посте я хотел бы поделиться своим процессом начала моего исследовательского проекта глубокого обучения / компьютерного зрения в рамках академических исследований.

Конец августа - начало сентября 2020 г.

Начиная

Во время первого круга писем с моим руководителем исследований профессором он дал мне следующее краткое описание проекта:

Классификация изображений. Трансферное обучение. Эти термины показались мне знакомыми? Вроде. Завершая программу Udacity's Deep Learning Nanodegree, о которой я говорил в своем предыдущем посте, я выполнил несколько проектов обучения переносу для классификации изображений, где я загрузил модель с весами, предварительно обученными с помощью набора данных ImageNet с 1000-классным набором данных (от PyTorch библиотеки) и доработал его, используя мой собственный набор данных изображений с меньшим количеством классов. Это были разновидности проектов hello-world по применению глубокого обучения в компьютерном зрении.

Во время нашего первого звонка в Skype (из-за covid19) он добавил, что набор данных изображения для проекта состоит из рентгеновских изображений багажа, полученных с помощью рентгеновского сканера безопасности международного аэропорта. Моей задачей было бы разработать модель глубокого обучения, которая может идентифицировать сумки, содержащие опасные предметы, задача, которая в настоящее время выполняется операторами в аэропорту.

Он поделился со мной папкой с набором данных, содержащей рентгеновские снимки багажа. Образец изображения выглядел так:

Он пояснил, что международный аэропорт, связанный с этим проектом, предоставил только небольшое количество рентгеновских изображений сканирования багажа для каждого класса опасных объектов, что может оказаться недостаточным для обучения модели глубокого обучения, которая обычно надежно работает с большим объемом данных. По этой причине он хотел, чтобы я попробовал метод под названием Адаптация домена, который включал бы сначала сбор большого количества общедоступных обычных (не рентгеновских) изображений опасных объектов (например, из поиска изображений Google ), а затем с использованием только этих обычных изображений (без рентгеновских изображений) для обучения модели обнаружению опасных объектов. Затем я бы нашел способ каким-то образом адаптировать обученную модель, чтобы она хорошо выполняла ту же работу на рентгеновских изображениях.

Из моего краткого исследования об адаптации домена после звонка в Skype Википедия дала следующее определение:

Адаптация домена - это способность применять алгоритм, обученный с исходным доменом, к другому целевому домену. (Википедия)

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

Когда я это увидел, я усомнился, что можно что-то сделать, чтобы улучшить такие высокие отзывы для каждого класса. После внимательного изучения набора данных рентгеновского снимка, предоставленного аэропортом; однако я обнаружил, что набор данных содержит много дубликатов одного и того же изображения, которые вращаются друг относительно друга. Таким образом, если набор для обучения / проверки / тестирования был разделен между дубликатами, могла произойти утечка данных между тремя разделами. Например, если тестовый набор содержал вращения изображений из обучающего набора, неудивительно, что модель будет хорошо работать на тестовом наборе, поскольку она уже видела эти тестовые изображения. Учитывая, что для начала было только небольшое количество рентгеновских изображений (которые могли легко переоценить модель), также наличие утечки данных сделало бы результаты хорошими, но помешало бы модели хорошо обобщить невидимые данные. Итак, я погрузился в более тщательный анализ набора данных, о котором я расскажу в своем следующем посте.

На этом этапе я дал проекту следующее название:

Автоматическое обнаружение угроз в рентгеновских снимках безопасности аэропорта с использованием трансферного обучения и глубокой адаптации домена

В своих будущих публикациях я поделюсь своим 12-месячным исследовательским путешествием по проекту автоматического обнаружения угроз, разделенным на следующие 9 глав:

  1. Проверка данных / предварительная обработка рентгеновских изображений
  2. Итерационный сбор данных для исходного домена
  3. Перенести обучение с ResNet50 I: Dataloaders в обучение
  4. Перенести обучение с ResNet50 II: анализ производительности к неожиданной загадке
  5. Графики t-SNE как человеко-машинный переводчик
  6. Оптимизация данных для гибкого распознавания изображений
  7. Отладка черного ящика CNN с использованием визуализации функций
  8. Состязательная дискриминационная адаптация домена (ADDA)
  9. Передача обучения с помощью Vision Transformer (ViT)

Спасибо за чтение! ♥ ️