На стыке современных нейронных сетей и классического символьного искусственного интеллекта рождается новое направление — нейросимвольный подход. В своем выступлении Дулат Ерзат (Dulat Yerzat) разбирает, почему современные Deep Learning модели до сих пор не справляются с простейшей логикой и как объединение нейронов с логическим программированием может решить проблему интерпретируемости и нехватки данных.
🧠 Ограничения нейронных сетей: почему «умные» модели не понимают логику 0:00
Нейронные сети обладают неоспоримыми плюсами: они устойчивы к шуму и эффективно работают с несимвольными данными, такими как изображения или аудио . Однако эти преимущества порождают два критических минуса:
- Data Inefficiency (неэффективность данных): для обучения модели требуется скармливать ей колоссальные объемы информации .
- Отсутствие интерпретируемости: нейронные сети представляют собой «черный ящик», логику которого невозможно проследить .
Глобальную проблему нейросетей обозначил ещё один из «отцов-основателей» ИИ Джон Маккарти: они способны находить закономерности только на уровне пропозициональной логики, но не могут обобщать правила на уровне логики первого порядка .
В качестве примера Дулат Ерзат приводит задачу сравнения чисел. Если обучить нейросеть на огромном датасете всех возможных пар чисел, она покажет высокую точность . Но если убрать из выборки определенные пары (например, модель видела 4 < 5 и 5 < 6, но никогда не встречала 4 < 6), она не сможет вывести общую закономерность «меньше чем». В логике первого порядка это решается введением переменных, что для стандартных нейросетей остается непосильной задачей .
⚙️ Попытки эмуляции: Neural Turing Machines и программная индукция 3:07
Для решения проблемы логического вывода создавались специальные архитектуры, известные как Neural Program Induction (NPI). Основная идея заключалась в том, чтобы заставить архитектуру нейросети имитировать работу «железа» компьютера .
- Neural Turing Machines (NTM): нейросети с внешней памятью, эмулирующие машину Тьюринга .
- Результаты: такие системы научились решать некоторые задачи, но сохранили все минусы нейросетей — сложность обучения и плохую интерпретируемость .
- Итог: по словам спикера, пик хайпа на эти архитектуры пришелся на 2015–2016 годы, но они так и не вышли за пределы специфических тестов .
🧩 Нейросимвольный подход: поиск идеального языка программирования 4:45
Альтернативой стал нейросимвольный подход (Neuro-symbolic AI), где нейронные сети обрабатывают «сырые» данные (например, картинки), а логические алгоритмы генерируют на их основе программу . Преимущество символьных алгоритмов в том, что им достаточно пары примеров для обучения, и их результат абсолютно понятен человеку .
При выборе языка для синтеза программ ИИ ориентируется на два критерия:
- Чистота (Pure language): отсутствие побочных эффектов (side effects), чтобы функции были детерминированы .
- Краткость (Expressiveness): поиск в пространстве программ — это перебор в огромном дискретном пространстве. Чем короче может быть программа, тем выше шансы её найти .
Языки вроде C++ или Python не подходят для автоматического синтеза, так как они созданы для людей . Исследования сместились в сторону логического программирования и таких инструментов, как:
- Prolog: самый известный и старый язык логического программирования .
- Datalog: подмножество Prolog, оптимизированное для работы с базами данных .
- miniKanren: встраиваемое логическое программирование. Дулат Ерзат рекомендует библиотеку
miniKanren-python(или реализации для Julia) для быстрого знакомства с темой .
🛠️ Индуктивное логическое программирование (ILP) 9:02
Ключевым алгоритмом в этой области является ILP (Inductive Logic Programming). По сути, это метод машинного обучения, пришедший из символьного подхода .
Процесс работы ILP строится на трех компонентах:
- Background Knowledge (B): фоновые знания (факты, например: «Джон — мужчина», «Джон — родитель Кейт») .
- Примеры (E): набор положительных и отрицательных примеров того, что мы хотим выучить .
- Гипотеза (H): код или предикат, который генерирует система (например, предикат «дедушка») .
Современные системы ILP (обсуждавшиеся на профильной конференции в 2019 году) значительно эволюционировали. Чтобы избежать случайного перебора и комбинаторного взрыва, задачу поиска программы переформулируют как SAT-проблему (задачу выполнимости булевых формул) .
📉 Дифференцируемое логическое программирование 12:56
Актуальный тренд — сделать всё дифференцируемым, чтобы применять градиентный спуск. Разработчики (в частности, подразделение DeepMind) предложили заменить дискретные флаги (0 или 1) в логических клаузах на непрерывные значения в интервале от 0 до 1 .
Как это работает:
- Специальные шаблоны генерируют огромное количество потенциальных логических правил (клауз) .
- Каждому правилу присваивается «вес» (флаг), который теперь является числом, выдаваемым нейросетью .
- С помощью градиентного спуска система оставляет только те правила, которые дают
Trueна положительных примерах иFalseна отрицательных .
Результаты впечатляют: в задаче сравнения чисел, где обычная нейросеть начинает «деградировать» при отсутствии части обучающих данных, дифференцируемая ILP-система сохраняет высокую точность, успешно совершая логическую индукцию .
🌐 Логика и графы знаний (Knowledge Graphs) 15:39
Еще одно применение — работа с огромными графами знаний (более 15 миллионов узлов), такими как базы фактов о знаменитостях или политике .
В таких графах часто пропущены связи (relations). Например, если есть факт «Барак Обама — президент США», логично предположить, что он живет в Вашингтоне . Логическое программирование позволяет обучать предикаты для восстановления этих связей.
Интересный подход заключается в векторизации предикатов: предикаты «отец» и «мать» в векторном пространстве будут находиться близко друг к другу, а предикат «родственник» будет более общим вектором . Это позволяет использовать мощь векторных представлений вместе со строгостью логических правил.