7. Свёрточные нейронные сети¶
Данные изображений представлены в виде двумерной сетки пикселей, независимо от того, монохроматическое изображение или цветное. Соответственно, каждому пикселю соответствует одно или несколько числовых значений. До сих пор мы игнорировали эту богатую структуру и рассматривали изображения как векторы чисел, сворачивая их в одномерный массив, без учёта пространственных связей между пикселями. Этот глубоко неудовлетворительный подход был необходим для того, чтобы пропустить получившиеся одномерные векторы через полносвязный многослойный перцептрон (MLP).
Поскольку эти сети инвариантны к порядку признаков, мы можем получить схожие результаты независимо от того, сохраняем ли мы порядок, соответствующий пространственной структуре пикселей, или переставляем столбцы нашей матрицы признаков перед подгонкой параметров многослойного перцептрона. В идеале мы должны использовать наши априорные знания о том, что соседние пиксели обычно связаны друг с другом, для построения эффективных моделей, обучающихся на данных изображений.
В этой главе вводятся свёрточные нейронные сети (CNNs) (LeCun et al., 1995) — мощное семейство нейронных сетей, предназначенное именно для этой цели. Архитектуры на основе свёрточных сетей сегодня повсеместно используются в области компьютерного зрения. Например, на наборе данных ImageNet (Deng et al., 2009) значительный прирост производительности был достигнут исключительно благодаря применению свёрточных нейронных сетей, сокращённо называемых Convnets (Krizhevsky et al., 2012).
Современные свёрточные нейронные сети, как их называют в обиходе, обязаны своим дизайном вдохновением из биологии, теорией групп и здоровой дозой экспериментального подбора. Помимо высокой эффективности использования примеров при построении точных моделей, свёрточные нейронные сети, как правило, вычислительно эффективны, поскольку они требуют меньше параметров, чем полносвязные архитектуры, а операции свёртки легко распараллеливаются между ядрами GPU (Chetlur et al., 2014). В результате специалисты часто применяют свёрточные нейронные сети whenever это возможно, и всё чаще они становятся серьезными конкурентами даже в задачах со структурой одномерной последовательности, таких как обработка аудио (Abdel-Hamid et al., 2014), текста (Kalchbrenner et al., 2014) и анализ временных рядов (LeCun et al., 1995), где традиционно используются рекуррентные нейронные сети. Некоторые умные адаптации свёрточных нейронных сетей также позволили применить их к данным с графовой структурой (Kipf and Welling, 2016) и в рекомендательных системах.
Сначала мы подробнее рассмотрим мотивацию, стоящую за созданием свёрточных нейронных сетей. Затем мы разберем основные операции, составляющие основу всех свёрточных сетей. К ним относятся сами свёрточные слои, важные детали, такие как дополнение и шаг, слои пулинга, используемые для агрегации информации из соседних пространственных областей, использование нескольких каналов на каждом слое, а также тщательное обсуждение структуры современных архитектур. В конце главы мы рассмотрим полностью рабочий пример сети LeNet — первой свёрточной сети, успешно внедренной на практике, задолго до эпохи современного глубокого обучения. В следующей главе мы перейдем к полным реализациям некоторых популярных и относительно недавних архитектур свёрточных нейронных сетей, дизайн которых отражает большинство техник, широко используемых современными специалистами.