7. Современные свёрточные нейронные сети
В предыдущей главе мы познакомились с основными принципами свёрточных нейронных сетей. В этой главе речь пойдёт о современных архитектурах свёрточных сетей; многие современные исследования в этой области опираются на её материал.
Каждая модель, рассмотренная в этой главе, в своё время доминировала в своей области, и многие из них становились победителями соревнования ImageNet. С 2010 года это соревнование служит ориентиром для прогресса в обучении с учителем в компьютерном зрении.
Эти модели включают:
- AlexNet. Это первая большая нейронная сеть, которая превзошла традиционные модели компьютерного зрения в крупном визуальном соревновании;
- сети с использованием блоков (VGG). Они строятся из многократно повторяющихся блоков;
- сеть в сети (NiN). Она повторно использует блоки из свёрточных слоёв и свёрточных слоёв (вместо полносвязных слоёв) для построения глубоких сетей;
- сеть с параллельными конкатенациями (GoogLeNet). Она использует параллельно соединённые ветви и извлекает информацию одновременно с помощью свёрточных слоёв разных размеров окна и слоёв максимального пулинга;
- остаточная сеть (ResNet). Она с помощью остаточных блоков создаёт сквозные пути для данных, проходящие через несколько слоёв, и является самой популярной архитектурой в компьютерном зрении;
- плотно связанная сеть (DenseNet). Её вычислительные затраты высоки, но она даёт лучшие результаты.
Идея глубокой нейронной сети очень проста: слои накладываются друг на друга. Однако из-за различий в архитектуре и выборе гиперпараметров производительность таких сетей может сильно меняться. Архитектуры, описанные в этой главе, — результат сочетания человеческой интуиции и математических соображений, а также большого числа экспериментов и проб и ошибок.
Мы будем рассматривать модели в хронологическом порядке. Это поможет проследить историю развития области и выработать интуицию о том, как она движется. Такой подход также помогает разрабатывать собственные архитектуры. Например, пакетная нормализация (batch normalization) и остаточные сети (ResNet), о которых пойдёт речь в этой главе, дают важные идеи для проектирования и обучения глубоких нейронных сетей.