O que é um vetor de atividade em redes neurais?

9

Eu estava lendo o novo artigo de Hinton, "Roteamento dinâmico entre cápsulas", e não entendi o termo "vetor de atividade" no resumo.

Uma cápsula é um grupo de neurônios cujo vetor de atividade representa os parâmetros de instanciação de um tipo específico de entidade, como um objeto ou parte do objeto. Usamos o comprimento do vetor de atividade para representar a probabilidade da entidade existir e sua orientação para representar os parâmetros da instanciação. Cápsulas ativas em um nível fazem previsões, através de matrizes de transformação, para os parâmetros de instanciação de cápsulas de nível superior. Quando várias previsões concordam, uma cápsula de nível superior se torna ativa. Mostramos que um sistema de cápsulas multicamadas, treinado discriminadamente, alcança desempenho de ponta no MNIST e é consideravelmente melhor que uma rede convolucional no reconhecimento de dígitos altamente sobrepostos. Para alcançar esses resultados, usamos um mecanismo iterativo de roteamento por contrato:

https://arxiv.org/pdf/1710.09829.pdf

Eu pensei que um vetor é como uma matriz de dados que você está executando através da rede.

Comecei a trabalhar no curso de aprendizado profundo de Andrew Ng, mas tudo é novo e os termos passam por minha cabeça.

tim_xyz
fonte

Respostas:

8

Em uma rede neural tradicional, os vértices das redes são neurônios e a saída de um único neurônio é um valor único (um " escalar "). Esse número é chamado de ativação . Uma camada de neurônios na rede gera um vetor de ativações. Não devemos confundir isso com os vetores de atividade em uma Capsule Network.

As redes de cápsulas são diferentes, pois os vértices da rede são cápsulas, e não neurônios. Eles são de maior dimensão: a saída de uma cápsula não é escalar, mas um vetor que representa um grupo de parâmetros relacionados à entrada. Daí o vetor de ativação de nome .

Motivação

Em uma rede neural, não há estrutura inerente entre as saídas escalares dos neurônios; isso é algo que as seguintes camadas precisam aprender. Nas redes de cápsulas, a saída de uma cápsula representa todos os parâmetros relacionados a isso juntos em um vetor, incluindo uma previsão para a ativação de cápsulas de camada mais profunda. Isso adiciona uma estrutura local útil.

Por exemplo, considere o reconhecimento facial. Se você possui uma cápsula que sabe reconhecer os olhos, ela pode gerar um vetor de atividade representando, por exemplo, "uma vez que reconheci uma posição do olho (x, y) com probabilidade p = 0,97 , prevejo que os parâmetros para todo o rosto serão (f1, ... fn) ".

Conforme explicado no artigo Roteamento dinâmico entre cápsulas , você se refere a essas informações e é usado da maneira que as cápsulas nas camadas anteriores (as partes: olho, boca, nariz) prevêem as ativações de camadas mais profundas (face). Por exemplo, um reconhecedor de rosto só será fortemente ativado quando houver concordância entre os reconhecedores de olho, nariz e boca (as partes) e o reconhecedor de rosto (o todo) sobre onde o rosto está localizado (o (f1, ... fn ) parâmetros).

Inspiração histórica

Algoritmos de visão computacional mais antigos, como o SIFT, funcionam de maneira semelhante, onde o reconhecimento é baseado em acordo entre a configuração de recursos multidimensionais (pontos-chave) e a configuração de referência.

mjul
fonte
1

Entendi que isso significa algo como "o vetor de ativações dos neurônios na cápsula". A ativação de um determinado neurônio é a soma ponderada de suas entradas, passada pela função de ativação (sigmóide, relu, etc.).

mindcrime
fonte