Sobes.tech
Middle — Senior
35

Что такое операция свёртки? Какие у неё свойства? Как её можно представить в виде матричного умножения (im2col)?

Ответ от нейросети

sobes.tech AI

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

Основные свойства свёртки:

  • Локальность: фильтр охватывает локальный участок входных данных.
  • Параметрическая экономия: один и тот же фильтр применяется ко всему входу.
  • Инвариантность к сдвигам: свёртка обнаруживает признаки независимо от их положения.

Представление свёртки через матричное умножение (im2col):

Метод im2col преобразует входное изображение в матрицу, где каждая колонка соответствует развернутому в вектор локальному участку (окну) изображения, на который накладывается фильтр. Фильтр разворачивается в вектор-строку. Затем свёртка сводится к умножению матрицы im2col на вектор фильтра, что позволяет эффективно использовать оптимизированные операции матричного умножения.

Пример:

  • Входное изображение 4x4
  • Фильтр 3x3

im2col создаст матрицу размером 9x4 (каждый столбец — 3x3 окно, развернутое в вектор), фильтр — вектор длиной 9. Результат умножения — вектор длиной 4, который можно преобразовать обратно в карту признаков 2x2.

Это ускоряет вычисления и упрощает реализацию свёрток на GPU и CPU.