Что не так с современными сверточными сетями и как их исправить? Если вы используете CNN, возможно, вы захотите это прочитать.

В апреле 2019 года появился новый документ по компьютерному зрению под названием Как сделать сверточные сети снова инвариантными относительно сдвига ». Почему современные сверточные сети больше не инвариантны к сдвигу, что это означает и как сделать их снова инвариантными относительно сдвига?

Что не так с современными сверточными сетями?

Большинство современных сверточных сетей не устойчивы к небольшим сдвигам или трансляциям. Например, сетевые выходы могут сильно меняться в зависимости от положения входа.

Хотя свертки эквивалентны сдвигу, а объединение создает инвариантность сдвига, шаг игнорирует теорему выборки Найквиста и псевдонимы, которые нарушают эквивалентность сдвига. Шаговое движение можно увидеть во время максимальных пулов и шаговых извилин.

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

При обработке сигналов размытие используется перед субдискретизацией как средство сглаживания. В глубоком обучении этот метод в конечном итоге был заменен на max-pooling, когда последний эмпирически продемонстрировал лучшую производительность.

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

Как мы можем добавить сглаживание в мощные сети?

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

Сглаживание аналогичным образом можно применять к другим сверточным сетям. Для последовательной свертки мы можем просто добавить слой BlurPool после свертки и активации. Средний пул эквивалентен размытому даунсэмплингу с блочным фильтром, поэтому замена его на BlurPool, который использует более сильный фильтр, может обеспечить лучшую эквивалентность сдвига. BlurPool тестируется со следующими фильтрами размытия: Rectangle-2 [1,1], Triangle-3 [1,2,1] и Binomial-5 [1, 4, 6, 4, 1].

Как мы оцениваем сглаживание?

Новые стратегии подвыборки тестируются на классификации и генерации изображений в различных архитектурах компьютерного зрения. Для оценки эффективности сглаживания предлагаются три показателя инвариантности / эквивалентности сдвигов:

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

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

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

Полученные результаты

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

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

Для генерации изображений фильтры нижних частот добавляются к слоям последовательной свертки архитектуры U-Net. PSNR между сгенерированными изображениями со входами со сдвигом и без него также увеличивается, что означает, что выходные данные более похожи.

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

Обсуждение

Я сам попробовал эту модель, настроив предварительно обученную модель Resnet18 со сглаживанием для классификации изображений на изображениях в градациях серого с менее чем 4 000 обучающих данных. Первоначально эта задача является сложной, потому что модель имеет тенденцию переоснащаться на скудных обучающих данных. Сглаживание действительно помогает модели обобщить, а точность тестирования увеличилась с 0,95865 до 0,97115.

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

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

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