Uma seleção de artigos sobre aprendizado de máquina: casos, guias e pesquisas - julho de 2020





Parece que nenhum de nossos resumos está completo sem mencionar os desenvolvimentos do Open AI: em julho, o novo algoritmo GPT-3 se tornou o tópico mais discutido no campo do aprendizado de máquina. Tecnicamente, não se trata de um modelo, mas de uma família inteira, que por conveniência é generalizada sob um único nome. O maior modelo usa 175 bilhões de parâmetros, e um conjunto de dados de 570 Gb foi usado para treinamento, que incluiu dados filtrados de arquivos Common Crawl e dados de alta qualidade de WebText2, Books1, Books2 e Wikipedia.



É importante notar aqui que o modelo é pré-treinado e não requer ajuste fino para tarefas específicas: para obter melhores resultados, é recomendado fornecer pelo menos um (one-shot) ou vários (poucos-shot) exemplos de resolução de problemas na entrada, mas você pode fazer sem eles (tiro zero). Para que o modelo gere uma solução para o problema, basta descrever o problema em inglês. Geralmente se acredita que se trata de um algoritmo de geração de textos, mas já está claro que o potencial é muito mais rico.



O modelo foi apresentado em maio, mesmo assim o Open AI demonstrou que o GPT-3 treinado nos repositórios GitHub pode gerar código Python com sucesso, e agora, depois de um mês e meio, os primeiros sortudos conseguiram acesso à API e mostraram suas melhores práticas. Os resultados são fantásticos. Nós, como desenvolvedores, estamos, é claro, interessados ​​em saber o quanto esse algoritmo simplificará nossa vida e talvez crie competição.



Já apareceu o serviço debuild.co, que, de acordo com a descrição textual da função, cria um código funcional e faz um bom layout .







Você pode usar as melhores práticas não apenas em programação web, mas também em design. O modelo é capaz de gerar dados JSON por descrição de texto e traduzi-los para o layout Figma.







E também ela praticamente conseguiuentrevista para uma posição de desenvolvedor Ruby.



As novidades sobre o uso do aprendizado de máquina na programação não param por aí.



TransCoder



Migrar sua base de código de uma linguagem de programação arcaica como COBOL para uma alternativa moderna como Java ou C ++ é uma tarefa complexa que exige muitos recursos e requer profissionais proficientes em ambas as tecnologias. Ao mesmo tempo, linguagens arcaicas ainda são usadas em mainframes em todo o mundo, o que muitas vezes deixa os proprietários com uma escolha difícil - traduzir manualmente a base de código para uma linguagem moderna ou continuar a manter o código legado.



Facebook revela modelo de autoaprendizagem de código aberto, o que ajudará a facilitar essa tarefa. É o primeiro sistema capaz de traduzir código de uma linguagem de programação para outra sem exigir dados de treinamento paralelos.



Os criadores estimam que o modelo traduz corretamente mais de 90% das funções Java para C ++, 74,8% das funções C ++ para Java e 68,7% das funções Java para Python. Que é mais alto do que os indicadores das contrapartes comerciais.



As



ferramentas de Desenvolvimento da ContraCode estão usando cada vez mais o aprendizado de máquina para entender e modificar códigos escritos por humanos. A principal dificuldade em trabalhar com algoritmos com código é a falta de conjuntos de dados rotulados.



Pesquisadores de Berkeley sugerem resolver esse problema usando o método ContraCode. Os autores acreditam que programas com a mesma funcionalidade devem ter as mesmas representações e vice-versa. Portanto, eles geram variantes de código para aprendizagem contrastiva. Para criar dados, as variáveis ​​são renomeadas, o código é reformatado e ofuscado.



No futuro, um modelo de autoaprendizagem usando este método será capaz de prever tipos, detectar erros, resumir código, etc. Dados esses e outros avanços no campo, é possível que as máquinas logo aprenderão a escrever código como os humanos.



DeepSIM







Os autores deste estudo mostram que uma rede adversarial generativa em uma imagem de alvo único é capaz de lidar com manipulações complexas.

O modelo aprende a combinar a representação primitiva da imagem (por exemplo, apenas as bordas dos objetos na foto) com a própria imagem. Durante a manipulação, o gerador permite que você modifique as imagens alterando sua representação primitiva na entrada e mapeando-as através da rede. Essa abordagem resolve o problema de DNN que requer um grande conjunto de dados de treinamento. Os resultados são impressionantes.



Pintura de fotos 3D







Outra maneira de converter imagens 2D RGB-D em 3D. O algoritmo recria áreas que estão ocultas por objetos na imagem original. Uma imagem de profundidade em camadas foi usada como representação de base, a partir da qual o modelo sintetiza iterativamente novos dados de cor e profundidade para a região invisível, levando em consideração o contexto. A saída são fotos, às quais você pode adicionar um efeito de paralaxe usando mecanismos gráficos padrão. Uma colab está disponível onde você pode testar o modelo por conta própria.



HiDT







Uma equipe de pesquisadores russos apresentou um algoritmo de código aberto que muda a hora do dia nas fotos. Modelar mudanças de iluminação em fotografias de alta resolução é um desafio. O algoritmo apresentado combina o modelo generativo imagem a imagem e o esquema de upsampling, que permite transformações em imagens de alta resolução. É importante notar que o modelo foi treinado em imagens estáticas de diferentes paisagens sem registros de tempo.



Trocando codificador automático







Se HiDT é capaz de alterar qualitativamente a iluminação das imagens, então essa rede neural, treinada em diferentes conjuntos de dados, é capaz de alterar não apenas a hora do dia, mas também a paisagem. Infelizmente, não há oportunidade de ver o código-fonte, portanto, podemos apenas admirar o vídeo que demonstra as capacidades deste modelo.



SCAN Uma



rede neural de código aberto que agrupa imagens independentemente em clusters semanticamente significativos. A novidade da abordagem do autor é que as etapas de treinamento e agrupamento são separadas. Em primeiro lugar, é iniciada a tarefa de ensino de recursos, em seguida, o modelo é baseado nos dados obtidos na primeira etapa durante o agrupamento. Isso permite melhores resultados do que outros modelos semelhantes.



RetrieveGAN







As redes neurais em geração estão se desenvolvendo rapidamente, e RetrieveGAN é outra confirmação disso. Um algoritmo baseado em uma descrição textual de uma cena usa fragmentos de imagens existentes para criar novas imagens exclusivas. Embora as imagens resultantes tenham muitos artefatos e não pareçam muito verossímeis, no futuro isso pode abrir novas possibilidades no campo da fotomontagem.



Rastreamento de passageiros de elevador



Graças aos avanços na visão computacional e no aprendizado de máquina, o rastreamento humano está se tornando ainda mais eficaz. Um grupo de pesquisadores de Xangai comissionado por um grande desenvolvedor desenvolveu um sistema de controle social do comportamento em elevadores em tempo real. O sistema é capaz de detectar atividades suspeitas em elevadores. Desta forma, os criadores esperam prevenir o vandalismo, o assédio sexual, o tráfico de drogas. O sistema também perceberá se as pessoas param com mais frequência em determinado andar: por exemplo, já foi possível identificar catering que funciona ilegalmente no apartamento. O sistema já foi instalado e monitora centenas de milhares de elevadores.



Julho acabou sendo tão intenso. Vamos ver quais são as novidades do próximo mês. Obrigado pela atenção!



All Articles