8. Современные свёрточные нейронные сети

Теперь, когда мы разобрались с основами построения свёрточных нейронных сетей (CNN), совершим обзор современных архитектур CNN. Этот обзор, разумеется, не может быть полным, поскольку постоянно появляются множество новых интересных решений. Их важность обусловлена тем, что их можно использовать не только непосредственно для задач компьютерного зрения, но и в качестве базовых генераторов признаков для более сложных задач, таких как отслеживание (Zhang et al., 2021), сегментация (Long et al., 2015), обнаружение объектов (Redmon and Farhadi, 2018) или стилизация изображений (Gatys et al., 2016). В этой главе большинство разделов посвящены значимым архитектурам CNN, которые в какой-то момент (или в настоящее время) служили базовой моделью, на основе которой строилось множество исследовательских проектов и развернутых систем. Каждая из этих сетей недолгое время была доминирующей архитектурой, а многие из них становились победителями или призерами конкурса ImageNet, который с 2010 года служит индикатором прогресса в обучении с учителем в области компьютерного зрения. Лишь недавно трансформеры начали вытеснять CNN, начиная с Dosovitskiy et al. (2021) и продолжая архитектурой Swin Transformer (Liu et al., 2021). Мы рассмотрим это развитие событий позже в Section 11.

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

Наш обзор современных свёрточных нейронных сетей начинается с AlexNet (Krizhevsky et al., 2012) — первой крупной сети, которая смогла превзойти традиционные методы компьютерного зрения в масштабном соревновании по зрительному распознаванию; сети VGG (Simonyan and Zisserman, 2014), использующей множество повторяющихся блоков элементов; архитектуры Network in Network (NiN), которая применяет свёртку целых нейронных сетей по патчам к входным данным (Lin et al., 2013); GoogLeNet, использующей сети с многоветвевыми свёртками (Szegedy et al., 2015); остаточной сети (ResNet) (He et al., 2016), которая до сих пор остаётся одной из самых популярных готовых архитектур в компьютерном зрении; блоков ResNeXt (Xie et al., 2017) для более разреженных связей; и DenseNet (Huang et al., 2017), представляющим собой обобщение остаточной архитектуры. Со временем было разработано множество специальных оптимизаций для эффективных сетей, таких как координатные сдвиги (ShiftNet) (Wu et al., 2018). Это привело к автоматическому поиску эффективных архитектур, таким как MobileNet v3 (Howard et al., 2019). Сюда же относится и полуавтоматический поиск архитектур Radosavovic et al. (2020), приведший к RegNetX/Y, которые мы обсудим позже в этой главе. Эта работа поучительна тем, что предлагает путь для сочетания вычислительной мощности «в лоб» с изобретательностью экспериментатора в поиске эффективных проектных пространств. Также стоит отметить работу Liu et al. (2022), поскольку она показывает, что методы обучения (например, оптимизаторы, аугментация данных и регуляризация) играют ключевую роль в повышении точности. Она также демонстрирует, что давние предположения, такие как размер окна свёртки, возможно, потребуется пересмотреть с учётом роста вычислительных мощностей и объёмов данных. Мы рассмотрим этот и многие другие вопросы по мере продвижения по этой главе.