Эта статья написана "Передовая линия ИИ"Оригинал, оригинальная ссылка:Microsoft Program Induction Новая технология: индукция метапрограмм
Автор | Ришаб Сингх
Переводчик|Чжан Цзяньсинь
Редактор | Наталья
Многие недавние исследования ИИ были сосредоточены на расширении возможностей сред глубокого обучения: от простой классификации и распознавания образов до более сложных областей обучения алгоритмическим задачам, таких как индуктивное программирование. Опираясь на нашу прошлую работу по синтезу нейронных программ (изучение преобразований символов в функциональном языке), большая часть нашей недавней работы посвящена изучению проблем обучения нейронных архитектур для обобщения программ на языке карел. Карел — более сложный командный язык со сложным потоком управления.
В частности, мы сталкиваемся с трудностями обобщения программ, когда доступны только ограниченные примеры кода. Традиционно схемы индукции нейронных программ основаны на очень большом количестве входных и выходных примеров для получения приемлемых результатов. Таких примеров может быть от сотен до тысяч. Часть нашего исследования направлена на разработку новых методов, позволяющих достичь желаемых результатов со значительно меньшим количеством примеров. Эти новые методы обычно называют «адаптацией портфолио» и «введением в метапрограмму». Они основаны на принципе переноса знаний из аналогичных учебных задач, чтобы компенсировать отсутствие примеров ввода/вывода.
Мы сравниваем производительность четырех таких методов с тестами на широком диапазоне наборов данных. В тестовых примерах мы использовали язык программирования Karel, который вводит сложный поток управления, включающий условия и циклы, а также набор необходимых действий. Этот тестовый пример передает нейронной архитектуре фиксированное количество примеров ввода/вывода (от 1 до 100 000), а затем просит их получить правильный вывод из нового набора входных данных (путем неявного обучения для обобщения соответствующей программы Карела). На рисунке ниже показан набор задач индукции программы в наборе данных Karel, и наша метамодель может точно получить хорошие результаты только из 2–4 примеров.
Как показано в нашей недавно опубликованной статье, результаты очень хорошие (по сравнению с точностью 0%, достигаемой методом, основанным на примерах, с использованием только PLAIN): один из наших методов метаиндукции из менее чем 10 примеров достигает точности около 40%.
Прилагаемые графики иллюстрируют, как меняется производительность каждой из 4 моделей на одном и том же количестве примеров. Как видите, чем новее технология, тем выше производительность при меньшем количестве примеров. Мы считаем, что хотя результаты постепенно сходятся с увеличением числа примеров, наши более новые методы по-прежнему демонстрируют определенные преимущества, поскольку они требуют меньше вычислительных ресурсов и времени обработки, чем традиционные модели.
Четыре техники кратко изложены ниже.
- Простая индукция программы (PLAIN). Используйте обучение с учителем для обучения моделей, которые могут обобщать одну задачу, например, считывая пример ввода для этой задачи, а затем делая вывод о соответствующем выводе. Знания не распределяются между задачами.
- Введение в программу, адаптированную к портфолио (PLAIN+ADAPT). Используйте простое трансферное обучение, чтобы настроить модель для новой задачи (модель уже обучена для связанной задачи).
- Введение в метапрограмму (МЕТА). Используйте модель стиля обучения с несколькими выборками для представления экспоненциально растущего числа задач, условно используя примеры ввода-вывода, связанные с задачами, в качестве входных данных для нейронной сети. Эта модель обобщается на новые задачи без дополнительного обучения.
- Введение в адаптированную метапрограмму (META+ADAPT). Индуктивная модель метапрограммы адаптируется к задаче путем ее обучения в циклическом режиме с одним исключением за раз на новых примерах ввода-вывода для конкретной задачи.
Связанная с этим работа в этой области будет продолжена для оптимизации этих моделей и разработки новых методов. Эти новые технологии должны позволить нейронным сетям выполнять сложные задачи программирования на полноценных языках программирования без необходимости использования бесчисленных примеров.
Статьи по Теме
Microsoft Research at NIPS 2017
Woohoo.Microsoft.com/En-US/Горячий цвет…
Neural Program Meta-Induction
Woohoo.Microsoft.com/En-US/Горячий цвет…
Neural Program Synthesis
Woohoo.Microsoft.com/En-US/Горячий цвет…
Посмотреть исходный английский текст:
New Meta-learning Techniques for Neural Program Induction
Чтобы узнать больше о галантерее, вы можете обратить внимание на AI frontline, ID: ai-front, ответ за кулисами "AI, TF и большие данныеПолучите серию мини-книг и карт навыков «AI Frontline» в формате PDF.