Калибровка уверенности

Калибровка уверенности

ReverendBayes

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

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

А именно, сегодня мы будем говорить о т.н. калибровке уверенности.

Как выглядит плохая калибровка

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

Предположим, что мы спросили какого-то человека (хотя бы даже и самого себя): "какова вероятность, что выйдя из дома тогда, когда ты собираешься, ты прибудешь на встречу вовремя?" Пусть последовал ответ: "90%". Это означает, что он ожидает, что в серии подобных ситуаций (отношение эквивалентности - "ситуация, когда на такой же вопрос респондент отвечает, что вероятность равна 90%") он прибудет к месту назначения вовремя в 9 случаях из 10. В реальности, как мы знаем, чаще всего он окажется пунктуальным (условно) в 3 случаях из 10.

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

Гипотеза о калибровке

Далее мы будем предполагать, что причина такого искажения восприятия - простое по структуре систематическое (!) искажение, которое поддается корректировке. Эта гипотеза совершенно точно оказывается неверной в ряде случаев; что можно делать в таких ситуациях - мы вкратце рассмотрим позже, пока же сосредоточимся на тех случаях, когда гипотеза применима.

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

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

Умение же оперировать абстрактными числовыми/вероятностными категориями кажется по умолчанию менее совершенным, и вполне может оказаться сломанным. Однако и починка этой (вообще-то довольно несложной) постобработки кажется вполне посильной задачей - и является, собственно, предметом калибровки.

Выглядеть начальная ситуация и желаемый результат могут примерно так. Пусть наш внутренний симулятор в ответ на задачу "оцени вероятность события X" генерирует смутные ощущения со спектром (для определенности) { A, B, C, D, E }. При оцифровке этих ощущений мы систематически переводим эти значения, условно, в величины 10%, 30%, 50%, 70% и 90% соответственно. При этом если бы мы откалибровались на величины (для примера) 2%, 8%, 20%, 30% и 60%, то наш результат Брайера (один из вариантов оценки качества серии предсказаний) оказался бы гораздо лучше.

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

Зачем нужна хорошая калибровка

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

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

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

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

  • время на перемещение из пункта А в пункт Б ⇒ выходить из дома пораньше
  • время на выполнение рабочих/учебных/домашних задач ⇒ просить больше времени на выполнение задачи, садиться за подготовку к экзаменам пораньше, не планировать слишком много дел на один вечер или делегировать их кому-то еще
  • число просматриваемых за один заход серий сериала или число ходов в одной сессии игры в Sid Meyer's Civilization ⇒ не садиться за сериал за час до планируемого времени отхода ко сну, либо подвинуть свои планы "на после того, как поиграю" на более поздний срок

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

Насколько хорош ваш текущий уровень

Чтобы начать улучшать свою калибровку, для начала необходимо узнать, каково ее качество на данный момент. Общий принцип состоит в том, чтобы дать достаточно большое количество оценок вида "это верно с вероятностью X%" и затем посчитать, как часто вы оказывались правы.

Идеальная калибровка выглядит следующим образом: ваши оценки вида "это верно с вероятностью 50%" верны ровно в половине случаев, оценки же вида "это верно с вероятностью 90%" верны в 9 случаях из 10, не больше и не меньше (и аналогично для всех остальных значений вероятности).

Если же для оценок категории "50%" вы были правы в 20% случаев, то у вас сильная сверхуверенность; если в 80% случаев, то сильная недоуверенность.

Если ваша оценка идеальна или близка к таковой - так держать! Если же нет - вам стоит в будущем целенаправленно корректировать свои предсказания в соответствующую сторону (снижать оценки вероятности для сверхуверенности, увеличивать - для недоуверенности).

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

Однако можно воспользоваться и аналоговым вариантом. Для этого нужно где-то взять (например, попросить кого-нибудь составить с нуля или списать из онлайн-калибратора) список из 20 вопросов вида "Каков размах крыльев Боинга-747 в метрах?" (правильные ответы вы не должны знать заранее) и попытаться дать свою субъективную оценку соответствующей величины.

Лучше всего заполнять табличку с двумя-тремя колонками - в одной из колонок для удобства проверки правильных ответов записывается сам вопрос, в остальные - интервал значений, в который по вашему мнению должно с указанной вероятностью попадать истинное значение. Обычно используется две колонки для доверительных интервалов - 50% и 90% (на мой взгляд, это наиболее полезные значения с практической точки зрения).

В этом случае значения [10, 50] и [5, 200] в этих колонках означают "я считаю, что с вероятностью 50% размах его крыльев попадает в интервал от 10 до 50 метров включительно; с вероятностью 90% - от 5 до 200 метров включительно".

После того, как вы ответили на все 20 вопросов, вам нужно будет свериться с правильными ответами. В случае идеальной калибровки в первой колонке у вас окажется 10 правильных и 10 неправильных ответов, во второй - 18 правильных и 2 неправильных.

В типичных же случаях в одной или обеих колонках окажутся заметные перекосы в ту или иную сторону. Чаще всего люди страдают сверхуверенностью - в этом случае правильных ответов будет сильно меньше 10 и/или 18 соответственно (из-за слишком узких доверительных интервалов). Хотя порой бывает и недоуверенность - слишком широкие интервалы и слишком большое число угадываний.

Вообще же в разных колонках отклонения от идеала могут быть разной силы и даже разного типа (в одной колонке сверхуверенность, в другой - недоуверенность). Это не так уж удивительно, поскольку предсказания о 50% и 90% означают довольно разные вещи и могут обрабатываться нашим мозгом немного по-разному.

Советы по улучшению калибровки

Один из моих поводов для гордости - в рейтинге упомянутого выше онлайн-калибратора я по сию пору занимаю третье место из более чем тысячи участников (с результатами 86% и 41% в колонках 90% и 50% соответственно при 104 отвеченных вопросах). Хотя подобные навыки довольно сложно перекладывать из одной головы в другую, я могу упомянуть несколько важных на мой взгляд моментов, которые полезно иметь в виду для улучшения калибровки.

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

В вашем случае это может быть что-то свое, но лично для меня реальная вероятность 90% матчится на ощущение "уж в этом-то интервале значение 100% (sic!) окажется, зуб даю!"; 50% - это уже "ну хорошо, а теперь давайте попробуем оценить, какой тут в реальности интервал, чтобы он не был слишком уж широким", и тут я обычно ищу тонкую грань между "не сильно ошибиться" и "не дать широкий до практической бесполезности интервал".

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

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

Пусть для примера у нас есть широкий доверительный интервал [1, 10.000]. Обрезать его до [2.000, 8.000] - обычно плохая идея. Более правильный вариант зависит от конкретной ситуации, но довольно часто это могут быть значения вроде [10, 100], [10, 1000], [20, 3.000]. Во всяком случае, не зная конкретного вопроса, сложно выбрать по одному лишь внешнему виду, какой из них лучше, а какой хуже в качестве сужения интервала [1, 10.000] (в отличие от [2.000, 8.000], с которым сразу всё понятно).

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

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

Улучшение калибровки в реальной жизни

Допустим, вы неплохо поупражнялись с вопросами из Википедии, и теперь довольно прилично откалиброваны в вопросах вроде "какова ширина Великого Зиккурата в Уре" и "сколько было стволов в пулемете Леонардо да Винчи". Насколько это поможет вам в реальной жизни? На мета-уровне это может быть довольно полезно - как-никак, вы улучшили свой навык калибровки, но для получения практической пользы этот навык ведь еще нужно как-то адаптировать к реальности. Как именно?

План примерно таков: нужно начинать активно делать предсказания в реальной жизни, записывать их, обрабатывать и калибровать, и наконец начать применять предсказания на практике. Каждый из пунктов этого плана довольно нетривиален; и если пункт калибровки мы уже обсудили, то все остальные остались еще не рассмотренными. Что же, пора исправляться

Как начать делать предсказания

Вообще-то с ходу не очень понятно - а какие конкретно предсказания вообще имеет смысл делать. Неплохой список, от которого имеет смысл оттолкнуться при решении этой проблемы, можно найти в статье "16 видов полезных предсказаний". Наверное, самый универсальный и при этом практически полезный тип вопросов - это "сколько времени у меня уйдет на выполнение какой-то задачи?" (пункт 1 в списке), примерно столь же хорош "насколько успешно я справлюсь с задачей [по N-балльной субъективной шкале]" (пункт 3).

Чтобы не погрязнуть в излишнем количестве меты (к каковой калибровка явно относится), имеет смысл сосредоточиться на небольшом количестве типов предсказаний, которые наиболее актуальны именно для вас.

Еще одной важной проблемой может стать отсутствие привычки вообще делать предсказания. Для внедрения этой привычки можно использовать набор ТАПов (TAP, Trigger-Action Planning aka ПТД), например, "выбрал задачу из тудушника ⇒ сделать предсказание о том, сколько времени она у меня займет" или "записал в тудушник/календарь встречу ⇒ сделать предсказание о том, сколько времени мне потребуется на дорогу".

Запись, анализ и обработка предсказаний

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

Когда-то давно существовало отличное мобильное приложение под Android под названием LW Predictions, прекрасно решавшее задачи удобной записи, обработки и интерпретации результатов. К сожалению, оно уже пару лет как перестало работать совсем (и теперь его не то что сложно скачать, но даже невозможно добавлять новые предсказание в уже установленном приложении).

Из доступных сейчас мне известны два подобных приложения под Android - Predict и Personal Prediction Log. Их главный недостаток по сравнению с LW Predictions - отсутствие возможности группировать предсказания по категориям и вести статистику отдельно по каждой категории. А поскольку люди обычно хорошо откалиброваны относительно одних "видов полезных предсказаний" и существенно хуже - относительно других, то группировка - крайне важная функция для приложения на тему калибровки.

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

Частично решить эту проблему мне удалось с помощью Notion-шаблона для калибровки. Правда, это решение далеко от универсальности.

Во-первых, небогатые возможности Notion позволили мне сделать мало-мальски удобной только работу с предсказаниями вида "значение X попадает в интервал А с вероятностью 50% и в интервал B с вероятностью 90%" (и то - чтобы проверить предсказание, необходимо вручную переносить строчку из таблицы непроверенных предсказаний в таблицу проверенных с помощью Ctrl+X / Ctrl+V). Целый класс предсказаний вида "событие X случится с вероятностью Y" (а многие типы предсказаний из упомянутой выше статьи именно таковы) остался за бортом. Увы, текущие средства работы с Notion-таблицами не позволяют организовать работу с ними хоть сколько-то удобным образом.

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

Идеальным решением было бы создание нового мобильного приложения (желательно сразу под Android и iOS), более-менее повторяющего функционал LW Predictions. И я даже написал вариант ТЗ такого приложения (объемом 29.000 символов; из рассчета на 3 экрана приложения, 4 диалога, главное меню и пуш-уведомления), но дальше дело у меня, увы, не продвинулось. Одна из причин - в том, что стек мобильной разработки я знаю куда как хуже стека десктопной; но главное - моих навыков создания UI (дизайна, графики и прочих нюансов оформления) категорически не хватает даже для создания такого сравнительно небольшого проекта на мало-мальски приемлемом уровне.

Но если вы хорошо умеете в мобильную разработку и хотите принести немного пользы сообществу рационалистов - пожалуйста, обратитесь ко мне, я могу передать вам свои наработки вместе со скриншотами LW Predictions. И тогда у нас наконец появится хорошее приложение для калибровки!

Предсказания должны окупаться

Тот момент, когда хорошая эпистемическая рациональность непосредственным образом переходит в хорошую инструментальную, довольно нетривиален - даже для лучших из нас. Как сказала однажды Гермиона в "Значащих цифрах": "Я сделала прогноз [предсказание]... так почему же не опиралась на него?" Как можно научиться чаще опираться на предсказания?

Лично я порой замечаю у себя мимолетные мысли вида "ну конечно же, как обычно будет именно так" или "ну с самого начала было ясно, что так оно и будет". Эти мысли являются сигналом о том, что я либо сделал предсказание (чаще всего автоматически с помощью внутреннего симулятора; с помощью осознанной калибровки - это уже следующий шаг) и при этом в неявном виде не намерен действовать на его основе как байесовский агент; либо что у меня уже не сработал переход от эпистемологии к инструментальной рациональности. Так что я стараюсь вовремя замечать такие мысли и навешивать на них как на триггеры агентные мысли о необходимости скорректировать мое поведение в соответствии с предсказаниями.

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

Например, в случае понятно каких вопросов - можно выходить из дома заблаговременно или не садиться смотреть сериал перед сном; в случае получения предсказания "с вероятностью 50% задача займет минут пять; с вероятностью 90% - не более 8 часов" имеет смысл прямо сейчас поставить йода-таймер на 5 минут, чтобы проверить, получится ли выполнить задачу.

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

Если калибровка не работает

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

  • учитывайте как взгляд снаружи ("к черту мои хотелки о том, как оно будет - сколько обычно времени у меня занимало выполнение этой задачи?"), так и взгляд изнутри ("действительно ли нынешний случай типичен, или он все же чем-то существенно отличается от хрестоматийного");
  • используйте метод Ферми (разложите интересующий вас вопрос на шестеренки и дайте хотя бы грубую оценку каждой из них, а затем сложите их воедино и получите грубую оценку для итогового вопроса);
  • используйте что-то вроде якорения сразу на оба конца интервала ответив на вопросы "какие аргументы есть в пользу большего значения величины, а какие - в пользу меньшего?"

Также у меня есть ощущение, что помочь хотя бы частично разобраться с проблемами более точных оценок может книга "Как измерить все что угодно", хотя сам я ее не читал (но заочно одобряю).

Впрочем, нужно понимать, что довольно большую (хотя, возможно, не максимальную среди альтернатив) ценность имеет именно способность делать быстрые (и достаточно корректные) оценки. У меня есть большие сомнения, возможно ли прошить в Систему 1 навыки подобного шестереночного анализа. Более доступным на практике я вижу паттерн "после анализа статистики предсказаний по данной тематике запомнить, что ваш уровень экспертизы в ней довольно низок; если возникает необходимость дать оценку в этой области - активировать Систему 2 и поручить ей провести подробный анализ".

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


Эта статья в моем телеграм-канале: https://t.me/bayesian_little_list/14

Report Page