.. _chap_cnn: Свёрточные нейронные сети ========================= Данные изображений представлены в виде двумерной сетки пикселей, независимо от того, монохроматическое изображение или цветное. Соответственно, каждому пикселю соответствует одно или несколько числовых значений. До сих пор мы игнорировали эту богатую структуру и рассматривали изображения как векторы чисел, *сворачивая* их в одномерный массив, без учёта пространственных связей между пикселями. Этот глубоко неудовлетворительный подход был необходим для того, чтобы пропустить получившиеся одномерные векторы через полносвязный многослойный перцептрон (MLP). Поскольку эти сети инвариантны к порядку признаков, мы можем получить схожие результаты независимо от того, сохраняем ли мы порядок, соответствующий пространственной структуре пикселей, или переставляем столбцы нашей матрицы признаков перед подгонкой параметров многослойного перцептрона. В идеале мы должны использовать наши априорные знания о том, что соседние пиксели обычно связаны друг с другом, для построения эффективных моделей, обучающихся на данных изображений. В этой главе вводятся *свёрточные нейронные сети* (CNNs) :cite:`LeCun.Jackel.Bottou.ea.1995` — мощное семейство нейронных сетей, предназначенное именно для этой цели. Архитектуры на основе свёрточных сетей сегодня повсеместно используются в области компьютерного зрения. Например, на наборе данных ImageNet :cite:`Deng.Dong.Socher.ea.2009` значительный прирост производительности был достигнут исключительно благодаря применению свёрточных нейронных сетей, сокращённо называемых Convnets :cite:`Krizhevsky.Sutskever.Hinton.2012`. Современные свёрточные нейронные сети, как их называют в обиходе, обязаны своим дизайном вдохновением из биологии, теорией групп и здоровой дозой экспериментального подбора. Помимо высокой эффективности использования примеров при построении точных моделей, свёрточные нейронные сети, как правило, вычислительно эффективны, поскольку они требуют меньше параметров, чем полносвязные архитектуры, а операции свёртки легко распараллеливаются между ядрами GPU :cite:`Chetlur.Woolley.Vandermersch.ea.2014`. В результате специалисты часто применяют свёрточные нейронные сети whenever это возможно, и всё чаще они становятся серьезными конкурентами даже в задачах со структурой одномерной последовательности, таких как обработка аудио :cite:`Abdel-Hamid.Mohamed.Jiang.ea.2014`, текста :cite:`Kalchbrenner.Grefenstette.Blunsom.2014` и анализ временных рядов :cite:`LeCun.Bengio.ea.1995`, где традиционно используются рекуррентные нейронные сети. Некоторые умные адаптации свёрточных нейронных сетей также позволили применить их к данным с графовой структурой :cite:`Kipf.Welling.2016` и в рекомендательных системах. Сначала мы подробнее рассмотрим мотивацию, стоящую за созданием свёрточных нейронных сетей. Затем мы разберем основные операции, составляющие основу всех свёрточных сетей. К ним относятся сами свёрточные слои, важные детали, такие как дополнение и шаг, слои пулинга, используемые для агрегации информации из соседних пространственных областей, использование нескольких каналов на каждом слое, а также тщательное обсуждение структуры современных архитектур. В конце главы мы рассмотрим полностью рабочий пример сети LeNet — первой свёрточной сети, успешно внедренной на практике, задолго до эпохи современного глубокого обучения. В следующей главе мы перейдем к полным реализациям некоторых популярных и относительно недавних архитектур свёрточных нейронных сетей, дизайн которых отражает большинство техник, широко используемых современными специалистами. .. toctree:: :maxdepth: 2 why-conv conv-layer padding-and-strides channels pooling lenet