Авторы Хирен Рупчандани, Абхинав Джангир и Ашиш Лепча

В нашей предыдущей статье мы видели, как предварительно обрабатывать данные изображения, используя несколько различных методов. Теперь пришло время построить модель, используя эти предварительно обработанные данные. Итак, приступим:

Набор данных

Мы собираемся классифицировать надевает ли человек маску или нет на основе входного изображения, которое является лицом человека. Набор данных содержит два типа изображений — Люди в маске и Люди без маски. Давайте взглянем на изображения в обоих классах:

Предварительная обработка данных

Увеличение данных

  • Мы делаем увеличение данных, случайным образом применяя различные функции.
  • Это увеличивает разнообразие данных, доступных для моделей обучения, без фактического сбора новых данных.
  • Вот некоторые из распространенных фильтров Увеличения данных:
    - Случайное вращение
    - Горизонтальное смещение
    - Сдвиг по вертикали
    - Случайное отражение
    - Сдвиг
    - Случайное масштабирование

Построение модели

  • Наша модель состоит из 3 сверточных слоев, за которыми следуют максимальное количество объединяемых слоев и отсев.
  • Существует полностью связанный слой с 128 единицами после свертки, который активируется функцией активации ReLU.
  • Здесь мы используем потери Binary Cross-Entropy с оптимизатором ADAM для нашей задачи бинарной классификации.
  • Согласно сводке модели, существует 6 446 369 обучаемых параметров.

  • Графики обучения/проверки потери и точности для модели выглядят следующим образом:

Использование трансферного обучения

  • Еще одним способом построения модели может быть использование трансферного обучения. Но что это? Это как учиться ездить на велосипеде и использовать этот опыт, чтобы научиться ездить на велосипеде/скутере.

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

  • Трансферное обучение обычно используется для задач, в которых в вашем наборе данных слишком мало данных для обучения полномасштабной модели с нуля.
  • Наиболее распространенным воплощением трансферного обучения в контексте глубокого обучения является следующий рабочий процесс:
     – взять слои из ранее обученной модели.
     – Заморозить их, чтобы не уничтожить какую-либо информацию, содержащуюся в них, во время будущих тренировочных раундов.
    - Добавьте несколько новых обучаемых слоев поверх замороженных слоев. . Они научатся превращать старые функции в прогнозы для нового набора данных.
    - Обучайте новые слои в вашем наборе данных.
  • Последним необязательным шагом является точная настройка, которая состоит из размораживания всей модели, полученной ранее (или ее части), и повторного обучения. /strong> на новых данных с очень низкой скоростью обучения.
  • Это потенциально может привести к значительным улучшениям за счет постепенной адаптации предварительно обученных функций к новым данным.

Мобайлнет

  • MobileNet-v2 — это сверточная нейронная сеть, имеющая 53 уровня глубины.
  • Вы можете загрузить предварительно обученную версию сети, обученную на более чем миллионе изображений из базы данных ImageNet.
  • Предварительно обученная сеть может классифицировать изображения по 1000 категориям объектов, таким как клавиатура, мышь, карандаш и многие животные.

  • В результате сеть изучила богатые представления функций для широкого спектра изображений.
  • Размер входного изображения сети составляет 224 x 224.
  • MobileNets — это небольшие модели с малой задержкой и низким энергопотреблением, параметризованные для соответствия ограничениям ресурсов для различных вариантов использования.
  • Архитектура обеспечивает высокие точные результаты, сохраняя при этом параметры и математические операции как можно более низкими для обеспечения глубоких нейронных сетей. на мобильные устройства.
  • В MobileNetV2 есть два типа блоков.
    - Перевернутый остаточный блок
    - Остаточный блок узкого места
  • Для обоих типов блоков существует 3 слоя.

  • Один из них — остаточный блок с шагом 1. Другой — блок с шагом 2 для уменьшения размера.
  • В архитектуре MobileNet V2 существует два типа слоев свертки:
    - свертка 1 x 1
    - свертка по глубине 3 x 3
  • Сеть MobileNetV2 выглядит следующим образом:

  • Мы подключили выход базовой сети MobileNetV2 к новой модели.
  • Эта модель состоит из усредненного объединяющего слоя, за которым следует выравнивающий слой и, наконец, полностью связанная плотная нейронная сеть.
  • Выходной слой состоит из сигмоидальной активации для выполнения бинарной классификации.
  • При обучении этой сети мы достигли точности 0,99.

  • Если бы мы точно настроили модель, переобучив всю модель на наших данных, мы могли бы даже достичь точности теста 1,0.
  • Вы можете визуализировать точность и потери обучения и проверки модели, используя это TensorBoard Extension.
  • Из графиков видно, что для нашей модели мы получили точность проверки около 88 %, но с помощью трансферного обучения мы достигли точности проверки более 97 %.
  • Вот и все — модель готова к развертыванию с большой точностью.

Что дальше?

В следующей статье этой серии мы развернем нашу модель с помощью Flask.

Подпишитесь на нас, чтобы не пропустить новые статьи, посвященные науке о данных, машинному обучению и искусственному интеллекту.

Кроме того, дайте нам аплодисменты👏, если вы находите эту статью полезной, так как ваша поддержка стимулирует вдохновение и помогает создавать еще больше интересных вещей, подобных этой. .

Посетите нас на https://www.insaid.co/