Ранее я говорил о взаимной информации между X и Y, обозначаемой как I(X;Y), которая представляет собой разность между энтропией совместного распределения вероятностей, H(X,Y), и суммой энтропий маргинальных распределений, H(X) + H(Y).
Я приводил пример переменной X с восемью состояниями, от X1 до X8, которые равновероятны, если мы ещё не получили никаких свидетельств; и переменной Y с состояниями от Y1 до Y4, которые также равновероятны, если мы ещё не получили никаких свидетельств. Если теперь мы рассчитаем маргинальные энтропии H(X) и H(Y), то обнаружим, что энтропия X составляет 3 бита, а энтропия Y — 2 бита.
Однако мы также знаем, что X и Y либо оба чётные, либо оба нечётные; и это всё, что нам известно о связи между ними. Таким образом, для совместного распределения (X,Y) существует всего 16 возможных состояний, все они равновероятны, что дает совместную энтропию в 4 бита. Это дефект энтропии в 1 бит по сравнению с 5 битами энтропии, которые были бы, если бы X и Y были независимы. Этот дефект энтропии и есть взаимная информация — сведения, которые X сообщает нам о Y, или наоборот, благодаря чему после того, как мы узнаём значение одного из них, наша неопределенность относительно другого снижается.
Предположим, однако, что существует третьё переменная, Z. Переменная Z имеет два состояния, «чётное» и «нечётное», идеально скоррелированные с чётностью или нечётностью (X,Y). По сути, мы предположим, что Z — это просто вопрос: «Являются ли X и Y чётными или нечётными?»
Если у нас нет свидетельств о X и Y, то у самой Z на основе имеющейся информации обязательно будет 1 бит энтропии. Между Z и X существует 1 бит взаимной информации, и между Z и Y — 1 бит взаимной информации. И, как отмечалось ранее, 1 бит взаимной информации между X и Y. Так какова же энтропия всей системы (X,Y,Z)? Вы могли бы наивно ожидать, что:
H(X,Y,Z) = H(X) + H(Y) + H(Z) - I(X;Z) - I(Z;Y) - I(X;Y),
но оказывается, что это не так.
Совместная система (X,Y,Z) имеет всего 16 возможных состояний — поскольку Z — это просто вопрос «Являются ли X и Y чётными или нечётными?», — поэтому H(X,Y,Z) = 4 бита.
Но если вы посчитаете по формуле, приведенной выше, вы получите:
(3 + 2 + 1 - 1 - 1 - 1) бита = 3 бита = НЕВЕРНО!
Почему? Потому что если у вас есть взаимная информация между X и Z, а также взаимная информация между Z и Y, это может включать в себя часть той же самой взаимной информации, которая, по нашим расчетам, существует между X и Y. В данном случае, например, знание того, что X чётно, говорит нам, что Z чётно, а знание того, что Z чётно, говорит нам, что Y чётно, но это та же самая информация, которую X сообщил бы нам о Y. Мы дважды учли часть наших знаний и в результате получили слишком маленькое значение энтропии.
Правильная формула (как мне кажется):
H(X,Y,Z) = H(X) + H(Y) + H(Z) - I(X;Z) - I(Z;Y) - I(X;Y|Z).
Здесь последний член, I(X;Y|Z), означает «информацию, которую X сообщает нам о Y при условии, что мы уже знаем Z». В данном случае X вообще ничего не сообщает нам о Y, если мы уже знаем Z, поэтому этот член обращается в ноль — и уравнение дает правильный ответ. Ну разве не прелесть?
«Нет, — резонно возразите вы, — ведь вы не объяснили мне, как вычислять I(X;Y|Z), а лишь привели словесный аргумент в пользу того, почему она должна быть равна нулю».
Мы вычисляем I(X;Y|Z) именно так, как вы и ожидали. Мы знаем, что I(X;Y) = H(X) + H(Y) - H(X,Y), следовательно:
I(X;Y|Z) = H(X|Z) + H(Y|Z) - H(X,Y|Z).
И теперь, надо полагать, вы хотите узнать, как вычислять условную энтропию? Что ж, исходная формула для энтропии выглядит так:
H(S) = ∑i{-P(Si) × log2(P(Si))}.
Если бы затем мы узнали новый факт Z0, наша оставшаяся неопределенность относительно S составляла бы:
H(S|Z0) = ∑i{-P(Si|Z0)log2(P(Si|Z0))}.
Поэтому если мы собираемся узнать некий новый факт Z, но пока не знаем, каким именно окажется этот Z, то в среднем мы ожидаем, что после этого наша неопределенность относительно S будет примерно такой:
H(S|Z) = ∑j{P(Zj)∑i{-P(Si|Zj)log2(P(Si|Zj))}}
Вот так вычисляются условные энтропии, из которых, в свою очередь, мы можем получить условную взаимную информацию.
Здесь есть всевозможные вспомогательные теоремы, например:
H(X|Y) = H (X,Y) - H(Y)
и
если I(X;Z) = 0 и I(Y;X|Z) = 0, то I(X;Y) = 0,
но я не собираюсь в них углубляться.
«Но, — спросите вы, — какое отношение всё это имеет к природе слов и их скрытой байесовской структуре?»
Я просто неописуемо рад, что вы задали этот вопрос, потому что я всё равно планировал рассказать вам об этом, хотите вы того или нет. Но сначала еще пара предварительных замечаний.
Вы помните — да, вы точно помните, — что между взаимной информацией и байесовским свидетельством существует дуальность. Взаимная информация положительна тогда и только тогда, когда вероятность по крайней мере некоторых совместных событий P(x,y) не равна произведению вероятностей отдельных событий P(x)P(y). Это, в свою очередь, в точности эквивалентно условию того, что между x и y существует байесовское свидетельство:
I(X;Y) > 0 ⇒
P(x,y) ≠ P(x)P(y)
P(x,y) / P(y) ≠ P(x)
P(x|y) ≠ P(x).
Если вы вводите условие Z, вы просто соответствующим образом корректируете весь вывод:
I(X;Y|Z) > 0 ⇒
P(x,y|z) ≠ P(x|z)P(y|z)
P(x,y|z) / P(y|z) ≠ P (x|z)
(P(x,y,z)/P(z)) / (P(y,z)/P(z)) ≠ P(x|z)
P(x,y,z) / P(y,z) ≠ P(x|z)
P(x|y,z) ≠ P(x|z).
Последняя строка читается так: «Даже зная Z, получение информации о Y всё равно меняет наши убеждения относительно X».
И наоборот, как и в нашем исходном примере, где Z означало «чётное» или «нечётное», Z экранирует X от Y — то есть, если мы знаем, что Z — «чётное», то знание о том, что Y находится в состоянии Y4, не сообщает нам никаких новых сведений о том, является ли X значением X2, X4, X6 или X8. Или если мы знаем, что Z — «нечётное», то знание о том, что X равен X5, не сообщает нам никаких новых сведений о том, равен ли Y значению Y1 или Y3. Знание Z сделало X и Y условно независимыми.
Условная независимость — чрезвычайно важное понятие в теории вероятностей. Приведём лишь один пример: без условной независимости у Вселенной не было бы никакой структуры.
Здесь, однако, я намерен поговорить лишь об одном конкретном виде условной независимости — о случае центральной переменной, которая экранирует окружающие её другие переменные, подобно центральному телу с щупальцами.
Пусть имеются пять переменных: U, V, W, X и Y; и, кроме того, предположим, что для любой пары этих переменных значение одной служит свидетельством о другой. Если вы выберете, например, U и W, то знание того, что U = U1, сообщит вам нечто новое о вероятности того, что W = W1.
Неуправляемый хаос умозаключений? Свидетельства, вышедшие из-под контроля? Не обязательно.
Возможно, U — это «говорит на каком-то языке», V — «две руки и десять пальцев», W — «носит одежду», X — «уязвим к яду болиголова», а Y — «красная кровь». И вот, если вы столкнётесь с неким объектом в мире (который может оказаться яблоком, а может — камнем) и узнаете, что этот объект говорит по-китайски, вы, скорее всего, оцените вероятность того, что он носит одежду, как гораздо более высокую; а если вы узнаете, что этот объект нечувствителен к яду болиголова, вы оцените вероятность наличия у него красной крови как несколько меньшую.
Конечно, некоторые из этих правил сильнее других. Есть случай с Фредом, у которого не хватает пальца из-за несчастного случая на вулкане; случай с младенцем Барни, который пока не умеет говорить; и случай с IRC-ботом Ирвингом, который выдаёт фразы, но не имеет крови. Так что если мы узнаем, что некий объект не носит одежды, это не экранирует всё то, что его способность говорить может сообщить нам о цвете его крови. Если объект не носит одежды, но всё же говорит, то, возможно, это Голая Нелли.
Это делает наш случай более интересным, чем, скажем, случай с пятью целочисленными переменными, которые либо все чётные, либо все нечётные, но в остальном не коррелируют между собой. В таком случае знание любой одной из переменных экранировало бы всё то, что знание второй переменной могло бы поведать нам о третьей.
Но здесь мы имеем зависимости, которые не исчезают, как только мы узнаём значение всего одной переменной, как показывает пример с Голой Нелли. Так неужели перед нами неуправляемое затруднение для логического вывода?
Не бойтесь! Ведь может существовать некоторая шестая переменная Z, знание которой действительно экранировало бы все пары переменных друг от друга. Может существовать некая переменная Z — даже если нам придётся её сконструировать, а не наблюдать напрямую, — такая, что:
P(U|V,W,X,Y,Z) = P(U|Z)
P(V|U,W,X,Y,Z) = P(V|Z)
P(W|U,V,X,Y,Z) = P(W|Z)
…
Возможно, при условии, что некий объект является «человеком», вероятности того, что он говорит, носит одежду и имеет стандартное количество пальцев, взаимно независимы. У Фреда может не хватать пальца, но вероятность того, что он окажется нудистом, у него не больше, чем у любого другого человека; Голая Нелли никогда не носит одежды, но знание этого не делает её способность говорить менее вероятной; а младенец Барни пока не разговаривает, но все конечности у него на месте.
Это называется «наивным байесовским» методом, поскольку обычно это предположение не совсем верно, но если притвориться, будто оно верно, это может чертовски упростить ваши вычисления. Мы не отслеживаем отдельно влияние наличия одежды на способность говорить при заданном количестве пальцев. Мы просто используем всю наблюдаемую информацию для отслеживания вероятности того, что эта штуковина является человеком (или кем-то ещё, например, шимпанзе или роботом), а затем используем наши убеждения о центральном классе, чтобы предсказать всё, чего мы ещё не видели, например, уязвимость к яду болиголова.
Любые наблюдения за U, V, W, X и Y просто выступают в качестве свидетельств в пользу центральной классовой переменной Z, а затем мы используем апостериорное распределение Z, чтобы сделать любые необходимые предсказания о ненаблюдаемых переменных среди U, V, W, X и Y.
Звучит знакомо? Так и должно быть; см. рис. 177.1.
Рисунок 177.1: Сеть 2
На самом деле, если использовать правильный тип элементов нейросети, эта «нейронная сеть» в итоге окажется точно, математически эквивалентна наивному байесовскому методу. Центральному элементу необходим лишь логистический порог — S-образная кривая отклика, — а веса входов должны соответствовать логарифмам отношений правдоподобия и так далее. По сути, можно с уверенностью предположить, что в этом кроется одна из причин, почему логистический отклик часто так хорошо работает в нейросетях: он позволяет алгоритму тайком протащить немного байесовских рассуждений, пока разработчики не видят.
Если кто-то предлагает вам алгоритм под названием «нейросеть», сплошь обвешанный модными словечками вроде «непричёсанный» и «эмерджентный», и с гордостью заявляет, что понятия не имеет, как работает обученная сеть, — не думайте, будто их маленький ИИ-алгоритм и в самом деле находится За Пределами Логики. Ведь эта парадигма ad hoc решений, если она работает, обязательно будет иметь байесовскую структуру; она может даже оказаться абсолютно эквивалентной какому-нибудь алгоритму из класса «байесовских».
Даже если внешне она вовсе не выглядит байесовской.
И тогда вы точно знаете, что байесианцы тут же примутся в подробностях объяснять, как именно устроен этот алгоритм, какие базовые допущения он отражает, какие закономерности окружающего мира эксплуатирует, где он работает, а где даёт сбой, и даже наделять понятным смыслом обученные веса сети.
Разочаровывает, не правда ли?
*