Что такое трансляционная инвариантность в компьютерном зрении и сверточной нейронной сети?

38

У меня нет компьютерного зрения, но когда я читаю некоторые статьи и статьи, связанные с обработкой изображений и сверточными нейронными сетями, я постоянно сталкиваюсь с термином translation invarianceили translation invariant.
Или я много читал, что обеспечивает операция свертки translation invariance? !! что это значит?
Я сам всегда переводил это себе, как будто это означает, что если мы изменим изображение в любой форме, фактическая концепция изображения не изменится.
Например, если я поворачиваю изображение, скажем, дерева, то это опять дерево, независимо от того, что я делаю с этим изображением.
И я сам считаю все операции, которые могут происходить с изображением, и преобразовывать его таким образом (обрезать его, изменять его размер, масштабировать его серым цветом, окрашивать и т. Д.) Таким образом. Я понятия не имею, правда ли это, поэтому я был бы признателен, если бы кто-нибудь смог мне это объяснить.

Rika
источник

Ответы:

61

Вы на правильном пути.

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

Изображение ниже содержит много видов той же статуи. Вы (и хорошо обученные нейронные сети) можете распознать, что один и тот же объект появляется на каждом изображении, даже если фактические значения пикселей совершенно разные.

Различные виды инвариантности, продемонстрированные

Обратите внимание, что перевод здесь имеет особое значение в видении, заимствованном из геометрии. Это не относится ни к какому типу преобразования, в отличие от, скажем, перевода с французского на английский или между форматами файлов. Вместо этого это означает, что каждая точка / пиксель изображения была перемещена на одинаковую величину в одном и том же направлении. С другой стороны, вы можете думать о происхождении как о смещенном равном количестве в противоположном направлении. Например, мы можем сгенерировать 2-е и 3-е изображения в первом ряду из первого, переместив каждый пиксель на 50 или 100 пикселей вправо.


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

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


Инвариантность против Эквивариантности

Ответ Сантану_Паттанаяка ( здесь ) указывает на то, что существует разница между инвариантностью перевода и эквивалентностью перевода . Трансляционная инвариантность означает, что система выдает точно такой же ответ, независимо от того, как смещен ее ввод. Например, детектор лица может сообщить «FACE FOUND» для всех трех изображений в верхнем ряду. Эквивариантность означает, что система одинаково хорошо работает в разных позициях, но ее реакция меняется с позицией цели. Например, тепловая карта «face-iness» будет иметь аналогичные выпуклости слева, в центре и справа при обработке первого ряда изображений.

Иногда это важное различие, но многие люди называют оба явления «инвариантностью», тем более что преобразование эквивариантного ответа в инвариантный обычно тривиально - просто не обращайте внимания на всю информацию о положении).

Мэтт Краузе
источник
2
Рад, что смог помочь. Это один из моих больших исследовательских интересов, так что если есть что-то еще, что будет полезно, я посмотрю, что я могу сделать.
Мэтт Краузе
Не могли бы вы уточнить, как с помощью CNN достигается неизменность перевода? Активации сверточного слоя в CNN не являются инвариантными при трансляциях: они перемещаются по мере движения изображения (т. Е. Они эквивалентны, а не инвариантны для трансляций). Эти активации обычно подаются в слой пула, который также не является инвариантным для переводов. И объединяющий слой может подаваться в полностью связанный слой. Изменяют ли веса в полностью связном слое каким-либо образом трансалацию, эквивалентную трансляционно-инвариантному поведению?
максимум
@max, Пул увеличивает инвариантность трансляции, особенно max-pooling (!), который полностью игнорирует пространственную информацию в окрестности пула. См. Главу 9 «Углубленное обучение» deeplearningbook.org/contents/convnets.html (начиная со стр. 335). Эта идея также популярна в нейробиологии - модель HMAX (например, здесь: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) использует комбинацию усреднения и максимального объединения для генерации перевода (и других видов инвариантность
Мэтт Краузе
1
О, верно, объединение обеспечивает неизменность по отношению к небольшим переводам (я думал о больших сменах, но, возможно, каждый последующий слой объединения может обрабатывать постепенно большие сдвиги). Но как насчет полностью сверточных сетей ? Без объединения что обеспечивает (хотя бы приблизительную) инвариантность?
максимум
1
@Fredom, это может быть лучше, как новый вопрос, но вкратце - звуковой сигнал звучит одинаково, даже когда вы сдвигаете его вперед во времени (например, добавляя кучу молчания в начале). Однако, если вы смещаете его в частотной области, он звучит по- другому: смещается не только спектр, но также искажаются отношения между частотами (например, гармониками).
Мэтт Краузе
4

Я думаю, что есть некоторая путаница относительно того, что подразумевается под переводческой инвариантностью. Свертка обеспечивает значение эквивалентности перевода, если объект в изображении находится в области A, и посредством свертки признак обнаружен на выходе в области B, тогда тот же самый признак будет обнаружен, когда объект в изображении переведен в A '. Положение выходного объекта также будет переведено в новую область B 'на основе размера ядра фильтра. Это называется трансляционной эквивалентностью, а не трансляционной инвариантностью.

Santanu_Pattanayak
источник
2

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

На следующем рисунке в кадрах A и B вы узнаете слово «подчеркнуто», если ваше видение поддерживает переводную неизменность слов . введите описание изображения здесь

Я выделил термин слова, потому что если ваша инвариантность поддерживается только для букв, то фрейм C также будет равен фреймам A и B: в нем точно такие же буквы.

В практическом плане, если вы обучили свой CNN буквам, то такие вещи, как MAX POOL, помогут добиться неизменности перевода букв, но не обязательно приведут к неизменности перевода слов. Объединение вытягивает объект (который извлекается соответствующим слоем) независимо от расположения других объектов, поэтому он теряет знание об относительном положении букв D и T, и слова STRESSED и DESSERTS будут выглядеть одинаково.

Сам термин, вероятно, взят из физики, где трансляционная симметрия означает, что уравнения остаются неизменными независимо от перемещения в пространстве.

Аксакал
источник
1

@Santanu

Пока ваш ответ верен отчасти и приводит к путанице. Это правда, что сами сверточные слои или карты выходных объектов являются трансляционно-эквивалентными. То, что делают слои с максимальным пулом, это обеспечивает некоторую неизменность перевода, как указывает @Matt.

Другими словами, эквивалентность в картах объектов в сочетании с функцией уровня max-pooling приводит к трансляционной инвариантности в выходном слое (softmax) сети. Первый набор изображений, приведенный выше, все равно будет давать прогноз, называемый «статуя», даже если он был переведен влево или вправо. Тот факт, что прогноз остается «статичным» (т. Е. Тем же), несмотря на перевод входных данных, означает, что сеть достигла некоторой неизменности перевода.

мистер э
источник
Я не уверен, что объединение приводит к неизменности перевода.
Аксакал
Умеренно это делает. Помните, что оператор max pooling принимает максимальное значение пикселя в качестве своего вывода в данном окне. Это математически требует некоторой инвариантности, поскольку пространственное расположение максимальных значений пикселей не имеет значения (в пределах некоторого допуска).
г -