Understanding Hinton’s Capsule Networks. Parte IV: Arquitetura CapsNet

suponha que o rótulo correto é 1, isto significa que o primeiro DigitCap é responsável por codificar a presença do dígito 1. Para a função de perda deste DigitCap T_c será um e para todos os nove DigitCaps restantes T_c será 0. Quando T_c é 1, Então o primeiro termo da função de perda é calculado e o segundo torna-se zero. Para o nosso exemplo, a fim de calcular a perda do primeiro DigitCap tomamos o vetor de saída deste DigitCap e subtraí – lo de m+, que é fixado em 0,9. Então mantemos o valor resultante apenas no caso em que é maior que zero e quadrá-lo. Caso contrário, devolve 0. Em outras palavras, a perda será zero se o DigitCap correto previr o rótulo correto com maior que 0.9 probabilidade, e será não-zero se a probabilidade for menor que 0.9.

a Perda de valor da função para uma correcta e incorrecta DigitCap. Note que o grafo vermelho é “esmagado” verticalmente em comparação com o verde. Isto é devido ao multiplicador lambda da fórmula. Fonte: autor.

para DigitCaps que não correspondem com o rótulo correto, T_c será zero e, portanto, o segundo termo será avaliado (correspondente a (1 — T_c) parte). Neste caso, podemos ver que a perda será zero se o erro de correspondência DigitCap prevê um rótulo incorreto com probabilidade inferior a 0.1 e não-zero se prevê um rótulo incorreto com probabilidade superior a 0.1.

finalmente, na fórmula coeficiente lambda é incluído para a estabilidade numérica durante a formação (seu valor é fixado em 0,5). Os dois termos na fórmula têm quadrados porque esta função de perda tem norma L2 e os autores aparentemente consideram esta norma para funcionar melhor.

Parte II. descodificador.

CapsNet decodificador de arquitetura. Fonte: documento de origem.

Decodificador toma um vetor 16-dimensional do DigitCap correto e aprende a decodificá-lo em uma imagem de um dígito (note que ele só usa o vetor DigitCap correto durante o treinamento e ignora os incorretos). O decodificador é usado como um regularizador, ele leva a saída da DigitCap correta como entrada e aprende a recriar uma imagem de 28 por 28 pixels, com a função de perda sendo a distância euclidiana entre a imagem reconstruída e a imagem de entrada. O decodificador força cápsulas para aprender características que são úteis para reconstruir a imagem original. Quanto mais próxima a imagem reconstruída à imagem de entrada, melhor. Exemplos de imagens reconstruídas podem ser vistos na imagem abaixo.

linha Superior: imagens originais. Linha inferior: reconstruíram imagens. Fonte: documento de origem.

Camada 4. Totalmente conectado #1

entrada: 16×10.
saída: 512.
número de parâmetros: 82432.

cada saída do nível inferior é ponderada e direcionada para cada neurônio da camada totalmente conectada como entrada. Cada neurônio também tem um termo de viés. Para esta camada há entradas 16×10 que são todas direcionadas para cada um dos 512 neurônios desta camada. Portanto, há (16×10 + 1)x512 parâmetros treináveis.

para o cálculo das duas camadas a seguir é o mesmo: número de parâmetros = (número de entradas + viés) x número de neurônios na camada. É por isso que não há explicação para camadas totalmente conectadas 2 e 3.

camada 5. Totalmente conectado #2

entrada: 512.
saída: 1024.
número de parâmetros: 525312.

camada 6. Totalmente conectado #3

entrada: 1024.
saída: 784 (que depois de remodelar dá de volta uma imagem decodificada 28×28).
número de parâmetros: 803600.

número Total de Parâmetros na rede: 8238608.

conclusão

Deixe uma resposta

O seu endereço de email não será publicado.