Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| mdd:robustfill_neural_program_learning_under_noisy_io [2017/12/27 13:20] – created onaga | mdd:robustfill_neural_program_learning_under_noisy_io [2026/08/29 07:59] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== RobustFill: Neural Program Learning under Noisy I/O ====== | ||
| + | Devlin, Jacob, et al. 2017. RobustFill: Neural Program Learning under Noisy I/O. arXiv preprint arXiv: | ||
| + | |||
| + | ===== Введение ===== | ||
| + | |||
| + | Задача генерации программ одна из самых старых задач в машинном обучении. Классический подход требовал вручную задавать спецификацию, | ||
| + | |||
| + | ===== Формулировка задачи ===== | ||
| + | |||
| + | Есть множество пар входных и выходных строк < | ||
| + | |||
| + | В подходе генерации программ по наблюдаемым примерам посимвольно создается программа P. Она называется // | ||
| + | |||
| + | В индуктивном подходе по наблюдаемым примерам и входным строкам контрольных примеров напрямую предсказываются выходные строки. Его главное преимущество заключается в том, что для него не нужно создавать специальный язык, ведь не нужно составлять программу. | ||
| + | |||
| + | ===== Предметно-ориентированный язык (DSL) ===== | ||
| + | |||
| + | В нашем случае это язык преобразования строк. Главными особенностями представленного языка являются вложенные выражения, | ||
| + | |||
| + | ===== Данные ===== | ||
| + | |||
| + | Выборка для обучения была создана следующим образом. Вначале программы случайно генерировались из DSL с ограничением на длину. После этого выбирались случайные корректные для данной программы входные строки. После применения к ним программы, | ||
| + | |||
| + | ===== Архитектура ===== | ||
| + | |||
| + | Для начала рассмотрим подход генерации программ. Вначале для каждой наблюдаемой пары генерируется своя программа. Для этого использовались разные архитектуры, | ||
| + | [[mdd: | ||
| + | |||
| + | На тесте для генерации программы используется beam search. Причем в нашем случае не просто берется лучшая программа из луча, а лучшая из // | ||
| + | |||
| + | В индуктивном подходе использовалась та же архитектура только с двумя изменениями: | ||
| + | |||
| + | ===== Результаты ===== | ||
| + | |||
| + | Измерялось какая доля программ // | ||
| + | |||
| + | ===== Заключение ===== | ||
| + | |||
| + | В работе были представлены новые робастные нейросетевые архитектуры для генерации выходных строк по примерам и входным строкам, | ||
| + | |||
| + | ===== Ссылки ===== | ||
| + | |||
| + | Саму статью можно прочитать [[https:// | ||