Размышления о модели целенаправленного поведения для ИИ
В данной статье я хочу поделиться своим мнением относительно того, как можно сделать поведение поведение автономного ИИ более целенаправленным. В настоящее время существует рефлекторный подход к поведению ИИ: в ходе обучения с подкреплением создаются связи между входами и выходами системы, которые позволяют ей реагировать определенным образом в некоторых ситуациях. Простым языком такой подход можно назвать поведением "от ситуации". В данной статье предлагается дополнить этот базовый рефлекторный подход другим механизмом контроля поведения, суть которого хорошо описывается фразой "к цели". Статья нацелена в основном на описание идеи и потенциальных преимуществ такого подхода. Описание будет проводиться преимущественно с помощью мысленных экспериментов.
Основная идея подхода заключается в том, чтобы при принятии решений и обучении автономного ИИ использовать не только информацию о состоянии окружающей среды, которая поступает на сенсорные входы системы в данный момент времени, но и информацию о динамике изменения состояния среды во времени. Состояние среды будем называть ситуацией, а паттерн активности входов системы, который соответствует данной ситуации, будем обозначать вектором S(t). Входы системы, например, могут быть представлены видеокамерой, а вектор S(t) может быть набором яркости пикселей, информация о которых поступает с видеокамеры. Тогда динамика изменения состояния системы во времени может быть описана вектором
с той же размерностью, что и сам вектор S(t). Далее будем называть вектор P(t) процессом. Процесс описывает направление эволюции состояния системы во времени. То есть если предположить, что в начальный момент времени система находится в состоянии S(t0) и она изменяется согласно процессу P0, то через некоторый временной интервал dt система будет в состоянии S(P0,t0+dt). Выше было определено элементарное математическое описание ситуации и динамики ее изменения. Такое описание имеет прямую аналогию с уравнениями движения в Ньютоновской механике, где вектор S(t) соответствует координате материальной точки, а вектор P(t) ее скорости. Как известно, зная координату и скорость частицы при условии отсутствия воздействия на нее внешних сил, можно вычислить координату частицы в следующие моменты времени. То есть можно предсказать результат "действия" процесса в текущей ситуации.
Определим понятие цели: цель - это некоторый "желаемый" вектор A (или, наоборот, "нежелательная" ситуация может описываться вектором B) на входах системы. Значит, задача состоит в том, чтобы с помощью некоторого процесса P перевести систему из текущего состояния S0 в желаемое состояние A и не допустить перехода в нежелательное состояние B.
Теперь перейдем к тому, как автономный ИИ может решать поставленную задачу. Сначала рассмотрим элементарную ситуацию: робот может передвигаться только вдоль одной линии (одномерное движение). Предположим, что он начинает свое движение с координаты x = 0 и при этом "наблюдает" на входах вектор S0. Далее он движется вперед и приходит к "наблюдению" "желаемого" входного вектора A (по достижению координаты xA), который ассоциируется с некоторой положительной значимостью r. В результате данного эксперимента робот должен обучиться двум вещам: (1) распознаванию процесса, ведущего к достижению цели (то есть процесса движения вдоль оси x в рассматриваемом случае) и (2) связать этот процесс со значимостью r цели. Сейчас речь не будет идти о том, как реализовать такое обучение на практике. Важно, что мы получим в итоге, обучив автономный ИИ именно так.
Предположим, что у нашего робота есть некоторые "движители", на которые подается сигнал управления (выходной сигнал). Такими "движителями" могут быть колеса, ноги, лапы, подключенные к электродвигателям, управляемым системой. Они позволяют при подаче определенных управляющих сигналов приводить к изменению скорости, и, следовательно, координаты робота в пространстве. Система управления строится следующим образом: допустим, что при подаче сигнала на двигатель, система начинает двигаться вперед к цели. Распознается процесс движения к цели, который связан с ее значимостью r. Это приводит к положительной обратной связи и сигнал продолжает поступать на двигатель, система продолжает двигаться к цели. Если вдруг подается сигнал "тормоз" на двигатель, движение замедляется. Тогда система должна реагировать через отрицательную обратную связь и блокировать сигнал "тормоза". Для того, чтобы она смогла это сделать нужно дополнительное предварительное обучение распознаванию процесса замедления и связыванию его с отрицательной значимостью -r, которая определяется как разница нулевой значимости, связанной с остановкой робота (нейтральная ситуация) и значимости r распознаваемого процесса движения к цели A. Еще раз повторюсь, что конкретный алгоритм обучения здесь не рассматривается. Однако обучение системы таким образом позволяет получать обратную связь в реальном времени и реагировать на ситуацию, "понимая" что произойдет.
Далее рассмотрим более сложную ситуацию: у нас есть робот и передвигаться он может в двух измерениях. В точке (1,0) находится положительная цель A, в точке (0,1) находится отрицательная цель B. Робот начинает движение из точки (0,0). Теперь к поступательному движению добавляется возможность поворота. Допустим, робот обучен как и в прошлом случае распознаванию процессов движения к целям, которые связаны со значимостями образов целей. Тогда, если при движении к цели A система будет поворачивать и отклоняться от траектории движения к цели A, она будет хуже распознавать процесс движения к цели A и производная отклика значимости по времени будет отрицательной, что создаст отрицательную обратную связь и остановит активацию действий, приводящих к повороту. Аналогично, если система движется к "антицели" B, то поворот и смещение с траектории движения к этому состоянию будет подкрепляться положительной обратной связью. При этом поворот можно также, как и движение, торможение, ускорение представить как процесс и связать с ним значимость некоторой цели.
Рассматриваемый дополнительный механизм управления предполагается использовать не вместо а вместе с базовым рефлекторным подходом к управлению ИИ. Предположительно, он будет выполняться функции дополнительного контроля того, что рефлекторные действия действительно ведут к достижению цели. Где это может быть полезно?
При изменении свойств окружающей среды и/или самих систем робота выполнение рефлекторных действий, которым была обучена система уже не приводит к такому же изменению входных сигналов, который наблюдался при обучении. В этом случае чисто рефлекторный подход может привести к нулевому или даже отрицательному результату. Например, если в простейшем одномерном случае поменять местами выходные сигналы, которые приводят к движению робота вперед и назад, то активация рефлекторного действия "вперед" приведет к движению робота назад, то есть удалению от цели. С другой стороны, если использовать дополнительный механизм контроля, то при распознании процесса движения назад через отрицательную обратную связь это движение будет остановлено. Затем при случайном запуске сигнала "назад" начнется движение вперед и оно продолжится из-за положительной обратной связи. В итоге этот подход позволит значительно повысить адаптивность системы по отношению к изменению свойств среды и расширит число ситуаций, в которых система может достичь цели, то есть сделает ее более "общей".
Если система предварительно обучена распознаванию процессов и эти процессы связаны со значимостью целей, к которым ведет выполнение этих процессов, сигналы обратной связи от распознавания процессов можно использовать для "онлайн" обучения с подкреплением выполнению рефлекторных действий без необходимости прохождения системой полной траектории от ситуации к цели. Это повышает возможности обучения системы.
Предположительно, для обучения распознаванию процессов и связыванию их со значимостью целей нет необходимости в действиях системы. Достаточно наблюдения того, как начальная ситуация переводится с помощью процесса в ситуацию, которая соответствует реализации цели. Это также повышает возможности обучения системы.
Выше были описаны элементарные ситуации, в которых рассматриваемый механизм контроля может быть применим, однако в реальности может происходить и распознаваться одновременно несколько процессов, которые ведут к различным целям с различной значимостью. Вопрос масштабирования подхода на случай многозадачности остается открытым.
Предположительно, подобный механизм управления может быть встроен и мозг человека и других животных. Например, когда стеклянная кружка падает со стола на пол, вы в ряд ли представляйте образы как она разлетается на осколки, как их придется убирать и как вы покупаете новую кружку (образы негативных последствий). Однако вы точно знаете, чувствуете, что падение кружки на пол это плохо и ее нужно остановить. И иногда даже получается ее перехватить. Я считаю, что здесь распознается процесс падения кружки, который имеет негативную значимость и который нужно остановить, аналогично тому, как это описано в модели выше.
Касательно алгоритма обучения системы, который позволит реализовать дополнительный механизм контроля, описанный выше, я его пока не реализовал в коде и не совсем понимаю как это сделать. Есть мысль по поводу того, что можно использовать производную по времени от вектора входных сигналов и использовать стандартный метод обучения с подкреплением. Еще раз повторюсь, что задача - распознать процесс и связать с ним значимость реализации цели, к которой ведет выполнение данного процесса. Я буду рад конструктивным предложениям и идеям как такое можно реализовать в коде.