Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

В предыдущей главе мы познакомились с основными принципами свёрточных нейронных сетей. В этой главе речь пойдёт о современных архитектурах свёрточных сетей; многие современные исследования в этой области опираются на её материал.

Каждая модель, рассмотренная в этой главе, в своё время доминировала в своей области, и многие из них становились победителями соревнования ImageNet. С 2010 года это соревнование служит ориентиром для прогресса в обучении с учителем в компьютерном зрении.

Эти модели включают:

  • AlexNet. Это первая большая нейронная сеть, которая превзошла традиционные модели компьютерного зрения в крупном визуальном соревновании;
  • сети с использованием блоков (VGG). Они строятся из многократно повторяющихся блоков;
  • сеть в сети (NiN). Она повторно использует блоки из свёрточных слоёв и свёрточных слоёв (вместо полносвязных слоёв) для построения глубоких сетей;
  • сеть с параллельными конкатенациями (GoogLeNet). Она использует параллельно соединённые ветви и извлекает информацию одновременно с помощью свёрточных слоёв разных размеров окна и слоёв максимального пулинга;
  • остаточная сеть (ResNet). Она с помощью остаточных блоков создаёт сквозные пути для данных, проходящие через несколько слоёв, и является самой популярной архитектурой в компьютерном зрении;
  • плотно связанная сеть (DenseNet). Её вычислительные затраты высоки, но она даёт лучшие результаты.

Идея глубокой нейронной сети очень проста: слои накладываются друг на друга. Однако из-за различий в архитектуре и выборе гиперпараметров производительность таких сетей может сильно меняться. Архитектуры, описанные в этой главе, — результат сочетания человеческой интуиции и математических соображений, а также большого числа экспериментов и проб и ошибок.

Мы будем рассматривать модели в хронологическом порядке. Это поможет проследить историю развития области и выработать интуицию о том, как она движется. Такой подход также помогает разрабатывать собственные архитектуры. Например, пакетная нормализация (batch normalization) и остаточные сети (ResNet), о которых пойдёт речь в этой главе, дают важные идеи для проектирования и обучения глубоких нейронных сетей.