Социальное обучение и распределённое тестирование гипотез

Накопала статью аж 2016 года, которая называется «Social Learning and Distributed Hypothesis Testing» («Социальное обучение и распределённое тестирование гипотез»). На первый взгляд, это что-то из социологии, но на деле работа существенно шире – и это очень интересно. Пошли разбираться.

О чём речь

Если отдельно поискать, что такое «социальное обучение», попадаются работы про то, как люди учатся, глядя друг на друга. Если отдельно поискать, что такое «распределённое тестирование гипотез», попадаются работы про сети датчиков, которые собирают разные данные и обмениваются ими.

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

Допустим, у нас есть направленный граф. Внутри него каждый узел имеет доступ к информации, которая есть у его непосредственного соседа, и может непосредственному соседу передавать свою информацию.

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

Процесс начинается с того, что у каждого узла есть некоторый вектор значений. Авторы статьи называют его «исходный частный вектор мнения» (initial private belief vector), но, поскольку задача относится не только к людям, вектор может содержать набор данных, полученных с какого-нибудь датчика, например.

Получив новую информацию от соседей, узел обновляет свой частный вектор с использованием теоремы Байеса (про то, как это происходит, писала здесь). Можно использовать не только теорему Байеса, но мы остановимся пока на ней, потому что нам она знакома и понятна. Если нет, не стесняйтесь писать комментарии – отвечу.

После обновления узел посылает свой новый вектор соседям и получает их новые векторы (все узлы работают параллельно). На каждом этапе узел хранит два вектора: частный и публичный. Частный вектор формируется, когда узел получает обновления от соседей. Он «частный», потому что никуда не передаётся. После того, как узел обновил частный вектор исходя из своей информации, вектор становится «публичным» и отправляется соседям.

<i>Картинка от меня</i>
Картинка от меня

На схеме я не стала указывать, но есть ещё «матрица доверия», в которой содержатся коэффициенты доверия между всеми парами узлов. Если коэффициент доверия Узла 1 к Узлу 2 высокий, вектор Узла 2 влияет на вектор Узла 1 существенно. Если низкий, то наоборот.

Таким образом, информация распространяется по сети, обновляется, неверные гипотезы отвергаются, и узлы (в статье их также называют «агенты») совместно приходят к верной гипотезе.

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

Заключение

Сейчас попробую прочитать ваши мысли.

Итак, вы подумали: «А это уже применили к ИИ-агентам?» – Применили, конечно же.

Я добавила в свой список пять статей на разбор и буду про них рассказывать в ноябре-декабре у себя в телеграме.

Начать дискуссию