•
Теперь, наконец-то, перейдём к рассмотрению искусственных нейронных сетей, которые получили название «свёрточных» (а также двойственных им – «развёрточных»). Такие нейросети получили в последнее время самое широкое распространение, поскольку являются базовым строительным блоком для построения систем «глубокого обучения». Рассмотрим несколько примеров.
Свёрточная сеть – ещё одна специальная архитектура искусственных нейронных сетей, которая очень эффективно решает задачу распознавания образов. Сама по себе архитектура была предложена в 1988 г. французским учёным Яном Лекуном, который взял некоторые идеи из устройства нервной системы млекопитающих и, в частности, зрительной коры головного мозга. Структура свёрточной нейронной сети состоит из большого количества слоёв двух чередующихся типов – свёрточных и субдискретизирующих. Обычно работа такой сети описывается как постепенный переход от конкретных особенностей распознаваемого образа к абстрактным деталям всё выше и выше по иерархии уровней абстракции. Например, в применении к изображениям это обозначает, что первые слои обнаруживают в частях изображения различные типовые элементы вроде разнонаправленных отрезков, а на последних слоях нейроны уже активируются в ответ на наличие в составе изображения каких-либо форм, конкретных объектов или образов.
Суть операции свёртки, из-за которой сеть получила своё название, заключается в том, что каждый фрагмент входного образа поэлементно умножается на матрицу свёртки, результат этого перемножения суммируется, и итоговая сумма передаётся в аналогичную позицию выходного образа для заданного слоя.
Каждый слой свёртки передаёт свой выход на слой субдискретизации, и это важная особенность рассматриваемой архитектуры. Субдискретизация нелинейно уплотняет карту признаков так, что группа пикселей (обычно 3x3) преобразуется в один пиксель, и это делается при помощи нелинейного преобразования (обычно используется функция максимизации). Суть этой операции в том, чтобы получить карту признаков с предыдущего слоя свёртки и «огрубить» изображение. Другими словами, происходит отказ от ненужных деталей, и нейронная сеть начинает рассматривать всё более и более абстрактные признаки исходного изображения. Кроме максимизации в качестве операции субдискретизации, могут использоваться и другие, и от этого зависят свойства получаемой нейронной сети, лучше или хуже подходящие для решения поставленной задачи.
Наибольший интерес вызывает то, что в операции свёртки матрица или ядро свёртки изначально не закладывается разработчиком нейронной сети, а самостоятельно подбирается в процессе обучения нейронной сети (чаще всего методом обратного распространения ошибки). В итоге для каждого свёрточного слоя получается большое количество карт признаков – отрезки и дуги, направленные под разными углами, границы между сплошными средами, точки и иные примитивы; а на более глубоких слоях – лица, животные, автомобили, здания и т. д. Количество карт признаков для каждого слоя является метапараметром сети и определяется разработчиком.
Для чего нужна свёрточная нейронная сеть? Как показали эксперименты, свёрточные нейросети:
• являются одним из лучших методов по распознаванию образов;
• по сравнению с полносвязными архитектурами (например, с перцептронами), требуют намного меньшего количества вычисляемых в процессе обучения параметров, из чего следует возможность построения сетей с большим количеством слоёв; • позволяют эффективно распараллеливать свои вычисления;
• обладают устойчивостью к поворотам и сдвигам распознаваемых образов.
Если про искусственные нейронные сети можно написать отдельную книгу, то про свёрточные нейронные сети можно написать ещё одну, поэтому оставим их и перейдём к следующему типу архитектуры – развёрточным сетям.
Развёрточные нейронные сети – это как бы перевёрнутые задом наперёд свёрточные сети. Они были предложены Мэтью Зайлером для простой задачи – анализа работы свёрточных нейронных сетей. Дело в том, что глубинное обучение задействует воистину огромное количество слоёв, а в свёрточных нейросетях эти слои ещё и разных типов, и субдискретизация осуществляется по разным каналам, а с учётом того, что чем глубже и полносвязнее сеть, тем сложнее понять, как она обучается, необходим хотя бы какой-то эвристический механизм или инструмент для оценки того, правильно ли обучается свёрточная нейросеть и не переобучилась ли она.