• Home
  • Química
  • Astronomia
  • Energia
  • Natureza
  • Biologia
  • Física
  • Eletrônicos
  • Rumo à inteligência artificial que aprende a escrever código

    Os pesquisadores desenvolveram uma maneira flexível de combinar aprendizado profundo e raciocínio simbólico para ensinar computadores a escrever programas de computador curtos. Aqui, Armando Solar-Lezama (esquerda), um professor do CSAIL, fala com o estudante de graduação Maxwell Nye. Crédito:Kim Martineau

    Aprender a codificar envolve reconhecer como estruturar um programa, e como preencher todos os detalhes corretamente. Não é à toa que pode ser tão frustrante.

    Um novo AI de escrita de programa, SketchAdapt, oferece uma saída. Treinado em dezenas de milhares de exemplos de programas, SketchAdapt aprende como compor curtas, programas de alto nível, enquanto permite que um segundo conjunto de algoritmos encontre os subprogramas certos para preencher os detalhes. Ao contrário de abordagens semelhantes para escrita de programa automatizada, SketchAdapt sabe quando mudar de correspondência de padrões estatísticos para um menos eficiente, mas mais versátil, modo de raciocínio simbólico para preencher as lacunas.

    "As redes neurais são muito boas para acertar a estrutura, mas não os detalhes, "diz Armando Solar-Lezama, professor do Laboratório de Ciência da Computação e Inteligência Artificial do MIT (CSAIL). "Ao dividir o trabalho - permitindo que as redes neurais lidem com a estrutura de alto nível, e usando uma estratégia de busca para preencher as lacunas - podemos escrever programas eficientes que dão a resposta certa. "

    SketchAdapt é uma colaboração entre Solar-Lezama e Josh Tenenbaum, professor do CSAIL e do Centro de Cérebros do MIT, Mentes e máquinas. O trabalho será apresentado na Conferência Internacional sobre Aprendizado de Máquina, de 10 a 15 de junho.

    Síntese do programa, ou ensinando computadores a codificar, há muito tempo é um objetivo dos pesquisadores de IA. Um computador que pode se programar tem mais probabilidade de aprender a linguagem mais rápido, converse fluentemente, e até modelar a cognição humana. Tudo isso atraiu Solar-Lezama para o campo como um estudante de graduação, onde ele lançou as bases para SketchAdapt.

    Os primeiros trabalhos de Solar-Lezama, Esboço, baseia-se na ideia de que os detalhes de baixo nível de um programa podem ser encontrados mecanicamente se uma estrutura de alto nível for fornecida. Entre outras aplicações, O Sketch inspirou spinoffs para avaliar automaticamente o dever de casa de programação e converter diagramas desenhados à mão em código. Mais tarde, à medida que as redes neurais cresceram em popularidade, alunos do laboratório de ciências cognitivas computacionais de Tenenbaum sugeriram uma colaboração, a partir do qual SketchAdapt se formou.

    Em vez de confiar em especialistas para definir a estrutura do programa, SketchAdapt descobre isso usando aprendizado profundo. Os pesquisadores também adicionaram uma reviravolta:quando as redes neurais não têm certeza de qual código colocar onde, SketchAdapt é programado para deixar o espaço em branco para que os algoritmos de pesquisa o preencham.

    "O sistema decide por si mesmo o que sabe e o que não sabe, "diz o principal autor do estudo, Maxwell Nye, um estudante de pós-graduação no Departamento de Cérebro e Ciências Cognitivas do MIT. "Quando fica preso, e não tem padrões familiares para desenhar, ele deixa espaços reservados no código. Em seguida, ele usa uma estratégia de adivinhar e verificar para preencher as lacunas. "

    Os pesquisadores compararam o desempenho do SketchAdapt a programas modelados a partir do software RobustFill e DeepCoder, de propriedade da Microsoft, sucessores do recurso FlashFill do Excel, que analisa células adjacentes para oferecer sugestões enquanto você digita - aprendendo a transformar uma coluna de nomes em uma coluna de endereços de e-mail correspondentes, por exemplo. RobustFill usa aprendizado profundo para escrever programas de alto nível a partir de exemplos, enquanto o DeepCoder é especializado em encontrar e preencher detalhes de baixo nível.

    Os pesquisadores descobriram que SketchAdapt superou suas versões reimplementadas do RobustFill e DeepCoder em suas respectivas tarefas especializadas. SketchAdapt superou o programa semelhante ao RobustFill em transformações de strings; por exemplo, escrever um programa para abreviar os números do Seguro Social em três dígitos, e os primeiros nomes pela primeira letra. SketchAdapt também se saiu melhor do que o programa semelhante ao DeepCoder para escrever programas para transformar uma lista de números. Treinado apenas em exemplos de programas de processamento de lista de três linhas, SketchAdapt conseguiu transferir melhor seu conhecimento para um novo cenário e escrever programas de quatro linhas corretos.

    Em outra tarefa, SketchAdapt superou ambos os programas na conversão de problemas matemáticos de inglês para código, e calculando a resposta.

    A chave para o seu sucesso é a capacidade de mudar da correspondência de padrões neurais para uma pesquisa simbólica baseada em regras, diz Rishabh Singh, um ex-aluno de graduação da Solar-Lezama, agora é pesquisador do Google Brain. "SketchAdapt aprende quanto reconhecimento de padrão é necessário para escrever partes familiares do programa, e quanto raciocínio simbólico é necessário para preencher os detalhes que podem envolver conceitos novos ou complicados. "

    SketchAdapt é limitado a escrever programas muito curtos. Qualquer coisa além disso requer muita computação. Apesar disso, destina-se mais a complementar os programadores do que substituí-los, dizem os pesquisadores. "Nosso foco é fornecer ferramentas de programação para as pessoas que as desejam, "diz Nye." Eles podem dizer ao computador o que querem fazer, e o computador pode escrever o programa. "

    Programação, Afinal, sempre evoluiu. Quando o Fortran foi lançado na década de 1950, foi feito para substituir os programadores humanos. "Seu nome completo era Fortran Automatic Coding System, e seu objetivo era escrever programas tão bem quanto humanos, mas sem os erros, "diz Solar-Lezama." O que ele realmente fez foi automatizar muito do que os programadores faziam antes do Fortran. Mudou a natureza da programação. "

    Esta história foi republicada por cortesia do MIT News (web.mit.edu/newsoffice/), um site popular que cobre notícias sobre pesquisas do MIT, inovação e ensino.




    © Ciência https://pt.scienceaq.com