Este é o primeiro de uma série de posts sobre redes neurais convolucionais de grupo equivariante (GCNNs). Hoje, vamos mantê-lo curto, de alto nível e conceitual; exemplos e implementações virão a seguir. Ao olhar para GCNNs, estamos retomando um tópico que primeiro escreveu sobre em 2021: Aprendizagem profunda geométricauma abordagem baseada em princípios e matemática para o design de redes que, desde então, só aumentou em escopo e impacto.
Da alquimia à ciência: Deep Studying geométrico em dois minutos
Em poucas palavras, o Geometric Deep Studying é sobre derivar a estrutura de rede de duas coisas: o domínio e a tarefa. Os posts entrarão em muitos detalhes, mas deixe-me dar uma prévia rápida aqui:
- Por domínio, estou me referindo ao espaço físico subjacente e à maneira como ele é representado nos dados de entrada. Por exemplo, imagens são geralmente codificadas como uma grade bidimensional, com valores indicando intensidades de pixel.
- A tarefa é o que estamos treinando a rede para fazer: classificação, digamos, ou segmentação. As tarefas podem ser diferentes em diferentes estágios da arquitetura. Em cada estágio, a tarefa em questão terá sua palavra a dizer sobre como o design da camada deve parecer.
Por exemplo, tome MNIST. O conjunto de dados consiste em imagens de dez dígitos, de 0 a ten, todas em escala de cinza. A tarefa – sem surpresa – é atribuir a cada imagem o dígito representado.
Primeiro, considere o domínio. A (7) é um (7) onde quer que apareça na grade. Portanto, precisamos de uma operação que seja tradução-equivariante: Ele se adapta de forma flexível a mudanças (traduções) em sua entrada. Mais concretamente, em nosso contexto, equivariante as operações são capazes de detectar algumas propriedades de um objeto, mesmo que esse objeto tenha sido movido, verticalmente e/ou horizontalmente, para outro native. Convoluçãoonipresente não apenas no aprendizado profundo, é apenas uma operação de deslocamento equivariante.
Permitam-me chamar especial atenção para o facto de que, na equivariância, o essencial é a “adaptação flexível”. As operações de equivariância translacional fazer se importam com a nova posição de um objeto; eles registram uma característica não abstratamente, mas na nova posição do objeto. Para ver por que isso é importante, considere a rede como um todo. Quando compomos convoluções, construímos uma hierarquia de detectores de características. Essa hierarquia deve ser funcional, não importa onde na imagem. Além disso, ela tem que ser consistente: as informações de localização precisam ser preservadas entre as camadas.
Em termos de terminologia, é importante distinguir a equivariância da invariância. Uma operação invariante, em nosso contexto, ainda seria capaz de localizar uma característica onde quer que ela ocorra; no entanto, ela esqueceria alegremente onde essa característica aconteceu de estar. Claramente, então, para construir uma hierarquia de características, tradução-invariância não é suficiente.
O que fizemos agora foi derivar um requisito do domínio, a grade de entrada. E quanto à tarefa? Se, finalmente, tudo o que deveríamos fazer é nomear o dígito, agora, de repente, a localização não importa mais. Em outras palavras, uma vez que a hierarquia existe, a invariância é suficiente. Em redes neurais, agrupamento é uma operação que esquece detalhes (espaciais). Ela só se importa com a média, digamos, ou o valor máximo em si. É isso que a torna adequada para “resumir” informações sobre uma região, ou uma imagem completa, se no last só nos importamos em retornar um rótulo de classe.
Em poucas palavras, conseguimos formular uma lista de desejos de design com base em (1) o que nos foi dado e (2) o que nos foi atribuído.
Após este esboço de alto nível do Aprendizado Geométrico Profundo, vamos nos concentrar no tópico designado para esta série de postagens: grupo-equivariante redes neurais convolucionais.
O porquê de “equivariante” não deveria, por enquanto, ser um enigma muito grande. E quanto ao prefixo “grupo”, no entanto?
O “grupo” na equivariância de grupo
Como você deve ter adivinhado pela introdução, falando de “baseado em princípios” e “orientado pela matemática”, isso realmente é sobre grupos no “sentido matemático”. Dependendo da sua formação, a última vez que você ouviu falar sobre grupos foi na escola, e sem nem mesmo uma dica do porquê eles são importantes. Certamente não estou qualificado para resumir toda a riqueza do que eles são bons, mas espero que, até o last deste put up, sua importância no aprendizado profundo faça sentido intuitivo.
Grupos de simetrias
Aqui está um quadrado.
Agora feche os olhos.
Agora olhe novamente. Aconteceu alguma coisa com o quadrado?
Não dá para dizer. Talvez tenha sido rotacionado; talvez não. Por outro lado, e se os vértices fossem numerados?
Agora você saberia.
Sem a numeração, eu poderia ter girado o quadrado da forma que quisesse? Evidentemente não. Isso não passaria despercebido:
Há exatamente quatro maneiras pelas quais eu poderia ter girado o quadrado sem levantar suspeitas. Essas maneiras podem ser referidas de diferentes maneiras; uma maneira simples é por grau de rotação: 90, 180 ou 270 graus. Por que não mais? Qualquer adição adicional de 90 graus resultaria em uma configuração que já vimos.
A imagem acima mostra três quadrados, mas listei três rotações possíveis. E a situação da esquerda, a que tomei como estado inicial? Ela poderia ser alcançada girando 360 graus (ou o dobro disso, ou três vezes, ou …) Mas a maneira como isso é tratado, em matemática, é tratando-o como algum tipo de “rotação nula”, analogamente a como (0) atua em adição, (1) na multiplicação, ou a matriz identidade na álgebra linear.
No complete, temos quatro ações que poderia ser executado no quadrado (um quadrado não numerado!) que o deixaria como está, ou invariante. Estes são chamados de simetrias do quadrado. Uma simetria, em matemática/física, é uma quantidade que permanece a mesma não importa o que aconteça conforme o tempo evolui. E é aí que os grupos entram. Grupos – concretamente, a sua elementos – efetuar ações como rotação.
Antes de explicar como, deixe-me dar outro exemplo. Pegue esta esfera.
Quantas simetrias uma esfera tem? Infinitamente muitas. Isso implica que qualquer grupo escolhido para atuar no quadrado, não será muito bom representar as simetrias da esfera.
Visualizando grupos através do Ação lente
Seguindo esses exemplos, deixe-me generalizar. Aqui está uma definição típica.
Um grupo (G) é um conjunto finito ou infinito de elementos junto com uma operação binária (chamada operação de grupo) que juntos satisfazem as quatro propriedades fundamentais de fechamento, associatividade, propriedade de identidade e propriedade inversa. A operação com relação à qual um grupo é definido é frequentemente chamada de “operação de grupo”, e um conjunto é dito ser um grupo “sob” esta operação. Elementos (UM), (B), (C)… com operação binária entre (UM) e (B) denotado (AB) formar um grupo se
Encerramento: Se (UM) e (B) são dois elementos em (G)então o produto (AB) também está em (G).
Associatividade: A multiplicação definida é associativa, ou seja, para todo (UM),(B),(C) em (G), ((AB)C=A(BC)).
Identidade: Existe um elemento de identidade (EU) (também conhecido como (1), (E)ou (e)) tal que (IA=AI=A) para cada elemento (UM) em (G).
Inverso: Deve haver um inverso (também conhecido como recíproco) de cada elemento. Portanto, para cada elemento (UM) de (G)o conjunto contém um elemento (B=A^{-1}) tal que (AA^{-1}=A^{-1}A=I).
Em linguagem de ação, elementos de grupo especificam ações permitidas; ou mais precisamente, aquelas que são distinguíveis umas das outras. Duas ações podem ser compostas; essa é a “operação binária”. Os requisitos agora fazem sentido intuitivo:
- Uma combinação de duas ações – duas rotações, por exemplo – ainda é uma ação do mesmo tipo (uma rotação).
- Se tivermos três dessas ações, não importa como as agrupamos. (A ordem de aplicação delas deve permanecer a mesma, no entanto.)
- Uma ação possível é sempre a “ação nula”. (Assim como na vida.) Quanto a “não fazer nada”, não faz diferença se isso acontece antes ou depois de “algo”; esse “algo” é sempre o resultado last.
- Toda ação precisa ter um “botão desfazer”. No exemplo dos quadrados, se eu girar 180 graus, e depois, 180 graus novamente, eu volto ao estado authentic. É como se eu tivesse feito nada.
Retomando uma visão mais “de pássaro”, o que vimos até agora é a definição de um grupo por como seus elementos agem uns sobre os outros. Mas se os grupos devem importar “no mundo actual”, eles precisam agir sobre algo externo (componentes de rede neural, por exemplo). Como isso funciona é o tópico dos próximos posts, mas vou resumir brevemente a intuição aqui.
Perspectiva: CNN equivalente ao grupo
Acima, observamos que, na classificação de imagens, uma tradução– operação invariante (como convolução) é necessária: A (1) é um (1) seja movido horizontalmente, verticalmente, em ambos os sentidos, ou nem um pouco. E quanto às rotações? De cabeça para baixo, um dígito ainda é o que é. A convolução convencional não suporta esse tipo de ação.
Podemos adicionar à nossa lista de desejos arquitetônicos especificando um grupo de simetria. Qual grupo? Se quiséssemos detectar quadrados alinhados aos eixos, um grupo adequado seria (C_4)o grupo cíclico de ordem quatro. (Acima, vimos que precisávamos de quatro elementos e que poderíamos ciclo através do grupo.) Se, por outro lado, não nos importamos com o alinhamento, gostaríamos qualquer posição para contar. Em princípio, deveríamos acabar na mesma situação que fizemos com a esfera. No entanto, as imagens vivem em grades discretas; não haverá um número ilimitado de rotações na prática.
Com aplicações mais realistas, precisamos pensar com mais cuidado. Pegue dígitos. Quando é um número “o mesmo”? Primeiro, depende do contexto. Se fosse sobre um endereço escrito à mão em um envelope, aceitaríamos um (7) como tal, se tivesse sido girado em 90 graus? Talvez. (Embora possamos nos perguntar o que faria alguém mudar a posição da caneta esferográfica por apenas um dígito.) Que tal uma (7) de cabeça para baixo? Além de considerações psicológicas semelhantes, deveríamos estar seriamente inseguros sobre a mensagem pretendida e, pelo menos, diminuir o peso do ponto de dados se ele fizesse parte do nosso conjunto de treinamento.
Importante, também depende do próprio dígito. A (6)de cabeça para baixo, é um (9).
Dando zoom nas redes neurais, há espaço para ainda mais complexidade. Sabemos que as CNNs constroem uma hierarquia de recursos, começando pelos mais simples, como bordas e cantos. Mesmo que, para camadas posteriores, não queiramos equivariância de rotação, ainda gostaríamos de tê-la no conjunto inicial de camadas. (A camada de saída – já demos a entender isso – deve ser considerada separadamente em qualquer caso, uma vez que seus requisitos resultam das especificidades do que nos é atribuído.)
É isso por hoje. Espero ter conseguido iluminar um pouco por que gostaríamos de ter redes neurais equivariantes de grupo. A questão permanece: como as obtemos? É sobre isso que serão os posts subsequentes da série.
Até lá e obrigado pela leitura!
Foto por Ihor OINUA sobre Desaparecer