# Известные архитектуры CNN ### VGG-16 VGG-16 — это сеть, которая достигла точности 92.7% в классификации ImageNet (top-5) в 2014 году. Она имеет следующую структуру слоев: ![ImageNet Layers](../../../../../translated_images/ru/vgg-16-arch1.d901a5583b3a51ba.webp) Как видно, VGG следует традиционной пирамидальной архитектуре, представляющей собой последовательность слоев свертки и пуллинга. ![ImageNet Pyramid](../../../../../translated_images/ru/vgg-16-arch.64ff2137f50dd49f.webp) > Изображение с [Researchgate](https://www.researchgate.net/figure/Vgg16-model-structure-To-get-the-VGG-NIN-model-we-replace-the-2-nd-4-th-6-th-7-th_fig2_335194493) ### ResNet ResNet — это семейство моделей, предложенных Microsoft Research в 2015 году. Основная идея ResNet заключается в использовании **остаточных блоков**: > Изображение из [этой статьи](https://arxiv.org/pdf/1512.03385.pdf) Причина использования идентичного пропуска заключается в том, чтобы слой предсказывал **разницу** между результатом предыдущего слоя и выходом остаточного блока — отсюда и название *остаточный*. Эти блоки гораздо легче обучать, и можно создавать сети с сотнями таких блоков (наиболее распространенные варианты — ResNet-52, ResNet-101 и ResNet-152). Эту сеть также можно рассматривать как способ адаптации ее сложности к набору данных. Изначально, когда начинается обучение сети, значения весов малы, и большая часть сигнала проходит через идентичные слои. По мере обучения и увеличения весов значимость параметров сети возрастает, и сеть адаптируется, чтобы обеспечить необходимую выразительность для правильной классификации обучающих изображений. ### Google Inception Архитектура Google Inception развивает эту идею дальше и строит каждый слой сети как комбинацию нескольких различных путей: > Изображение с [Researchgate](https://www.researchgate.net/figure/Inception-module-with-dimension-reductions-left-and-schema-for-Inception-ResNet-v1_fig2_355547454) Здесь важно подчеркнуть роль сверток 1x1, которые на первый взгляд могут показаться бессмысленными. Зачем проходить по изображению с фильтром 1x1? Однако нужно помнить, что фильтры свертки работают с несколькими каналами глубины (изначально — RGB-цвета, в последующих слоях — каналы для различных фильтров), и свертка 1x1 используется для смешивания этих входных каналов с помощью различных обучаемых весов. Это также можно рассматривать как уменьшение размерности (пуллинг) по измерению каналов. Вот [хороший блог-пост](https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578) на эту тему и [оригинальная статья](https://arxiv.org/pdf/1312.4400.pdf). ### MobileNet MobileNet — это семейство моделей с уменьшенным размером, подходящих для мобильных устройств. Используйте их, если у вас ограничены ресурсы и вы готовы пожертвовать небольшой точностью. Основная идея этих моделей — так называемая **глубинно-разделяемая свертка**, которая позволяет представлять фильтры свертки как композицию пространственных сверток и свертки 1x1 по каналам глубины. Это значительно уменьшает количество параметров, делая сеть компактной и более легкой для обучения на меньшем объеме данных. Вот [хороший блог-пост о MobileNet](https://medium.com/analytics-vidhya/image-classification-with-mobilenet-cc6fbb2cd470). ## Заключение В этом разделе вы узнали основную концепцию нейронных сетей для компьютерного зрения — сверточные сети. Реальные архитектуры, которые используются для классификации изображений, обнаружения объектов и даже генерации изображений, основаны на CNN, просто с большим количеством слоев и некоторыми дополнительными приемами обучения. ## 🚀 Задание В сопровождающих ноутбуках есть заметки внизу о том, как добиться большей точности. Проведите эксперименты, чтобы увидеть, сможете ли вы достичь более высокой точности. ## [Тест после лекции](https://ff-quizzes.netlify.app/en/ai/quiz/14) ## Обзор и самостоятельное изучение Хотя CNN чаще всего используются для задач компьютерного зрения, они в целом хорошо подходят для извлечения фиксированных шаблонов. Например, если мы работаем со звуками, мы также можем использовать CNN для поиска определенных шаблонов в аудиосигнале — в этом случае фильтры будут одномерными (и такая CNN будет называться 1D-CNN). Также иногда используется 3D-CNN для извлечения признаков в многомерном пространстве, например, для анализа событий, происходящих на видео — CNN может захватывать определенные шаблоны изменения признаков во времени. Проведите обзор и самостоятельное изучение других задач, которые можно решать с помощью CNN. ## [Задание](lab/README.md) В этой лабораторной работе вам предстоит классифицировать различные породы кошек и собак. Эти изображения более сложные, чем набор данных MNIST, имеют более высокие размеры, и классов больше 10. ---