Читая статью Румельхарта, я убеждался в том, что любой искусственный интеллект должен будет моделировать себя на основе наших знаний о нейронной обработке информации у человека и что машинное мышление в условиях неопределенности должно использовать похожую архитектуру передачи сообщений. Но что же это за сообщения? На понимание этого у меня ушел не один месяц. И наконец я осознал, что эти сообщения были условными вероятностями в одном направлении и отношениями правдоподобия в другом.
Рис. 15. Набросок Дэвида Румельхарта показывает, как сеть передачи сообщений учится читать сочетание THE CAR (источник: любезно предоставлено Центром исследований мозга и познания Калифорнийского университета в Сан-Диего)
Точнее, я предполагал, что сеть будет иерархической — со стрелками, ведущими от верхних нейронов к нижним или от «родительских узлов» к «дочерним узлам». Каждый узел будет отправлять всем соседям (как выше, так и ниже в иерархии) сообщение о своей текущей степени уверенности в переменной, которую отслеживает (например, «Я на две трети уверен, что эта буква — R»). Получатель будет обрабатывать сообщение двумя разными способами, в зависимости от его направления. Если сообщение идет от «родителя» к «ребенку», то «ребенок» обновит степень уверенности, используя условные вероятности, подобные тем, которые мы видели в образце с чайной. Если сообщение передается от «ребенка» к «родителю», то родитель обновит свою степень уверенности, умножив их на отношение правдоподобия, как в случае с маммограммой.
Повторное применение этих двух правил к каждому узлу в сети называется распространением степени уверенности. В ретроспективе видно, что в этих правилах нет ничего произвольного или выдуманного; они находятся в строгом соответствии с правилом Байеса. Настоящий вызов состоял в том, чтобы гарантировать удобное равновесие в конце — независимо от того, в каком порядке отправляются эти сообщения; более того, окончательное равновесие должно представлять «правильное» отражение веры в переменные. Под «правильным» я имею в виду такой же результат, как если бы мы проводили вычисления с помощью методов из учебника, а не путем передачи сообщений.
Это задача заняла меня и моих студентов, а также моих коллег на несколько лет. Но к концу 1980-х годов мы преуспели до такой степени, что байесовские сети стали практической схемой машинного обучения. За следующие 10 лет сфера их применения, например, для фильтрации спама и распознавания голоса, постоянно расширялась. Однако к тому времени я уже пытался подняться по Лестнице Причинности, передав вероятностную сторону байесовских сетей в другие надежные руки.
Байесовские сети: что причины говорят о данных
Хотя Байес этого не знал, его правило обратной вероятности представляет собой простейшую байесовскую сеть. Мы уже видели ее в нескольких обличиях: чай → пирожные, болезнь → анализ и, в более общем контексте, гипотеза → подтверждения. В отличие от диаграмм причинности, с которыми мы будем иметь дело в течение всей книги, байесовские сети не подразумевают, что стрелки обозначают причинно-следственные связи. Стрелка просто значит, что нам известна «прямая» вероятность:
Формально распространение уверенности осуществляется абсолютно одинаково, и неважно, обозначают ли стрелки причинно-следственные связи. Тем не менее у вас может появиться интуитивное ощущение, что во втором случае мы сделали нечто более осмысленное. Это потому, что наши мозги оснащены специальным аппаратом для понимания причинно-следственных связей (например, между раком и маммографией). Для чистых ассоциаций (скажем, между чаем и пирожными) это не работает.
Следующий этап после сети из двух узлов с одной связью — конечно же, сеть из трех узлов с двумя связями, которую я буду называть связкой. Это строительные блоки во всех байесовских (и причинно-следственных) сетях. Существуют три основных типа связок, с помощью которых мы можем описать любое использование стрелок в сети.
1. A → B → C
. Эта связка — самый простой образец цепочки или медиации. В науке