Краткое введение в сверточные нейронные сети (CNN)

Операция свертки

В математике свертка — это математическая операция, которая объединяет две функции для получения третьей функции, которая представляет, как одна из исходных функций изменяет другую. Он определяется следующим образом:

Здесь f(t) и g(t) — две функции, которые мы хотим свернуть, а f * g — результирующая функция свертки. . Символ * обозначает операцию свертки, а знак интеграла — интегрирование по всей прямой.

В контексте обработки изображений мы можем думать о f как об изображении, которое мы хотим проанализировать, а g как о фильтре или ядре, которое мы хотим использовать для извлечения функций из Изображение. Результирующая функция свертки представляет, как фильтр изменяет изображение в каждой точке, и может использоваться для выделения определенных функций или структур на изображении. Например, мы можем увидеть иллюстрацию этого:

В CNN свертка используется в качестве строительного блока для анализа изображений. Сеть обычно состоит из нескольких слоев, каждый из которых применяет операцию свертки, за которой следует нелинейная функция активации. Затем выходные данные каждого уровня передаются на следующий уровень и так далее, пока не будет получен окончательный результат.

Более формально, скажем, у нас есть входное изображение X с размерами Ш x В x С, где Ш и В — ширина и высота изображения, а C — количество каналов. Сверточный слой в CNN может быть представлен как функция f, которая принимает входное изображение X и создает карту выходных объектов Y с размерами W' x H' x K , где W' и H' — размеры выходной карты объектов, а K — количество фильтров.

В CNN сверточные слои используются для извлечения признаков из входного изображения. Эти слои состоят из нескольких фильтров, каждый из которых отвечает за обнаружение определенной функции на изображении. Например, один фильтр может быть предназначен для обнаружения краев, а другой — для обнаружения углов. Например, мы можем видеть, как мы обнаруживаем различные особенности написанного от руки числа:

Объединение слоев

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

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

Полностью подключенный слой

Последний слой CNN обычно представляет собой полностью связанный слой, который берет выходные данные сверточных слоев и слоев объединения и создает набор вероятностей, указывающих вероятность того, что входное изображение принадлежит каждому классу в задаче классификации. Работу полносвязного слоя можно представить следующей формулой:

Здесь X — входной вектор, W — весовая матрица, b — вектор смещения и σ,функция активации. Результатом этой операции является вектор Y, содержащий вероятности для каждого класса.

Заключение

Таким образом, CNN — это тип нейронной сети, которая особенно хороша для задач классификации изображений. Он использует сверточные слои для извлечения объектов из входного изображения и объединения слоев для уменьшения размерности карт объектов. Результатом последнего слоя является набор вероятностей, указывающий вероятность того, что входное изображение принадлежит каждому классу в задаче классификации.

Ссылка:

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Присоединяйтесь к нашему сообществу Discord и следите за нами в Twitter, LinkedIn и YouTube.

Узнайте, как привлечь внимание к своему стартапу с помощью Circuit.