VGG-16 — это сеть, которая достигла точности 92.7% в классификации ImageNet (top-5) в 2014 году. Она имеет следующую структуру слоев:
Как видно, VGG следует традиционной пирамидальной архитектуре, представляющей собой последовательность слоев свертки и пуллинга.
Изображение с Researchgate
ResNet — это семейство моделей, предложенных Microsoft Research в 2015 году. Основная идея ResNet заключается в использовании остаточных блоков:
Изображение из этой статьи
Причина использования идентичного пропуска заключается в том, чтобы слой предсказывал разницу между результатом предыдущего слоя и выходом остаточного блока — отсюда и название остаточный. Эти блоки гораздо легче обучать, и можно создавать сети с сотнями таких блоков (наиболее распространенные варианты — ResNet-52, ResNet-101 и ResNet-152).
Эту сеть также можно рассматривать как способ адаптации ее сложности к набору данных. Изначально, когда начинается обучение сети, значения весов малы, и большая часть сигнала проходит через идентичные слои. По мере обучения и увеличения весов значимость параметров сети возрастает, и сеть адаптируется, чтобы обеспечить необходимую выразительность для правильной классификации обучающих изображений.
Архитектура Google Inception развивает эту идею дальше и строит каждый слой сети как комбинацию нескольких различных путей:
Изображение с Researchgate
Здесь важно подчеркнуть роль сверток 1x1, которые на первый взгляд могут показаться бессмысленными. Зачем проходить по изображению с фильтром 1x1? Однако нужно помнить, что фильтры свертки работают с несколькими каналами глубины (изначально — RGB-цвета, в последующих слоях — каналы для различных фильтров), и свертка 1x1 используется для смешивания этих входных каналов с помощью различных обучаемых весов. Это также можно рассматривать как уменьшение размерности (пуллинг) по измерению каналов.
Вот хороший блог-пост на эту тему и оригинальная статья.
MobileNet — это семейство моделей с уменьшенным размером, подходящих для мобильных устройств. Используйте их, если у вас ограничены ресурсы и вы готовы пожертвовать небольшой точностью. Основная идея этих моделей — так называемая глубинно-разделяемая свертка, которая позволяет представлять фильтры свертки как композицию пространственных сверток и свертки 1x1 по каналам глубины. Это значительно уменьшает количество параметров, делая сеть компактной и более легкой для обучения на меньшем объеме данных.
Вот хороший блог-пост о MobileNet.
В этом разделе вы узнали основную концепцию нейронных сетей для компьютерного зрения — сверточные сети. Реальные архитектуры, которые используются для классификации изображений, обнаружения объектов и даже генерации изображений, основаны на CNN, просто с большим количеством слоев и некоторыми дополнительными приемами обучения.
В сопровождающих ноутбуках есть заметки внизу о том, как добиться большей точности. Проведите эксперименты, чтобы увидеть, сможете ли вы достичь более высокой точности.
Хотя CNN чаще всего используются для задач компьютерного зрения, они в целом хорошо подходят для извлечения фиксированных шаблонов. Например, если мы работаем со звуками, мы также можем использовать CNN для поиска определенных шаблонов в аудиосигнале — в этом случае фильтры будут одномерными (и такая CNN будет называться 1D-CNN). Также иногда используется 3D-CNN для извлечения признаков в многомерном пространстве, например, для анализа событий, происходящих на видео — CNN может захватывать определенные шаблоны изменения признаков во времени. Проведите обзор и самостоятельное изучение других задач, которые можно решать с помощью CNN.
В этой лабораторной работе вам предстоит классифицировать различные породы кошек и собак. Эти изображения более сложные, чем набор данных MNIST, имеют более высокие размеры, и классов больше 10.



