При анализе изображений сверточные нейронные сети (сокращенно CNN или ConvNets) более эффективны по времени и памяти, чем полносвязные (FC) сети. Но почему? Каковы преимущества ConvNets перед сетями FC при анализе изображений? Как ConvNet получена из сетей FC? Откуда появился термин свертка в CNN? На эти вопросы нужно ответить в этой статье.

  1. Введение

Анализ изображений имеет ряд проблем, таких как классификация, обнаружение объектов, распознавание, описание и т. Д. Если, например, должен быть создан классификатор изображений, он должен уметь работать с высокой точностью даже с такими вариациями, как окклюзия, меняется подсветка, углы обзора и прочее. Традиционный конвейер классификации изображений с его основным этапом разработки признаков не подходит для работы в насыщенных средах. Даже специалисты в данной области не смогут выделить одну или группу функций, которые могут достичь высокой точности при различных вариациях. Из-за этой проблемы возникла идея изучения функций. Подходящие функции для работы с изображениями изучаются автоматически. Это причина, по которой искусственные нейронные сети (ИНС) являются одним из надежных способов анализа изображений. На основе алгоритма обучения, такого как градиентный спуск (GD), ИНС автоматически изучает особенности изображения. Необработанное изображение применяется к ИНС, и ИНС отвечает за создание описывающих его функций.

2. Анализ изображений с использованием сети FC

Давайте посмотрим, как ИНС работает с изображениями и почему CNN эффективен с учетом требований к времени и памяти W.R.T. следующее серое изображение 3x3 на рисунке 1. В данном примере для простоты используется изображение небольшого размера и меньшее количество нейронов.

Входами входного слоя ИНС являются пиксели изображения. Каждый пиксель представляет собой вход. Поскольку ИНС работает с одномерными векторами, а не с двухмерными матрицами, лучше преобразовать приведенное выше двухмерное изображение в одномерный вектор, как показано на рисунке 2.

Каждый пиксель отображается на элемент вектора. Каждый элемент вектора представляет нейрон в ИНС. Поскольку изображение имеет 3x3 = 9 пикселей, то во входном слое будет 9 нейронов. Представление вектора в виде строки или столбца не имеет значения, но ИНС обычно простирается по горизонтали, и каждый из ее слоев представлен как вектор-столбец.

После подготовки ввода ИНС следует добавить скрытый слой (слои), который учится преобразовывать пиксели изображения в репрезентативные функции. Предположим, что есть единственный скрытый слой с 16 нейронами, как на рисунке 3.

Поскольку сеть полностью подключена, это означает, что каждый нейрон в слое i связан со всеми нейронами в слое i-1. В результате каждый нейрон в скрытом слое соединяется со всеми 9 пикселями входного слоя. Другими словами, каждый входной пиксель связан с 16 нейронами в скрытом слое, где каждое соединение имеет соответствующий уникальный параметр. Подключив каждый пиксель ко всем нейронам в скрытом слое, мы получим 9x16 = 144 параметров или весов для такой крошечной сети, как показано на рисунке 4.

3. Большое количество параметров

Количество параметров в этой сети FC кажется приемлемым. Но это число сильно увеличивается по мере увеличения количества пикселей изображения и скрытых слоев.

Например, если в этой сети есть два скрытых слоя с количеством нейронов 90 и 50, то количество параметров между входным слоем и первым скрытым слоем будет 9x90 = 810. Количество параметров между двумя скрытыми слоями составляет 90x50 = 4500. Общее количество параметров в такой сети составляет 810 + 4,500 = 5,310. Это большое количество для такой сети. Еще один случай очень маленького изображения размером 32x32 (1024 пикселя). Если сеть работает с одним скрытым слоем из 500 нейронов, всего имеется параметр (вес) 1,024 * 500 = 512,000. Это огромное количество для сети с одним скрытым слоем, работающим с небольшим изображением. Чтобы уменьшить такое количество параметров, должно быть решение. Вот где CNN играет решающую роль. Он создает очень большую сеть, но с меньшим количеством параметров, чем сети FC.

4. Группировка нейронов

Проблема, из-за которой количество параметров становится очень большим даже для небольших сетей, заключается в том, что сети FC добавляют параметр между каждыми двумя нейронами в последовательных слоях. Вместо того, чтобы назначать один параметр между каждыми двумя нейронами, один параметр может быть назначен блоку или группе нейронов, как на рисунке 5. Пиксель с индексом 0 на рисунке 3 соединен с первыми 4 нейронами с индексами (0, 1 , 2 и 3) с 4 разными весами. Если нейроны сгруппированы в группы по 4, как на рисунке 5, то всем нейронам внутри одной группы будет присвоен один параметр.

В результате пиксель с индексом 0 на рисунке 5 будет связан с первыми 4 нейронами с тем же весом, что и на рисунке 6. Один и тот же параметр назначается каждым 4 последующим нейронам. В результате количество параметров уменьшается в 4 раза. Каждый входной нейрон будет иметь 16/4 = 4 параметров. У всей сети будет 144/4 = 36 параметров. Это снижение параметров на 75%. Это нормально, но все же можно уменьшить другие параметры.

На рисунке 7 показаны уникальные связи каждого пикселя с первым нейроном каждой группы. То есть все недостающие соединения - это просто дубликаты существующих. Гипотетически существует связь от каждого пикселя к каждому нейрону в каждой группе, как на рисунке 4, потому что сеть все еще полностью подключена.

Для упрощения все соединения опущены, за исключением соединений между всеми пикселями только с первым нейроном в первой группе, как показано на рисунке 8. Кажется, что каждая группа по-прежнему связана со всеми 9 пикселями и, таким образом, будет иметь 9 параметров. . Можно уменьшить количество пикселей, к которым подключен такой нейрон.

5. Пространственная корреляция пикселей

Текущая конфигурация заставляет каждый нейрон принимать все пиксели. Если есть функция f (x1, x2, x3, x4), которая принимает 4 входа, это означает, что решение должно приниматься на основе всех этих 4 входов. Если функция только с 2 входами дает те же результаты, что и при использовании всех 4 входов, то нам не нужно использовать все эти 4 входа. Достаточно двух входных данных, дающих требуемые результаты. Это похоже на предыдущий случай. Каждый нейрон принимает на вход все 9 пикселей. Если при использовании меньшего количества пикселей будут возвращены такие же или лучшие результаты, мы должны пройти через это.

Обычно при анализе изображения каждый пиксель сильно коррелирует с окружающими его пикселями (то есть с соседями). Чем больше расстояние между двумя пикселями, тем больше они будут некоррелированными. Например, на изображении оператора, показанном на рисунке 9, пиксель внутри лица коррелирует с окружающими пикселями лица вокруг него. Но это меньше связано с удаленными пикселями, такими как небо или земля.

Основываясь на таком предположении, каждый нейрон в приведенном выше примере будет принимать только пиксели, которые пространственно коррелированы друг с другом, потому что работать со всеми из них разумно. Вместо того, чтобы применять все 9 пикселей к каждому нейрону в качестве входных данных, можно просто выбрать 4 пространственно коррелированных пикселя, как показано на рисунке 10. Будет применен первый пиксель индекса 0 в векторе-столбце, расположенный в точке (0,0) на изображении. в качестве входа для первого нейрона с его 3 наиболее пространственно коррелированными пикселями. На основе входного изображения 3 наиболее пространственно коррелированных пикселя с этим пикселем являются пикселями с индексами (0,1), (1,0) и (1,1). В результате нейрон будет принимать только 4 пикселя, а не 9. Поскольку все нейроны в одной группе имеют одинаковые параметры, тогда 4 нейрона в каждой группе будут иметь только 4 параметра, а не 9. В результате общее количество параметров будет 4х4 = 16. По сравнению с полностью подключенной сетью, показанной на рисунке 4, наблюдается уменьшение параметра 144–16 = 128 (т. Е. Уменьшение на 88,89%).

6. Свертка в CNN

На этом этапе ответ на вопрос, почему CNN более эффективен по времени и памяти, чем сеть FC. Использование меньшего количества параметров позволяет увеличить глубокую CNN с огромным количеством слоев и нейронов, что невозможно в сети FC. Далее следует получить представление о свертке в CNN.

Теперь всем нейронам в одном блоке присвоено всего 4 веса. Как эти 4 веса покрывают все 9 пикселей? Посмотрим, как это работает.

На рисунке 11 показана предыдущая сеть на рисунке 10, но после добавления меток весов к соединениям. Внутри нейрона каждый из 4 входных пикселей умножается на его соответствующий вес. Уравнение показано на рисунке 11. Четыре пикселя и веса лучше визуализировать в виде матриц, как на рисунке 11. Предыдущий результат будет достигнут путем умножения матрицы весов на текущий набор из 4 пикселей поэлементно. На практике размер маски свертки должен быть нечетным, например 3x3. Для лучшей обработки в этом примере используется маска 2x2.

Переходя к следующему нейрону с индексом 1, он будет работать с другим набором пространственно коррелированных пикселей с теми же весами, которые использует нейрон с индексом 0. Также нейроны с индексами 2 и 3 будут работать с двумя другими наборами пространственно коррелированных пикселей. Это показано на рисунке 12. Кажется, что первый нейрон в группе начинается с верхнего левого пикселя и выбирает количество пикселей, окружающих его. Последний нейрон в группе работает с нижним правым пикселем и окружающими его пикселями. Промежуточные нейроны настраиваются для выбора промежуточных пикселей. Такое поведение идентично свертке. Свертка между набором весов группы и изображением. Вот почему в CNN есть термин свертка.

То же самое происходит и с остальными группами нейронов. Первый нейрон каждой группы начинается с верхнего левого угла и окружающих его пикселей. Последний нейрон каждой группы работает с правым нижним углом и окружающими его пикселями. Промежуточные нейроны работают с промежуточными пикселями.

7. Ссылки

Агдам, Хамед Хабиби и Эльназ Джахани Херави. Руководство по сверточным нейронным сетям: практическое применение для обнаружения и классификации дорожных знаков. Springer, 2017.

Эта статья изначально размещена в LinkedIn на этой странице.

Он также доступен на SlideShare как загружаемый файл PDF.

Для связи с автором:

Ахмед Фаузи Гад: http://www.linkedin.com/in/ahmedfgad [email protected]