Сверточная нейронная сеть CNN значительно улучшила производительность компьютерного зрения и произвела революцию в компьютерном зрении, но, как мы все знаем,
Пока входное изображение немного изменяется на один пиксель и смещается на один пиксель, выходные данные CNN будут резко меняться, поэтому легко набрать враждебные атаки.
Сегодня я делюсь статьей с ICML2019, посвященной решению противостоящих атак, инвариантных к трансляции CNN, «Снова сделать сверточные сети инвариантными к сдвигу».
Потеря трансляционной инвариантности
Фундаментальной причиной является понижение дискретизации, будь то максимальное объединение, среднее объединение или пошаговая свертка, поскольку понижение частоты дискретизации с размером шага больше 1 приведет к потере трансляционной инвариантности.
В качестве простого примера, обычный вход представляет собой одномерную числовую последовательность 00110011.
Maxpooling, когда сдвиг равен 0, выглядит следующим образом:
Maxpooling при панорамировании влево на 1:
Переместите только 1 пиксель, и результат Maxpooling будет иметь огромное значение. Понижение дискретизации является причиной потери трансляционной инвариантности в CNN.
Строгое определение трансляционной инвариантности и трансляционного равенства
Предыдущий подраздел — это просто перцептивное понимание чувствительности понижающей дискретизации к переводу Строго говоря, предыдущий подраздел показывает параллельное равенство, а не трансляционную инвариантность. Мы даем строгие определения трансляционной инвариантности и трансляционной эквивалентности.
Используйте X для представления изображения с разрешением H x W, затем:
CNN L-уровня может быть представлена следующим экстрактором признаков:
Каждая карта объектов F может быть увеличена до того же разрешения, что и X:
1) Равенство перевода
Перевод равен, если перевод ввода равен переводу вывода.
Обратите внимание, что F в приведенной выше формуле имеет повышающую дискретизацию и имеет то же разрешение, что и входное изображение X.
2) Трансляционная инвариантность
Если вывод не изменился после сдвига ввода, перевод не изменился.
Обратите внимание, что F в приведенной выше формуле имеет повышающую дискретизацию и имеет то же разрешение, что и входное изображение X.
Для примера из предыдущего раздела давайте сравним сдвиг = 0 и сдвиг = 1 и увеличим частоту дискретизации результата:
И кажущееся трансляционное равенство, и трансляционная инвариантность теряются.
Давайте снова сравним shift=0 и shift=2 и результаты после апсемплинга:
Это, очевидно, поддерживает равенство перевода, но не поддерживает инвариантность перевода.Пока количество пикселей в сдвиге равно размеру шага объединения, может быть достигнуто равенство перевода.
Вариация примера из предыдущего подраздела:
Это, очевидно, сохраняет трансляционную инвариантность и трансляционное равенство.
В общей CNN, пока первые несколько слоев поддерживают равенство перевода, окончательная классификация обычно имеет инвариантность перевода, поэтому мы в основном обсуждаем равенство перевода позже.
3) Мера трансляционного равенства
Если неравенство переводов сохраняется, то это лучшее, если перевод неравный, как измерить степень неравенства переводов? Как правило, используются специальные меры:
В частности, автор использует сходство cos для измерения:
Диапазон значений: [-1.0, 1.0], чем больше значение, тем лучше равенство перевода.
Сглаживание
Традиционные методы уменьшения разрешения, такие как maxpooling, medium pooling и stepd convolution, нарушают равенство перевода.Решение, описанное в учебнике, состоит в использовании сглаживания фильтра нижних частот.Среднее объединение идет со сглаживанием, но как применять maxpooling и strided конкретно По свертке элегантного решения пока нет, автор разбирает процесс пулинга, вносит некоторые улучшения и предлагает элегантное решение.
Взяв в качестве примера maxpooling, его фактически можно разделить на два равных шага, как показано на следующем рисунке:
MaxPool/2 = Max/1 + Subsampling/2
Автор предлагает добавить операцию Anti-aliasing Blur после Max/1, а затем Subsamping/2.
MaxBurPool/2 = Max/1 + Размытие сглаживания/1 + Подвыборка/2.
Автором последних двух шагов становится BlurPool, то есть:
BlurPool/2 = Размытие сглаживания/1 + Подвыборка/2.
Затем maxpooling, medium pooling и stepd convolution можно разделить на версии со сглаживанием.
Эффект сглаживания
Следующий рисунок является результатом MaxPool/2 и MaxBlurPool/2, когда shift=0:
Следующий рисунок является результатом MaxPool/2 и MaxBlurPool/2, когда shift=1:
Косинусное подобие MaxPool/2, когда shift=0 и shift=1: 0,71
Косинусное подобие MaxBlurPool/2, когда shift=0 и shift=1: 0,95
Видно, что равенство перевода BlurPool с Anti_aliasing значительно улучшилось.
влияние на набор данных
1) Результаты на ImageNet
На рисунке ниже показаны согласованность и точность после добавления сглаживания в набор данных ImageNet. Согласованность — это входное изображение.После двух разных сдвигов категории сохраняют постоянное соотношение. После того, как сглаживание может быть добавлено, независимо от того, какое ядро сглаживания выбрано, точность и согласованность значительно улучшаются по сравнению с базовой линией.Это неожиданно.Автор считает, что точность должна быть потеряна, но это увеличивает точность. Тратить. Ядро на рисунке относится к:
Рект-2: [1, 1]
Tri-3: [1, 2, 1]
Bin-5: [1, 4, 6, 4, 1]
Все ядра требуют нормализации, которая делится на сумму всех элементов ядра.
2) Мера равенства перевода каждого слоя внутри VGG
На следующем рисунке показана FeatureMap каждого слоя внутри VGG. Мера равенства переводов (косинусное сходство), соответствующая любому возможному сдвигу на CIFAR10, поскольку все изображения CIFAR10 имеют разрешение 32x32, поэтому есть только переводы 32x32, поэтому результат 32x32. изображение. Синий представляет собой полное трансляционное равенство, а красный — большее трансляционное неравенство.
Очевидно, что трансляционное равенство является периодическим, а период — это кумулятивная скорость понижения дискретизации. При каждом понижении частоты теряется половина эквивалентности перевода. Также видно, что сглаживание значительно улучшает соответствие перевода.
3) Сравнение результатов разных ядер на CIFAR10
Автор рисунка ниже обсуждает изменения точности и согласованности с различными сетевыми структурами (DenseNet и VGG) на CIFAR10, с разными ядрами Blur, с аугментацией или без нее.
Можно ясно увидеть важность увеличения данных для нетрадиционного объединения, а также эффективность объединения сглаживания, особенно когда нет увеличения данных.
в заключении
После того, как автор изменил Pooling на BlurPooling, он может эффективно улучшить инвариантность перевода и повысить точность модели, а увеличенный объем вычислений в основном незначителен.Это действительно очень элегантное решение, и я надеюсь увидеть крупномасштабные приложений., которые будут стандартными для будущих моделей.