Свёртка для изображений
Одна свёртка
Для изображений , состоящих из каналов ( для RGB, Lab, HCL представлений), свёртка (convolution), как и в случае обработки последовательностей, работает как линейная операция в некоторой ограниченной окрестности обрабатываемого пикселя, представляющей собой квадратную область (хотя можно использовать и прямоугольные).
У свёртки есть параметры:
-
ядро свёртки (convolution kernel);
-
смещение свёртки (convolution bias).
Результат действия свёртки (активация) в позиции вычисляется по формуле:
при этом свёртка применяется ко всем позициям , к которым мы можем приложить ядро свёртки, генерируя тем самым двумерную карту активаций свёртки или карту признаков (feature map), как показано на рисунках:
После прохода по ряду мы сдвигаемся на следующий ряд в начало и проходим по нему. Так проходим по всем рядам, пока не дойдём до финальной позиции:
Сколько всего параметров нужно настроить для свёртки?
Нужно подобрать параметров для ядра свёртки и один - для смещения.
Примеры свёрток
Свёртка осуществляет локальное линейное преобразование и извлекает локальный линейный признак. Рассмотрим популярные свёртки, применяемые для изображений независимо для каждого цветового канала с нулевым смещением. Свёртки могут использоваться для сглаживания (слева) или, наоборот, для повышения резкости изображения (справа) [1]:
Также свёртки можно применять для извлечения границ, например вертикальных (слева) и горизонтальных (справа) [2]:
При обработке изображений нейросетями используются свёртки с настраиваемыми параметрами ядра и смещения - это позволяет извлекать более подходящие признаки для конечной задачи.