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