Quatro experiências em manuscrito com uma rede neural

– https://distill.pub/2016/handwriting/

Vamos começar com a geração de novos cursos com base em sua entrada de texto manuscrito
SHAN CARTER Google Brain
DAVID HA Google Brain
IAN JOHNSON Google Cloud
CHRIS OLAH Google Brain
6 de dezembro de 2016
Citação: Carter, et al., 2016

As redes neurais são uma abordagem extremamente êxitosa para a aprendizagem de máquinas, mas é complicado entender por que se comportam da maneira que elas fazem. Isso provocou muito interesse e esforço em torno de tentar compreendê-los e visualizá-los, o que pensamos que até agora é apenas arranhar a superfície do que é possível.

Neste artigo, tentaremos avançar nessa direção, usando um modelo generativo de escrita manuscrita2 e visualizando-a de várias maneiras. O modelo é bastante simples (para funcionar bem no navegador), de modo que a saída gerada produz principalmente letras e palavras “gibbersih” (embora, gibberish se parece com a caligrafia real), mas ainda é útil para os nossos fins de explorar técnicas de visualização.
No final, não temos uma resposta ou visualização final, mas temos algumas idéias interessantes para compartilhar. Em última análise, esperamos que eles se tornem mais fácil adivinhar algum significado dos internos desse modelo.

Olhando para a Saída do Modelo
O nosso primeiro experimento é o mais óbvio: quando queremos ver quão bem alguém aprendeu uma tarefa, geralmente pedimos que eles a demonstrem. Então, vamos pedir ao nosso modelo para escrever algo para nós e ver o quão bem ele faz.

A maioria das marcas são gibberish, mas muitas delas são surpreendentemente convincentes. Algumas palavras reais (ou real-ish) até começam a aparecer. Uma coisa surpreendente que você notará é que o estilo geral de escrita manual é mais ou menos consistente dentro de uma amostra. Isso ocorre porque o tipo de arquitetura usada para este modelo (LSTM) possui um mecanismo para lembrar os traçados anteriores. Por conseguinte, é capaz de lembrar as coisas como a forma como a caligrafia ou a letra que precedeu a atual é. (Para mais informações sobre os LSTMs e como eles podem se lembrar, Chris Olah tem uma boa guia [3].)
Mesmo com essa memória, a técnica para gerar amostras de redes neurais é probabilística, o que significa que cada uma dessas amostras é um espaço de possibilidade muito maior. Vê-los um de cada vez não é satisfatório – como podemos inferir muito de uma ou duas amostras quando há possibilidades quase infinitas? Se algo parece errado, como podemos saber se era porque havia algo fundamentalmente errado com o nosso modelo ou se era apenas má sorte?

Em cada iteração, o nosso modelo poderia ter produzido muitos caminhos. Em vez de escolher um e tirar o resto, vamos desenhar, digamos, 50 deles. Os traços verdes abaixo são os lugares onde o modelo teria virado para a direita a partir do curso escolhido, a laranja é onde ele teria virado para a esquerda.
Com esta técnica, lançamos uma luz em um espaço de possibilidade mais amplo. Você pode ver algumas áreas onde houve consenso geral sobre o que fazer a seguir. Outras áreas tiveram mais o sentimento de que “qualquer coisa pode acontecer próximo”. Outros parecem mostrar um possível garfo na estrada. Podemos desenhar uma “a” ou “g”. Alguns passos depois, está claro que o modelo convergeu em um “g” cursivo.

Além de visualizar amostras geradas pelo modelo, esta técnica também pode ser aplicada a amostras geradas por humanos. Abaixo, podemos ver o que o modelo teria feito em cada ponto se tivesse assumido a pessoa.
É óbvio que a partir desses experimentos este modelo aprendeu bastante sobre a caligrafia humana. Que tipo de questão, podemos extrair esse conhecimento de forma significativa, ao invés de simplesmente usá-la cegamente para imitar a caligrafia?

Examinando o Interior do Modelo
O nosso modelo tem 500 células que atuam como uma espécie de memória que ele usará como parte da sua entrada ao decidir o que gerar. Se pudermos ver o que essas células estão a fazer à medida que o modelo progride, poderemos obter alguma compreensão intuitiva sobre o que o modelo está a fazer.
Começamos por mostrar a ativação das células ao longo do tempo. Cada coluna no mapa de calor abaixo representa um segmento de linha da caligrafia. Cada linha representa uma célula do modelo e está colorida pelas suas ativações naquela parte do traço. Ao inspecionar o diagrama, você poderá ver alguns padrões da forma como determinadas células se ativam para certos tipos de traçados. Você pode mudar qual célula se usa para colorir os traçados clicando no diagrama.


Você pode ter escolhido uma ou duas células com padrões interessantes, mas temos razões para acreditar que as células funcionam em conjunto, de modo que a atividade de uma célula individual pode não ser tão interessante como um grupo de células.
Existe uma maneira de ordenar as células para tornar esta estrutura mais clara? Descobrimos que a aplicação de t-SNE [4] unidimensional para as ativações das células ao longo do tempo pode organizá-las, trazendo células com comportamento semelhante próximas. Isso torna o diagrama mais fácil de ler. Usamos alguns pequenos truques para alcançar os melhores resultados.3


Nesta versão, podemos encontrar alguns comportamentos claros. Por exemplo, as células 11-70 na parte superior parecem sensíveis a direções e curvaturas ligeiramente diferentes do trajeto da caneta – veja em particular as células 25 e 55. Por outro lado, na parte inferior, as células abaixo de 427 parecem focadas em elevadores de canetas; por exemplo, a célula 494 parece prever se a caneta está prestes a ser levantada. No meio, vemos uma variedade de células, incluindo algumas posições absolutas de rastreamento. A célula 136 e os seus vizinhos parecem preocupados com a posição horizontal, enquanto as células em torno de 236 parecem preocupadas com a posição vertical. A célula 242 parece acompanhar a posição dentro de uma palavra.
Outra maneira de explorar as ativações é dar uma amostra e visualizar de forma interativa as ativações. Abaixo você pode escrever e ver as ativações de todas as células em tempo real.
Conclusão
A reputação da caixa preta dos modelos de aprendizagem de máquinas é bem merecida, mas acreditamos que parte dessa reputação nasceu do contexto de programação em que foram bloqueados. A experiência de ter um modelo facilmente inspecionável disponível no mesmo contexto de programação que o ambiente de visualização interativa (aqui, javascript) provou ser muito produtivo para a prototipagem e a exploração de novas ideias para esta publicação.
Como somos capazes de movê-los cada vez mais no mesmo contexto de programação que o trabalho da interface do usuário faz, acreditamos que veremos prosperar os modos mais ricos de interações humano-ai. Isso poderia ter um impacto marcante na depuração e na construção de modelos, com certeza, mas também em como os modelos são usados. A pesquisa de aprendizagem de máquinas geralmente busca imitar e substituir humanos e, cada vez mais, é capaz de fazê-lo. O que parece menos explorado é o uso da aprendizagem de máquinas para aumentar os seres humanos. Esse tipo de interação humana-máquina complicada é melhor explorada quando as capacidades completas do modelo estão disponíveis no contexto da interface do usuário.

Reconhecimentos
Agradecemos os comentários de Fernanda Viegas, Martin Wattenberg e Daniel Smilkov.
Este trabalho foi possível graças ao suporte da equipe do Google Brain.
Contribuições do autor
Shan Carter escreveu o artigo e criou as experiências interativas na primeira seção. David Ha criou o modelo de manuscrito e o levou para o Javascript. Ian Johnson criou os diagramas finais explorando as ativações. Chris Olah forneceu orientação e ideias essenciais para os diagramas e editou o artigo.
Notas de rodapé
1. O modelo possui um parâmetro que determina a amplitude da amostra da distribuição subjacente. É marcado aqui como variação, mas é mais comumente referido como temperatura. A temperatura é mais comumente discutida nas distribuições de Boltzmann, mas pode ser generalizada para todas as distribuições de probabilidade. Nesta forma mais geral, mudar a temperatura por um fator de T corresponde a elevar todas as probabilidades ao poder de 1/T e a normalização.
2. O modelo usado neste artigo é uma versão do modelo descrito na Seção 4.2 de Geração de Seqüências com Rede Neural Recorrente por Alex Graves [1]. É um pequeno LSTM, com 500 unidades escondidas, treinado para executar a tarefa de geração de caligrafia incondicional. Para uma descrição detalhada do modelo e do procedimento de treinamento, consulte esta publicação do blog [2], além do documento Graves. Depois de treinar o LSTM, quantificamos os pesos usando números inteiros de 8 bits e exportamos os pesos para um pequeno arquivo formatado JSON-Base64.
3. Usamos dois truques diferentes para que a organização T-SNE dos neurônios funcione melhor. Primeiro, se um estado celular é principalmente negativo, podemos calibrá-lo, lançando o sinal. (A partir da perspectiva do LSTM, isso é completamente equivalente, desde que damos um sinal de alguns pesos. O sinal de um estado celular é arbitrário.) Em segundo lugar, tentamos usar métricas diferentes em pontos no nosso conjunto de dados para t-SNE, encorajando-o a colocar pontos que pensamos que são semelhantes entre si. Obtivemos bons resultados baseando-nos na nossa métrica em dados desfocados (de modo que as células se deslocam para a frente ou para trás por um ainda estão próximas) e uma métrica Sobolev desfocada para incentivar mudanças bruscas na linha. Conseguimos resultados ligeiramente melhores, apresentados no artigo, ainda criando uma métrica baseada em percentuais de ativação celular em um bairro. Veja `bin/sort` no repositório para obter detalhes.
Referências
1. Gerando sequências com redes neuronais recorrentes [PDF] Graves, A., 2013. arXiv preprint arXiv: 1308.0850.
2. Demonstração de geração de manuscrito em TensorFlow [link] Ha, D., 2016.
3. Compreendendo LSTM Networks [link] Olah, C., 2015.
4. Visualizando dados usando t-SNE [PDF] Maaten, L.v.d. e Hinton, G., 2008. Journal of Machine Learning Research, Vol. 9 (Nov), pp. 2579-2605.
Atualizações e correções
Veja todas as alterações neste artigo desde que foi publicado pela primeira vez. Se você vir um erro ou quiser sugerir uma alteração, crie um problema no GitHub.
Citações e Reutilização
Os diagramas e textos são licenciados sob Creative Commons Attribution CC-BY 2.0, a menos que seja indicado de outra forma, com a fonte disponível no GitHub. As figuras que foram reutilizadas de outras fontes não se enquadram nesta licença e podem ser reconhecidas por uma nota na legenda: “Figura a partir de…”.

Sobre o autor

Sara Filipa

Comentar

Posts recentes

Comentários

Arquivos

Categorias

Meta