Модели пространства состояний в ИИ

Мне страшно нравится ИИ, который помогает нам чуть лучше понять, как работает наш собственный мозг. Такого ИИ немало, потому что очень многие модели, на самом деле, выросли из желания исследователей разобраться, что же происходит у нас в голове. Сегодня я расскажу как раз про такой пример – модели пространства состояний (State Space Models).

О пространстве состояний

Наука о принципах управления любой системой (или любым процессом или объектом от компьютерной программы до человеческих обществ) называется теорией управления. Управление заключается в сборе информации об объекте управления, анализе этой информации, постановке целей, внедрении выбранного метода управления и оценке результатов.
Началось все с регулирования потока воды для водяных часов в древней Греции и термостатов в 17 веке, потом оказалось, что базовые принципы управления применимы в математическом моделировании, потом в экономике, политологии и социологии – короче говоря, везде.
В рамках теории управления есть ряд методов для описания поведения управляемой динамической системы. Один из основных – пространство состояний. Здесь все просто: система, изменяясь, принимает разные состояния, каждое из которых можно представить как точку в пространстве. Соединив точки, мы получим траекторию движения (изменений) системы.
Модель пространства состояний – это, собственно, математическое представление движения системы.

О мозге

Помните, мы как-то говорили про нейроморфные вычисления? Если не помните, то я об этом посте в моем телеграме. Там шла речь о импульсных нейронных сетях (spiking neural networks). Дабы не повторяться, я отсылаю вас к этому посту за подробностями, а пока пойдем дальше.
В 2018 году вышла статья «Improving Spiking Dynamical Networks: Accurate Delays, Higher-Order Synapses, and Time Cells» («Усовершенствование динамических импульсных сетей: уточненные задержки, синапсы высокого порядка и временных клеток»). «Временные клетки» – это нейроны, которые активируются в определенные временные интервалы в ходе в процессе выполнения заданий (в лабораторном эксперименте эти нейроны нашлись у крыс). Они могут вносить вклад в формирование воспоминаний, «отмечая» конкретные временные промежутки.
Так вот, авторы статьи, изучая процесс формирования воспоминаний, пришли к тому, что модели пространства состояний прекрасно подходят для описания работы тех самых временных клеток, в частности, для описания динамики их активности. Для наилучшего понимания рассмотрим схему из статьи.

<i>(Это структурная схема непрерывной линейной системы в классическом виде)</i>
(Это структурная схема непрерывной линейной системы в классическом виде)

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

  • u(t) – входящий сигнал, который получен в момент времени t;
  • A, B, C, D – матрицы из чисел, которые описывают динамику системы, то есть то, как система перерабатывает сигнал;
  • сначала сигнал u(t) изменяется с помощью матрицы B и запускает интегрирующий блок ∫, который нужен, чтобы накапливать поступающую на вход информацию;
  • получается новое состояние системы – x;
  • новое состояние изменяется с помощью матрицы C;
  • матрица A определяет, как текущее состояние системы будет влиять на последующий вход, то есть, после умножения на A x уменьшается или увеличивается, и в этом измененном виде добавляется к новому входящему сигналу;
  • параллельно входящий сигнал изменяется с помощью матрицы D и в этом виде передается на выход, чтобы вместе с выходом, измененным матрицей C, сформировать финальный сигнал y.

Вам это что-то напоминает? Это напоминает нейронные сети с долгосрочной и краткосрочной памятью – LSTM. Давайте скажем о них пару слов.

Наконец, о нейросетях

Сети с долгосрочной и краткосрочной памятью – прорыв своего времени. Им предшествовали сети только с краткосрочной памятью – рекуррентные сети (Recurrent Neural Networks, RNNs). Они появились в восьмидесятых годах прошлого века и стали прорывом в машинном обучении. «Обычные» – линейные нейросети или нейросети прямого распространения (feed-forward) – передают информацию от входа к выходу через несколько слоев. В каждом слое данные преобразуются, но информация, полученная на предыдущем этапе, никак не влияет на все последующие.
Краткосрочная память в рекуррентные сетях обеспечивается за счет одного небольшого дополнительного шага – передачи части информации из предыдущего этапа на следующий.

<i>(Картинка из <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.geeksforgeeks.org%2Fintroduction-to-recurrent-neural-network%2F&postId=1734604" rel="nofollow noreferrer noopener" target="_blank">поста</a> на geeksforgeeks, который я рекомендую, если вы хотите больше подробностей)</i>
(Картинка из поста на geeksforgeeks, который я рекомендую, если вы хотите больше подробностей)

Итак, на вход подается вектор x. На слое h он как-то преобразуется (умножается на какую-то матрицу и складывается с какой-то матрицей). Затем полученный результат передается дальше на шаг L и сохраняется в слое h. Следующий вектор подается на вход, преобразуется в слое h, затем к нему добавляется результат, сохраненный на предыдущем этапе (v). И так далее.
Таким образом, каждый предыдущий шаг влияет на каждый следующий, однако такая память работает только на один шаг назад.
В сетях с долгосрочной и краткосрочной памятью есть еще пара компонентов.

<i>(Не могу найти источник этой картинки, я сохранила ее давно из-за наглядности. Но хороший пост с подробностями снова есть на <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fwww.geeksforgeeks.org%2Fdeep-learning-introduction-to-long-short-term-memory%2F&postId=1734604" rel="nofollow noreferrer noopener" target="_blank">geeksforgeeks</a>)</i>
(Не могу найти источник этой картинки, я сохранила ее давно из-за наглядности. Но хороший пост с подробностями снова есть на geeksforgeeks)

На вход в момент времени t подается вектор xt. У него на пути три «шлагбаума». Первый отмечен синим цветом (forget). Он отвечает за то, какая часть информации из предыдущего этапа t-1 передается на следующий этап. Этот «шлагбаум» – число от нуля до единицы, на которое умножается вход предыдущего этапа. Если число ближе к нулю, от информации с предыдущего этапа остается не так много, и она почти не влияет на новый результат. Если число ближе к единице, информация с предыдущего этапа остается почти в неизменном виде, а значит, ее влияние велико. Влияние обеспечивается тем, что прошедшие через синий шлагбаум остатки информации добавляются ко входу текущего этапа, но не раньше, чем тот пройдет через свой шлагбаум.
Красный шлагбаум (input) – это такое же число от нуля до единицы, которое определяет, какая часть входящей информации пройдет дальше и будет использована для формирования конечного результата.
Наконец, сложенные остатки информации с предыдущего этапа и остатки информации текущего этапа проходят через зеленый шлагбаум, где сидит еще одно число от нуля до единицы. Оно определяет, какая часть полученного результата выходит в следующий слой (она же потом будет пропущена через синий шлагбаум, чтобы повлиять на формирование нового результата).
Так «память» об информации, полученной на предшествующих этапах, сохраняется и используется гораздо дольше, повышая точность и надежность результатов.
В линейной системе, в которой моделируется пространство состояний, есть состояние системы x, которое тоже выполняет роль памяти. Она сохраняет информацию о предыдущих входах, которые влияют на изменения следующих.
Матрицы A, B, C и D в линейной системе выполняют роль, схожую с ролью «шлагбаумов» в сетях с долгосрочной и краткосрочной памятью. Они видоизменяют вход, выход и определяют влияние предшествующего состояния на текущий результат.

Тем не менее, это разные конструкции: линейные системы гораздо более жесткие, поскольку изначально рассчитаны на моделирование сравнительно простых систем. Но их сходства позволяют нам понять, как методы из теории управления перетекают в глубокое обучение и становятся основой новых нейросетевых архитектур.
Модели пространства состояний сейчас используются в робототехнике и автономном транспорте, моделировании экономических и социальных процессов, создании интерфейсов «мозг-компьютер» и много где еще.

Заключение

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

1 комментарий

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