четверг, 5 декабря 2019 г.

Машинный перевод решает уравнения

Машинный перевод решает уравнения

Ребята приспособили нейросетевой машинный перевод к математическим задачам. А именно они научили нейросеть брать интегралы и решать дифференциальные уравнения первого и второго порядка.

Математическое выражение похоже на предложение естественного языка. И то, и другое можно представить в виде дерева (составляющих или зависимостей). А задача интегрирования похожа на задачу перевода, и даже чем–то проще, потому что ответ часто содержит куски исходного выражения, только по–другому скомбинированные.

Вот пара французских учёных из Facebook AI Research и решила попробовать, как Deep Learning будет справляться с подобными задачами. Как выяснилось, нейросети, работающие с деревьями, не так эффективны, как те, что работают просто с последовательностями символов. Поэтому они переводили деревья обратно в текст в виде польской префиксной нотации. В такой нотации, например, выражение x*(y+2) записывается как * x + y 2, что однозначно соответствует дереву и не требует скобок.

Далее они разработали алгоритм, который генерирует случайные математические выражения, сбалансированные по глубине и ширине дерева. Выражения могут состоять из переменных, констант е и п, целочисленных значений, бинарных операций (+ — * / ^) и функций (sin cos log exp sqrt и т. д.).

Этим алгоритмом они нагенерировали данных для обучения нейросети. Например, для интегрирования использовалось несколько способов генерации пар задача–решение, чтобы опять же данные были сбалансированы. Первый способ — берём случайное выражение и интегрируем его существующими автоматическими системами. Второй — наоборот, берём производную от случайного выражения и записываем её в качестве задачи. И т. д. В результате получилось по несколько десятков миллионов примеров для каждой из трёх задач.

Результаты оказались удивительными. При интегрировании система выдавала правильный ответ первым более чем в 90% случаев. А если брать не единственный, а 50 ответов, которые нейросеть посчитала наиболее вероятными, то среди них правильный ответ присутствовал уже с вероятностью 99%. Следует отметить, что в отличие от машинного перевода тут автоматически выбрать из 50–ти ответов правильный не составляет труда, достаточно взять производную, а это тривиальная задача.

На решении дифуров результаты были похуже, но всё равно на 50–ти ответах достигали 94% для уравнений первого порядка и 82% для второго. Во всех задачах система обошла пакет Mathematica, который справился только с 85% интегралов и 77% и 61% дифуров соответственно. Matlab и Maple показали себя ещё хуже.

Что интересно, во многих случаях система выдавала несколько правильных решений, записанных по–разному, но эквивалентных.

Такие дела.

Комментариев нет:

Отправить комментарий

Красильщиков Аркадий - сын Льва. Родился в Ленинграде. 18 декабря 1945 г. За годы трудовой деятельности перевел на стружку центнеры железа,километры кинопленки, тонну бумаги, иссушил море чернил, убил четыре компьютера и продолжает заниматься этой разрушительной деятельностью.
Плюсы: построил три дома (один в Израиле), родил двоих детей, посадил целую рощу, собрал 597 кг.грибов и увидел четырех внучек..