Заигрывание с демократией

Viktor Love
13 min readDec 30, 2019

--

У меня проснулся небольшой интерес к моделированию демократии.

TL;DR: мое мини-”исследование” показало, что все сложно, блин. Тем не менее, дискриминирующая демократия имеет право на жизнь в ограниченном ряде случаев.

Источник вдохновения

Есть прекрасный цикл статей от Лекса Кравецкого:

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

Дисклеймер

В статье будет рассматриваться достаточно убогая модель. Модель не учитывает очень много вещей. Вероятность того, что модель мало относится к реальности чуть больше, чем дофига. Любые выводы нужно делить на бесконечность.

Стартовая точка

Терминология

“IQ” (в кавычках) — вероятность угадать правильный ответ.

Изначальная модель

Как отправную точку я использую модель плюс-минус похожую на ту, которая описана в статьях выше.

Прямая демократия, т.е. решение принимается большинством голосов. Модель рассматривает два варианта ответа: “правильный” и “ошибочный”. Если больше половины проголосовало за правильный ответ, то считается, что принято правильное решение. Если проголосовало меньше половины, то считается, что принято неправильное решение. Если голосование разделилось ровно 50% на 50%, то подбрасываем монеточку (дальше будут пояснения почему так).

Каждый человек имеет определенную вероятность принять правильное решение. Мы предполагаем, что человек в среднем принимает решение лучше рандом-генератора.

Распределение вероятности угадать среди людей — нормальное со среднеквадратическим отклонением в 0.15 (число взято от фонаря); среднее задается параметром. Но! Чтобы вероятность оставалась в пределах [0,1], мы исскуственно обрезаем выходящие за пределы значения.

По итогу получается не совсем нормальное распределение, а что-то похожее на это:

По горизонтальной оси отложен “IQ” человека (вероятность правильно проголосовать). По вертикальной оси отложено количество людей с таким “IQ” среди общей массы.

Зачем монеточка?

Согласно моей модели при равенстве голосов мы подбрасываем монетку. Без этого результаты получаются достаточно дрянные.

Давайте рассмотрим пример. У нас есть два человека, которые по отдельности принимают корректные решения с вероятностью 90%. Давайте объединим их и заставим проголосовать. Они проголосуют оба за корректное решение только в 90%*90%=81% случаев. Они проголосуют оба за некорректное решение только в 10%*10%=1% случаев. В 18% случаев их голоса разойдутся и нужно будет решить конфликт.

В статьях выше конфликт разрешался тем, что “будем считать, что демократия провалилась и было принято некорректное решение”. Т.е. вместо улучшения результатов мы получали падение эффективности c 90% до 81%. Довольно глупо, да еще и сильно нарушает плавность графика “вероятность правильного решения от количества людей”.

Теперь предположим, что мы подбрасываем монетку. Тогда 18% случаев конфликта распределится следующим образом: в 9% будет принято корректное решение, в 9% будет принято ошибочное решение. Итого в 81%+9% = 90% случаев будет принято корректное решение. Монеточка рулит!

Нормальной альтернативы, увы, нет.

Технические моменты

Вычисление вероятности правильного корректного решения происходит с помощью запуска симуляций. Симуляции запускаются, пока нам не покажется, что достигнута абсолютная точность ±0.0025 c confidence=99%. Результаты округляются до двух точек после запятой.

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

Из-за убогости метода генерации распределения “IQ” мы не можем просто указать, что нам хочется, чтобы средняя вероятность угадать была 0.9 или 0.8. Наивное обрезание “IQ” отклоняет реальное среднее от желаемого. Поэтому в модельке всегда придется подсчитывать реальное среднее, чтобы не удивляться. Тем не менее, для среднего “IQ” в области 0.4–0.6 этот эффект не существенен.

Интерпретация модели

Толпа в среднем умных людей демократическим путем чаще приходит к умному решению, чем отдельные её члены.

Толпа в среднем тупых людей демократическим путем чаще приходит к тупому решению, чем отдельные её члены.

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

Стартовая точка заканчивается

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

Запретить идиотов

Идея “запретить голосовать идиотам” достаточно популярна в определенных кругах. Давайте рассмотрим, насколько хорошо эта штука будет работать.

Дисклеймер

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

Совершенствуем модель

Итак, мы собираемся отсекать идиотов и не давать им голосовать. Для этого мы попробуем ввести экзамен.

В идеале мы бы взяли точку отсева за “интеллект как у монетки”.

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

Мы также не можем считать, что решение отдельных задачек на экзамене коррелирует со способностями (задачки на экзамене просты, а реальные вопросы сложные).

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

Описание модели

Погрешность “оценки IQ” симулировать будем через нормальное распределение со средним 0 и со стандартным отклонением в 0.5 (это число взято от фонаря; но оно сильно больше, чем стандартное отклонение “IQ” в 0.15).

Полученный бал на экзамене = Clamp(IQ + погрешность, 0, 1). Вероятность проголосовать правильно = Clamp(IQ, 0, 1).

Clamp — функция, обрезающая значение так, чтобы оно попадало в заданные пределы.

Обрезать идиотов будем по рейтинговой системе. Вошли в топ самых тупых — потеряли право голоса. Введем параметр threshold. Если threshold = 10%, то мы отсекаем всех, кто строго хуже 10% людей.

Такая схема позволит нам при threshold = 100% получить ненулевое количество голосующих. Хотя-бы один человек будет не строго хуже всех остальных. А в большинстве случаев у нас будет куча людей, которые получили максимальный бал на экзамене.

Дополнительные пояснения по поводу threshold

Threshold = 100% отсекает не 100% людей, а где-то около 75–85%. Аналогично threshold = 10% будет отсекать не 10% людей, а где-то 0.05% до 5%. А вот threshold от 30% до 70% введет себя более интуитивно понятным образом, отсекая примерно столько же, сколько и хотели.

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

Так, например, для mean IQ = 0.51 мы получим следующую табличку зависимости “сколько пойдет голосовать” от заданного threshold.

Технические детали

Для разных средних “IQ” мы будем смотреть, как меняется вероятность принятия правильного решения в зависимости от того, как много процентов людей мы отрезаем из-за их “тупости”.

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

mean “IQ” = 0.51

Посимулируем слегка умную толпу. Полные данные симуляции здесь: Threshold Democracy “IQ” Mean=0.51

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

В хидере указывается, сколько людей мы отсекаем (threshold). В ячейках — вероятность правильно принять решение. Красные точки — самые плохие результаты среди этого количества голосующих. Зеленые точки — самые хорошие результаты среди этого количества голосующих. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных
В хидере указывается, сколько людей мы отсекаем. В ячейках прописано насколько улучшилась вероятность по сравнению с предыдущим threshold. Красные точки — ухудшение. Зеленые точки — улучшение. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных.
Зависимость “IQ” толпы от размера толпы для разных threshold.

Теперь сделаем фокус-покус. Развернем данные так, чтобы можно было увидеть как зависит необходимый начальный размер толпы от threshold. А потом воспользуемся этим, чтобы оценить, как отличается размер толпы при разных threshold от базового.

Сколько нужно людей при различных threshold, чтобы достичь того же массового “IQ”, что и при threshold=0%. Более детальные данные на вкладке “Voters Percentage based on Threshold and Crowd IQ”

Вообще нет, между прочим. Для того, чтобы всерьез сравнивать эффект от threshold и эффект от размера толпы нужно честно сравнивать. Но общая идея тренда понятна.

Что мы видим из этих данных:

  • Результаты применения threshold плавают. Повышение threshold не всегда приводит к улучшению результата. Тем не менее, почти всегда достаточно высокий threshold лучше его отсутствия.
  • С ростом количества голосовальщиков эффект от повышения threshold становится все менее значимым.
  • Экзамен с threshold= 20% аналогичен увеличению размера толпы примерно в 4.2 раза.
  • Экзамен с threshold = 50% аналогичен увеличению размера толпы 9.3 раза.
  • Экзамен с threshold = 10% иногда ухудшает результаты (падает массовый “IQ”, нужен больший размер толпы); и в целом не настолько улучшает среднюю картину, чтобы его можно было рассматривать всерьёз. Скорее всего это от того, что такой threshold отсеивает скорее неудачников, чем глупых.
  • В маленьких коллективах threshold действует сильнее, но это нужно дополнительно исследовать

mean “IQ” = 0.6

Посимулируем довольно умную толпу. Полные данные симуляции здесь: Threshold Democracy “IQ” Mean=0.60

В хидере указывается, сколько людей мы отсекаем (threshold). В ячейках — вероятность правильно принять решение. Красные точки — самые плохие результаты среди этого количества голосующих. Зеленые точки — самые хорошие результаты среди этого количества голосующих. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных
В хидере указывается, сколько людей мы отсекаем. В ячейках прописано насколько улучшилась вероятность по сравнению с предыдущим threshold. Красные точки — ухудшение. Зеленые точки — улучшение. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных.
Зависимость “IQ” толпы от размера толпы для разных threshold. Честный график
Зависимость “IQ” толпы от размера толпы для разных threshold. Приближенный график

Что мы видим из этих данных:

  • Threshold оказывает какой-то положительный эффект только если он небольшой (20%). При больших threshold (≥ 50%) мы получаем по голове потому что отсеяли не только тупых, а и умных.
  • Для достаточно большой толпы threshold не оказывает существенного влияния в рамках заданной точности. Возможно, если повысить точность, то можно увидеть что-то более интересное.

mean “IQ” = 0.49

Посимулируем слегка тупую толпу. Полные данные симуляции здесь: Threshold Democracy “IQ” Mean=0.49

В хидере указывается, сколько людей мы отсекаем (threshold). В ячейках — вероятность правильно принять решение. Красные точки — самые плохие результаты среди этого количества голосующих. Зеленые точки — самые хорошие результаты среди этого количества голосующих. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных
В хидере указывается, сколько людей мы отсекаем. В ячейках прописано насколько улучшилась вероятность по сравнению с предыдущим threshold. Красные точки — ухудшение. Зеленые точки — улучшение. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных.
Зависимость “IQ” толпы от размера толпы для разных threshold.

Что мы видим из этих данных:

  • С threshold=0% мы видим, что толпа идиотов закономерно принимает решения хуже, чем отдельные участники. И чем больше толпа, тем хуже качество.
  • С threshold=10% мы видим, что это таки бесполезный отсев
  • С threshold=20% мы видим, что экзамен рулит и бибикает! Мы превратили глупую толпу в умную, запретив голосовать всего 20% людей.
  • Результаты применения threshold плавают, но не так сильно. Повышение threshold до упора все еще не всегда дает лучшие результаты, чем маленькие threshold; но в целом уже более оправданно.
  • С ростом количества голосовальщиков отрыв между threshold=0% и threshold=20% становится все больше и больше.

mean “IQ” = 0.40

Посимулируем довольно тупую толпу. Полные данные симуляции здесь: Threshold Democracy “IQ” Mean=0.40

Здесь получились несколько неожиданные, но вполне объяснимые результаты.

В хидере указывается, сколько людей мы отсекаем (threshold). В ячейках — вероятность правильно принять решение. Красные точки — самые плохие результаты среди этого количества голосующих. Зеленые точки — самые хорошие результаты среди этого количества голосующих. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных
В хидере указывается, сколько людей мы отсекаем. В ячейках прописано насколько улучшилась вероятность по сравнению с предыдущим threshold. Красные точки — ухудшение. Зеленые точки — улучшение. AVG (невзвешенный) посчитан на основе всех результатов, а не только приведенных.
Зависимость “IQ” толпы от размера толпы для разных threshold.

Что мы видим из этих данных:

  • Оказывается, довольно тупую толпу с помощью фигового экзамена можно только притормозить в скорости падения общего “IQ”
  • Внезапно, увеличение threshold практически всегда оказывает положительное влияние на такую толпу. Исключение составляет настолько малое количество точек, что этим можно пренебречь (и есть подозрение, что эти точки объясняются недостаточной точностью)

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

Дополнительные замечания

Если Mean “IQ” = 0.49, то при большом количестве участников “IQ” толпы стремится к 1.

Если Mean “IQ” = 0.48 и Threshold=20%, то при большом количестве участников “IQ” толпы стремится к 0.

Если Mean “IQ” = 0.48 и Threshold=50%, то при большом количестве участников “IQ” толпы стремится к 1.

Повысим точность экзамена

Если понизить погрешность экзамена так, чтобы она имела стандартное отклонение не 0.5, а 0.15 (т.е. была сравнима с погрешностью “IQ”); то мы получим немного другие результаты.

Если Mean “IQ” = 0.45 и Threshold=20%, то при большом количестве участников “IQ” толпы стремится к 0.

Если Mean “IQ” = 0.45 и Threshold=50%, то при большом количестве участников “IQ” толпы стремится к 1.

Если Mean “IQ” = 0.4 и Threshold>=60%, то при большом количестве участников “IQ” толпы стремится к 1.

Т.е. повышение точности экзамена приводит к тому, что мы дополнительно улучшили совсем небольшую область тупизны.

И от идиотов должна быть польза

Идея такая. Раз толпа идиотов практически гарантированно примет неправильно решение, то мы можем просто добавить отрицание.

Мнение идиотов учитываем с отрицательным весом. Мнение умных с положительным весом.

Модель

Стандартное отклонение погрешности экзамена — такое же, как и в предыдущей модели (0.5).

Голос каждого человека учитывается с определенным весом. Вес вычисляется на основе перцентиля, в который попал человек.

[ 0%, 25%)  Вес -1
[25%, 50%) Вес -0.5
[50%, 75%) Вес +0.5
[75%, 100] Вес +1

Голоса всех взвешенно суммируются. Побеждает та опция, у которой больше сумма. При равенстве сумм решает монетка.

Технические моменты

Поскольку мне надоело долго симулировать, то я вбил ограничение: симулировать пока factor crowd “iq” не дойдет до 1. Все остальные размеры толп будут экстраполированы. Так можно делать потому что функция в целом монотонно растет, если исключить погрешность симуляции.

Для сравнения я беру данные из предыдущих симуляций (0% Threshold = Naive crowd, 20% Threshold, 50% Threshold)

Результаты

Данные симуляции:

Визуализация:

“IQ” Mean = 0.51
“IQ” Mean = 0.60
“IQ” Mean = 0.49
“IQ” Mean = 0.40

И вот здесь стало очень интересно. Модель более чем хорошо выдерживает глупые толпы и слегка умные.

На довольно умной толпе есть ухудшение по сравнению с “один человек = один голос”, но сильно заметно оно только на малом количестве людей.

Дополнительные результаты

“IQ” Mean = 0.795 . Осторожно, здесь Voters = 500, а не 5000 как везде

Тут интересно вот что: с повышением среднего интеллекта Factor crowd “IQ” тоже улучшается. Т.е. метод работает хуже только в сравнении с обычной демократией; но в целом метод любит людей высокого интеллекта.

Ух ты ж ёпт

А вот график при Mean “IQ” = 0.3 меня немного напугал из-за наличия подъема и последующего падения. Я-то думал, что график должен быть везде монотонным.

“IQ” Mean = 0.30 . Осторожно, здесь Voters = 2000, а не 5000 как везде

Поэтому я на всякий случай проранил симуляцию для достаточно больших Voters, чтобы убедиться, что это локальный дефект точек Mean “IQ” <= 0.3.

Согласно этим симуляциям, когда Mean “IQ” = 0.3, то “IQ” толпы для такого метода начинает уходить к нолю. А вот когда Mean “IQ” >= 0.35, то “IQ” толпы начинается стремиться к единице. Увы, все еще есть риск, что где-то на бесконечности оно наебнется в ноль.

Точность экзамена

Если понизить погрешность экзамена так, чтобы она имела стандартное отклонение не 0.5, а 0.15 (т.е. была сравнима с погрешностью “IQ”); то мы получим немного другие результаты.

Для Mean “IQ” = 0.16 этот метод приводит к тому, чтобы общий “IQ” толпы стремился к 1. Вот для меньших Mean — уже нет.

Для высоко-интеллектуальной толпы метод начинает выравниваться и давать эффекты более близкие к наивной демократии

Проблемы моделей

Технические проблемы

Было бы неплохо убрать различие между желаемым средним “IQ” и реальным средним “IQ”. Но эта мелочь не влияет на низкие средние “IQ”.

Threshold = 10% бессмыслен, потому что скорее отсеивает только небольшой процент “неудачников”. Нужно доработать модель отсеивания идиотов.

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

Связь погрешности экзамена и эффективности

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

Результаты были бы более репрезентативные, если бы погрешность экзамена не была задана настолько жестоко. Можно было бы сделать её параметром и изучить зависимость “IQ” толпы от погрешности.

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

Экзамены не всегда хороши

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

Не показано, что модель устойчива к подобными искажениям.

К экзаменам готовятся

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

А еще изначально у нас нет статистических данных о связи экзамена с реальными навыками принимать корректных решений. Мы не можем выбрать корректные значения threshold ни в какой момент времени.

Не показано, что существуют threshold устойчивые к этой проблеме.

Распределение?

Вот мы показали, что для коллектива размеров в 10 и средним “IQ” в 0.51 при использовании threshold = 50% у нас вероятность получить правильный ответ равна 0.58, что лучше, чем 0.52 (без threshold). Но это в среднем среди всех коллективов.

За счет чего это достигается? Этот метод так хорош для всех подобных коллективов? Или мы сильно улучшили жизнь паре коллективов, а остальным подпортили жизнь, но только слегка?

“Независимое” голосование

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

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

А могут и не терять — смотреть надо.

На самом деле нет “правильных” и “неправильных” ответов

Концепция “правильных” ответов существует только в небольшом количестве реальных вопросов. Зачастую вопрос неявно включает в себя подвопрос “а какие у нас приоритеты?”. Отсеивая неслучайным образом мы формируем нерепрезентативную выборку: приоритеты согласно этой выборке будут отличаться от приоритетов согласно общей совокупности.

Не, ну можно конечно сказать: нас не волнуют приоритеты идиотов. Но это совсем не демократия получается; но почему бы и нет.

Плавающий интеллект

У толпы средний “IQ” будет разным из-за различных условий: поменялся состав толпы, реклама надавила на мозг, etc. Подобные отклонения при миллионной толпе вблизи точки mean “IQ” = 0.51 будут давать крайне эпичные результаты.

Там где мы ожидали бы, что решение принимается корректно почти всегда — оно может приниматься 50/50.

Ни одна из моделей явно не содержит “устойчивости” к подобным отклонениям.

Хотя стоит заметить, что наивная демократия судя по всему менее устойчивая, чем её вариации рассмотренные в статье.

--

--

Viktor Love
Viktor Love

Written by Viktor Love

Software Engineer from Ukraine. TypeScript, React, C#, Angular.

No responses yet