Сверточная нейронная сеть - это алгоритм нейронной сети, который используется для классификации изображений на основе аспекта / информации, извлеченной из самого изображения. Информация извлекается с помощью операции свертки, применяемой к изображениям.

CNN состоит из следующих слоев:

1. Слой свертки

Операция свертки - это функция скользящего окна, применяемая к матрице.

Скользящее окно называется ядром фильтром или детектором функций. Здесь мы используем фильтр 3 × 3, поэлементно умножая его значения. с исходной матрицей, затем просуммируйте их. Чтобы получить полную свертку, мы делаем это для каждого элемента, перемещая фильтр по всей матрице. Результат сверточного слоя называется картой объектов . К изображению применено несколько фильтров. Каждый фильтр независимо сворачивается с изображением.

Вам может быть интересно узнать, что вы на самом деле можете с этим делать. Вот несколько наглядных примеров:

а. Усреднение каждого пикселя с его соседними значениями размывает изображение:

б. Принимая разницу между пикселем и его соседями, вы обнаруживаете края:

Чтобы понять это интуитивно, подумайте о том, что происходит в частях изображения, которые являются гладкими, где цвет пикселя равен цвету его соседей: добавления отменяются, и результирующее значение равно 0 или черному. Если есть резкий край интенсивности, например переход от белого к черному, вы получите большую разницу и результирующее значение белого.

ConvNet может содержать множество слоев свертки. Каждый слой применяет множество различных фильтров, таких как показанные выше, и объединяет их результаты. На этапе обучения мы инициализируем все фильтры случайными значениями (хотя нам необходимо предоставить такие параметры, как количество фильтров, размер фильтра). CNN автоматически изучает значения своих фильтров в зависимости от задачи, которую вы хотите выполнить. Каждый фильтр составляет локальный патч низкоуровневых функций в представление более высокого уровня. Например, в классификации изображений CNN может научиться обнаруживать края необработанных пикселей в первом слое, затем использовать края для обнаружения простых форм во втором слое, а затем использовать эти формы для предотвращения признаков более высокого уровня, таких как лица формы в более высоких слоях. Последний слой - это классификатор, использующий эти высокоуровневые функции.

2. Слой ReLU

Выпрямленная линейная единица, или ReLU, применяется по двум причинам. Во-первых, это устраняет проблему исчезающего градиента, и обучение CNN становится намного проще и быстрее. Кроме того, это увеличивает нелинейность нашей модели. Зачем нам нужна нелинейность в нашей модели? Вы можете найти очень красивое объяснение здесь. Изображения по своей природе нелинейны. Когда вы смотрите на изображение, вы можете обнаружить множество нелинейных функций. Итак, нам нужно ввести нелинейность в нашу модель, чтобы точно уловить эти особенности.

3. Уровень объединения

Его функция заключается в постепенном уменьшении пространственного размера представления для уменьшения количества параметров и вычислений в сети. Слой объединения работает с каждой картой объектов независимо. Наиболее распространенный подход, используемый при объединении в пул, - это максимальное объединение. Максимальный пул, который является формой понижающей выборки, используется для определения наиболее важных функций.

Теперь рассмотрим использование максимального объединения размером 5x5 с 1 шагом. Он уменьшает последующую область размером 5x5 данного изображения до области 1x1 с максимальным значением области 5x5.

Объединение также дает вам инвариантность к перемещению, вращению и масштабированию. Рассмотрим тот же пример использования пула размером 5x5. Объединение извлекает максимальное значение из данной области 5x5. По сути, извлекайте значение доминирующего признака (максимальное значение) из данной области независимо от положения значения признака. Максимальное значение будет из любой позиции внутри региона. Объединение не фиксирует положение максимального значения, поэтому обеспечивает извлечение инвариантных характеристик вращения / положения.

Пока - Извлечение функций

Приведенные выше три операции вместе извлекают элементы из изображения. Вышеупомянутые операции можно применять несколько раз для извлечения сложных объектов.

2-й слой свертки выполняет операцию над выходными данными 1-го уровня объединения.

4. Полностью связанный слой

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