Search
Write a publication
Pull to refresh

Размышления о модели целенаправленного поведения для ИИ

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

Основная идея подхода заключается в том, чтобы при принятии решений и обучении автономного ИИ использовать не только информацию о состоянии окружающей среды, которая поступает на сенсорные входы системы в данный момент времени, но и информацию о динамике изменения состояния среды во времени. Состояние среды будем называть ситуацией, а паттерн активности входов системы, который соответствует данной ситуации, будем обозначать вектором S(t). Входы системы, например, могут быть представлены видеокамерой, а вектор S(t) может быть набором яркости пикселей, информация о которых поступает с видеокамеры. Тогда динамика изменения состояния системы во времени может быть описана вектором

\textbf{P}(t) = \frac{\partial \textbf{S}(t)}{\partial 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, то поворот и смещение с траектории движения к этому состоянию будет подкрепляться положительной обратной связью. При этом поворот можно также, как и движение, торможение, ускорение представить как процесс и связать с ним значимость некоторой цели.

Рассматриваемый дополнительный механизм управления предполагается использовать не вместо а вместе с базовым рефлекторным подходом к управлению ИИ. Предположительно, он будет выполняться функции дополнительного контроля того, что рефлекторные действия действительно ведут к достижению цели. Где это может быть полезно?

  • При изменении свойств окружающей среды и/или самих систем робота выполнение рефлекторных действий, которым была обучена система уже не приводит к такому же изменению входных сигналов, который наблюдался при обучении. В этом случае чисто рефлекторный подход может привести к нулевому или даже отрицательному результату. Например, если в простейшем одномерном случае поменять местами выходные сигналы, которые приводят к движению робота вперед и назад, то активация рефлекторного действия "вперед" приведет к движению робота назад, то есть удалению от цели. С другой стороны, если использовать дополнительный механизм контроля, то при распознании процесса движения назад через отрицательную обратную связь это движение будет остановлено. Затем при случайном запуске сигнала "назад" начнется движение вперед и оно продолжится из-за положительной обратной связи. В итоге этот подход позволит значительно повысить адаптивность системы по отношению к изменению свойств среды и расширит число ситуаций, в которых система может достичь цели, то есть сделает ее более "общей".

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

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

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

Предположительно, подобный механизм управления может быть встроен и мозг человека и других животных. Например, когда стеклянная кружка падает со стола на пол, вы в ряд ли представляйте образы как она разлетается на осколки, как их придется убирать и как вы покупаете новую кружку (образы негативных последствий). Однако вы точно знаете, чувствуете, что падение кружки на пол это плохо и ее нужно остановить. И иногда даже получается ее перехватить. Я считаю, что здесь распознается процесс падения кружки, который имеет негативную значимость и который нужно остановить, аналогично тому, как это описано в модели выше.

Касательно алгоритма обучения системы, который позволит реализовать дополнительный механизм контроля, описанный выше, я его пока не реализовал в коде и не совсем понимаю как это сделать. Есть мысль по поводу того, что можно использовать производную по времени от вектора входных сигналов и использовать стандартный метод обучения с подкреплением. Еще раз повторюсь, что задача - распознать процесс и связать с ним значимость реализации цели, к которой ведет выполнение данного процесса. Я буду рад конструктивным предложениям и идеям как такое можно реализовать в коде.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.