Visualizing and Understanding Convolutional Networks

Matthew D. Zeiler and Rob Fergus

Renato Barreira e Danilo Luiz

Introdução

  • Contexto: Modelos de Redes Neurais Convolucionais grandes (Large Convolutional Network models) têm demonstrado recentemente um desempenho impressionante em tarefas de classificação. Vários fatores são responsáveis por essa melhoria dramática no desempenho;

    1. a disponibilidade de conjuntos de treinamento muito maiores, com milhões de exemplos rotulados;
    1. implementações poderosas em GPUs, tornando o treinamento de modelos muito grandes viável;
    1. estratégias melhores de regularização do modelo, como o Dropout (técnica de regularização que “desativa” aleatoriamente algumas conexões na rede durante o treinamento, reduzindo o risco de overfitting).

Introdução

  • CONTUDO

  • Não há uma compreensão clara de por qual motivo esses modelos funcionam tão bem ou como poderiam ser melhorados.

  • Sem uma compreensão clara de como e por que eles funcionam, o desenvolvimento de modelos melhores se reduz a tentativa e erro.

Introdução

  • OBJETIVO DO TRABALHO:

  • A técnica de visualização que os autores propõe utiliza uma Rede Deconvolucional de múltiplas camadas (deconvnet de Zeiler et al). [29], para projetar as ativações das características de volta para o espaço de pixels de entrada.

Rede Deconvolucional

  • O que é? Uma deconvnet é um tipo de rede neural usada para mapear as ativações internas de uma CNN de volta para o espaço da imagem original.

  • Como funciona? Ela inverte as operações da CNN, como convolução e pooling, para reconstruir quais padrões (pixels ou regiões) na imagem de entrada ativaram um determinado mapa de características em uma camada específica.

  • Por que é útil? Essa projeção ajuda a identificar quais partes da imagem a rede está realmente “olhando” para aprender padrões ou tomar decisões.

Análise de Sensibilidade por Oclusão

  • O que é? Uma técnica que consiste em ocultar (ou “ocluir”) partes da imagem de entrada, uma de cada vez, e observar como isso afeta a saída do modelo.

  • Como funciona? Por exemplo, cobrindo um pedaço da imagem com um bloco preto ou desfocado e medindo a mudança na confiança ou no resultado do classificador.

  • Por que é útil? Revela quais regiões da imagem são mais relevantes para o modelo ao determinar sua classe ou rótulo. Isso é importante para interpretar e validar a lógica do modelo.

Deconvolutional Network (deconvnet)

  • Pooling (na ConvNet): Durante o Max Pooling, cada região da entrada (ex.: 2x2) é reduzida ao valor máximo, registrando a localização desse valor (usando “switches”). Isso reduz a dimensionalidade da entrada, gerando Pooled Maps.

  • Unpooling (na DeconvNet): O processo de unpooling utiliza os “switches” para reposicionar os valores máximos nas mesmas localizações das regiões originais. Zeros são inseridos nas demais posições, resultando nos Unpooled Maps.

Deconvolutional Network (deconvnet)

  • Convolução (ConvNet): Aplicação de filtros para gerar mapas de características (feature maps), seguida pela ativação (como ReLU), resultando em Rectified Feature Maps.

  • Deconvolução (DeconvNet): A operação inversa aplica filtros para reconstruir os mapas de características iniciais ou aproximar a entrada original. Isso é realizado por convolução transposta (uma operação que aumenta a resolução dos mapas).

Deconvolutional Network (deconvnet)

  • Ativação (ReLU) Em ambas as camadas, a função ReLU desempenha um papel essencial:
  • Na ConvNet: Introduz não-linearidade, ajudando a detectar padrões específicos.
  • Na DeconvNet: Reconstrói as ativações originais aplicando novamente a ReLU.

Deconvolutional Network (deconvnet)

A camada de deconvolução trabalha em conjunto com a convolucional para reconstruir características a partir de mapas reduzidos. Isso é alcançado por meio de operações inversas, como unpooling e convolução transposta, utilizando informações armazenadas durante o pooling. A técnica é amplamente usada em visualizações, segmentação e aplicações onde reconstruções detalhadas são críticas.

Arquitetura

Entrada: Imagem 224 × 224. Camadas convolucionais (1 a 5): Extraem características progressivamente mais complexas. Dimensões espaciais vão reduzindo devido ao stride e max pooling. Camadas totalmente conectadas (6 e 7): Combinam as características em representações de alta dimensão. Camada softmax (8ª camada): Classifica a imagem em uma das C classes.

Treinamento

  • Arquitetura semelhante à usada por Krizhevsky et al. para classificação no ImageNet;

  • Substituição das conexões esparsas nas camadas 3, 4 e 5 por conexões densas (por ser dividido em 2 GPUs);

  • Foram feitos ajustes nas camadas 1 e 2 com base nas inspeções das visualizações.

    1. Tamanhos e passos menores tornam os filtros mais sensíveis a detalhes finos e evitam características redundantes.; b) Filtragem eficiente garante que todas as partes da rede contribuam para o aprendizado. c) Observando as características aprendidas, é possível ajustar hiperparâmetros e melhorar a qualidade do modelo.

Treinamento

  • Dataset: ImageNet 2012 (1,3 milhão de imagens, espalhadas por 1000 classes diferentes).

  • Técnica para para aumentar o tamanho do conjunto de treinamento.

  • Pré-processamento:
  • Cada imagem RGB foi redimensionada para que a menor dimensão fosse 256 - pixels, com um recorte central de 256x256 pixels.

  • A média por pixel (calculada em todas as imagens) foi subtraída. Foram usados 10 sub-crops diferentes de 224x224 pixels (cantos e centro, com e sem flips horizontais).

Treinamento

  • Utilizou-se gradiente descendente estocástico com mini-batch de tamanho 128;
  • Começou com uma taxa de aprendizado de 0,01, ajustada manualmente quando o erro de validação se estabilizou;
  • Dropout aplicado nas camadas totalmente conectadas (6 e 7) com uma taxa de 0,5. (prevenir overfitting);
  • Pesos inicializados para 0,01 e biases para 0;
  • Foi utilizado um termo de momento de 0,9;
  • Durante o treinamento, os filtros nas camadas convolucionais cujos valores RMS excediam um raio fixo de 0,1 foram renormalizados para esse raio, especialmente na primeira camada;
  • Duração do Treinamento: O treinamento foi interrompido após 70 épocas; O processo levou cerca de 12 dias usando uma única GPU GTX580.

Visualização

  • Para cada mapa de recursos, as 9 principais ativações são projetadas no espaço de pixels;
  • Camada 2: Responde a cantos e outras conjunções de borda/cor.
  • Camada 3: Captura texturas semelhantes (padrões de malha, texto).
  • Camada 4: Mostra variação significativa e é mais específica da classe (rostos de cães, patas de pássaros).
  • Camada 5: Exibe objetos inteiros com variação de pose (teclados, cães).
  • Convenet captura informações em níveis hierárquicos, partindo de características simples até representações complexas e específicas.

Visualização

Ao visualizar a primeira e a segunda camadas da arquitetura de Krizhevsky et al. (Fig. 5 (a) e (c)), vários problemas são aparentes. Os filtros da primeira camada são uma mistura de informações de frequência extremamente alta e baixa, com pouca cobertura das frequências médias. Além disso, a visualização da 2ª camada mostra artefatos de aliasing causados pelo grande passo 4 usado nas convoluções da 1ª camada.

Visualização

Para remediar esses problemas Reduziram o tamanho do filtro da 1ª camada de 11x11 para 7x7. Alteraram o passo da convolução de 4 para 2.

Essa nova arquitetura retém muito mais informações nos recursos da 1ª e 2ª camadas, conforme mostrado na Fig. 5 (b) e (d). Mais importante, também melhora o desempenho da classificação, conforme mostrado na Seção 5.1.

Visualização

Experimento visa determinar se o modelo se baseia na localização do objeto ou no contexto. Porções da imagem são ocluídas com um quadro cinza e a saída do classificador,os mapas de recursos e as visualizações são monitoradas.

Probabilidade da classe correta cai significativamente quando o objeto é ocluído, indicando que o modelo localiza objetos. A queda na atividade do mapa de recursos quando a região ocluída corresponde à estrutura visualizada confirma que a visualização representa a estrutura da imagem que estimula o mapa.

Embora treinado para classificação, é altamente sensível à estrutura local na imagem e não está apenas usando um contexto de cena amplo.

Experimentos

A replicação da arquitetura de Krizhevsky et al. resulta em uma taxa de erro próxima ao valor relatado (0,1% de diferença). O modelo com as mudanças arquiteturais supera significativamente a arquitetura original, com uma redução de 1,7% no erro de teste top-5. A combinação de múltiplos modelos resulta em um erro de teste de 14,8%, aproximando-se de técnicas de aumento de dados de Howard.

Experimentos

A remoção das camadas totalmente conectadas (6, 7) aumenta ligeiramente o erro, apesar de conterem a maioria dos parâmetros do modelo. Remover duas camadas convolucionais intermediárias causa um impacto relativamente pequeno. Remover as camadas convolucionais intermediárias e as totalmente conectadas resulta em um modelo de 4 camadas com desempenho drasticamente pior, indicando a importância da profundidade do modelo. Ajustar o tamanho das camadas totalmente conectadas no modelo da Figura 3 tem pouco efeito, enquanto aumentar o tamanho das camadas convolucionais intermediárias melhora o desempenho. Aumentar os dois resulta em overfitting.

Generalização de Características

  • A capacidade de generalizar para outros conjuntos de dados é avaliada em Caltech-101, Caltech-256 e PASCAL VOC 2012.

  • As camadas 1-7 do modelo treinado no ImageNet são mantidas fixas, e um novo classificador softmax é treinado com as imagens de treinamento do novo conjunto de dados.

  • A representação de recursos do modelo é comparada com recursos criados manualmente por outros métodos, ambos treinados apenas com os dados de treinamento Caltech/PASCAL.

Generalização de Características

  • Caltech-101: O modelo pré-treinado no ImageNet supera o melhor resultado relatado por Bo et al. por 2,2% com 30 imagens por classe. O modelo treinado do zero tem um desempenho ruim (46,5%), mostrando a dificuldade de treinar uma ConvNet grande em um conjunto de dados pequeno.

  • Caltech-256:O modelo pré-treinado no ImageNet supera significativamente os resultados de Bo et al., alcançando 74,2% de precisão com 60 imagens de treinamento por classe contra 55,2% do método anterior. O modelo treinado do zero também apresenta desempenho ruim. No regime de “aprendizagem one-shot”, o modelo pré-treinado supera o método líder usando apenas 6 imagens de treinamento Caltech-256 por classe, em contraste com as 60 imagens usadas pelo outro método.

  • PASCAL 2012: Um softmax de 20 vias é treinado com as imagens de treinamento e validação padrão do PASCAL, usando o modelo pré-treinado no ImageNet. O modelo apresenta desempenho 3,2% inferior ao melhor resultado da competição, possivelmente devido à diferença na natureza das imagens entre PASCAL e ImageNet. Apesar da diferença, o modelo supera os métodos líderes em 5 classes, com margens significativas em alguns casos.

Conclusões

  • As visualizações propostas pelo estudo revela que as características estão longe de padrões aleatórios e interpretáveis. Em vez disso, eles mostram muitas propriedades intuitivamente desejáveis, como composicionalidade, aumento da invariância e discriminação de classe à medida que subimos nas camadas;

  • A visualização também se mostra útil para identificar problemas no modelo e melhorar o desempenho, como demonstrado pelas modificações na arquitetura de Krizhevsky et al;

  • Os experimentos de oclusão comprovam a sensibilidade do modelo à estrutura local, mesmo sendo treinado para classificação;

  • A profundidade da rede é crucial para o desempenho do modelo, mais importante do que qualquer seção individual;

Conclusões

  • O modelo treinado no ImageNet generaliza bem para outros conjuntos de dados, com resultados superiores aos métodos de última geração em Caltech-101 e Caltech-256;

  • A generalização para PASCAL é menor, possivelmente devido a vieses do conjunto de dados, mas ainda dentro de 3,2% do melhor resultado relatado.

  • Futuras pesquisas: Explorar diferentes funções de perda para detecção de objetos, permitindo múltiplos objetos por imagem.

Muito Obrigado

Aprendizado Profundo - Prof. Pedro - PPGI