É verdade que é difícil entender o que uma rede neural está aprendendo, mas houve muito trabalho nessa frente. Definitivamente, podemos ter uma idéia do que nossa rede está procurando.
Vamos considerar o caso de uma rede neural convolucional para imagens. Nós temos a interpretação para a nossa primeira camada de que estamos deslizando os filtros sobre a imagem, portanto nossa primeira camada oculta corresponde ao acordo entre pequenos pedaços da imagem e nossos vários filtros. Podemos visualizar esses filtros para ver qual é a nossa primeira camada de representação:K
Esta imagem é da primeira camada de filtros de um AlexNet e foi tirada deste maravilhoso tutorial: http://cs231n.github.io/understanding-cnn/ . Isso nos permite interpretar a primeira camada oculta como aprendendo a representar a imagem, consistindo em pixels brutos, como um tensor em que cada coordenada é a concordância de um filtro com uma pequena região da imagem. A próxima camada está trabalhando com essas ativações de filtro.
⎡⎣⎢0101−41010⎤⎦⎥.
0
Este artigo de Erhan et al (2009) concorda com isso: eles dizem que as visualizações da primeira camada oculta são comuns (e isso ocorreu em 2009), mas a visualização das camadas mais profundas é a parte mais difícil. Desse trabalho:
A principal descoberta experimental desta investigação é muito surpreendente: a resposta de uma unidade interna à entrada de imagens, como uma função no espaço da imagem, parece unimodal, ou pelo menos que o máximo seja encontrado de maneira confiável e consistente para todas as inicializações aleatórias testadas . Isso é interessante porque encontrar esse modo dominante é relativamente fácil e exibi-lo fornece uma boa caracterização do que a unidade faz.
Chris Olah et al ( https://distill.pub/2017/feature-visualization/ ) baseiam-se nisso e discutem como, em geral, você pode (1) gerar imagens que levam a grandes ativações para ter uma ideia do que a rede está procurando; ou (2) capture imagens de entrada reais e veja como diferentes partes da imagem ativam a rede. Esse post se concentra em (1).
Na imagem abaixo, extraída do artigo vinculado de Olah et al., Os autores discutem os diferentes aspectos da rede que você pode inspecionar. A imagem mais à esquerda mostra o resultado da otimização da ativação de um neurônio específico sobre o espaço da imagem de entrada e assim por diante.
Eu recomendo a leitura desse artigo na íntegra, se você quiser uma compreensão mais profunda disso e, ao ler suas referências, deverá ter uma ótima compreensão do que foi feito com isso.
Agora, é claro, tudo isso era apenas para imagens em que nós, como humanos, podemos entender as entradas. Se você estiver trabalhando com algo mais difícil de interpretar, como apenas um grande vetor de números, talvez não seja possível fazer visualizações tão legais, mas, em princípio, você ainda pode considerar essas técnicas para avaliar os vários neurônios, camadas e etc. .