Visualizando Representações: Aprendizagem Profunda e Seres Humanos

– http://colah.github.io/posts/2015-01-Visualizing-Representations/
Postado em 16 de janeiro de 2015
visualização de dados, aprendizado de máquinas, incorporação de palavras, redes neurais, aprendizado profundo, interface do usuário, wikipedia

Em uma publicação anterior, exploramos técnicas para visualizar dados de alta dimensão. Tentando visualizar dados dimensionais elevados é, por si só, muito interessante, mas o meu objetivo real é outra coisa. Eu acho que essas técnicas formam um conjunto de blocos de construção básicos para tentar entender a aprendizagem da máquina e, especificamente, para entender as operações internas das redes neurais profundas.
As redes neurais profundas são uma abordagem para a aprendizagem de máquinas que revolucionou a visão computacional e o reconhecimento de fala nos últimos anos, trazendo os resultados anteriores da arte da água. Eles também trouxeram resultados promissores para muitas outras áreas, incluindo a compreensão do idioma e a tradução automática. Apesar disso, continua a ser desafiador entender o que, exatamente, essas redes estão a fazer.
Penso que a redução da dimensionalidade, aplicada de forma pensativa, pode nos dar muita força na compreensão das redes neurais.
Conhecer as redes neurais é apenas coçar a superfície, no entanto, porque entender a rede está fundamentalmente ligada à compreensão dos dados em que opera. A combinação de redes neurais e redução de dimensionalidade é uma ferramenta muito interessante para visualizar dados de alta dimensão – uma ferramenta muito mais poderosa do que a redução de dimensionalidade por conta própria.
Ao penetrar nisso, observaremos o que acredito ser uma conexão importante entre as redes neurais, a visualização e a interface do usuário.

Espaço de transformação de redes neuronais
Nem todas as redes neurais são difíceis de entender. Na verdade, as redes neurais de baixa dimensão – as redes que têm apenas dois ou três neurônios em cada camada – são bastante fáceis de entender.
Considere o conjunto de dados a seguir, que consiste em duas curvas no plano. Dado um ponto em uma das curvas, nossa rede deve prever qual curva ela veio.

Uma rede com apenas uma camada de entrada e uma camada de saída tenta dividir as duas classes com uma linha reta.

No caso deste conjunto de dados, não é possível classificá-lo perfeitamente dividindo-o com uma linha reta. E assim, uma rede com apenas uma camada de entrada e uma camada de saída não pode classificá-la perfeitamente.
Mas, na prática, as redes neurais possuem camadas adicionais no meio, chamadas camadas “ocultas”. Essas camadas deformam e remodelam os dados para facilitar a classificação.

Chamamos as versões dos dados correspondentes a representações de camadas diferentes.1 A representação da camada de entrada é o dado bruto. A representação da camada do meio “oculto” é uma versão de dados ininterruptos, mais fáceis de classificar.
As redes neurais de baixa dimensão são realmente fáceis de fundamentar, porque podemos apenas olhar para as suas representações e sobre como uma representação se transforma em outra. Se tivermos uma pergunta sobre o que está a fazer, podemos apenas olhar. (Há um pouco que podemos aprender com as redes neurais de baixa dimensão, tal como exploradas nas redes Neurais, Manifolds e Topologia posteriores).
Infelizmente, as redes neurais geralmente não são de baixa dimensão. A força das redes neurais está em classificar dados de alta dimensão, como dados de visão por computador, que muitas vezes têm dezenas ou centenas de milhares de dimensões. As representações ocultas que aprendemos também são de grande dimensionalidade.
Por exemplo, suponha que estamos a tentar classificar o MNIST. A representação de entrada, MNIST, é uma coleção de vetores 784-dimensional! E, mesmo para uma rede muito simples, teremos uma representação oculta de alta dimensão. Para ser concreto, vamos usar uma camada oculta com uma centena de neurônios sigmóides.
Embora não possamos visualizar diretamente as representações de alta dimensão, podemos visualizá-las usando a redução de dimensionalidade. Abaixo, vemos os gráficos vizinhos mais próximos do MNIST na sua forma bruta e em uma representação oculta de uma rede MNIST treinada.

Na camada de entrada, as classes estão bastante emaranhadas. Mas, na próxima camada, porque o modelo foi treinado para distinguir as classes de dígitos, a camada oculta aprendeu a transformar os dados em uma nova representação na qual as classes de dígitos estão muito mais separadas.
Essa abordagem, a visualização de representações de alta dimensão usando a redução da dimensionalidade, é uma técnica extremamente abrangente para inspecionar modelos em aprendizagem profunda.
Além de nos ajudar a entender o que uma rede neural está a fazer, inspecionar representações nos permite entender os dados em si. Mesmo com técnicas sofisticadas de redução de dimensionalidade, muitos dados do mundo real são incompreensíveis – a sua estrutura é muito complicada e caótica. Mas as representações de nível superior tendem a ser mais simples e mais tranqüilas, e muito mais fácil para os seres humanos entenderem.
(Para ser claro, usar a redução da dimensionalidade nas representações não é novidade. Na verdade, elas se tornaram bastante comuns. Um exemplo muito bonito é a visualização de uma representação de ImageNet de alto nível. A minha contribuição aqui não é a idéia básica , mas levando muito a sério e vendo onde ele vai.)
Exemplo 1: Incorporações de palavras
As incorporações de palavras são um tipo de representação notável. Eles se formam quando tentamos resolver tarefas de linguagem com redes neurais.
Para essas tarefas, a entrada para a rede geralmente é uma palavra, ou várias palavras. Cada palavra pode ser pensada como um vetor unitário em um espaço ridiculamente de alta dimensão, com cada dimensão correspondente a uma palavra no vocabulário. A rede deforma-se e comprime esse espaço, mapeando palavras em algumas centenas de dimensões. Isso chama-se incorporação de palavras.
Em uma incorporação de palavras, cada palavra é um vetor de duas centenas de dimensões. Esses vetores têm algumas propriedades realmente agradáveis. A propriedade que vamos visualizar aqui é que as palavras com significados semelhantes estão próximas.
(As incorporaçõoes têm muitas outras propriedades interessantes, além da proximidade. Por exemplo, as direções no espaço de incorporação parecem ter um significado semântico. Além disso, os vetores de diferenças entre palavras parecem codificar analogias. Por exemplo, a diferença entre mulher e homem é aproximadamente igual à diferença entre a rainha e o rei: v(”mulher”) – v(”homem”) ≃ v(“rainha”) – v(”rei”). Para mais informações sobre as incorporações de palavras, veja a minha postagem Aprendizagem Profunda, PNL e Representações.)
Para visualizar a incorporação de palavra em duas dimensões, precisamos escolher uma técnica de redução de dimensionalidade para usar. O t-SNE otimiza para manter pontos próximos aos seus vizinhos, por isso é a ferramenta natural se queremos visualizar quais palavras estão próximas da nossa inclusão de palavras.
Examinando o enredo t-SNE, vemos que as palavras vizinhas tendem a ser relacionadas. Mas há tantas palavras! Para obter uma visão de nível superior, vamos destacar alguns tipos de palavras.2 Podemos ver áreas correspondentes a cidades, alimentos, partes do corpo, sentimentos, parentes e diferentes verbos de “movimento”.

Isso é apenas coçar a superfície. Na visualização interativa a seguir, você pode escolher muitas categorias diferentes para colorir as palavras. Você também pode inspecionar os pontos individualmente, passando sobre eles, revelando a palavra correspondente.

Uma incorporação de palavras visualizada com t-SNE
(Passe o cursor sobre um ponto para ver a palavra.)
(Veja isso com 50.000 pontos!)

Olhando para a visualização acima, podemos ver muitos conjuntos, amplos conjuntos como regiões (region.n.03) e pessoas (pessoa.n.01), para pequenos como partes do corpo (body_part.n.01), unidades de distância (linear_unit.n.01) e alimentos (food.n.01). A rede aprendeu com sucesso a colocar as palavras similares em conjunto.
Exemplo 2: Vetores de parágrafo da Wikipedia
Os vetores de parágrafo, introduzidos por Le&Mikolov (2014), são vetores que representam trocas de texto. Os vetores de parágrafos vêm em algumas variações, mas o mais simples, que estamos a usar aqui, é basicamente algumas características realmente agradáveis em cima de uma representação de saco de palavras.
Com inserções de palavras, aprendemos vetores para resolver uma tarefa de linguagem envolvendo a palavra. Com vetores de parágrafo, aprendemos vetores para prever que palavras estão em um parágrafo.
Concretamente, a rede neural aprende uma aproximação de baixa dimensão das estatísticas de palavras para diferentes parágrafos. Na representação oculta desta rede neural, obtemos vetores que representam cada parágrafo. Esses vetores possuem propriedades agradáveis, em particular que parágrafos similares estão próximos.
Agora, o Google tem algumas pessoas bastante impressionantes. Andrew Dai, Quoc Le e Greg Corrado decidiram criar vetores de parágrafo para alguns conjuntos de dados muito interessantes. Um deles era a Wikipédia, criando um vetor para cada artigo da Wikipedia em inglês. Eu tive a sorte de estar lá na época e fazer algumas visualizações impecáveis. (Veja Dai, et al. (2014).
Uma vez que existe uma grande quantidade de artigos da Wikipédia, visualizamos um subconjunto aleatório. Mais uma vez, usamos t-SNE, porque queremos entender o que está próximo.
O resultado é que obtemos uma visualização da totalidade da Wikipedia. Um mapa da Wikipédia. Uma grande fração dos artigos da Wikipedia se enquadra em alguns tópicos amplos: esportes, música (músicas e álbuns), filmes, espécies e ciência. Eu não teria adivinhado isso! Por que, por exemplo, os desportos são tão grandes? Bem, parece que muitos atletas individuais, equipes, estádios, épocas, torneios e jogos acabam com os seus próprios artigos – que somam muitos artigos! Razões semelhantes levam a grandes grupos de música, filmes e espécies.

Este mapa da Wikipedia apresenta estrutura importante em escalas múltiplas. Enquanto, há um grande conjunto para os esportes, há subconjuntos para esportes individuais como o tênis. Os filmes possuem um conjunto separado para filmes não-ocidentais, como o Bollywood. Mesmo os temas muito finos, como as proteínas humanas, estão separados!
Novamente, isso é apenas arranhar a superfície. Na visualização interativa a seguir, você pode explorar por si mesmo. Você pode colorir pontos pelas suas categorias de Wikipédia, ou inspecionar pontos individuais ao pairar para ver o título do artigo. Clicando em um ponto, abrirá o artigo.

Wikipedia Vetores de parágrafo visualizados com t-SNE
(Passe o cursor sobre um ponto para ver o título. Clique para abrir o artigo.)
(Veja isso com 50.000 pontos!)

(Nota: as categorias de Wikipedia podem ser bastante intuitivas e muito mais amplas do que o esperado. Por exemplo, todo ser humano está incluído na categoria de ética aplicada porque os humanos estão em pessoas que são pessoais que estão em questões de ética, que estão em ética aplicada).
Exemplo 3: Modelo de Tradução
Os dois exemplos anteriores foram, embora divertidos, um pouco estranhos. Ambos foram produzidos por redes, fazendo simples tarefas inventadas que realmente não nos interessam, com o objetivo de criar representações agradáveis. As representações que produzem são realmente boas e úteis… Mas eles não fazem muito para validar a nossa abordagem para a compreensão das redes neurais.
Vejamos uma rede de ponta a fazer uma tarefa real: traduzindo inglês para francês.
Sutskever et al. (2014) traduz frases em inglês para frases francesas usando as duas redes neurais recorrentes. O primeiro consome a frase inglesa, palavra por palavra, para produzir uma representação e a segunda leva a representação da oração em inglês e, sequencialmente, manda palavras traduzidas. Os dois treinam em conjunto e usam uma arquitetura de Memória de longo-curto prazo3 de várias camadas.

Podemos observar a representação logo após o símbolo “fim da frase” (EOS) em inglês para obter uma representação da frase em inglês. Esta representação é realmente uma coisa notável. De alguma forma, de uma frase em inglês, formamos um vetor que codifica a informação que precisamos para criar uma versão francesa dessa frase.
Vamos dar a esta representação um olhar mais atento com t-SNE.

Representação de tradução de frases visualizadas com t-SNE
(Passe o cursor sobre um ponto para ver a frase).

Esta visualização revelou algo que foi bastante surpreendente para nós: a representação é dominada pela primeira palavra.
Se você olhar com cuidado, há um pouco mais de estrutura do que apenas isso. Em alguns lugares, podemos ver subconjuntos correspondentes à segunda palavra (por exemplo, no grupo citações, vemos sub-agrupamentos para “Eu” e “Nós”). Em outros lugares, podemos ver as frases com as primeiras palavras similares juntas (por exemplo, “This” e “That”). Mas, em geral, a representação da frase é controlada pela primeira palavra.
Existem alguns motivos para o qual pode ser esse o caso. A primeira é que, no ponto em que pegamos essa representação, a rede da a primeira palavra traduzida, e a representação pode enfatizar fortemente a informação que precisa nesse instante. Também é possível que a primeira palavra seja muito mais difícil de traduzir que as outras palavras porque, para as outras palavras, está permitido saber qual era a palavra anterior na tradução e tipo de cadeia de Markov.
Ainda assim, embora haja motivos para isso, foi bastante surpreendente. Eu acho que deve haver muitos casos como este, onde uma visualização rápida revelaria uma visão surpreendente dos modelos com os quais trabalhamos. Mas, como a visualização é inconveniente, não acabamos vendo-os.
Além: Padrões para visualizar dados de alta dimensão
Existem muitas práticas recomendadas estabelecidas para visualizar os dados dimensionais baixos. Muitas delas são ensinadas na escola. “Rotule seus eixos.” “Coloque unidades nos eixos.” E assim por diante. Estas são excelentes práticas para visualizar e comunicar dados de baixa dimensão.
Infelizmente, eles não são tão úteis quando visualizamos os dados de alta dimensão. Rotular os eixos de um plano t-SNE? Os eixos realmente não têm qualquer significado, nem as unidades são muito significativas. A única coisa realmente significativa, em num plano t-SNE, é quais são os pontos próximos.
Há também alguns desafios incomuns ao fazer parcelas t-SNE. Considere a seguinte visualização t-SNE de incorporações de palavras. Olhe para o grupo de nomes masculinos no lado esquerdo…

Uma incorporação de palavras visualizada com t-SNE
(Esta visualização é deliberadamente terrível.)

… mas você não pode olhar para o grupo de nomes masculinos no lado esquerdo. (É frustrante não poder pairar, não é?) Enquanto os pontos estão exatamente nas mesmas posições que na nossa visualização anterior, sem a capacidade de ver que palavras correspondem aos pontos, esse enredo é essencialmente inútil. Na melhor das hipóteses, podemos olhar para ele e dizer que os dados provavelmente não são aleatórios.
O problema é que, em dimensões reduzidas de dimensões de dados de alta dimensão, a posição não explica os pontos de dados. Isso é verdade mesmo se você entender exatamente o que é o plano que você está a procura.
Bem, podemos consertar isso. Vamos adicionar novamente na dica de ferramenta. Agora, ao passar por cima dos pontos, você pode ver a palavra correspondente. Por que você não olha para o grupo de partes do corpo?

Uma incorporação de palavras visualizada com t-SNE
(Essa visualização é deliberadamente terrível, mas menor do que a anterior).

Você está perdoado se você não teve a paciência de olhar para várias centenas de pontos de dados para encontrar o grupo de partes do corpo. E, a menos que você se lembrasse de onde estaba antes, esse é o esforço que se esperaria que levaria.
A capacidade de inspecionar os pontos não é suficiente. Ao lidar com milhares de pontos, é preciso uma maneira de obter rapidamente uma visão de alto nível dos dados e, em seguida, explorar as partes que são interessantes.
Isso nos leva à minha teoria pessoal de visualizar dados dimensionais elevados (com base nos meus três meses inteiros de trabalho para visualizá-lo):
1. Deve haver uma maneira de interrogar pontos de dados individuais.
2. Deve haver uma maneira de obter uma visão de alto nível dos dados.
As visualizações interativas são uma maneira muito fácil de obter essas duas propriedades. Mas eles não são o único caminho. Há uma visualização muito bonita do MNIST no papel original t-SNE, Maaten & Hinton (2008), na página com 2596:

MNIST visualizado com t-SNE
(imagem parcial de Maaten & Hinton (2008))

Ao inserir diretamente a imagem de cada dígito MNIST na visualização, Maaten e Hinton tornaram muito fácil inspecionar os pontos individuais. Além disso, a partir da “textura” dos conjuntos, também pode reconhecer rapidamente a sua natureza.
Infelizmente, essa abordagem funciona apenas porque as imagens MNIST são pequenas e simples. No seu papel emocionante sobre as representações de frases, Cho et al. (2014) incluem algumas subsecções muito pequenas de uma visualização t-SNE de frases:

Frases visualizadas com t-SNE
(de Cho et al. (2014))

Infelizmente, incorporar as frases diretamente na visualização simplesmente não funciona. Eles são muitos e desajeitados. Na verdade, não vejo nenhuma boa maneira de visualizar esses dados sem usar mídia interativa.

Impressão digital geométrica
Agora que olhamos para um monte de representações emocionantes, voltemos para as nossas redes MNIST simples e examinemos as representações que eles formam. Usaremos ACP para a redução da dimensionalidade agora, uma vez que nos permitirá observar algumas propriedades geométricas interessantes dessas representações, e porque é menos estocástico do que os outros algoritmos de redução de dimensionalidade que discutimos.
A seguinte rede possui uma camada sigmoid de 5 unidades. Essa rede nunca seria usada na prática, mas é divertido de ver.

Então, a representação oculta da rede parece uma projeção de um cubo de alta dimensão. Por quê? Bem, as unidades sigmoides tendem a dar valores próximos de 0 ou 1, e menos freqüentemente, qualquer coisa no meio. Se você fizer isso em um monte de dimensões, você termina com a concentração nos cantos de um cubo de alta dimensão e, em menor grau, ao longo das suas bordas. A ACP então projeta isso em duas dimensões.
Esta estrutura tipo cubo é uma espécie de impressão digital geométrica de camadas sigmoides. Outras funções de ativação possuem uma impressão digital geométrica similar? Vejamos uma camada do ReLU.

Como os ReLU têm uma alta probabilidade de serem zero, muitos pontos se concentram na origem e ao longo dos eixos. Projetado em duas dimensões, parece um monte de “spots” que sai do original.
Essas propriedades geométricas são muito mais visíveis quando existem apenas alguns neurônios.

O espaço das representações
Toda vez que treinamos uma rede neural, recebemos novas representações. Isso é verdade mesmo se formamos a mesma rede várias vezes. O resultado é que é muito fácil terminar com muitas representações de um conjunto de dados.
Nós raramente olhamos para qualquer uma dessas representações, mas se quisermos, é muito fácil fazer visualizações de todas elas. Aqui há muitas pra ver.

As muitas representações de MNIST

Agora, enquanto podemos visualizar muitas representações como esta, não é muito útil. O que aprendemos com isso? Não muito. Temos muitas representações particulares, mas é difícil compará-las ou obter uma grande visão de imagem.
Vamos nos concentrar em comparar as representações por um momento. A coisa complicada sobre isso é que as redes neuronais fundamentalmente semelhantes podem ser muito diferentes de maneiras que não nos preocupam. Dois neurônios podem ser trocados. A representação pode ser girada ou invertida.

Duas representações muito semelhantes, com exceção de um flip
Queremos, de alguma forma, esquecer essas diferenças sem importância e focar-nos apenas nas diferenças importantes. Queremos uma forma canônica para representações, que codifica apenas diferenças significativas.
A distância parece fundamental, aqui. Todas essas diferenças sem importância são as isometrias – ou seja, as transformações como rotação ou troca de duas dimensões não alteram as distâncias entre os pontos. Por outro lado, a distância entre os pontos é realmente importante: as coisas próximas são uma forma de representação de dizer que elas são semelhantes, e as coisas distantes são uma representação de que elas são diferentes.
Felizmente, há uma maneira fácil de esquecer as isometrias. Para uma representação X, há uma função métrica associada, dX, que nos dá a distância entre pares de pontos dentro dessa representação. Para outra representação Y, dX = dY se e somente se X for isométrico para Y. As funções métricas codificam precisamente as informações que queremos!
Na verdade, não podemos trabalhar com o dX porque é realmente uma função em um espaço contínuo de muita alta dimensão.4 Precisamos discretizá-lo para que seja útil.

Uma coisa que podemos fazer com o DX é achatá-lo para obter um vetor que codifique as propriedades da representação X. Podemos fazer isso para muitas representações e obtemos uma coleção de vetores de alta dimensão.
A coisa natural a fazer, está clara, aplicar a redução de dimensionalidade, como t-SNE, às nossas representações. Geoff Hinton apelidou esse uso de t-SNE “meta-SNE”. Mas também pode-se usar outros tipos de redução da dimensionalidade.5 6
Na visualização a seguir, existem três caixas. A maior, à esquerda, visualiza o espaço das representações, com cada ponto correspondente a uma representação. Os pontos estão posicionados por redução de dimensionalidade das matrizes de distância achatadas, como acima. Uma maneira de pensar sobre isso que a distância entre representações na visualização representa o quanto eles discordam de quais pontos são semelhantes e quais pontos são diferentes.
Em seguida, a caixa do meio é uma visualização regular de uma representação do MNIST, como muitos que já vimos anteriormente. Ela exibe qual é a representação que você deslocou na caixa esquerda. Finalmente, a caixa da direita exibe dígitos MNIST específicos, dependendo do ponto em que você passa o rato sobre a caixa do meio.

O espaço de Respresentações MNIST
À esquerda: visualização de representações com meta-SNE, os pontos são representações. Médio: Visualização de uma representação particular, os pontos são pontos de dados MNIST. Direita: Imagem de um ponto de dados específico.

Esta visualização nos desloca de olhar as árvores para ver a floresta. Ele nos move de olhar para as representações, para olhar o espaço das representações. Esta um passo acima da escada da abstração.
Imagine treinar uma rede neural e observar as suas representações vagar por esse espaço. Você pode ver como as suas representações se comparam a outras representações “referenciais” de experiências passadas. Se a representação da primeira camada do seu modelo estiver no mesmo lugar, um modelo realmente bem sucedido foi durante o treinamento, isso é um bom sinal! Se estiver desviado para um conjunto, você conhece taxas de aprendizagem muito elevadas, você sabe que deve diminuí-lo. Isso pode dar-nos feedback qualitativo durante o treinamento da rede neural.
Também nos permite perguntar se dois modelos que conseguem resultados comparáveis estão a fazer coisas semelhantes internamente ou não.

Aprendizagem profunda para visualização
Todos os exemplos acima visualizam não apenas a rede neural, mas os dados em que opera. Isso ocorre porque a rede está inextricavelmente ligada aos dados em que opera.7
As visualizações são um pouco como olhar através de um telescópio. Assim como um telescópio transforma o céu em algo que podemos ver, a rede neural transforma os dados em uma forma mais acessível. Um aprende sobre o telescópio observando como ele magnifica o céu noturno, mas a coisa realmente notável é o que se aprende sobre as estrelas. Da mesma forma, visualizando as representações nos ensina sobre redes neurais, mas nos ensina tanto, talvez mais, sobre os dados em si.
(Se o telescópio está a fazer um bom trabalho, ele desaparece da consciência da pessoa que olha através dele. Mas se houver um arranhão em uma das lentes do telescópio, o risco é altamente visível. Se alguém tiver um exemplo de um telescópio melhor, as falhas no pior vão de repente se destacar. Da mesma forma, a maioria do que aprendemos sobre redes neurais a partir de representações está em um comportamento inesperado, ou comparando representações.)
A compreensão dos modelos e os dados que funcionam nesses dados está intimamente ligada. Na verdade, acho que entender o seu modelo implica a compreensão dos dados em que trabalha. 8
Embora a ideia de que devemos tentar visualizar as redes neurais existiu na nossa comunidade por um tempo, essa idéia inversa – que podemos usar redes neurais para a visualização – parece igualmente importante e é quase inteiramente inexplorada.
Vamos explorá-la.

Pensamentos Impensáveis, Dados Incompatíveis
Na sua conversa ‘Media for Thinking the Unthinkable’, Bret Victor diz uma citação realmente bonita de Richard Hamming:
“Assim como há odores que os cachorros podem cheirar e nós não podemos, assim como há sons que os cães podem ouvir e nós não podemos, também há longos comprimentos de luz que não podemos ver e sabores que não podemos provar.
Por que então, dado que o nosso cérebro com os fios como eles têm, a observação “Talvez haja pensamentos que não podemos pensar”, lhe surpreende?
A evolução, até agora, pode ter nos impedido de pensar em algumas direções; poderia haver pensamentos impensáveis.
– Richard Hamming, a eficácia irracional da matemática ”
Victor continua com os seus próprios pensamentos:
“Estes sons que não podemos ouvir, essa luz que não podemos ver, como podemos saber sobre essas coisas em primeiro lugar? Bem, nós construímos ferramentas. Construímos ferramentas que adaptam essas coisas que estão fora dos nossos sentidos, dos nossos corpos humanos, dos nossos sentidos humanos.
Não podemos ouvir som ultra-sônico, mas você liga um microfone até um osciloscópio e já lá. Você está a ver esse som com os seus velhos olhos de macaco. Não podemos ver células e não podemos ver galáxias, mas construímos microscópios e telescópios e essas ferramentas adaptam o mundo aos nossos corpos humanos, aos nossos sentidos humanos.
Quando Hamming diz que pode haver pensamentos impensáveis, devemos aceitar isso como “Sim, mas nós construímos ferramentas que adaptam esses pensamentos impensáveis ao modo como as nossas mentes funcionam e nos permitem pensar esses pensamentos que antes eram impensáveis”.
– Bret Victor, Mídia para pensar o impensável

Esta citação realmente ressoa comigo. Como um pesquisador de aprendizagem de máquinas, o meu trabalho é basicamente lutar com dados incompreensíveis – literalmente impossíveis para a mente humana compreender – e tentar construir ferramentas para pensar sobre isso e trabalhar com isso.9
No entanto, da perspectiva da representação, há um outro passo natural para seguir com essa idéia…
Representações na Visão Humana
Vamos considerar a visão humana por um momento. A nossa capacidade de ver é incrível. A parte surpreendente não são os nossos olhos a detectar fótons, no entanto. Essa é a parte fácil e simples. O incrível é a capacidade do nosso cérebro de transformar a confusão de dados de alta dimensão em algo que podemos entender. Para nos apresentar tão bem que parece simples! Nós podemos fazer isso porque os nossos cérebros possuem vias altamente especializadas para o processamento de dados visuais.
Assim como as redes neurais transformam os dados das representações primas originais em representações agradáveis, o cérebro transforma os nossos sentidos de dados complicados de alta dimensão em representações agradáveis, do incompreensível para o compreensível. O meu olho detecta os fótons, mas antes mesmo de me conscientizar do que o meu olho vê, os dados passam por transformações incrivelmente sofisticadas, transformando-o em algo que eu possa explicar. O cérebro faz um trabalho tão bom que a visão parece fácil! É somente quando você tenta entender os dados visuais sem usar o seu sistema visual é quando você percebe o quanto é incrivelmente complicado e difícil de entender.
Sentidos que não temos
Infelizmente, por todos os sentidos que temos, existem inúmeros outros que não. Inúmeros modos de experiência perdidos para nós. Isto é uma tragédia. Imagine os sentidos que poderíamos ter! Existem vastas coleções de texto lá fora: bibliotecas, wikipedia, a Internet como um todo – imagine ter uma sensação que lhe permitiu ver todo um corpus ao mesmo tempo, quais partes são semelhantes e quais são diferentes! Toda colisão no Large Hadron Collider é monitorada por uma bateria de diferentes sensores – imagine ter uma sensação que nos permitiu “ver” as colisões tão claramente como podemos ver imagens! A barreira entre nós e esses sentidos potenciais não está a receber os dados, está a receber os dados para o nosso cérebro em uma ótima representação.
A maneira mais fácil de obter novos tipos de dados no cérebro é simplesmente projetá-los em sentidos existentes. Em alguns casos muito particulares, isso funciona muito bem. Por exemplo, os microscópios e telescópios são extremamente bons para tornar acessível um novo tipo de dados projetando-os no nosso sentido visual normal. Eles funcionam porque os dados visuais macroscópicos e os dados visuais microscópicos são apenas dados visuais em diferentes escalas, com uma estrutura muito semelhante aos dados visuais normais, e são bem tratados pelos mesmos sistemas de processamento visual. Muito mais frequentemente, projetar dados em um sentido existente (por exemplo, com ACP) tira fora todos, exceto as facetas mais cruas dos dados. É como tirar uma imagem e tirar pra fora tudo, exceto a cor média. É algo… mas não muito.
Também podemos tentar obter esses dados simbólicamente. É claro que, causando desvantagem de 10.000 vetores dimensionais para pessoas, é impossível. Mas as estatísticas tradicionais nos fornecem alguns modelos simples que podemos ajustar, e depois discutimos o uso da linguagem de meios, variância, covariância e assim por diante. Infelizmente, classificar os gaussianos é como descrever as nuvens como ovais. Falar sobre a covariância de duas variáveis é como falar sobre a inclinação, em uma direção particular, de uma superfície de alta dimensão. Mesmo os modelos muito sofisticados das estatísticas parecem incapazes de lidar com os dados complicados, redemoinhos e de alta dimensão que vemos em problemas como a visão.
A aprendizagem profunda nos dá modelos que podem funcionar com esses dados. Mais do que isso, nos dá novas representações dos dados. As representações que produz não são otimizadas para serem representações agradáveis para o cérebro humano – não tenho ideia de como seria otimizado para isso, ou mesmo o que isso significaria – mas são muito melhores do que os dados originais. Eu acho que as representações de aprendizagem, com aprendizagem profunda ou outros modelos poderosos, são essenciais para ajudar os seres humanos a entender novas formas de dados.

Um Mapa da Wikipedia
O melhor exemplo que posso dar é a visualização da Wikipedia a partir de anteriores. A Wikipedia é um repositório de conhecimento humano. Ao combinar a aprendizagem profunda e a redução da dimensionalidade, podemos fazer um mapa dele, como vimos anteriormente:

Mapa da Wikipedia
(vetores de parágrafo e t-SNE – veja o Exemplo 2 acima)

Esse estilo de visualização parece-me importante. Usando a aprendizagem profunda, fizemos uma visualização, uma interface, para que os humanos interajam com a Wikipedia como um todo. Não estou afirmando que seja uma ótima interface. Eu nem tenho certeza de que seja muito útil. Mas é um ponto de partida e uma prova de conceito.
Por que não usar a redução de dimensionalidade por si só? Se tivéssemos usado a redução da dimensionalidade, estaríamos a visualizar características geométricas ou topológicas dos dados da Wikipedia. O uso da aprendizagem profunda para transformar os dados nos permite visualizar a estrutura subjacente, as variações importantes – em alguns casos, o próprio significado dos dados11 – em vez disso.
Eu acho que as representações de alta qualidade têm muito potencial para usuários interagindo com dados complicados, indo muito além do que se explora aqui. A direção mais natural é a aprendizagem da máquina: uma vez que você está numa representação de alta qualidade, muitas tarefas normalmente difíceis podem realizar-se com técnicas muito simples e dados relativamente pequenos.12 Com uma coleção de representações com curadoria, pode-se fazer uma aprendizagem de máquinas realmente excitante acessível 13, embora levaria consigo desafios para os usuários finais14 e os produtores de representações.15
Quantificando o Subjetivo
O raciocínio sobre os dados através de representações pode ser útil mesmo para os tipos de dados que a mente humana entende muito bem, porque pode fazer coisas explícitas e quantificáveis que são normalmente tácitas e subjetivas.
Você provavelmente entende muito o inglês, mas muito desse conhecimento é subjetivo. O significado das palavras é socialmente construído, decorrente do que as pessoas entendem por elas e como elas as usam. Está canonizado nos dicionários, mas apenas de forma limitada. Mas as sutilezas em uso e significado são muito interessantes por causa de como refletem a cultura e a sociedade. Infelizmente, essas coisas são um pouco confusas, e normalmente é preciso confiar em anedotas e impressões pessoais.
Uma propriedade notável de inserções de palavras de alta qualidade é que eles parecem reificar essas propriedades difusas em estruturas matemáticas concretas! Conforme mencionado anteriormente, as instruções em inserções de palavras correspondem a tipos particulares de diferenças de significado. Por exemplo, há alguma direção correspondente ao gênero. (Para mais detalhes, veja a minha postagem Deep Learning, PNL e Representações.)
Ao tomar a diferença de dois vetores de palavras, podemos obter orientações para o gênero. Por exemplo, podemos obter uma direção masculina (por exemplo, “homem” – “mulher”) ou uma direção feminina (por exemplo, “mulher” – “homem”). Também podemos obter direções de idade. Por exemplo, podemos obter uma direção adulta (por exemplo, “mulher” – “menina”) ou uma direção infantil (por exemplo, “menino” – “homem”).

Uma vez que temos essas instruções, há uma pergunta muito natural a perguntar: que palavras estão mais distantes nessas direções? Quais são as palavras mais masculinas ou femininas? O mais adulto, o mais infantil? Bem, vejamos os vetores globais da Wikipedia, de Pennington, et al. em Stanford:
– As palavras masculinas tendem a ser relacionadas ao militar/extremismo (por exemplo, aresenal, tático, al qaeda), liderança (por exemplo, chefe, gerente) e esportes (por exemplo, jogo, meio-campista).
– As palavras femininas tendem a ser relacionadas à reprodução (por exemplo, gravidez, nascimento), romance (por exemplo, casais, casamentos), cuidados de saúde (por exemplo, enfermeiro, pacientes) e entretenimento (por exemplo, atriz).
– As palavras adultas tendem a estar relacionadas ao poder (por exemplo, vitória, ganhar), importância (por exemplo, decisiva, formidável), política (por exemplo, político, senado) e tradição (por exemplo, raízes, igrejas).
– As palavras infantis tendem a ser relacionadas a famílias jovens (por exemplo, adoção, infante), atividades (por exemplo, coro, escoteiros), itens (por exemplo, músicas, guitarra, quadrinhos) e às vezes herança (por exemplo, herdeiro, trono).
Claro, esses resultados dependem de muitos detalhes. 16
Gostaria de enfatizar que as palavras que são femininas ou masculinas, jovens ou adultas, não são intrínsecas. É um reflexo da nossa cultura, através do uso da linguagem em um artefato cultural. O que isso pode dizer sobre a nossa cultura está além do alcance deste ensaio. A minha esperança é que este truque e a aprendizagem de máquinas de forma mais ampla possam ser uma ferramenta útil em sociologia e, especialmente, temas como gênero, raça e estudos de deficiência.

O futuro
Agora, a pesquisa da aprendizagem de máquinas é principalmente sobre como conseguir que os computadores possam entender os dados que os humanos fazem: imagens, sons, texto e assim por diante. Mas o foco vai mudar para que os computadores compreendam coisas que os humanos não compreendem. Podemos descobrir como usar isso como uma ponte para permitir que os seres humanos compreendam essas coisas, ou podemos entregar modalidades inteiras – tão ricas, talvez mais ricas, que a visão ou o som – para ser de único domínio dos computadores. Eu acho que a interface do usuário pode ser a diferença entre poderosas ferramentas de aprendizagem de máquinas – inteligência artificial – sendo uma caixa preta ou uma ferramenta cognitiva que estende a mente humana.
Na verdade, existem dois tipos de caixas negras que precisamos evitar. Dois problemas ligeiramente diferentes, mas intimamente relacionados. O primeiro problema é que a aprendizagem profunda em si é atualmente uma espécie de caixa preta. O segundo é que as ferramentas que utilizam aprendizagem profunda para resolver problemas particulares podem ser caixas negras.
Precisamos descobrir como abrir a caixa negra da aprendizagem profunda. Uma abordagem poderosa é visualizar representações. Neste ensaio, utilizamos a mídia interativa para visualizar e explorar alguns modelos poderosos do grupo de pesquisa de aprendizagem profunda do Google. Observamos então que as arquiteturas de redes neurais particulares deixam assinaturas geométricas nas suas representações. Finalmente, criamos o algoritmo meta-SNE, a fim de aumentar a escala da abstração e pensar sobre o espaço das redes neurais, em vez de particulares.
O problema das ferramentas particulares sendo caixas pretas é, de certa forma, mais difícil, porque há tanta diversidade. Mas um problema comum é que os seres humanos não podem pensar sobre o tipo de estruturas de alta dimensão que os problemas de aprendizagem em máquina geralmente envolvem. Observamos que visualizar representações também pode ser uma ferramenta para ajudar os seres humanos a entender e a raciocinar sobre essas estruturas. Nós vimos que as representações podem ser úteis mesmo para os dados que entendemos muito bem.
Estes são problemas que estamos apenas começando a atacar. Eu acho que há muito mais para nós descobrir aqui. É um tipo de trabalho estranho, na interseção de aprendizagem de máquinas, matemática e interface de usuário. Mas acho que é importante.
Se você gostou desta publicação, considere inscrever-se no meu feed rss.
(Eu ficaria encantado de ouvir os seus comentários e pensamentos: você pode comentar no meio ou no final. Por erros de digitação, erros técnicos ou esclarecimentos que você gostaria de adicionar, você está encorajado a fazer um pedido de envio no github).

Reconhecimentos
Agradeço a hospitalidade do grupo de pesquisa de aprendizagem profunda do Google, que me teve como estagiário enquanto fiz a maior parte do trabalho em que esta publicação se baseia. Estou especialmente agradecido ao meu anfitrião de estágio, Jeff Dean.
Os comentários, conselhos e encorajamento de muitos Googlers, me ajudaram tanto no grupo de aprendizagem profunda quanto fora. Estes incluem: Greg Corrado, Jon Shlens, Matthieu Devin, Andrew Dai, Quoc Le, Anelia Angelova, Oriol Vinyals, Ilya Sutskever, Ian Goodfellow, Jutta Degener e Anna Goldie.
Fui fortemente influenciado pelos pensamentos, comentários e notas de Michael Nielsen, especialmente pelas suas anotações sobre o trabalho de Bret Victor. Os pensamentos de Michael me convenceram de pensar seriamente sobre as visualizações interativas para entender a aprendizagem profunda. A seção “Pensamentos impensáveis, dados incompreensíveis” foi particularmente influenciada por ele.
Eu também fui ajudado pelo apoio e comentários de vários outros amigos não-Googlers, incluindo Yoshua Bengio, Laura Ball, Rob Gilson, Henry de Valence, Yomna Nasser e James Koppel.
Esta publicação no blog foi possível por uma série de maravilhosas bibliotecas de Javascript, incluindo D3.js, MathJax e jQuery. Um grande agradecimento a todos que contribuíram para essas bibliotecas.
1. A perspectiva de representação é uma abstração sobre os insumos. Em vez de tentar entender o que a rede neural faz para uma única entrada, tentamos entender o que faz para o espaço das entradas, para o coletor de dados. É um passo acima da escada da abstração. Mais tarde, daremos um segundo passo, permitindo-nos olhar para o espaço das redes neurais, em vez de uma única.
2. Categorizamos as palavras usando sinônimos do WordNet. Cada synset é rotulado como “region.n.03” (região, substantivo, significado 3) ou “travel.v.01” (viagem, verbo, significado 1).
3. Deve-se notar que, mais tarde, Sutskever et al. mudou para reverter a ordem da frase de entrada, encontrando isso melhorou seus resultados.

4. A maneira natural de pensar sobre distância entre funções é considerá-las como vetores de dimensões infinitas (f(0), f(1), f(2)…). No caso de uma função nos números reais ou no Rn, é um vetor bidimensional! Embora possamos realmente representar a função finitamente (porque sabemos que está baseado em uma rede neural, que tem um número finito de parâmetros), é realmente difícil calcular as distâncias.
5. Ouvi dizer que algumas técnicas similares podem usar-se em neurociências, onde muitas vezes é necessário comparar diferentes representações dos mesmos dados. Além disso, em uma publicação anterior, John MacCuish comentou que se poderia usar o Mantel Test nas matrizes de distância para comparar representações – isso faz uma idéia muito parecida!
6. Existem algumas variações que você pode fazer no algoritmo meta-SNE básico. Por exemplo, o meta-SNE analisa o quanto as representações concordam sobre que pontos de dados são semelhantes, comparando a distância entre os pontos nas diferentes representações. Mas também podemos comparar quantas representações concordam em analogias, na maneira como as coisas são diferentes, comparando a distância entre diferenças de vetores em diferentes representações. Em princípio, esta informação está codificada nas distâncias entre pontos de dados, mas podemos torná-lo muito mais explícito. Também pode ser o caso de nos preocuparmos mais com que redes são muito semelhantes, caso em que podemos aplicar alguma não-linearidade com a matriz de distância, para exagerar a diferença entre pontos de dados próximos e afastados.
7. A rede neural é uma função com o domínio do colector de dados em que foi treinado.
8. As pessoas às vezes se queixam: “As redes de neurônios são tão difíceis de entender! Por que não podemos usar modelos compreensíveis, como SVMs? “Bem, você entende SVMs, e você não entende o reconhecimento de padrões visuais. Se os SVMs pudessem resolver o reconhecimento de padrões visuais, você entenderia isso. Portanto, os SVMs não são capazes disso, nem nenhum outro modelo que você realmente possa entender. (Não quero dizer que isso seja uma “prova” obviamente, mas eu sou bastante sério sobre essa visão.)
9. Você poderia imaginar definir um campo dessa maneira, como a tentar construir ferramentas para pensar e trabalhar com as complicadas distribuições de probabilidades de alta dimensão que vemos no mundo real. O campo que você obtém não é uma aprendizagem em máquina, mas tem muita sobreposição. Na verdade, parece mais atraente. Talvez isso seja a “ciência dos dados”?
10. Como alguém sem experiência na neurociência, sinto-me um pouco nervoso fazendo observações assim. Dito isto, acho que o que estou a dizer principalmente é uma interpretação, uma abstração, sobre alguns fatos bastante básicos sobre como funciona a visão humana. Eu também sei que pelo menos alguns neurocientistas subscrevem esta interpretação e olham seriamente para as coisas através desse tipo de lente. Por exemplo, veja o artigo de DiCarlo e Cox ‘Untangling invariant object recognition’.
11. Esta é uma afirmação muito ousada. A minha defesa é esta: os modelos de incorporação de palavras parecem codificar o significado semântico nas direções, criando um “espaço vetorial semântico”. Os vetores de parágrafo (pelo menos o tipo que estamos a usar) fazem o mesmo. De alguma forma, esses modelos parecem descobrir o significado humano enquanto aprendem a estrutura do espaço. Os resultados do documento DeViSE sugerem que isso pode ser um pouco geral nas boas representações de alto nível.
12. Esta é uma combinação de aprendizagem de transferência, pré-treinamento e aprendizagem multitarefa. Quão bem isso funciona varia, mas certamente há muitos sucessos. Obviamente, o ideal é ter muitos dados para treinar uma representação especificamente para a sua tarefa. Mas, com isso, também podemos tentar fazer representações muito transferíveis, possivelmente treinando-as para um monte de tarefas diferentes.
13. Curar grandes coleções de dados estruturados levou a algumas ferramentas realmente interessantes (por exemplo, Wolfram Alpha). A minha intuição é que curar uma coleção de representações de alta qualidade para diferentes tipos de dados também pode ser realmente interessante. Eu acho que o MetaMind é o mais próximo que eu sei sobre isso, agora mesmo.
14. Parece que muitos dos problemas que existem com os formatos de arquivo proprietários podem acabar acontecendo aqui. Um usuário final poderia muito facilmente acabar vinculado a uma representação particular. Precisamos de representações abertas ou padronizadas?
15. O problema de apenas divulgar representações, da perspectiva do produtor modelo, é o que Geoff Hinton chama a “conhecimento sombrio”. As representações sutilmente codificam muito do conhecimento do seu modelo. Ao liberar representações, as organizações estão implicitamente liberando uma quantidade significativa de informações sobre o seu modelo.
16. A resposta depende muito do corpus em que você treina. Se você treinar a sua incorporação de palavras em um corpus de notícias, isso será diferente que se você o treinar na Wikipédia. E eu suponho que se você treinou em um corpus de literatura do século 19, isso seria muito diferente novamente. Também depende do seu modelo e de quão bem você treinou. A interpretação precisa é obviamente sensível ao modelo. Mas, em geral, será algo como isto: há uma certa diferença em como a linguagem se usa em torno da palavra “homem” e a palavra “mulher”; que palavras causam que o idioma em torno delas mude mais dessa maneira? (Substitua “homem” e “mulher” pelo que você quiser).

Sobre o autor

Sara Filipa







por: Sara Filipa

Posts recentes

Comentários

Arquivos

Categorias

Meta