O que é invariância da tradução na visão computacional e na rede neural convolucional?

38

Não tenho experiência em visão computacional, mas quando leio alguns artigos e artigos relacionados a processamento de imagens e redes neurais convolucionais, enfrento constantemente o termo translation invariance, ou translation invariant.
Ou eu li muito que a operação de convolução fornece translation invariance? !! O que isto significa?
Eu mesmo sempre o traduzi como se isso significasse que, se mudarmos uma imagem de qualquer forma, o conceito real da imagem não muda.
Por exemplo, se eu girar uma imagem de uma árvore, digamos, ela é novamente uma árvore, não importa o que eu faça nessa imagem.
E eu mesmo considero todas as operações que podem acontecer com uma imagem e a transformamos de uma maneira (recortá-la, redimensioná-la, escala de cinza, colorir etc ...) como sendo dessa maneira. Eu não tenho idéia se isso é verdade, então eu ficaria agradecido se alguém pudesse me explicar isso.

Rika
fonte

Respostas:

61

Você está no caminho certo.

Invariância significa que você pode reconhecer um objeto como um objeto, mesmo quando sua aparência varia de alguma maneira. Isso geralmente é bom, porque preserva a identidade, a categoria do objeto (etc) entre as alterações nas especificidades da entrada visual, como posições relativas do visualizador / câmera e do objeto.

A imagem abaixo contém muitas vistas da mesma estátua. Você (e redes neurais bem treinadas) pode reconhecer que o mesmo objeto aparece em todas as imagens, mesmo que os valores reais dos pixels sejam bem diferentes.

Vários tipos de invariância, demonstrados

Observe que a tradução aqui tem um significado específico na visão, emprestado da geometria. Não se refere a nenhum tipo de conversão, ao contrário, digamos, de uma tradução do francês para o inglês ou entre os formatos de arquivo. Em vez disso, significa que cada ponto / pixel na imagem foi movido na mesma quantidade na mesma direção. Como alternativa, você pode pensar na origem como tendo sido deslocada uma quantidade igual na direção oposta. Por exemplo, podemos gerar a 2ª e a 3ª imagens na primeira linha da primeira movendo cada pixel 50 ou 100 pixels para a direita.


fgfgfg

Uma abordagem para o reconhecimento de objeto invariável à tradução é pegar um "modelo" do objeto e envolvê-lo com todos os locais possíveis do objeto na imagem. Se você receber uma resposta grande em um local, isso sugere que um objeto semelhante ao modelo está localizado nesse local. Essa abordagem geralmente é chamada de correspondência de modelo .


Invariância vs. Equivariância

A resposta de Santanu_Pattanayak ( aqui ) aponta que há uma diferença entre invariância de tradução e equivalência de tradução . Invariância de conversão significa que o sistema produz exatamente a mesma resposta, independentemente de como sua entrada é alterada. Por exemplo, um detector de rosto pode relatar "FACE ENCONTRADO" para todas as três imagens na linha superior. Equivariância significa que o sistema funciona igualmente bem em todas as posições, mas sua resposta muda com a posição do alvo. Por exemplo, um mapa de calor de "sem rosto" teria solavancos semelhantes à esquerda, centro e direita quando processa a primeira linha de imagens.

Essa é algumas vezes uma distinção importante, mas muitas pessoas chamam os dois fenômenos de "invariância", especialmente porque geralmente é trivial converter uma resposta equivariante em uma invariável - apenas desconsidere todas as informações de posição).

Matt Krause
fonte
2
Ainda bem que pude ajudar. Esse é um dos meus grandes interesses de pesquisa. Se houver mais alguma coisa que seja útil, verei o que posso fazer.
Matt Krause
Você poderia esclarecer como a invariância da tradução é alcançada com a CNN? As ativações de uma camada convolucional em uma CNN não são invariantes nas traduções: elas se movem à medida que a imagem se move (ou seja, são equivalentes às traduções, em vez de invariantes). Essas ativações geralmente são alimentadas em uma camada de pool, que também não é invariável para traduções. E a camada de pool pode alimentar uma camada totalmente conectada. Os pesos em uma camada totalmente conectada, de alguma forma, alteram a transalação equivariante ao comportamento invariante da tradução?
max
@max, o Pooling aumenta a invariância da tradução, especialmente o max-pooling (!), que desconsidera completamente as informações espaciais dentro do bairro do pool. Consulte o Capítulo 9 do Deep Learning deeplearningbook.org/contents/convnets.html (a partir da p. 335). Essa idéia também é popular na neurociência - o modelo HMAX (por exemplo, aqui: maxlab.neuro.georgetown.edu/docs/publications/nn99.pdf ) usa uma combinação de média e pool máximo para gerar tradução (e outros tipos de ) invariância.
Matt Krause
1
Certo, o pooling oferece invariância em relação a pequenas traduções (eu estava pensando em turnos maiores, mas talvez cada camada sucessiva de pooling possa lidar com turnos progressivamente maiores). Mas e as redes totalmente convolucionais ? Sem agrupamento, o que fornece invariância (pelo menos aproximada)?
max
1
@ Fred, isso pode ser melhor como uma nova pergunta, mas em resumo - o sinal de áudio soa o mesmo, mesmo quando você o avança no tempo (por exemplo, adicionando um monte de silêncio no início). No entanto, se você o altera no domínio da frequência, soa diferente: não apenas o espectro é alterado, mas as relações entre as frequências (por exemplo, harmônicas) também são distorcidas.
Matt Krause
4

Eu acho que há alguma confusão sobre o que se entende por invariância da tradução. Convolução fornece equivalência de tradução, significando que se um objeto em uma imagem estiver na área A e, por convolução, um recurso for detectado na saída na área B, o mesmo recurso será detectado quando o objeto na imagem for traduzido para A '. A posição do recurso de saída também seria convertida para uma nova área B 'com base no tamanho do kernel do filtro. Isso é chamado de equivalência translacional e não invariância translacional.

Santanu_Pattanayak
fonte
2

A resposta é realmente mais complicada do que parece à primeira vista. Geralmente, a invariância da tradução significa que você reconheceria o objeto independentemente de onde ele aparece no quadro.

Na figura a seguir, nos quadros A e B, você reconheceria a palavra "estressado" se sua visão apoiar a invariância de tradução das palavras . insira a descrição da imagem aqui

Eu destaquei o termo palavras porque se sua invariância é suportada apenas em letras, o quadro C também será igual aos quadros A e B: ele possui exatamente as mesmas letras.

Em termos práticos, se você treinou sua CNN em letras, coisas como MAX POOL ajudarão a obter a invariância da tradução nas letras, mas podem não levar necessariamente à invariância da tradução nas palavras. O pool extrai o recurso (extraído por uma camada correspondente) sem relação à localização de outros recursos, por isso perderá o conhecimento da posição relativa das letras D e T e as palavras STRESSED e DESSERTS terão a mesma aparência.

O termo em si é provavelmente da física, em que simetria traducional significa que as equações permanecem as mesmas, independentemente da tradução no espaço.

Aksakal
fonte
1

@Santanu

Embora sua resposta esteja correta em parte e leve à confusão. É verdade que as próprias camadas convolucionais ou os mapas de características de saída são equivalentes à tradução. O que as camadas de pool máximo fazem é fornecer alguma invariância de conversão, como o @Matt aponta.

Ou seja, a equivalência nos mapas de recursos combinada com a função de camada de pool máximo leva à invariância de conversão na camada de saída (softmax) da rede. O primeiro conjunto de imagens acima ainda produziria uma previsão chamada "estátua", mesmo que tenha sido traduzida para a esquerda ou direita. O fato de a previsão permanecer "estátua" (ou seja, a mesma), apesar de traduzir a entrada, significa que a rede alcançou alguma invariância na tradução.

Sr. e
fonte
Não tenho tanta certeza de que o pool leve à invariância da tradução.
Aksakal
Moderadamente. Lembre-se de que o operador de pool máximo aceita o valor máximo de pixel como saída em uma determinada janela. Isso exige matematicamente alguma invariância, pois a localização espacial dos valores máximos de pixels é irrelevante (dentro de alguma tolerância).
mr e