# Deep Learning в символьной математике: как Facebook AI обошли Mathematica

Источник: https://www.youtube.com/watch?v=p3sAF3gVMMA
Канал: Yannic Kilcher
Опубликовано: 24.02.2020

---

Математика долгое время считалась «запретной территорией» для нейронных сетей. В то время как компьютеры великолепно справляются с численными расчетами, символьные вычисления — манипуляции с формулами, интегрирование и решение дифференциальных уравнений — традиционно оставались прерогативой алгоритмических систем вроде Wolfram Alpha или Mathematica. Однако исследователи из Facebook AI Research представили подход, который переворачивает это представление, используя Deep Learning для решения сложнейших математических задач.

## 🧠 Символьная математика против численных методов
[[JUMP:00:00]]

Большинство современных компьютерных вычислений являются численными (numeric math): они оперируют конкретными значениями и приближениями [0:53]. Символьная же математика (symbolic math) — это работа с абстрактными выражениями. Примером может служить интегрирование функции, где на выходе нужно получить не число, а новую формулу [0:27].

Янник Кильхер отмечает, что для многих студентов такие инструменты, как Wolfram Alpha, стали спасением при изучении математического анализа, так как они не только выдают результат, но и могут показать пошаговое решение [0:13]. До недав времени считалось, что нейронные сети, имеющие репутацию систем для решения статистических или аппроксимационных задач, плохо приспособлены для строгих математических манипуляций [1:31]. В своей работе «Deep Learning for Symbolic Mathematics» Гийом Лампль и Франсуа Шартон (в транскрипте — Francois Giotto) предложили рассматривать математические формулы как своего рода «иностранный язык», а процесс решения — как задачу машинного перевода [1:06].

## 🌳 Математика как древовидная структура и «польская нотация»
[[JUMP:01:46]]

Любое математическое выражение можно представить в виде дерева [1:46]. В такой структуре:

*   Операторы (например, «плюс» или «умножение») становятся узлами.
*   Числа и переменные — это «листья» дерева.
*   Узлы могут быть бинарными (сложение двух аргументов) или унарными (например, косинус, который принимает один аргумент) [2:42].

Хотя многие исследователи пытались обучать нейросети работать напрямую с такими деревьями, команда Facebook AI пошла другим путем. Они решили превратить эти деревья в последовательности токенов, используя префиксную запись, также известную как обратная польская нотация [4:31]. 

В обычной (инфиксной) записи операторы стоят между аргументами, что требует использования скобок для задания приоритета [5:01]. В префиксной записи оператор всегда стоит перед своими аргументами [5:16]. 

По мнению Янника Кильхера, этот метод имеет решающие преимущества:

1.  Устраняется необходимость в скобках [6:36].
2.  Выражения становятся однозначными и легко нормализуются.
3.  Для решения выражения можно использовать простой алгоритм на базе стека [5:29].

На примере выражения `(2 + 5) * 3` Янник демонстрирует, как в префиксной логике это превращается в последовательность, которую «бумеры» (по шутливому выражению автора) помнят по старым калькуляторам [5:56].

## 🤖 Обучение без правил: нейросеть-переводчик
[[JUMP:07:04]]

Ключевая особенность подхода заключается в том, что нейросети вообще не объясняют правила математики. Она не знает, что такое «плюс» или «интеграл» в алгоритмическом смысле [8:10]. Модель просто получает на вход одну последовательность символов (задачу) и учится выдавать другую (решение) [7:45].

Используемая архитектура — стандартный Transformer, тот же тип моделей, что применяется в Google Translate или современных языковых моделях [10:42]. Обучение происходит на огромном массиве данных, где пары «задача — решение» генерируются автоматически [9:48]. Как утверждает Янник Кильхер, это поразительно: система обучается манипулировать строками так, что в итоге выдает математически верные результаты, фактически выполняя «перевод» проблемы в решение [10:30].

## 📊 Результаты: Deep Learning против Mathematica
[[JUMP:11:23]]

Исследователи сравнили свою модель с признанными лидерами индустрии — Mathematica, Maple и MATLAB [11:23]. Основными задачами были символьное интегрирование и решение дифференциальных уравнений первого и второго порядка (ODE) [11:51].

Основные факты из сравнения:

*   **Производительность:** Mathematica получила 30 секунд на решение каждой задачи, в то время как нейросеть выдавала ответ менее чем за секунду [13:51].
*   **Точность:** В задачах на интегрирование система от Facebook AI достигла точности 98,4% [13:51].
*   **Конкуренция:** Mathematica смогла решить только около 84% предложенных задач [13:12]. 

Янник Кильхер поясняет, что Mathematica — это классический символьный манипулятор с жесткими правилами. Если она не находит решение за отведенное время, она просто «сдается» (тайм-аут) [13:26]. Нейросеть же генерирует гипотезы. Даже если первая попытка неверна, использование «лучевого поиска» (beam search) позволяет модели рассматривать несколько наиболее вероятных вариантов одновременно [14:04].

Преимущество математических задач в том, что решение легко проверить. Если нейросеть выдала 50 вариантов интеграла, компьютер может быстро продифференцировать каждый из них и найти правильный [17:20]. Это превращает поиск решения в задачу, схожую с SAT-solver, где проверка ответа происходит почти мгновенно [17:33].

## ⚠️ Критика и подводные камни
[[JUMP:18:41] ]

Несмотря на впечатляющие цифры, Янник Кильхер высказывает серьезные сомнения в универсальности этого подхода. Главная проблема — смещение данных (dataset bias) [18:41].

Основные аргументы критической позиции Кильхера:

1.  **Ограниченность выборки:** Модель обучалась на выражениях, содержащих до 15 внутренних узлов, и числах в диапазоне от -5 до 5 [19:32]. Она отлично работает внутри этого «пузыря», но неизвестно, как поведет себя на реальных сложных задачах [20:01].
2.  **Проблема генерации данных:** Существует три способа создания обучающих пар для интегралов — прямой (forward), обратный (backward) и через интегрирование по частям [20:32].
3.  **Отсутствие обобщения:** Эксперименты показали, что если модель обучали только на данных, сгенерированных «прямым» методом, она проваливает тесты на «обратных» данных [21:13]. По мнению Янника, это доказывает, что нейросеть не «поняла» математику, а просто подстроилась под специфическое распределение данных в конкретном датасете [22:31].

В заключение Янник Кильхер отмечает, что хотя работа Facebook AI Research выглядит впечатляюще и открывает новые горизонты, она также обнажает фундаментальную проблему Deep Learning: зависимость от обучающей выборки. На данный момент нейросеть является скорее мощным генератором гипотез, чем полноценным математиком, понимающим суть законов [23:38].