Благодаря этой инновации ResNet стала одной из самых важных и влиятельных архитектур в области глубокого обучения. Она не только демонстрировала выдающуюся производительность на стандартных наборах данных для классификации изображений, таких как ImageNet, но и повлияла на дальнейшее развитие глубокого обучения, стимулируя исследования в области архитектурных инноваций и методов оптимизации.
7. EfficientNet (2019): EfficientNet, представленная в 2019 году, представляет собой архитектурный прорыв в области сверточных нейронных сетей, направленный на оптимизацию производительности сетей при минимальном потреблении ресурсов. Она вводит новый принцип масштабирования, который включает в себя изменение ширины, глубины и разрешения сети. Этот принцип дает возможность создавать сети, которые могут быть эффективно адаптированы к разным задачам и ресурсам.
Ключевая особенность EfficientNet заключается в том, что она балансирует размеры сети, чтобы достичь наилучшей производительности при ограниченных ресурсах. Она автоматически масштабирует ширину, глубину и разрешение сети, оптимизируя каждый из этих параметров для максимальной эффективности.
Эффективность EfficientNet проявляется не только в высокой точности классификации изображений, но и в быстродействии и низком потреблении ресурсов, что делает её идеальным выбором для решения различных задач в условиях ограниченных вычислительных ресурсов, таких как мобильные устройства или встраиваемые системы. Благодаря своей универсальности и эффективности, EfficientNet стала одной из ведущих архитектур в области компьютерного зрения и продолжает привлекать внимание исследователей и разработчиков.
Ключевые элементы: свертка, активация, пулинг, нормализация
Основные элементы, составляющие архитектуру CNN, включают:
Свертка (Convolution):
Свертка (Convolution) является одной из ключевых операций в сверточных нейронных сетях (CNN), играющей важную роль в извлечении признаков из входных данных, таких как изображения. Операция свертки осуществляется путем сканирования входного изображения с помощью набора фильтров, также известных как ядра свертки. Каждый фильтр выявляет определенные локальные паттерны или признаки, такие как грани, текстуры или более сложные структуры, и создает карту признаков, отражающую наличие этих признаков в разных областях изображения.
Фильтры в сверточной нейронной сети представляют собой набор параметров, которые обучаются в процессе тренировки модели. Во время обучения сети эти фильтры настраиваются таким образом, чтобы максимизировать различие между классами объектов на изображениях или выполнить другие задачи, связанные с обработкой данных. Фильтры перемещаются по входному изображению с определенным шагом, называемым шагом свертки (stride), и для каждой позиции создается новая карта признаков.
Операция свертки является основой для извлечения иерархии признаков из изображений и других типов данных с сетчатой структурой. Она позволяет нейронной сети автоматически изучать наиболее информативные признаки из входных данных без необходимости предварительного определения характеристик, что делает сверточные нейронные сети мощным инструментом для анализа и обработки изображений, а также для решения широкого спектра задач машинного зрения.
Для более наглядного представления работы операции свертки, рассмотрим пример применения фильтра к изображению. Предположим, у нас есть 3x3 матрица, представляющая собой часть черно-белого изображения:
```
[120, 100, 80]