A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Lançado recentemente artigo, o que mostra uma boa tendência no aprendizado de máquina nos últimos anos. Resumindo: o número de startups de aprendizado de máquina despencou nos últimos dois anos.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?
Bem. Vejamos “se a bolha estourou”, “como continuar a viver” e falemos sobre de onde vem esse rabisco em primeiro lugar.

Primeiramente, vamos falar sobre qual foi o impulsionador dessa curva. De onde ela veio? Eles provavelmente vão se lembrar de tudo vitória aprendizado de máquina em 2012 na competição ImageNet. Afinal, este é o primeiro evento global! Mas na realidade este não é o caso. E o crescimento da curva começa um pouco mais cedo. Eu dividiria isso em vários pontos.

  1. O ano de 2008 viu o surgimento do termo “big data”. Produtos reais começaram aparecer desde 2010. Big data está diretamente relacionado ao aprendizado de máquina. Sem big data, a operação estável dos algoritmos que existiam naquela época é impossível. E estas não são redes neurais. Até 2012, as redes neurais eram reservadas a uma minoria marginal. Mas então começaram a funcionar algoritmos completamente diferentes, que já existiam há anos, ou mesmo décadas: SVM(1963,1993), Floresta Aleatória (1995) AdaBoostGenericName (2003),... As startups daqueles anos estão principalmente associadas ao processamento automático de dados estruturados: caixas registradoras, usuários, publicidade e muito mais.

    Um derivado desta primeira onda é um conjunto de frameworks como XGBoost, CatBoost, LightGBM, etc.

  2. Em 2011-2012 redes neurais convolucionais ganhou uma série de competições de reconhecimento de imagem. A sua utilização efectiva foi um pouco atrasada. Eu diria que startups e soluções extremamente significativas começaram a aparecer em 2014. Demorou dois anos para digerir que os neurônios ainda funcionam, para criar estruturas convenientes que pudessem ser instaladas e lançadas em um tempo razoável, para desenvolver métodos que estabilizassem e acelerassem o tempo de convergência.

    As redes convolucionais permitiram resolver problemas de visão computacional: classificação de imagens e objetos na imagem, detecção de objetos, reconhecimento de objetos e pessoas, melhoria de imagens, etc., etc.

  3. 2015-2017. O boom de algoritmos e projetos baseados em redes recorrentes ou seus análogos (LSTM, GRU, TransformerNet, etc.). Surgiram algoritmos de fala para texto e sistemas de tradução automática que funcionam bem. Eles são parcialmente baseados em redes convolucionais para extrair características básicas. Em parte devido ao fato de termos aprendido a coletar conjuntos de dados realmente grandes e bons.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

“A bolha estourou? O hype está superaquecido? Eles morreram como um blockchain?”
De outra forma! Amanhã o Siri deixará de funcionar no seu telefone, e depois de amanhã o Tesla não saberá a diferença entre uma curva e um canguru.

As redes neurais já estão funcionando. Eles estão em dezenas de dispositivos. Eles realmente permitem que você ganhe dinheiro, mude o mercado e o mundo ao seu redor. Hype parece um pouco diferente:

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Acontece que as redes neurais não são mais algo novo. Sim, muitas pessoas têm grandes expectativas. Mas um grande número de empresas aprendeu a usar neurônios e a fabricar produtos baseados neles. Os neurônios fornecem novas funcionalidades, permitem cortar empregos e reduzir o preço dos serviços:

  • As empresas de manufatura estão integrando algoritmos para analisar defeitos na linha de produção.
  • As explorações pecuárias compram sistemas para controlar as vacas.
  • Combinadoras automáticas.
  • Centrais de atendimento automatizadas.
  • Filtros no SnapChat. (bem, pelo menos algo útil!)

Mas o principal, e não o mais óbvio: “Não há mais ideias novas, ou não trarão capital instantâneo”. As redes neurais resolveram dezenas de problemas. E eles decidirão ainda mais. Todas as ideias óbvias que existiam deram origem a muitas startups. Mas tudo o que estava na superfície já havia sido recolhido. Nos últimos dois anos, não encontrei nenhuma ideia nova para o uso de redes neurais. Nem uma única abordagem nova (bem, ok, existem alguns problemas com GANs).

E cada inicialização subsequente é cada vez mais complexa. Não são mais necessários dois caras que treinem um neurônio usando dados abertos. Requer programadores, um servidor, uma equipe de marcadores, suporte complexo, etc.

Como resultado, há menos startups. Mas há mais produção. Precisa adicionar reconhecimento de placas? Existem centenas de especialistas com experiência relevante no mercado. Você pode contratar alguém e em alguns meses seu funcionário fará o sistema. Ou compre pronto. Mas fazer uma nova startup?.. Loucura!

Você precisa criar um sistema de rastreamento de visitantes - por que pagar por um monte de licenças quando você pode criar o seu próprio em 3-4 meses e aprimorá-lo para o seu negócio.

Agora as redes neurais estão percorrendo o mesmo caminho que dezenas de outras tecnologias percorreram.

Você se lembra de como o conceito de “desenvolvedor de sites” mudou desde 1995? O mercado ainda não está saturado de especialistas. São poucos profissionais. Mas posso apostar que em 5 a 10 anos não haverá muita diferença entre um programador Java e um desenvolvedor de redes neurais. Haverá especialistas suficientes no mercado.

Haverá simplesmente uma classe de problemas que podem ser resolvidos pelos neurônios. Surgiu uma tarefa - contratar um especialista.

"Qual é o próximo? Onde está a prometida inteligência artificial?”

Mas aqui há um pequeno mas interessante mal-entendido :)

A pilha de tecnologia que existe hoje, aparentemente, não nos levará à inteligência artificial. As ideias e a sua novidade esgotaram-se em grande parte. Vamos falar sobre o que sustenta o atual nível de desenvolvimento.

Restrições

Vamos começar com carros autônomos. Parece claro que é possível fabricar carros totalmente autônomos com a tecnologia atual. Mas em quantos anos isso acontecerá não está claro. Tesla acredita que isso acontecerá dentro de alguns anos -


Existem muitos outros especialistas, que estimam que seja de 5 a 10 anos.

Muito provavelmente, na minha opinião, dentro de 15 anos a própria infra-estrutura das cidades mudará de tal forma que o surgimento de carros autónomos se tornará inevitável e se tornará a sua continuação. Mas isso não pode ser considerado inteligência. O Tesla moderno é um pipeline muito complexo para filtragem, pesquisa e retreinamento de dados. Estas são regras-regras-regras, coleta de dados e filtros sobre eles (aqui aqui Escrevi um pouco mais sobre isso, ou assista em este marcas).

Primeiro problema

E é aqui que vemos primeiro problema fundamental. Grandes dados. Foi exatamente isso que deu origem à atual onda de redes neurais e aprendizado de máquina. Hoje em dia, para fazer algo complexo e automático, são necessários muitos dados. Não apenas muito, mas muito, muito mesmo. Precisamos de algoritmos automatizados para sua coleta, marcação e uso. Queremos fazer com que o carro veja os caminhões voltados para o sol - primeiro precisamos coletar um número suficiente deles. Queremos que o carro não enlouqueça com uma bicicleta aparafusada no porta-malas - mais amostras.

Além disso, um exemplo não é suficiente. Centenas? Milhares?

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Segundo problema

Segundo problema — visualização do que nossa rede neural entendeu. Esta é uma tarefa nada trivial. Até agora, poucas pessoas entendem como visualizar isso. Esses artigos são muito recentes, são apenas alguns exemplos, mesmo que distantes:
Visualização obsessão por texturas. Mostra bem em que o neurônio tende a se fixar + o que ele percebe como informação inicial.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?
Visualização Atenção em traduções. Na verdade, a atração muitas vezes pode ser usada precisamente para mostrar o que causou tal reação na rede. Já vi essas coisas tanto para depuração quanto para soluções de produtos. Existem muitos artigos sobre este assunto. Porém, quanto mais complexos os dados, mais difícil será compreender como obter uma visualização robusta.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Bem, sim, o bom e velho conjunto de “veja o que está dentro da malha em filtros" Essas fotos eram populares há 3-4 anos, mas todos rapidamente perceberam que as fotos eram lindas, mas não tinham muito significado.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Não mencionei dezenas de outros gadgets, métodos, hacks, pesquisas sobre como exibir o interior da rede. Essas ferramentas funcionam? Eles ajudam você a entender rapidamente qual é o problema e depurar a rede?.. Obter a última porcentagem? Bem, é quase a mesma coisa:

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Você pode assistir a qualquer competição no Kaggle. E uma descrição de como as pessoas tomam decisões finais. Empilhamos 100-500-800 unidades de modelos e funcionou!

Estou exagerando, é claro. Mas estas abordagens não fornecem respostas rápidas e diretas.

Tendo experiência suficiente e examinando diferentes opções, você pode dar um veredicto sobre por que seu sistema tomou tal decisão. Mas será difícil corrigir o comportamento do sistema. Instale uma muleta, mova o limite, adicione um conjunto de dados, pegue outra rede de back-end.

Terceiro problema

Terceiro Problema Fundamental — as grades ensinam estatística, não lógica. Estatisticamente isso face:

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Logicamente, não é muito semelhante. As redes neurais não aprendem nada complexo, a menos que sejam forçadas. Eles sempre ensinam os sinais mais simples possíveis. Você tem olhos, nariz, cabeça? Então essa é a cara! Ou dê um exemplo em que olhos não significam rosto. E novamente - milhões de exemplos.

Há muito espaço no fundo

Eu diria que são estes três problemas globais que limitam atualmente o desenvolvimento de redes neurais e de aprendizagem automática. E onde esses problemas não o limitaram, já é usado ativamente.

Este é o fim? As redes neurais estão funcionando?

Desconhecido. Mas, claro, todos esperam que não.

Existem muitas abordagens e orientações para resolver os problemas fundamentais que destaquei acima. Mas até agora nenhuma destas abordagens tornou possível fazer algo fundamentalmente novo, resolver algo que ainda não foi resolvido. Até agora, todos os projetos fundamentais estão sendo realizados com base em abordagens estáveis ​​(Tesla), ou permanecem projetos de teste de institutos ou corporações (Google Brain, OpenAI).

Grosso modo, a direção principal é criar alguma representação de alto nível dos dados de entrada. Em certo sentido, “memória”. O exemplo mais simples de memória são várias “incorporações” - representações de imagens. Bem, por exemplo, todos os sistemas de reconhecimento facial. A rede aprende a obter de uma face alguma representação estável que não dependa de rotação, iluminação ou resolução. Essencialmente, a rede minimiza a métrica “rostos diferentes estão distantes” e “rostos idênticos estão próximos”.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Para tal treinamento, são necessárias dezenas e centenas de milhares de exemplos. Mas o resultado traz alguns dos rudimentos do “One-shot Learning”. Agora não precisamos de centenas de rostos para lembrar de uma pessoa. Apenas um rosto e isso é tudo que somos vamos descobrir!
Só há um problema... A grade só pode aprender objetos bastante simples. Ao tentar distinguir não rostos, mas, por exemplo, “pessoas pelas roupas” (tarefa Reidentificação) - a qualidade cai em muitas ordens de magnitude. E a rede não consegue mais aprender mudanças bastante óbvias nos ângulos.

E aprender com milhões de exemplos também é divertido.

Há trabalho para reduzir significativamente as eleições. Por exemplo, podemos recordar imediatamente um dos primeiros trabalhos sobre Aprendizagem OneShot do google:

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Existem muitos desses trabalhos, por exemplo 1 ou 2 ou 3.

Há apenas uma desvantagem - geralmente o treinamento funciona bem em alguns exemplos simples, “MNIST”. E ao passar para tarefas complexas, você precisa de um grande banco de dados, um modelo de objetos ou algum tipo de mágica.
Em geral, trabalhar no treinamento One-Shot é um tema muito interessante. Você encontra muitas ideias. Mas, na maioria das vezes, os dois problemas que listei (pré-treinamento em um conjunto de dados enorme/instabilidade em dados complexos) interferem muito no aprendizado.

Por outro lado, GANs – redes adversárias geradoras – abordam o tema da incorporação. Você provavelmente já leu vários artigos sobre Habré sobre esse assunto. (1, 2,3)
Uma característica do GAN é a formação de algum espaço de estado interno (essencialmente o mesmo Embedding), que permite desenhar uma imagem. Pode ser faces, pode ser atividade.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

O problema com o GAN é que quanto mais complexo o objeto gerado, mais difícil é descrevê-lo na lógica “gerador-discriminador”. Como resultado, as únicas aplicações reais de GAN de que se fala são DeepFake, que, novamente, manipula representações faciais (para as quais existe uma base enorme).

Tenho visto muito poucos outros usos úteis. Geralmente algum tipo de truque envolvendo acabamento de desenhos de fotos.

E de novo. Ninguém tem ideia de como isso nos permitirá avançar para um futuro melhor. Representar lógica/espaço em uma rede neural é bom. Mas precisamos de um grande número de exemplos, não entendemos como o neurônio representa isso em si, não entendemos como fazer o neurônio lembrar de alguma ideia realmente complexa.

Aprendizagem de reforço - esta é uma abordagem de uma direção completamente diferente. Certamente você se lembra de como o Google venceu todos no Go. Vitórias recentes em Starcraft e Dota. Mas aqui tudo está longe de ser tão otimista e promissor. Ele fala melhor sobre RL e suas complexidades este artigo.

Para resumir brevemente o que o autor escreveu:

  • Os modelos prontos para uso não cabem/funcionam mal na maioria dos casos
  • Problemas práticos são mais fáceis de resolver de outras maneiras. Boston Dynamics não usa RL devido à sua complexidade/imprevisibilidade/complexidade computacional
  • Para que RL funcione, você precisa de uma função complexa. Muitas vezes é difícil criar/escrever
  • Difícil treinar modelos. Você tem que gastar muito tempo para se animar e sair dos ótimos locais
  • Como resultado, é difícil repetir o modelo, o modelo fica instável às menores alterações
  • Muitas vezes superajusta alguns padrões aleatórios, até mesmo um gerador de números aleatórios

O ponto chave é que a RL ainda não trabalha em produção. O Google tem alguns experimentos ( 1, 2 ). Mas não vi um único sistema de produto.

Memória. A desvantagem de tudo descrito acima é a falta de estrutura. Uma das abordagens para tentar resolver tudo isso é fornecer à rede neural acesso à memória separada. Para que ela possa registrar e reescrever os resultados de seus passos ali. Então a rede neural pode ser determinada pelo estado atual da memória. Isso é muito semelhante aos processadores e computadores clássicos.

O mais famoso e popular artigo - da DeepMind:

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Parece que esta é a chave para compreender a inteligência? Mas provavelmente não. O sistema ainda requer uma enorme quantidade de dados para treinamento. E funciona principalmente com dados tabulares estruturados. Além disso, quando o Facebook decidido um problema semelhante, então eles seguiram o caminho “dane-se a memória, apenas torne o neurônio mais complicado e tenha mais exemplos - e ele aprenderá por conta própria”.

Desembaraçar. Outra maneira de criar uma memória significativa é usar os mesmos incorporados, mas durante o treinamento, introduzir critérios adicionais que permitiriam destacar “significados” neles. Por exemplo, queremos treinar uma rede neural para distinguir o comportamento humano em uma loja. Se seguíssemos o caminho padrão, teríamos que fazer uma dúzia de redes. Um procura uma pessoa, o segundo determina o que ela está fazendo, o terceiro é a sua idade, o quarto é o seu sexo. A lógica separada analisa a parte da loja onde ela faz/é treinada para fazer isso. O terceiro determina sua trajetória, etc.

Ou, se houvesse uma quantidade infinita de dados, então seria possível treinar uma rede para todos os resultados possíveis (obviamente, tal conjunto de dados não pode ser recolhido).

A abordagem de desemaranhamento nos diz: vamos treinar a rede para que ela mesma possa distinguir entre conceitos. Para que formasse uma incorporação baseada no vídeo, onde uma área determinaria a ação, uma determinaria a posição no chão no tempo, uma determinaria a altura da pessoa e uma determinaria o sexo da pessoa. Ao mesmo tempo, durante o treinamento, gostaria quase não de alertar a rede com esses conceitos-chave, mas sim que ela destacasse e agrupasse áreas. Existem alguns artigos desse tipo (alguns deles 1, 2, 3) e em geral são bastante teóricos.

Mas essa direção, pelo menos teoricamente, deveria abranger os problemas listados no início.

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Decomposição da imagem de acordo com os parâmetros “cor da parede/cor do piso/forma do objeto/cor do objeto/etc.”

A bolha do aprendizado de máquina estourou ou é o começo de um novo amanhecer?

Decomposição de um rosto de acordo com os parâmetros “tamanho, sobrancelhas, orientação, cor da pele, etc.”

outro

Existem muitas outras áreas, não tão globais, que permitem reduzir de alguma forma o banco de dados, trabalhar com dados mais heterogêneos, etc.

Atenção. Provavelmente não faz sentido separar isso como um método separado. Apenas uma abordagem que aprimora outras. Muitos artigos são dedicados a ele (1,2,3). O ponto de atenção é melhorar a resposta da rede especificamente a objetos significativos durante o treinamento. Freqüentemente, por algum tipo de designação de alvo externo ou por uma pequena rede externa.

Simulação 3D. Se você criar um bom mecanismo 3D, muitas vezes poderá cobrir 90% dos dados de treinamento com ele (até vi um exemplo em que quase 99% dos dados foram cobertos por um bom mecanismo). Existem muitas idéias e truques sobre como fazer uma rede treinada em um mecanismo 3D funcionar usando dados reais (ajuste fino, transferência de estilo, etc.). Mas muitas vezes fazer um bom motor é muito mais difícil do que coletar dados. Exemplos de quando os motores foram fabricados:
Treinamento de robô (google, jardim cerebral)
treinamento reconhecimento mercadorias na loja (mas nos dois projetos que fizemos, poderíamos facilmente passar sem elas).
Treinamento na Tesla (novamente, vídeo acima).

Descobertas

Todo o artigo é, em certo sentido, conclusões. Provavelmente a principal mensagem que eu queria transmitir era “os brindes acabaram, os neurônios não fornecem mais soluções simples”. Agora precisamos trabalhar duro para tomar decisões complexas. Ou trabalhe duro fazendo pesquisas científicas complexas.

Em geral, o tema é discutível. Talvez os leitores tenham exemplos mais interessantes?

Fonte: habr.com

Adicionar um comentário