1) Os recursos extraídos usando a CNN são invariáveis em escala e rotação?
Um recurso em si mesmo em uma CNN não é invariável em escala ou rotação. Para mais detalhes, consulte: Deep Learning. Ian Goodfellow e Yoshua Bengio e Aaron Courville. 2016: http://egrcc.github.io/docs/dl/deeplearningbook-convnets.pdf ; http://www.deeplearningbook.org/contents/convnets.html :
A convolução não é naturalmente equivalente a algumas outras transformações, como alterações na escala ou rotação de uma imagem. Outros mecanismos são necessários para lidar com esses tipos de transformações.
É a camada máxima de pooling que introduz esses invariantes:
2) Os Kernels que usamos para convolução com nossos dados já estão definidos na literatura? que tipo desses núcleos são? é diferente para cada aplicação?
Os kernels são aprendidos durante a fase de treinamento da RNA.
Eu acho que há algumas coisas confundindo você, então as primeiras coisas primeiro.
O acima é para sinais unidimensionais, mas o mesmo pode ser dito para imagens, que são apenas sinais bidimensionais. Nesse caso, a equação se torna:
Pictoricamente, é isso que está acontecendo:
De qualquer forma, o que deve ser lembrado é que o kernel , na verdade aprendido durante o treinamento de uma Rede Neural Profunda (DNN). Um kernel apenas será o que você convolve com a sua entrada. O DNN aprenderá o kernel, de modo a destacar certas facetas da imagem (ou imagem anterior), que serão boas para diminuir a perda do seu objetivo.
Este é o primeiro ponto crucial a entender: tradicionalmente, as pessoas projetam kernels, mas no Deep Learning, deixamos a rede decidir qual deve ser o melhor kernel. No entanto, a única coisa que especificamos são as dimensões do kernel. (Isso é chamado de hiperparâmetro, por exemplo, 5x5 ou 3x3 etc.).
fonte
Muitos autores, incluindo Geoffrey Hinton (que propõe a Capsule net), tentam resolver o problema, mas qualitativamente. Tentamos resolver esse problema quantitativamente. Ao ter todos os núcleos de convolução simétricos (simetria diédrica da ordem 8 [Dih4] ou rotação de incremento de 90 graus simétrica, et al) na CNN, forneceríamos uma plataforma para o vetor de entrada e o vetor resultante em cada camada oculta de convolução serem girados de forma síncrona com a mesma propriedade simétrica (ou seja, Dih4 ou rotação de 90 incrementos simétrica, et al). Além disso, por ter a mesma propriedade simétrica para cada filtro (ou seja, totalmente conectado, mas pesa o compartilhamento com o mesmo padrão simétrico) na primeira camada plana, o valor resultante em cada nó seria quantitativamente idêntico e levaria ao mesmo vetor de saída CNN também. Eu o chamei de CNN de transformação idêntica (ou TI-CNN-1). Existem outros métodos que também podem construir CNN idênticas à transformação usando entrada ou operações simétricas dentro da CNN (TI-CNN-2). Com base na TI-CNN, é possível construir CNNs idênticas à rotação de engrenagem (GRI-CNN) por várias TI-CNNs, com o vetor de entrada girado por um pequeno ângulo de passo. Além disso, uma CNN quantitativamente idêntica composta também pode ser construída combinando vários GRI-CNNs com vários vetores de entrada transformados.
"Redes neurais convolucionais transformacionais idênticas e invariantes por meio de operadores de elementos simétricos" https://arxiv.org/abs/1806.03636 (junho de 2018)
“Redes neurais convolucionais transformacionais, idênticas e invariantes, combinando operações simétricas ou vetores de entrada” https://arxiv.org/abs/1807.11156 (julho de 2018)
"Sistemas de redes neurais convolucionais rotacionalmente idênticas e invariáveis" https://arxiv.org/abs/1808.01280 (agosto de 2018)
fonte
Eu acho que o pool máximo pode reservar invariâncias de translação e rotação apenas para traduções e rotações menores que o tamanho da passada. Se maior, nenhuma invariância
fonte