Em 1998, quando o banco de dados MNIST apareceu, demorou semanas para treinar os computadores mais avançados, que obtiveram resultados muito piores do que os computadores de hoje, que levam menos de uma hora para chegar à GPU. Portanto, o MNIST não é mais uma tarefa que ultrapassa os limites da tecnologia; a velocidade do treinamento sugere que essa tarefa é adequada para o estudo dessa tecnologia. Enquanto isso, a pesquisa vai além, e o trabalho moderno estuda problemas muito mais complexos. Nesta seção, descreverei brevemente alguns exemplos de trabalhos em andamento relacionados ao reconhecimento de imagens usando redes neurais.
Esta seção é diferente do restante do livro. No livro, concentrei-me em idéias presumivelmente duradouras - retropropagação, regularização, redes convolucionais. Tentei evitar os resultados considerados modernos na época em que escrevi, cujo valor a longo prazo parecia dúbio. Na ciência, esses resultados geralmente se mostram efêmeros, desaparecem rapidamente e não têm efeito a longo prazo. Diante disso, o cético diria: “É claro que o progresso recente no reconhecimento de imagens pode ser considerado um exemplo de uma viagem de um dia? Em dois ou três anos, tudo vai mudar. Então, é provável que esses resultados sejam do interesse de um pequeno número de profissionais competindo em primeiro plano? Por que discuti-los?
Tal cético estará certo em que os pequenos detalhes de trabalhos recentes estão gradualmente perdendo a importância percebida. No entanto, nos últimos anos, houve melhorias incríveis na solução de problemas particularmente complexos de reconhecimento de imagens usando redes neurais profundas (GNS). Imagine um historiador da ciência escrevendo material sobre visão computacional em 2100. Eles definirão 2011-2015 (e provavelmente vários anos depois disso) como um período de avanços significativos impulsionados por redes de convolução profunda (GSS). Isso não significa que o GOS ainda será usado em 2100, sem mencionar detalhes como exceção, ReLU e mais. Mas isso significa que há uma transição importante na história das idéias no momento atual. Isso é semelhante a observar a descoberta do átomo, a invenção de antibióticos: a invenção e descoberta de proporções históricas. Portanto, sem entrar em detalhes, vale a pena ter uma idéia das descobertas interessantes que estão sendo feitas hoje.
Trabalho 2012 LRMD
Deixe-me começar com o
trabalho de 2012, de autoria de um grupo de pesquisadores de Stanford e Google. Vou chamá-la de LRMD pelas primeiras letras dos nomes dos quatro primeiros autores. O LRMD usou o NS para classificar imagens do banco de dados ImageNet, o que é uma tarefa muito difícil de reconhecimento de padrões. Os dados que eles usaram do ImageNet de 2011 incluíram 16 milhões de imagens coloridas, divididas em 20.000 categorias. As imagens foram baixadas da Internet e classificadas pelo Mechanical Turk da Amazon. Aqui estão alguns deles:




Eles pertencem às categorias, respectivamente: caxumba, fungo da raiz marrom, leite pasteurizado, lombrigas. Se você deseja praticar, recomendo que você visite a lista de ferramentas manuais da ImagNet, onde são feitas diferenças entre montes, aplainadoras, aplainadoras para chanfro e dezenas de outros tipos de aplainadoras, para não mencionar outras categorias. Não conheço você, mas não consigo distinguir com certeza todas essas ferramentas. Isto é obviamente muito mais desafiador do que o MNIST! A rede LRMD obteve um resultado decente com precisão de reconhecimento de imagem de 15,8% do ImageNet. Isso pode não parecer um resultado tão impressionante, mas houve uma grande melhoria em relação ao resultado anterior de 9,3%. Esse salto sugere que os NSs podem oferecer uma abordagem eficaz para tarefas de reconhecimento de imagens muito complexas, como o ImageNet.
Trabalho 2012 KSH
O trabalho do LRMD em 2012 foi seguido pelo
trabalho de Krizhevsky, Sutskever e Hinton (KSH). A KSH treinou e testou o GSS usando um subconjunto limitado de dados do ImagNet. Esse subconjunto é definido pela popular competição de aprendizado de máquina - Desafio de reconhecimento visual em larga escala do ImageNet (ILSVRC). O uso desse subconjunto deu a eles uma maneira conveniente de comparar sua abordagem com outras técnicas principais. O conjunto ILSVRC 2012 contém cerca de 1,2 milhões de imagens de 1000 categorias. Os conjuntos de verificação e confirmação contêm 150.000 e 50.000 imagens, respectivamente, das mesmas 1000 categorias.
Um dos desafios da competição ILSVRC é que muitas imagens do ImageNet contêm vários objetos. Por exemplo, na imagem, o Labrador Retriever corre atrás de uma bola de futebol. T.N. A classificação “correta” do ILSVRC pode corresponder ao rótulo Labrador Retriever. É necessário selecionar pontos do algoritmo se marcar a imagem como uma bola de futebol? Devido a essa ambiguidade, o algoritmo foi considerado correto se a classificação ImageNet estivesse entre as 5 suposições mais prováveis do algoritmo em relação ao conteúdo da imagem. De acordo com este critério, dos 5 primeiros, o GSS da KSH alcançou uma precisão de 84,7%, muito melhor que o adversário anterior, que alcançou uma precisão de 73,8%. Usando uma métrica mais rigorosa, quando o rótulo deve corresponder exatamente ao prescrito, a precisão do KSH atingiu 63,3%.
Vale a pena descrever brevemente a rede KSH, pois inspirou muitos trabalhos que se seguiram. Também é, como veremos, estreitamente conectado às redes que treinamos neste capítulo, embora seja mais complexo. A KSH usou o GSS treinado em duas GPUs. Eles usaram duas GPUs porque seu cartão específico (NVIDIA GeForce GTX 580) não tinha memória suficiente para armazenar toda a rede. Portanto, eles dividem a rede em duas partes.
A rede KSH possui 7 camadas de neurônios ocultos. As cinco primeiras camadas ocultas são convolucionais (algumas usam o pool máximo) e as próximas 2 estão totalmente conectadas. A camada softmax de saída consiste em 1000 neurônios correspondentes a 1000 classes de imagens. Aqui está um esboço da rede, retirado do trabalho da KSH. Os detalhes são descritos abaixo. Observe que muitas camadas são divididas em 2 partes correspondentes a duas GPUs.

Na camada de entrada, há um neurônio 3x224x224 indicando os valores RGB para uma imagem de tamanho 224x224. Lembre-se de que o ImageNet contém imagens de várias resoluções. Isso apresenta um problema, já que a camada da rede de entrada geralmente possui um tamanho fixo. A KSH lidou com isso escalando cada imagem para que seu lado curto tivesse um comprimento de 256 pixels. Em seguida, eles cortam uma área de 256x256 pixels no meio da imagem redimensionada. Por fim, o KSH recupera pedaços de imagem aleatórios de 224x224 (e seus reflexos horizontais) de imagens de 256x256. Esse corte aleatório é uma maneira de expandir os dados de treinamento para reduzir a reciclagem. Isso ajuda especialmente a treinar uma rede tão grande como a KSH. E, finalmente, essas imagens de 224x224 são usadas como entrada na rede. Na maioria dos casos, a imagem cortada contém o objeto principal da imagem original.
Passamos para as camadas ocultas da rede KSH. A primeira camada oculta é convolucional, com um passo de extração máxima. Ele usa campos receptivos locais de tamanho 11x11 e uma etapa de 4 pixels. No total, 96 cartões de recursos são obtidos. As cartas de personagem são divididas em dois grupos de 48 peças, com as primeiras 48 em uma GPU e a segunda na outra. O pool máximo nessas camadas e nas subseqüentes é realizado por seções 3x3, mas as seções de pool podem se sobrepor e estão localizadas a uma distância de apenas 2 pixels uma da outra.
A segunda camada oculta também é convolucional, com pool máximo. Ele usa campos receptivos 5x5 locais e possui 256 cartões de recursos, divididos em 128 pedaços para cada GPU. Os mapas de recursos usam apenas 48 canais de entrada e nem todas as 96 saídas da camada anterior, como de costume. Isso ocorre porque qualquer placa de recurso recebe entrada da GPU na qual está armazenada. Nesse sentido, a rede está se afastando da arquitetura convolucional que descrevemos anteriormente neste capítulo, embora, obviamente, a idéia básica permaneça a mesma.
A terceira, quarta e quinta camadas são convolucionais, mas sem agrupamento máximo. Seus parâmetros: (3) 384 mapas de características, campos receptivos locais 3x3, 256 canais de entrada; (4) 384 mapas de características, campos receptivos locais 3x3, 192 canais de entrada; (5) 256 cartões de recursos, campos receptivos locais 3x3, 192 canais de entrada. Na terceira camada, os dados são trocados entre as GPUs (como mostrado na figura) para que os mapas de recursos possam usar todos os 256 canais de entrada.
A sexta e a sétima camadas ocultas estão totalmente conectadas, 4096 neurônios cada.
A camada de saída é softmax, consiste em 1000 unidades.
A rede KSH tira proveito de muitas técnicas. Em vez de usar tangente sigmóide ou hiperbólica como uma função de ativação, ele usa ReLUs, que aceleram bastante o aprendizado. A rede KSH contém cerca de 60 milhões de parâmetros de treinamento e, portanto, mesmo com um grande conjunto de dados de treinamento, ela está sujeita a reciclagem. Para lidar com isso, os autores expandiram o conjunto de treinamento cortando imagens aleatoriamente, conforme descrito acima. Eles então usaram a variante de regularização L2 e a exceção. A rede foi treinada usando descida de gradiente estocástico com base no momento e com minipacotes.
Esta é uma breve visão geral de muitos dos principais insights da KSH. Omiti alguns detalhes; procure-os no artigo você mesmo. Você também pode ver o projeto de Alex Krizhevsky
cuda-convnet (e seus seguidores), contendo código que implementa muitas das idéias descritas.
Uma versão dessa rede
baseada no Theano também foi
desenvolvida . Você pode reconhecer idéias no código semelhantes às que desenvolvemos neste capítulo, embora o uso de várias GPUs complique as coisas. O framework Caffe possui sua própria versão da rede KSH, consulte seus "
modelos de zoológico " para obter detalhes.
Competição ILSVRC 2014
Desde 2012, o progresso tem sido bastante rápido. Participe da competição de 2014 do ILSVRC. Como em 2012, os participantes tiveram que treinar redes para 1,2 milhão de imagens de 1000 categorias, e uma das 5 previsões prováveis na categoria correta era um critério de qualidade.
A equipe vencedora , composta principalmente por funcionários do Google, usou o GSS com 22 camadas de neurônios. Eles chamaram sua rede de GoogLeNet, em homenagem a LeNet-5. A GoogLeNet alcançou precisão de 93,33% pelos critérios das cinco melhores opções, o que melhorou seriamente os resultados do vencedor de 2013 (Clarifai, de 88,3%) e do vencedor de 2012 (KSH, de 84,7%).
Qual é a precisão da GoogLeNet 93,33%? Em 2014, uma equipe de pesquisa escreveu uma
revisão da competição ILSVRC. Uma das questões abordadas foi o quão bem as pessoas seriam capazes de lidar com a tarefa. Para o experimento, eles criaram um sistema que permite que as pessoas classifiquem imagens com o ILSVRC. Como explica um dos autores do trabalho, Andrei Karpaty, em uma entrada informativa em seu blog, era muito difícil trazer a eficácia das pessoas aos indicadores do GoogLeNet:
A tarefa de marcar imagens com cinco categorias dentre 1.000 possíveis rapidamente se tornou extremamente difícil, mesmo para os meus amigos no laboratório que trabalhavam com o ILSVRC e suas categorias há algum tempo. Primeiro, queríamos enviar a tarefa para o Amazon Mechanical Turk. Então decidimos tentar contratar estudantes por dinheiro. Por isso, organizei uma festa de marcação entre especialistas em meu laboratório. Depois disso, desenvolvi uma interface modificada que utilizava as previsões do GoogLeNet para reduzir o número de categorias de 1000 para 100. No entanto, a tarefa era difícil - as pessoas pulavam categorias, com erros da ordem de 13 a 15%. No final, percebi que, para me aproximar ainda mais do resultado do GoogLeNet, a abordagem mais eficaz seria me sentar e passar por um processo de aprendizado impossivelmente longo e pelo processo subsequente de marcação completa. No início, a marcação era de uma velocidade da ordem de 1 peça por minuto, mas acelerada com o tempo. Algumas imagens eram fáceis de reconhecer, enquanto outras (por exemplo, certas raças de cães, espécies de pássaros ou macacos) exigiam vários minutos de concentração. Fiquei muito bom em distinguir entre raças de cães. Com base na minha amostra de imagens, foram obtidos os seguintes resultados: O GoogLeNet se enganou em 6,8% dos casos; minha taxa de erro foi de 5,1%, o que foi cerca de 1,7% melhor.
Em outras palavras, o especialista, que trabalhou com muito cuidado, apenas envidando esforços sérios, conseguiu se aproximar um pouco do STS. Karpaty relata que o segundo especialista, treinado em menos imagens, conseguiu reduzir o erro em apenas 12% ao escolher até 5 etiquetas por imagem, o que é muito menor que o GoogLeNet.
Resultados impressionantes. E desde o início deste trabalho, várias equipes relataram o desenvolvimento de sistemas cuja taxa de erro ao escolher as 5 melhores tags era ainda inferior a 5,1%. Às vezes, essas conquistas foram abordadas na mídia como o surgimento de sistemas capazes de reconhecer imagens melhor do que as pessoas. Embora os resultados sejam geralmente impressionantes, há muitas nuances que não podem ser consideradas: a visão por computador funciona melhor nesses sistemas do que nos humanos. De muitas maneiras, a competição ILSVRC é uma tarefa muito limitada - os resultados de uma pesquisa de imagens em uma rede aberta não corresponderão necessariamente ao que o programa atende em uma tarefa prática. E, é claro, o critério "uma das cinco melhores notas" é bastante artificial. Ainda temos um longo caminho a percorrer para resolver o problema do reconhecimento de imagem, sem mencionar a tarefa mais geral da visão por computador. Ainda assim, é muito legal ver quanto progresso foi alcançado na solução de uma tarefa tão difícil em apenas alguns anos.
Outras tarefas
Eu me concentrei no ImageNet, no entanto, existem alguns outros projetos usando o NS para reconhecimento de imagem. Deixe-me descrever brevemente alguns resultados interessantes obtidos recentemente, apenas para ter uma idéia do trabalho moderno.
Um
conjunto prático e inspirador
de resultados foi obtido por uma equipe do Google, que aplicou o GSS à tarefa de reconhecimento de placas de endereço no Google Street View. Em seu trabalho, eles relatam como descobriram e reconheceram automaticamente quase 100 milhões de placas de endereços com precisão comparável ao trabalho humano. E o sistema deles é rápido: conseguiu descriptografar dados de todas as imagens do Google Street View na França em menos de uma hora! Eles escrevem: "A obtenção desse novo conjunto de dados aumentou significativamente a qualidade da geocodificação do Google Maps em vários países, especialmente onde não havia outras fontes de geocodificação". Em seguida, eles fazem uma declaração mais geral: "Acreditamos que, graças a esse modelo, resolvemos o problema do reconhecimento óptico de sequências curtas de uma maneira que é aplicável em muitas aplicações práticas".
Talvez tenha criado a impressão de um desfile de resultados vitoriosos e inspiradores. Obviamente, os relatórios mais interessantes dizem respeito a coisas fundamentais que ainda não estão claras para nós. Por exemplo, no
trabalho de 2013, foi demonstrado que a Assembléia Nacional tem, de fato, pontos cegos. Dê uma olhada nas imagens abaixo. À esquerda está a imagem do ImageNet, que a rede de pesquisadores classificou corretamente. À direita, há uma imagem ligeiramente modificada (no meio, as diferenças são mostradas), que a rede não conseguiu mais reconhecer corretamente. E os autores descobriram que essas mudanças "contraditórias" podem ser selecionadas para qualquer imagem do banco de dados, e não apenas para a elite.

Resultado desagradável. Usamos uma rede baseada no mesmo código da rede KSH - ou seja, é uma rede que é cada vez mais usada. E embora esses NSs calculem, em princípio, funções contínuas, resultados semelhantes sugerem que provavelmente calculam funções quase discretas. Pior, eles acabam sendo discretos de uma maneira que viola nossa noção intuitiva de comportamento inteligente. Isso é um problema. Além disso, não está muito claro o que exatamente leva à discrição, qual é o problema: na função de perda? Quais funções de ativação usar? Na arquitetura de rede? Em outra coisa? Nós não sabemos.
Mas esses resultados não são tão ruins quanto parecem. Embora tais mudanças contraditórias sejam bastante comuns, é improvável que sejam encontradas na prática. Conforme indicado no trabalho:
A existência de negativos contraditórios contradiz a capacidade da rede de alcançar alta generalização. De fato, se a rede poderia generalizar bem, como poderia ser enganada por esses negativos contraditórios indistinguíveis de exemplos comuns? A explicação é que um conjunto de negativos competitivos tem uma probabilidade extremamente baixa e, portanto, não é observado (ou quase não é observado) no conjunto de dados de treinamento, no entanto, possui uma alta densidade (aproximadamente como números racionais) e, portanto, pode ser encontrado em quase todos os casos .
No entanto, é desagradável entendermos tão mal o trabalho da Assembléia Nacional que esse resultado foi descoberto recentemente. Obviamente, a principal vantagem de tais resultados será que eles estimularam o surgimento de trabalhos subseqüentes sobre esse tema. Um
trabalho recente de 2014 mostrou que é possível que uma rede treinada crie imagens que pareçam ruído branco para uma pessoa, e a rede as classifique em categorias conhecidas com um alto grau de confiança.
Esta é outra demonstração que ainda temos muito a entender no trabalho do NS e em seu uso no reconhecimento de imagens.Mas, apesar da presença de resultados semelhantes, o quadro geral é inspirador. Estamos vendo um rápido progresso na realização de testes extremamente complexos, como o ImageNet. Também estamos vendo um rápido progresso na solução de problemas do mundo real, como o reconhecimento de placas de endereço no StreetView. Mas, apesar da inspiração, não basta observar melhorias no desempenho de testes de velocidade ou mesmo em tarefas do mundo real. Existem fenômenos fundamentais, cuja essência ainda mal compreendemos, por exemplo, a existência de imagens competitivas. E, embora esses problemas fundamentais ainda se abram (sem mencionar sua solução), seria prematuro falar sobre como abordar a solução do problema de reconhecimento de imagem. Mas, ao mesmo tempo, esses problemas são excelentes incentivos para trabalhos futuros.Outras abordagens para redes neurais profundas
Neste livro, focamos em uma tarefa: a classificação dos números MNIST. Uma excelente tarefa que nos fez entender muitas idéias eficazes: descida de gradiente estocástico, retropropagação, redes convolucionais, regularização etc. No entanto, essa também é uma tarefa bastante restrita. Depois de ler a literatura sobre redes neurais, você encontrará muitas idéias que não discutimos: NSs recorrentes, máquinas Boltzmann, modelos generativos, transferência de treinamento, aprendizado reforçado e assim por diante! As redes neurais são uma vasta área. No entanto, muitas idéias importantes são variações daquelas que já discutimos e são fáceis de entender. Nesta seção, vou abrir levemente a cortina sobre essas vastas extensões. A discussão deles não seria detalhada e abrangente - isso inflaria bastante o livro. Será impressionista,uma tentativa de mostrar a riqueza conceitual dessa área e conectar alguns conceitos com os que já vimos. No texto, darei várias referências a outras fontes, quanto a materiais para treinamento adicional. É claro que muitos deles logo estarão lotados por outros, e talvez você queira procurar literatura mais recente. No entanto, acredito que muitas idéias básicas permanecerão interessantes por muito tempo.Redes Neurais Recorrentes (RNS)
Nas redes de propagação direta que usamos, existe uma entrada que determina completamente a ativação de todos os neurônios nas camadas subseqüentes. Esta é uma imagem muito estática: tudo na rede é fixo e tem um caráter cristalino e congelado. Mas suponha que permitimos que os elementos da rede mudem dinamicamente. Por exemplo, o comportamento dos neurônios ocultos pode ser determinado não apenas pelas ativações nas camadas anteriores, mas também pelas ativações que ocorreram mais cedo. A ativação de um neurônio pode ser parcialmente determinada por sua ativação anterior. Em redes com distribuição direta, isso claramente não acontece. Ou, talvez, a ativação de neurônios ocultos e de saída seja determinada não apenas pela entrada atual na rede, mas também pelas anteriores.As redes neurais com esse tipo de comportamento variável no tempo são conhecidas como redes neurais recorrentes, ou RNS. Existem várias maneiras de formalizar matematicamente a descrição informal do parágrafo anterior. Você pode ter uma idéia deles lendo o artigo da Wikipedia . No momento da redação deste artigo, na versão em inglês do artigo, pelo menos 13 modelos diferentes são descritos [no momento da tradução em 2019, já existem 18 / aprox. transl.].
Mas, se deixarmos de lado os detalhes matemáticos, a ideia geral do RNS é a presença de mudanças dinâmicas na rede que ocorrem ao longo do tempo. E, sem surpresa, eles são especialmente úteis para analisar dados ou processos que mudam ao longo do tempo. Esses dados e processos aparecem naturalmente em tarefas como análise de fala ou linguagem natural.Uma das maneiras atuais de usar o RNS é integrar melhor as redes neurais aos métodos tradicionais de representação de algoritmos, com conceitos como uma máquina de Turing e linguagens de programação comuns. No trabalho de 2014O RNS foi desenvolvido, capaz de aceitar uma descrição letra por letra de um programa python muito simples e prever o resultado de seu trabalho. Informalmente, a rede está aprendendo a "entender" certos programas python. O segundo trabalho de 2014 utilizou o RNS como ponto de partida para o desenvolvimento da neuromaquina de Turing (BDC). Este é um computador universal, cuja estrutura inteira pode ser treinada usando descida gradiente. Eles treinaram seu BDC para criar algoritmos para várias tarefas simples, como classificação ou cópia.Estes, é claro, são modelos de brinquedos muito simples. Aprender a executar um programa em python como o print (398345 + 42598) não faz da rede neural um intérprete completo da linguagem! Não está claro o quanto essas idéias serão mais fortes. No entanto, os resultados são bastante interessantes. Historicamente, as redes neurais fizeram um bom trabalho ao reconhecer padrões que tropeçavam nas abordagens algorítmicas convencionais. E vice-versa, as abordagens algorítmicas convencionais fazem um bom trabalho na resolução de problemas complexos para o NS. Hoje, ninguém está tentando implementar um servidor web ou um banco de dados baseado no NS! Seria ótimo desenvolver modelos integrados que integram os pontos fortes da NS e das abordagens algorítmicas tradicionais. O RNS e as idéias inspiradas por eles podem nos ajudar a fazer isso.Nos últimos anos, o RNS tem sido usado para resolver muitos outros problemas. Eles foram especialmente úteis no reconhecimento de fala. As abordagens baseadas em RNS estabelecem registros para a qualidade do reconhecimento de fonemas. Eles também foram usados para desenvolver modelos aprimorados da linguagem usada pelas pessoas. Modelos de linguagem aprimorados ajudam a reconhecer ambiguidades na fala que soam semelhantes. Um bom modelo de linguagem pode nos dizer que a frase "encaminhar para o infinito" é muito mais provável do que a frase "encaminhar sem membros", embora pareça semelhante. O RNS foi usado para obter conquistas recorde em determinados testes de idioma.Este trabalho é parte do uso mais amplo de NS de todos os tipos, não apenas do RNS, para resolver o problema do reconhecimento de fala. Por exemplo, uma abordagem baseada no GNS mostrou excelentes resultados no reconhecimento da fala contínua com um vocabulário amplo. Outro sistema baseado em GNS é implementado no sistema operacional Android do Google.Falei um pouco sobre o que os RNCs são capazes, mas não expliquei como eles funcionam. Você não ficará surpreso ao saber que muitas das idéias do mundo das redes de distribuição direta também podem ser usadas no RNS. Em particular, podemos treinar o RNS modificando a descida do gradiente e a propagação das costas na testa. Muitas outras idéias usadas em redes de distribuição direta, desde técnicas de regularização até funções de convolução e ativação e custo, também serão úteis. Além disso, muitas das idéias que desenvolvemos como parte do livro podem ser adaptadas para uso no RNS.Módulos de memória de longo prazo (DCT)
Um dos problemas do RNS é que os primeiros modelos eram muito difíceis de treinar, mais complicados do que o GNS. O motivo foram os problemas do gradiente instável, que discutimos no Capítulo 5. Lembre-se de que a manifestação usual desse problema era que o gradiente diminui o tempo todo ao se propagar pelas camadas na direção oposta. Isso diminui bastante o aprendizado das camadas iniciais. No RNS, esse problema se torna ainda pior, pois os gradientes se propagam não apenas na direção oposta ao longo das camadas, mas também na direção oposta no tempo. Se a rede funcionar por um longo período, o gradiente pode se tornar extremamente instável e, com base nisso, será muito difícil de aprender. Felizmente, uma ideia conhecida como módulos de memória de curto prazo (DCT) de longo prazo pode ser incluída no RNS . Pela primeira vez, os módulos introduzidosHochreiter e Schmidguber em 1997 , especificamente para ajudar a resolver o problema de um gradiente instável. Os DCTs facilitam a obtenção de bons resultados na aprendizagem do RNS, e muitos trabalhos recentes (incluindo aqueles que eu já referenciei) usam o DCT ou idéias semelhantes.Redes de confiança profunda, modelos generativos e máquinas Boltzmann
Atualmente, o interesse pela aprendizagem profunda ganhou um segundo fôlego em 2006, após a publicação de trabalhos ( 1 , 2 ) explicando como ensinar um tipo especial de NS chamado deep trust network (GDS). A GDS por vários anos influenciou o campo de pesquisa, mas sua popularidade começou a declinar e as redes de distribuição direta e os SNs recorrentes tornaram-se moda. Apesar disso, algumas das propriedades do GDS os tornam muito interessantes.Primeiro, os GDSs são um exemplo de modelo generativo. Em uma rede de distribuição direta, especificamos ativações de entrada e elas determinam a ativação de neurônios de características mais adiante na rede. O modelo generativo pode ser usado de maneira semelhante, mas você pode definir os valores dos neurônios e executar a rede "na direção oposta", gerando os valores das ativações de entrada. Mais especificamente, um GDS treinado em imagens de dígitos manuscritos pode gerar imagens semelhantes a dígitos manuscritos (potencialmente e após determinadas ações). Em outras palavras, o GDM, em certo sentido, pode aprender a escrever. Nesse sentido, os modelos generativos são semelhantes ao cérebro humano: eles não podem apenas ler números, mas também escrevê-los. O famoso ditado de Jeffrey Hintonafirma que, para o reconhecimento de padrões, você primeiro precisa aprender a gerar imagens.Em segundo lugar, eles são capazes de aprender sem um professor e quase sem um professor. Por exemplo, ao treinar imagens, os GDSs podem aprender sinais úteis para entender outras imagens, mesmo se não houver marcas nas imagens de treinamento. A capacidade de aprender sem um professor é extremamente interessante, tanto do ponto de vista científico fundamental quanto do prático - se for possível que funcione bem o suficiente.Dados todos esses pontos atraentes do GDS como modelos de aprendizado profundo, por que sua popularidade diminuiu? Em parte devido ao fato de outros modelos, como distribuição direta e redes recorrentes, terem alcançado resultados impressionantes, em particular, avanços nas áreas de reconhecimento de imagem e fala. Não é de surpreender que esses modelos tenham recebido tanta atenção e muito merecido. No entanto, uma conclusão desagradável segue disso. O mercado de idéias geralmente funciona de acordo com o esquema “o vencedor ganha tudo” e quase toda a atenção está voltada para o que há de mais moderno nesta área agora. Pode ser extremamente difícil para as pessoas trabalharem em idéias atualmente impopulares, mesmo que seja óbvio que elas possam ser de interesse a longo prazo. Minha opinião pessoal é que o GDS e outros modelos generativos merecem mais atenção do que recebem.Não ficarei surpreso se o GDM ou modelo similar superar os modelos populares de hoje. Lereste artigo é para introdução ao campo do GDM. Este artigo também pode ser útil . Não se trata inteiramente do GDM, mas tem muitas coisas úteis sobre as máquinas limitadas da Boltzmann, um componente essencial do GDM.Outras ideias
O que mais está acontecendo no campo da Assembléia Nacional e da Defesa Civil? Uma enorme quantidade de trabalho interessante. Entre as áreas ativas de pesquisa está o uso do NS para
processar linguagem natural,
tradução automática e aplicações mais inesperadas, por exemplo,
informática musical . Existem muitas outras áreas. Em muitos casos, depois de ler este livro, você será capaz de entender trabalhos recentes, embora, é claro, seja necessário preencher algumas lacunas de conhecimento.
Terminarei esta seção mencionando um trabalho particularmente interessante. Ela combina redes convolucionais profundas com uma técnica chamada
aprendizado por reforço para
aprender a jogar videogame (e
outro artigo sobre isso). A idéia é usar uma rede convolucional para simplificar os dados de pixel da tela do jogo, transformá-los em um conjunto mais simples de atributos que podem ser usados para tomar decisões sobre outras ações: "vá para a esquerda", "vá para a direita", "atire" e etc. Particularmente interessante é que uma rede aprendeu muito bem a jogar sete videogames clássicos diferentes, à frente dos especialistas em três deles. Isso, é claro, parece um truque, e o trabalho foi anunciado ativamente sob o título "Jogando jogos da Atari com aprendizado por reforço". No entanto, por trás de um brilho superficial, vale a pena considerar o fato de que o sistema usa dados brutos de pixel - ele nem conhece as regras do jogo - e, com base nisso, é treinado para tomar decisões de boa qualidade em várias situações muito diferentes e muito competitivas, cada uma com seu próprio conjunto complexo de regras. Muito bom.
O futuro das redes neurais
Interfaces de intenção do usuário
Numa piada antiga, um professor impaciente diz a um aluno confuso: "Não ouça minhas palavras, ouça o que quero dizer". Historicamente, os computadores geralmente não entendiam, como um aluno confuso, o que um usuário significa. No entanto, a situação está mudando. Ainda me lembro da primeira vez que fiquei surpreso ao escrever um pedido por engano ao Google, e o mecanismo de pesquisa me disse: "Você quis dizer [pedido correto]?" O diretor do Google, Larry Page,
certa vez descreveu o mecanismo de pesquisa perfeito como um sistema que entende exatamente o que suas consultas significam e fornece exatamente o que você deseja.
Essa é a idéia de uma interface baseada na intenção do usuário. Nele, em vez de responder a solicitações literais do usuário, o mecanismo de pesquisa usará o MO para atender a uma vaga solicitação do usuário, entender exatamente o que isso significa e agir com base nisso.
A idéia de uma interface baseada na intenção do usuário pode ser aplicada mais amplamente do que apenas na pesquisa. Nas próximas décadas, milhares de empresas criarão produtos nos quais o MO será usado para interfaces do usuário, referindo-se com calma a ações imprecisas do usuário e adivinhando suas verdadeiras intenções. Já vimos exemplos iniciais dessas interfaces baseadas em intenção: Apple Siri; Wolfram Alpha; IBM Watson sistemas que marcam automaticamente fotos e vídeos e muito mais.
A maioria deles irá falhar. O desenvolvimento de interfaces é uma coisa complicada e suspeito que, em vez de interfaces inspiradoras, muitas empresas criarão interfaces sem vida com base no MO. O melhor MO do mundo não o ajudará se sua interface for ruim. No entanto, alguns produtos terão sucesso. Com o tempo, isso levará a uma mudança séria no nosso relacionamento com os computadores. Há pouco tempo, por exemplo, em 2005, os usuários tinham como certo que interagir com computadores requer alta precisão. A natureza literal do computador serviu para espalhar a ideia de que os computadores são muito literais; o único ponto e vírgula esquecido poderia mudar completamente a natureza da interação com o computador. Mas acredito que nas próximas décadas desenvolveremos várias interfaces de sucesso com base na intenção do usuário, e isso mudará radicalmente nossas expectativas ao trabalhar com computadores.
Aprendizado de máquina, ciência de dados e o círculo imaculado de inovação
Obviamente, o MO não é usado apenas para criar interfaces com base na intenção do usuário. Outra aplicação interessante do MO é a ciência de dados, onde é usado para procurar "desconhecidos conhecidos" ocultos nos dados obtidos. Esse já é um tópico da moda, sobre o qual muitos artigos foram escritos; portanto, não estenderei isso por muito tempo. Quero mencionar uma conseqüência dessa moda, que nem sempre é notada: a longo prazo, é possível que a maior inovação na região de Moscou não seja apenas uma inovação conceitual. O maior avanço será que a pesquisa no campo da MO se tornará lucrativa através do uso de dados na ciência e em outras áreas. Se uma empresa puder investir um dólar na pesquisa de MO e obter rapidamente um dólar e dez centavos de receita, muito dinheiro será despejado na região do MO. Em outras palavras, MO é o mecanismo que nos leva ao surgimento de vários grandes mercados e áreas de crescimento tecnológico. Como resultado, aparecerão grandes equipes de pessoas especialistas neste campo que terão acesso a recursos incríveis. Isso moverá ainda mais o MO, criará ainda mais mercados e oportunidades, que serão o círculo imaculado de inovação.
O papel das redes neurais e da aprendizagem profunda
Descrevi o MO em termos gerais como uma maneira de criar novas oportunidades para o desenvolvimento de tecnologia. Qual será o papel específico da Assembléia Nacional e da Sociedade Civil em tudo isso?
Para responder à pergunta, é útil recorrer à história. Na década de 1980, houve um alegre reavivamento ativo e otimismo associado às redes neurais, especialmente após a popularização da propagação traseira. Mas a recuperação diminuiu e, nos anos 90, o bastão MO foi transferido para outras tecnologias, por exemplo, o método do vetor de suporte. Hoje, a Assembléia Nacional está novamente a cavalo, estabelecendo todos os tipos de recordes e superando muitos rivais em vários problemas. Mas quem garante que amanhã não será desenvolvida uma nova abordagem que ofusque novamente a NA? Ou, talvez, o progresso no campo da Assembléia Nacional comece a parar e nada os substitua?
Portanto, é muito mais fácil pensar no futuro do Ministério da Defesa como um todo do que especificamente na Assembléia Nacional. Parte do problema é que compreendemos muito mal a Assembléia Nacional. Por que o NS é tão bom em compilar informações? Como eles evitam a reciclagem tão bem, dado o grande número de opções? Por que a descida do gradiente estocástico funciona tão bem? Quão bem o NS funcionará ao dimensionar conjuntos de dados? Por exemplo, se expandirmos a base do ImageNet 10 vezes, o desempenho do NS melhorará mais ou menos que a eficácia de outras tecnologias MO? Todas essas são questões simples e fundamentais. E até agora temos uma compreensão muito pobre das respostas a essas perguntas. Nesse sentido, é difícil dizer qual o papel da Assembléia Nacional no futuro da região de Moscou.
Farei uma previsão: acho que o GO não vai a lugar nenhum. A capacidade de estudar hierarquias de conceitos, de construir diferentes camadas de abstrações, aparentemente, é fundamental para o conhecimento do mundo. Isso não significa que as redes GO de amanhã não serão radicalmente diferentes das de hoje. Podemos encontrar grandes mudanças em suas partes constituintes, arquiteturas ou algoritmos de aprendizado. Essas mudanças podem ser dramáticas o suficiente para pararmos de considerar os sistemas resultantes como redes neurais. No entanto, eles ainda se envolverão em defesa civil.
NS e GO logo levarão ao surgimento de inteligência artificial?
Neste livro, focamos no uso do NS na solução de problemas específicos, por exemplo, classificação de imagens. Vamos expandir nossas consultas: e os computadores pensantes de uso geral? A Assembléia Nacional e a Sociedade Civil podem nos ajudar a resolver o problema de criar uma IA de uso geral? E se sim, dada a alta velocidade do progresso no campo da defesa civil, veremos o surgimento da IA no futuro próximo?
Uma resposta detalhada a essa pergunta exigiria um livro separado. Em vez disso, deixe-me oferecer uma observação com base na
lei de Conway :
As organizações que projetam sistemas são limitadas a um design que copia a estrutura de comunicação desta organização.
Ou seja, por exemplo, a lei de Conway afirma que o layout da aeronave Boeing 747 refletirá a estrutura expandida da Boeing e de seus contratados no momento em que o modelo 747 estava sendo desenvolvido. Ou outro exemplo simples e concreto: considere uma empresa desenvolvendo software complexo. Se o painel de controle do software deve ser conectado ao algoritmo MO, o designer do painel deve se comunicar com o especialista em MO da empresa. A lei de Conway simplesmente formaliza essa observação.
Pela primeira vez, quando ouviram a lei de Conway, muitas pessoas dizem: "Isso não é uma evidência comum?" Ou "É mesmo?" Começarei com uma observação sobre sua infidelidade. Vamos pensar: como a contabilidade da Boeing se reflete no modelo 747? E o departamento de limpeza? Uma equipe de alimentação? A resposta é que essas partes da organização provavelmente não aparecem em nenhum outro lugar do Esquema 747 explicitamente. Portanto, você precisa entender que a lei de Conway se aplica apenas às partes da organização que estão diretamente envolvidas em design e engenharia.
E a observação sobre banalidade e evidência? Talvez seja assim, mas acho que não, porque as organizações geralmente trabalham para rejeitar a lei de Conway. As equipes que desenvolvem novos produtos geralmente são infladas devido ao número excessivo de funcionários ou, inversamente, à falta de uma pessoa com conhecimento crítico. Pense em todos os produtos com recursos inúteis e complicados. Ou pense em produtos com falhas óbvias - por exemplo, com uma interface de usuário terrível. Nas duas classes de programas, os problemas geralmente surgem devido a uma incompatibilidade entre a equipe necessária para lançar um bom produto e a equipe que realmente se reuniu. A lei de Conway pode ser óbvia, mas isso não significa que as pessoas não possam ignorá-la regularmente.
A lei de Conway é aplicável ao design e criação de sistemas nos casos em que, desde o início, imaginamos em que partes constituintes o produto será composto e como fazê-lo. Ela não pode ser aplicada diretamente ao desenvolvimento da IA, uma vez que a IA ainda não é uma tarefa: não sabemos em que partes ela consiste. Não temos certeza do que perguntas básicas você pode fazer. Em outras palavras, no momento, a IA é mais um problema da ciência do que engenheiros. Imagine que você precisa começar a desenvolver o 747º sem saber nada sobre motores a jato ou os princípios da aerodinâmica. Você não saberia quais especialistas contratar em sua organização. Como escreveu Werner von Braun, "pesquisa básica é o que estou fazendo quando não sei o que estou fazendo". Existe uma versão da lei de Conway que se aplica a tarefas mais relacionadas à ciência do que engenheiros?
Para encontrar a resposta para essa pergunta, vamos relembrar a história da medicina. Nos primeiros dias, a medicina era o domínio de praticantes, como
Galeno ou
Hipócrates , que estudavam todo o corpo humano. Mas com o crescimento do volume de nosso conhecimento, tive que me especializar. Descobrimos muitas idéias profundas - lembre-se da teoria microbiana das doenças, ou compreenda o princípio da operação de anticorpos, ou o fato de que o coração, pulmões, veias e artérias formam o sistema cardiovascular. Tais idéias profundas formaram a base para disciplinas mais restritas, como epidemiologia, imunologia e o acúmulo de áreas sobrepostas relacionadas ao sistema cardiovascular. Foi assim que a estrutura do nosso conhecimento formou a estrutura social da medicina. Isso é especialmente notável no caso da imunologia: a idéia da existência de um sistema imunológico digno de um estudo separado era muito trivial. Portanto, temos todo um campo da medicina - com especialistas, conferências, prêmios etc. - organizados em torno de algo que não é apenas invisível, mas talvez nem mesmo separado.
Esse desenvolvimento de eventos foi repetido com frequência em muitas disciplinas científicas estabelecidas: não apenas na medicina, mas também na física, matemática, química e outras. As regiões nascem monolíticas, tendo apenas algumas idéias profundas em estoque. Os primeiros especialistas são capazes de cobrir todos eles. Mas com o tempo, a solidez muda. Descobrimos muitas novas idéias profundas, e há muitas delas para que alguém possa realmente dominar todas elas. Como resultado, a estrutura social da região está sendo reorganizada e dividida, concentrando-se em torno dessas idéias. Em vez de um monólito, temos campos divididos por campos divididos por campos - uma estrutura social complexa e recursiva que se refere a si mesma, cuja organização reflete as conexões entre as idéias mais profundas. É assim que a estrutura do nosso conhecimento forma a organização social da ciência. No entanto, essa forma social, por sua vez, limita e ajuda a determinar o que podemos detectar. Este é o análogo científico da lei de Conway.
Mas o que tudo isso tem a ver com aprendizado profundo ou IA?
Bem, desde os primeiros dias do desenvolvimento da IA
, houve um debate de que tudo será "não muito complicado, graças à nossa super arma", ou "super arma não será suficiente". O aprendizado profundo é o exemplo mais recente de uma super arma que foi usada nas disputas que eu já vi. Nas primeiras versões de tais disputas, a lógica era usada, ou Prolog, ou sistemas especializados, ou alguma outra tecnologia, que era a mais poderosa. O problema com essas disputas é que elas não oferecem a oportunidade de dizer exatamente o quão poderoso será qualquer um dos candidatos a super armas. Obviamente, passamos um capítulo inteiro revisando evidências de que a defesa civil pode resolver problemas extremamente complexos. Definitivamente, parece muito interessante e promissor. Mas esse foi o caso de sistemas como Prolog, Eurisko ou sistemas especialistas. Portanto, apenas o fato de um conjunto de idéias parecer promissor não significa nada de especial. Como sabemos que o GO é realmente diferente dessas idéias iniciais? Existe uma maneira de medir o quão poderoso e promissor é um conjunto de idéias? Segue-se da lei de Conway que podemos usar a complexidade da estrutura social associada a essas idéias como uma métrica bruta e heurística.
Portanto, temos duas perguntas. Primeiro, quão poderoso é o conjunto de idéias relacionadas à sociedade civil de acordo com essa métrica de complexidade social? Em segundo lugar, quão poderosa é uma teoria para criar uma IA de uso geral?
Sobre a primeira pergunta: quando olhamos para a defesa civil hoje, esse campo parece interessante e em rápido desenvolvimento, mas relativamente monolítico. Tem várias idéias profundas e várias grandes conferências são realizadas, algumas das quais se sobrepõem muito. O trabalho no trabalho utiliza o mesmo conjunto de idéias: descida estocástica do gradiente (ou seu equivalente próximo) para otimizar a função de custo. É ótimo que essas idéias tenham tanto sucesso. O que não estamos observando até agora é um grande número de áreas menores bem desenvolvidas, cada uma das quais exploraria seu próprio conjunto de idéias profundas, que moveria a sociedade civil em várias direções. Portanto, de acordo com a métrica de complexidade social, aprendizado profundo, sinto muito pelo trocadilho, enquanto continua sendo uma área de pesquisa muito superficial. Uma pessoa ainda é capaz de dominar a maioria das idéias profundas dessa área.
Na segunda pergunta: quanto será necessário um conjunto de idéias complexo e poderoso para criar a IA? Naturalmente, a resposta será: ninguém sabe ao certo. Mas no posfácio do livro, estudei algumas das evidências existentes sobre esse assunto. Concluí que, mesmo de acordo com estimativas otimistas, a criação da IA exigirá muitas, muitas idéias profundas. De acordo com a lei de Conway, para chegar a esse ponto, precisamos ver o surgimento de muitas disciplinas inter-relacionadas, com uma estrutura complexa e inesperada que reflete a estrutura de nossas idéias mais profundas. Ainda não observamos uma estrutura social tão complexa ao usar o NS e a defesa civil. Portanto, acredito que, pelo menos, estamos a várias décadas de usar o GO para desenvolver IA de uso geral.
Dediquei muito esforço à criação de um argumento especulativo, o que, talvez, parece bastante óbvio e não leva a uma certa conclusão. Isso certamente decepcionará as pessoas que amam a certeza. Conheço muitas pessoas on-line que anunciam publicamente suas opiniões muito definidas e confiantes sobre a IA, geralmente baseadas em argumentos instáveis e evidências inexistentes. Posso dizer honestamente: acho que é muito cedo para julgar. Como na velha piada: se você perguntar a um cientista quanto mais precisamos esperar por qualquer descoberta, e ele disser “10 anos” (ou mais), então, na verdade, ele quer dizer “não faço ideia”. Antes do advento da IA, como no caso da fusão nuclear controlada e de algumas outras tecnologias, “10 anos” permaneceram por mais de 60 anos. Por outro lado, o que definitivamente temos no campo da defesa civil é uma tecnologia eficaz, cujos limites ainda não descobrimos e muitas tarefas fundamentais abertas. E abre incríveis oportunidades criativas.