Больше логических регрессий! Знаете ли вы, где родился Си Цзиньпин, председатель Китайской Народной Республики? Обычно человек не знает точно или даже приблизительно, но уверен, что где-то в Китае и, скорее всего, в Пекине. Эта неопределенность знаний совершенно не смущает человека. Их достаточно для логических выводов. Например, если ему скажут, что Си Цзиньпин родился в Лондоне, он удивится и переспросит.
Если задуматься, то практически все, что мы знаем, мы знаем с разной степенью неопределенности. Для подавляющего большинства людей в мире точное знание места рождения Си Цзиньпина совершенно не нужно. Люди с фотографической памятью часто жалуются, что ненужные детали мешают мышлению.
Мы сталкиваемся с неопределенностью даже в самых бытовых ситуациях. Предположим, вы ждете автобуса. Если вас спросить прямо: «Какова вероятность прихода автобуса в следующие три минуты?», — скорее всего, вы пожмете плечами. Но если задавать психологически правильные вопросы, то выясняется, что у вас в подсознании обнаружится довольно хорошая аппроксимация распределения Пуассона. Поэтому имеет смысл предположить, что мы представляем неопределенность каким-то приблизительным эквивалентом распределения вероятностей. Как зовут вашего сына? Саша — 100%. Как зовут второго сына вашего троюродного брата? Кажется, Федя — 60%, а может, Петя — 30%, а может, какое-то другое имя — 10%. Эти проценты не всплывают в сознании, но их можно приблизительно определить психологическими экспериментами.
Люди способны не только представлять неопределенную информацию, но и делать из нее логические выводы. Если ваша жена скажет, что она на 90% уверена, что сына троюродного брата зовут Петя, то распределение вероятностей в вашем подсознании, скорее всего, поменяется в пользу Пети за счет Феди.
История исследования понятия
Теория вероятностей существует очень давно, а ее математические основания — еще дольше. Систематическое изучение вероятностной логики с помощью байесовских сетей началось в 1980-е годы. Узлы этих сетей переменные, описывающие состояние системы. Например, в момент А человек входит в лифт на одном из этажей пятиэтажного здания. В следующий момент — момент В — человек может выйти на любом другом этаже с вероятностью 25%. Таким образом, мы получаем фрагмент байесовской сети, которая вероятностно связывает позиции человека в моменты А и В. Предположим, что мы на 50% уверены, что в 10:00 наш друг Саша стоит у лифта на первом этаже, а если не стоит, то наверняка находится у себя в кабинете. Это называется априорной вероятностью, основанной на наших наблюдениях того, что обычно делает Саша в десять утра. Сегодня наша сотрудница Маша сообщает, что видела Сашу выходящим из лифта на третьем этаже в 10:02. Что мы теперь можем сказать о местоположении Саши в 10:00? Формула Байеса дает нам возможность вычислить апостериорную вероятность того, что Саша стоял у лифта на первом этаже в 10:00, а не сидел у себя в кабинете. Если Маша не ошибается и всегда говорит правду, то эта вероятность 100%.
Реальные байесовские сети могут включать сотни или даже тысячи переменных. В этих условиях прямое приложение формулы Байеса для вычисления апостериорных вероятностей практически невозможно. Приходится применять приближенные методы. Например, если получена новая информация, скажем, о возрасте какого-то человека, то для начала можно ограничить ее влияние только на узлы, прямо связанные возрастом этого человека. Если распределения вероятностей этих узлов не очень изменяются, то можно прекратить дальнейшие расчеты.
Другой широко распространенный подход к приближенному вычислению апостериорных вероятностей основан на методе Монте-Карло и его многочисленных вариантах. В последнее время возникли специализированные языки для вероятностного программирования, которые значительно облегчают построение вероятностных моделей неопределенности.
Языки программирования, основанные на принципе неопределенности
В научно-исследовательском мире есть системы, которые отражают вероятность. Они лежат в основе вероятностного программирования. Идея вероятностного программирования не нова, но свое реальное воплощение в форме языка программирования она нашла около десяти лет назад.
Раньше люди понимали, что, например, в артиллерии или ракетном деле, когда запускаешь снаряд, вы должны предсказать, где он пролетит в следующие пять минут. У вас есть данные телеметрии, но эти данные вам дают измерения с некоторыми ошибками. Поэтому были разработаны методы для поправки этих ошибок и для вычисления вероятности того, где находится ваша ракета, — вычисления довольно точного, но тем не менее нестопроцентного. Так что идея эта не совсем новая.
Сферы практического применения принципа неопределенности
Применение неопределенности можно увидеть в различных сферах: в науке, бизнесе, страховании, выдаче кредитов, диагностике, военном деле. Процедуры расчета вероятности существуют достаточно давно, но чаще всего они основываются на традиционных методах статистической информации. По такому принципу осуществляется выдача кредитов или происходит процесс страхования. Обе процедуры основаны на измерении вероятности каких-либо событий. Скажем, если фирма выдает заемщику кредит, то его интересует уверенность самого человека в последовательности выплат кредита. Если человек страхует свою жизнь, то это основано на его предположении о том, сколько он проживет. Если он страхует дом, это зависит от того, какие шансы у этого дома сгореть.
Учитывать неопределенность очень важно в планировании. Сложные проекты состоят из множества частей. Например, в строительстве самолета участвуют сотни субподрядчиков, задействовано огромное количество составных частей, все должно произойти в определенный момент. Если какая-то фаза в сборке этого самолета запаздывает, то это сразу влияет на все остальные части. Поэтому нужно понимать вероятность того, что это может случиться. Так, например, в компании «Боинг» когда-то была создана система, которая фиксировала планомерность выполнения работ. В нее была включена возможность запаздывать на две недели. Если запаздывание больше, то тогда нужно все перепланировать. Хотя такая система не очень гранулярная, для планирования больших проектов требуется определение вероятности результата, поскольку огромное количество данных неопределенно (есть вероятность, что один из субподрядчиков задержится, или продукт получится неподходящего качества, или случится еще что-нибудь).
На неопределенности и вероятности также основаны различные техники лингвистического анализа текстов. Существуют классификаторы, которые базируются на логической регрессии или нейронных сетях. Они способны опознать, какому автору, например, принадлежит конкретный текст. Эти классификаторы обучаются на примерах, после чего дают нам ответ. Также и с картинками: можно показать изображение, которое классификатор раньше не видел, и он скажет, что это. Нужно отдавать отчет, насколько надежна полученная информация, и понимать, что точность классификатора нестопроцентна. Любая программа, которая сканирует новости или выискивает какие-то факты, неизбежно будет ошибаться. Вероятностная логика заключается в том, что если один и тот же факт подтверждается и выделяется этой программой много раз из разных источников, то вероятность того, что это правда, увеличивается.
Иллюзии и заблуждения
Существует очень мало фактов, которые однозначно и точно определены. Вера в определенность знания может создать опасную иллюзию. Довольно типичным примером может быть любой проект, состоящий из нескольких фаз. Допустим, фаза один и фаза два. Вторую фазу нельзя начинать, пока не закончится первая. Начальник вызывает менеджера, который будет руководить фазой номер один, и спрашивает: «Сколько времени займет ваша фаза?» Менеджер отвечает: «Десять дней». Начальник говорит: «Нет, это слишком долго, давай восемь». Менеджер опускает голову и говорит: «Не уверен, что получится, но попробую». Теперь начальник может спросить, какова вероятность того, что фаза номер один будет закончена за восемь дней. Планирование фазы номер два зависит от завершения фазы номер один. Значит, можно ли считать, что фаза номер один закончится точно за восемь дней, как и сказал менеджер? На менеджера ведь было оказано давление. Значит, вероятно, эта фаза закончится где-то между восемью и десятью днями. И начальник должен это понимать и планировать соответственно. Но в компьютерных системах ничего этого не отражено. Это все делается на интуиции.
При этом не стоит думать, что проблема неопределенности актуальна лишь для человеческой памяти с ее ограниченными возможностями. Для компьютеров эта проблема также не решена. Думать, что в компьютерных базах данных нет места неопределенности и всю информацию можно хранить точно, — это опасная иллюзия. Если компьютер показывает, что у вас на складе 144 стула, насколько можно быть уверенным, что их там действительно 144? Ошибки неизбежны. Если у вас не хватит стульев для выполнения важного заказа, то придется платить большую неустойку. Какую прибыль можно будет ожидать от заказа? Ответить на этот вопрос можно, только зная распределение вероятностей количества стульев на складе. К сожалению, современные коммерческие базы данных не отражают неопределенность данных, создавая иллюзию точности.
Перспективы
Всегда ли неопределенность — это недостаток? Всегда ли лучше большая точность? Не всегда! Скорее, даже наоборот: чрезмерная точность вредна. Когда мы говорим ребенку: «Принеси мячик с заднего двора», нам не надо точно указывать координаты мячика и каким путем надо к нему идти. Ребенок придет и все увидит.
Так же и с роботом. Бесполезен тот робот, которому нужно указывать точные сегменты его маршрута. Во-первых, это трудно для человека. Во-вторых, такие точные указания ненадежны. Человек может легко ошибиться, и на пути могут возникнуть непредвиденные преграды. Робот, следующий точным указаниям, не будет знать, что делать. Робота, который может интерпретировать нечеткие инструкции, это не смутит.
Современные бизнес-системы все больше используют информацию, извлеченную из социальных сетей, онлайновых публикаций, кредитных бюро, записей речи, фотографий и видео. Не всем источникам этой информации можно доверять на 100%. Наши методы извлечения информации тоже часто оставляют желать лучшего и производят много ошибок. В этом контексте очень важно оценивать степень неопределенности поступающей информации и делать из этого правильные вероятностные выводы. В принципе, вся информация в бизнесе должна считаться в той или иной мере неопределенной, и все модели бизнес-процессов должны быть вероятностными. К сожалению, бизнесы все еще живут с иллюзией детерминизма и точности. Вероятностное мышление и инструментарий еще не начали проникать в основное русло бизнес-систем и инструментов. Надеюсь, что это скоро начнет быстро меняться.
Анатолий Гершман
Источник: Постнаука