Искусственный разум — практическая реализация. Начало

Искусственный разум — практическая реализация. Начало

В предыдущей статье было дано конструктивное определение искусственного разума и предложена общая схема его построения. На её основе уже начата разработка реальной системы. Сейчас пора рассказать о первых результатах.

Требования к проекту

Проект должен:

  • наглядно демонстрировать ключевые функции разума;
  • быть минимальным по объёму на начальном этапе;
  • иметь потенциал для роста до универсальной, полнофункциональной системы.

Описание текущего проекта

Идеальной средой для демонстрации стал простой игровой симулятор — стрелялка. В ней нет сюжета, чтобы сосредоточиться на процессе самообучения. Два объекта: субъект (обучаемый) и охотник (управляемый пользователем). Они находятся на параллельных линиях и могут двигаться влево или вправо.

Охотник вооружён пушкой. Он может стрелять и перемещаться. Субъект ограничен: за ход он может сделать от нуля до трёх шагов в любую сторону. Попадание снаряда в субъект — отрицательное событие. Цель субъекта — научиться избегать таких ситуаций, просчитывая развитие событий на несколько шагов вперёд. Это и есть разумное поведение.

Система воспринимает мир через список параметров: координаты объектов, тип снаряда и другие. Сейчас таких параметров около тридцати. Они формируют состояние мира. При изменении любого параметра система запоминает новое состояние. Так формируется последовательность состояний — процесс изменения мира.

Генерация знаний

Классификация процессов приводит к созданию знаний. На входе — процессы, на выходе — алгоритмы, полученные путём обобщения. Основной элемент знания — правило, состоящее из трёх частей:

  • вход — диапазоны значений параметров объектов до действия;
  • действие — описание самого действия;
  • выход — параметры после действия, с возможными функциональными зависимостями.

База знаний изначально пуста. Первое правило появляется после трёх попаданий. Система обобщает процессы, предшествующие поражению, и формирует правило поражения. Теперь субъект может распознавать опасность — приближение снаряда.

Обучение и реакции на угрозу

Ощущение опасности побуждает субъект к поиску способа избежать поражения. Без знаний он может делать только пробные действия — например, шаг влево. Результат фиксируется: положительный (промах) или отрицательный (попадание).

Если пробное действие не работает, субъект пробует другое. После нескольких неудач он получает знания о себе — например, что шаг изменяет координату. Анализируя полёты снарядов, он выявляет закономерности и формирует правило полёта.

Теперь субъект может моделировать развитие ситуации. Он проверяет возможные действия (например, шаг влево), просчитывает дальнейшее движение снаряда и оценивает исход. Если текущий вариант ведёт к поражению, выбирается другой. Моделирование продолжается, пока не найдётся безопасное решение.

Моделирование выполняется так:

  1. Модуль синтеза алгоритмов строит возможные последовательности действий.
  2. Система просчитывает варианты и выбирает лучший по критерию (например, вероятность успеха).
  3. Лучший вариант исполняется — это делает модуль воздействия.

Действия, которые реально привели к успеху, обобщаются в проверенные действия. В будущем они выполняются автоматически, без моделирования — как рефлексы.

Так формируются три вида реакции на опасность:

  • пробное действие — реакция на новую ситуацию;
  • смоделированное действие — размышление;
  • проверенное действие — навык, высшая степень обученности.

Когда субъект избегает отрицательных состояний только проверенными действиями, он считается полностью адаптированным.

Работа в сложных ситуациях

В игре два типа снарядов:

  • обычный — летит по прямой;
  • самонаводящийся — имеет ограниченную дальность.

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

Выход — включение режима «стресс». Система анализирует более ранние действия: движение охотника, выстрелы и т.д. Это даёт возможность моделировать ситуацию на несколько шагов вперёд и найти выход. Такой механизм уже реализован.

При близком расстоянии до охотника уйти с первого раза не всегда удаётся — субъект ограничен в передвижении. Тогда он просчитывает варианты на три хода вперёд и выбирает тот, что даёт наибольшую вероятность оторваться через один-два хода. Особенно это важно при движении к краю и необходимости «прорыва» к центру.

Перспективы развития

С ростом числа объектов и действий система становится сложнее. Текущая версия — это минимальный, но уже настоящий искусственный разум: он генерирует знания и использует их для выживания.

Дальнейшее развитие — по двум направлениям:

  1. Масштабирование: добавление объектов и действий. Это усложнит мир и поведение субъекта. Универсальное ядро разума (четыре основных модуля) станет более универсальным по мере роста системы.
  2. Углубление моделирования: увеличение горизонта прогноза. Это повысит шансы найти решение в сложных ситуациях, но замедлит реакцию.

Однако для сильного интеллекта нужно больше. Как указано в статье «Сильный интеллект, что это значит?», необходимы:

  • способность решать задачи при недостатке знаний (творчество);
  • активный поиск знаний: постановка гипотез и проведение экспериментов.

Эти функции реализуемы. Механизм гипотез уже работает: если ситуация частично соответствует правилу, система может:

  • использовать правило как вероятное решение (при низкой цене ошибки);
  • спланировать эксперимент для проверки гипотезы.

Пока субъект не может влиять на другие объекты — это ограничивает активный поиск знаний. Но такие возможности появятся к третьей-четвёртой версии игры.

Творчество становится возможным при появлении правил высокого уровня абстракции, получаемых обобщением более конкретных. Это уже заложено, но для демонстрации творчества требуется более сложный мир.

Сильный интеллект может быть достигнут к третьей-четвёртой версии. Однако общий интеллект — это другой уровень. Он требует не только силы, но и масштаба. Простое масштабирование здесь не поможет — возникают системные сложности. Это будет непросто.

Сравнение с аналогами

Сравнивать стоит не с играми, а с подходами к самообучению. Сегодня основной метод — глубокое обучение нейронных сетей. Они способны моделировать развитие ситуации, например, предсказывая следующее слово в тексте. Теоретически, на их основе можно построить подобную игру. Но практически?

Нейронные сети требуют тысяч повторений для обучения. Прогресс в течение 5–10 минут игры вряд ли заметен. В этой системе правило формируется уже после трёх повторений. Обучение быстрее, хотя объекты и действия заранее описаны — это упрощает задачу.

Главный вопрос: можно ли на основе нейронной сети создать сильный интеллект? Пока это не сделано.

Проблема в том, что нейросети не генерируют знания в явном виде. Они не формируют правил, что делает невозможным явное расслоение знаний по уровням абстракции. А значит, исключается творчество.

Творчество требует активного поиска знаний: при нехватке информации система поднимается на уровень абстракции, находит общий принцип и выясняет, каких конкретных знаний не хватает. Без явных знаний такой процесс организовать невозможно.

Следовательно, на основе нейронных сетей сильный интеллект либо невозможен, либо его реализация будет «некрасивой». Если это так, нейросети — тупик на пути к сильному и общему ИИ.

Предложенный подход — альтернатива. Он лишён главных недостатков нейросетей:

  • не требует гигантских затрат на обучение;
  • позволяет вводить знания в явном виде — через интерфейс или естественный язык;
  • система может защищаться от ложной информации, проверяя её на противоречия с помощью моделирования;
  • может обосновать свои решения, повышая доверие к ним.

Заключение

Цель проекта — создание сильного интеллекта в форме практически полезных систем. Пока это игры. Возможности подхода покажет только практика — как конечный критерий истины.

Читать оригинал