Исcледования "Common Sense"
В то время как машинное обучение и нейронные сети расширяют возможности применения искусственного интеллекта, они часто испытывают трудности с задачами, требующими глубокого понимания окружающего мира и определенных специализаций. Для преодоления этих проблем мы разрабатываем DemonScript – универсальный язык, который обеспечивает более полное понимание мира для принятия эффективных и точных решений.

Задача

В последние годы основные достижения в области ИИ связаны с развитием нейронных сетей и обучения на больших объемах данных. Однако системы, построенные на методах машинного обучения и глубоких нейронных сетей, показывают низкую эффективность в задачах, требующих понимания предметной области и особенно применения знаний об окружающем мире. Существующие решения требуют значительного времени программистов для добавления новых правил. При большом количестве вручную записанных правил и ограничений возникают сложности в тестировании и подтверждении на непротиворечивость всей системы.
Обзор решения

Система универсального сильного искусственного интеллекта, помимо технологий машинного обучения, должна включать в себя структурированные базовые знания об окружающем мире. На основании этих знаний и получаемой информации система должна уметь делать логические выводы для принятия оптимальных решений. Для решения этой задачи был разработан универсальный язык DemonScript, использующий многозначную логику, позволяющую делать вероятностные логические выводы. В рамках этого языка легко реализуются следующие задачи:
- Построение семантических сетей базовых сущностей
- Описание знаний в виде набора правил
- Задание свойств объектов при помощи нечётких множеств
- Проведение логических выводов
- Перечисление возможных моделей мира в текущем состоянии
- Реализация рассуждений в динамических задачах
При помощи DemonScript были описаны базовые пространственные отношения (in, on, above, hold и т.п.) между объектами в упрощенной модели реального мира. В рамках формального языка описания микроисторий система успешно анализировала простые динамические задачи с действиями типа goto, take, give и т.п., строя соответствующие модели. На основе этих моделей система отвечала на контрольные вопросы ”на понимание”.


Технические детали

Интерпретатор языка DemonScript был реализован на C++. Код интерпретатора разрабатывался с учётом кроссплатформенности и может быть собран на большинстве платформ. Также DemonScript был портирован на JavaScript, и теперь есть возможность запустить его через web-интерфейс. Выбор языка программирования C++ также помог интерпретатору работать на слабых устройствах (мобайл, веб, и даже IoT), и при этом не потерять в производительности.
Для более комфортной работы есть возможность подключить подсветку синтаксиса в редакторе VS Code. В редакторе VS Code поддерживается полнофункциональный отладчик с точками останова и просмотром локальных переменных.
Знания об обыденном мире задавались как экспертами, так и строились на основе машинного обучения, в результате извлечения правил из различных модельных простых историй. В нашем решении правила задаются на языке DemonScript, а решения строятся на основе связных графов.
Стек технологий

C++
