Raciocínio superficial e geral sobre redes neurais

Em Habré, há um grande número de artigos sobre redes neurais, nos quais há uma figura de um neurônio em forma de círculo com setas entrantes, uma figura com linhas de neurônios e a fórmula obrigatória para a soma do produto de pesos e sinais. Esses artigos frequentemente provocam a indignação de um público respeitado por sua obviedade e semelhança com o aprendizado de como desenhar uma coruja. Neste artigo irei ainda mais longe - mesmo isso não estará aqui. Sem matemática, sem comparações com o cérebro. É improvável que você aprenda algo prático neste artigo, e há uma alta probabilidade de que todas as opções acima pareçam óbvias demais para você. O objetivo deste artigo é a pergunta: o que você pode fazer com a ajuda de redes neurais. Não o Yandex, nem o Google, nem o Facebook, mas você - com sua experiência de cinco anos como desenvolvedor web e laptop de três anos.

imagem

Nas redes neurais (doravante - NS) há muito barulho agora. Então eu decidi fazer algum produto baseado neles. E ele se perguntou: o que eu preciso para isso? E ele respondeu a si mesmo (sim, eu gosto de conversar com uma pessoa inteligente): são necessárias três coisas - conhecimento no campo das redes neurais, dados para treinamento e hardware para treinar uma rede neural. A propósito, já depois de ouvir como em muitos vídeos no youtube os palestrantes disseram que essas coisas são a razão do renascimento do NS: algoritmos aprimorados (conhecimento), disponibilidade de uma enorme quantidade de dados e recursos dos computadores modernos (hardware). Essa coincidência dos meus pensamentos e das palavras dos especialistas é encorajadora; portanto, discutirei mais sobre essas três coisas: dados, conhecimento e hardware.

Dados


A natureza e o tipo de dados dependem da área na qual você deseja aplicar o NS.
Os NSs modernos começaram a resolver tarefas difíceis, como reconhecimento de objetos em imagens, rostos, reconhecimento de fala, foram capazes de jogar videogames e ganharam.

Digressão lírica
É claro que, de muitas maneiras, esse hype e bolha em torno do NS é a influência da moda, viralidade, um nome romântico, analogias com o cérebro e o sonho de uma IA forte. De fato, você concorda que, se essas técnicas fossem chamadas de “Multiplicação de Matrizes e Otimização de Parâmetros pelo Método da Descida de Gradiente”, tudo isso pareceria menos impressionante e, talvez, não atrairia tanta atenção. Alguns argumentam que, inferno com ele, com o nome, não apenas por causa do nome que eles são tão populares, eles também causam um efeito uau - veja o que essas redes fazem, elas venceram! Bem, mas quando a IA ganhou o xadrez, poucas pessoas começaram a idolatrar a busca em profundidade e os jornalistas não escreveram que a estrela A dominaria o mundo, e os programadores não a estudaram em grandes quantidades.

A Assembléia Nacional, entre outras coisas, está envolta em um halo de mistério - ninguém entende exatamente como eles executam seu trabalho: um conjunto de funções não lineares, numerosas matrizes de peso, termos e fatores misteriosos - tudo isso parece um tanque de bruxa, onde ela lança todo tipo de raízes, asas de morcego e sangue de dragão. Mas voltando à questão do artigo.

Para treinar NA, são necessários muitos dados - centenas de milhares, milhões de exemplos. Você pode encontrar e baixar um monte desse tipo usando o Internet grabber feito por você? Eu acho que sim. Mas existem alguns problemas:

  1. Para treinar com um professor, os dados devem ser rotulados. Alguém deve marcar esses dados, atribuí-los a diferentes classes, fornecer uma estimativa numérica. Se inicialmente não for por algum motivo (por exemplo, você só tem áudio, mas não transcrições), isso exige um esforço enorme. É claro que há treinamento sem professor, com reforços e assim por diante, mas eles resolvem outros problemas (simplificados, não classificação e regressão (de fato, determinando o valor de uma função desconhecida), mas agrupando ou escolhendo as melhores ações). Em vista do volume limitado do artigo, não abordarei esta questão.

  2. Os dados devem ser distribuídos uniformemente, o que quer que isso signifique. Isso significa que se você tiver milhões de dados que contêm informações sobre bmw e dodge, mas quase nenhuma informação sobre Ford e Mazda, a Assembléia Nacional nunca será capaz de resumir adequadamente os dados, ainda pior, inflará os preços ou atrairá faróis redondos e olhar agressivo.

  3. Você precisa saber muito sobre a natureza dos dados para poder destacar recursos importantes e possivelmente impor algumas restrições ao NS. Sim, um NS multicamada é um aproximador universal de qualquer função contínua, mas ninguém disse que seria rápido. Por mais estranho que possa parecer, mas quanto mais restrições, mais rápido o NS poderá aprender. Por que o NS se tornou tão bom no processamento de imagens? Porque caras espertos colocam informações nas imagens na própria arquitetura dessas redes. Eles criaram uma classe separada de redes - redes convolucionais que coletam dados de um grupo de pixels, compactam a imagem de diferentes maneiras, realizam transformações matemáticas, cujo objetivo é neutralizar o efeito de mudanças, transformações e diferentes ângulos de câmera. Isso é adequado para outros tipos de dados? Dificilmente. É adequado para fotos em que os ângulos carregam informações importantes? Quem sabe

Conhecimento


Na Assembléia Nacional, existem muitos hiperparâmetros que afetam fortemente a velocidade do trabalho e a convergência em princípio. Você pode treinar novamente, ficar preso no máximo local, treinar por semanas e muito mais. Você obterá conhecimento de arquiteturas NS, princípios operacionais, você é um programador. Há um grande número de frameworks para aprendizado de máquina - theano, tensorflow e outros. Mas definir parâmetros como velocidade de aprendizado, escolher um momento, escolher uma regularização e seus parâmetros, escolher uma função de ativação e muito mais é um processo experimental que leva muito tempo. Devido à falta de uma estratégia precisa e à necessidade de configurar e selecionar manualmente parâmetros para cada tarefa, muitos chamam o processo de aprender a arte do NS.

Recursos


Você precisa processar milhões de exemplos várias vezes, um grande número de vezes: você deu exemplos, o NS ajustou um pouco os pesos, você deu os mesmos exemplos novamente, o NS ajustou os pesos novamente - e há tantas "eras". Se você usar a validação cruzada, também fornecerá os dados para diferentes partições nas amostras de treinamento e validação para que o NS não treine novamente nos mesmos dados.

Quanto recursos você pode pagar? Queria comprar um computador de ponta baseado no Kaby Lake 7700K (ou Razen 1800X) com duas placas gráficas NVidia GTX 1080 trabalhando juntas usando o SLI. E a ideia de que seu desempenho era igual ao desempenho dos supercomputadores de uma década atrás da lista do Top500 aqueceu minha alma. Quanto tempo levará para treinar a Assembléia Nacional? Obviamente, isso depende da arquitetura da rede (número de camadas, número de neurônios nas camadas, conexões), número de exemplos de treinamento e hiperparâmetros. Mas o que me impressionou foi que passei várias horas no site playground.tensorflow.org para que uma pequena rede pudesse classificar corretamente pontos em uma espiral no espaço bidimensional. Apenas duas dimensões, não tantos dados, mas muito tempo. O vencedor do concurso ImageNet passou uma semana aprendendo a rede usando duas placas de vídeo e sabia muito sobre hiperparâmetros. Dificilmente compre até uma dúzia de servidores. Você tem paciência para estudar NA?

Resumo : parece-me que em casa você pode resolver alguns problemas com a ajuda da Assembléia Nacional.

  • O tamanho da amostra de treinamento pode ser igual a centenas de milhares de exemplos.
  • Você pode alcançar uma precisão de cerca de 80-90%.
  • O treinamento NS pode levar dias.

Esta é minha opinião intuitiva e uma estimativa muito grosseira, pode ser incorreta, ficarei feliz se alguém nos comentários escrever sobre as tarefas que ele resolveu em casa, qual foi a quantidade de dados e as características do ferro.

Obrigado pela atenção!

Source: https://habr.com/ru/post/pt402125/


All Articles