Литмир - Электронная Библиотека
Содержание  
A
A

Вперед, в Башню графических моделей! К сожалению, скульптура в круглой комнате оказывается совершенно не похожей на остальные. Графическая модель — это продукт факторов: условных вероятностей, в случае байесовских сетей, и неотрицательных функций состояния — в случае сетей Маркова. Как вы ни стараетесь, уловить связь с нейронными сетями и наборами правил не получается. Вас на секунду охватывает разочарование, но вы надеваете свои лого-очки, которые превращают функции в логарифмы. Эврика! Произведение факторов стало суммой условий, прямо как метод опорных векторов, голосующий набор правил и многослойный перцептрон без S-образной кривой на выходе. Например, можно превратить наивный байесовский классификатор дракона в перцептрон, вес которого для «дышит огнем» будет разностью логарифмов P(дышит огнем | дракон) и P(дышит огнем | не дракон). Но, конечно, графические модели намного более обобщенные, потому что могут представлять вероятностные распределения по многим переменным, а не только распределение одной переменной (класс) при известных других (атрибутах).

Получилось! Или нет? Внедрить метод опорных векторов в нейронные сети и нейронные сети в графические модели можно. То же касается объединения генетических программ и логики. Но как соединить логику и графические модели? Что-то здесь не так. С запозданием вы видите, в чем проблема: у логики есть измерение, которого не хватает графическим моделям, и наоборот. Скульптуры в пяти комнатах подходили друг к другу, потому что это были простые аллегории, но в реальности все сложнее. Графические модели не позволяют представить правила, включающие больше одного объекта, например «Друзья друзей — тоже друзья». Все их переменные должны быть свойствами того же предмета. Еще они не могут представлять произвольные программы, которые передают наборы переменных из одной подпрограммы в другую. Логика умеет делать и то и другое, но она, в свою очередь, не может представлять неопределенность, двузначность и степени схожести. Без представления, которое может делать все это, универсального обучающего алгоритма не получишь.

Вы напрягаете извилины в поисках решения, но чем больше стараетесь, тем хуже выходит. Может быть, объединение логики и вероятностей неподвластно человеку? Усталость подкашивает вас и погружает в сон. Просыпаетесь вы от грозного рыка: на вас набросился похожий на гидру Монстр Сложности. Он щелкает зубами, но в последний момент вы уворачиваетесь и отчаянно рубите чудовище мечом обучения — только им можно его победить — и отрубаете все его головы. Пока не отросли новые, вы бросаетесь к лестнице.

Запыхавшись, вы взбираетесь на самый верх и видите свадебный обряд. Предиктус, Первый лорд Логики, повелитель Символического королевства и Защитник программ, говорит Марковии, Княжне вероятностей и Царице сетей: «Объединим же наши владения! В мои правила добавишь ты веса, и породим мы новые представления, которые умножатся и заселят землю». Княжна добавляет: «А потомство наше мы назовем Марковскими логическими сетями».

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

P = ew∙n / Z.

Что бы это могло значить? 

Логические сети Маркова

В 2003 году мы с Мэттом Ричардсоном начали размышлять над проблемой объединения логики и вероятностей. Сначала у нас получалось не очень, потому что мы пытались добиться результата с помощью байесовских сетей, а их жесткая форма — строгая последовательность переменных, условные распределения детей у родителей — не сочеталась с гибкостью логики. Но в канун Рождества я осознал, что есть способ лучше. Если переключиться на марковские сети, можно использовать любую логическую формулу в качестве шаблона для свойств такой сети, а это объединило бы логику и графические модели. Давайте посмотрим, как это сделать.

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

На самом деле я погрешил против истины: произведение факторов — это еще не вероятность, потому что сумма вероятностей всех картинок должна быть равна единице, и нет гарантии, что произведение факторов для всех картинок приведет к такому результату. Нам нужно их нормализовать, то есть разделить каждое произведение на сумму факторов. В таком случае сумма всех нормализованных произведений будет гарантированно равна единице, потому что это просто некое число, разделенное само на себя. Вероятность картинки, таким образом, будет взвешенной суммой ее свойств, возведенной в степень и нормализованной. Если вы вспомните уравнение в пятиконечной звезде, то, наверное, начнете догадываться, что оно означает. P — это вероятность, w — вектор весов (будем обозначать вектора жирным шрифтом), n — вектор чисел, а их скалярное произведение · возводится в степень и делится на Z, сумму всех произведений. Если первый компонент n равен единице, когда первое свойство изображения верно, и нулю в противном случае и так далее, то w·n — это просто сокращение для взвешенной суммы черт, о которой мы постоянно говорили.

Поэтому уравнение дает нам вероятность изображения (или чего угодно) согласно марковской сети, но оно более общее, потому что это не просто уравнение марковской сети, а уравнение логической сети Маркова — так мы ее назвали. В логической сети Маркова числа в n не обязательно должны быть равны нулю или единице, и они обращаются не к свойствам, а к логическим формулам. В конце главы 8 мы уже увидели, как выйти за пределы сетей Маркова в реляционные модели, определенные в терминах шаблонов свойств, а не просто свойств. «И у Элис, и у Боба грипп» — это свойство, специфичное для Элис и Боба. «И у X, и у Y грипп» — это шаблон свойств, частными случаями которого могут быть Элис и Боб, Элис и Крис и любая другая пара. Шаблон свойств — мощный инструмент, потому что он может суммировать миллиарды свойств в одном коротком выражении. Однако для определения шаблонов свойств нам нужен формальный язык, и он у нас есть: это логика.

Логическая сеть Маркова — просто набор логических формул и их весов. В приложении к конкретному набору объектов он определяет марковскую сеть их возможных состояний. Например, если объекты — Элис и Боб, возможным состоянием будет то, что Элис и Боб — друзья, у Элис грипп и у Боба тоже. Давайте предположим, что у логической сети Маркова две формулы: «у всех грипп» и «если у человека грипп, у его друзей тоже грипп». В стандартной логике это была бы довольно бесполезная пара утверждений: первое исключало бы все состояния, где хотя бы один человек здоров, а второе было бы избыточным. Однако в логической сети Маркова первая формула означает только то, что для каждого человека X есть свойство «X болен гриппом» с тем же весом, что и формула. Если люди с большой вероятностью болеют гриппом, и у формулы, и у соответствующих свойств будет большой вес. Состояние, где здоровых людей много, менее вероятно, чем то, где таких людей мало, однако оно не исключено. А благодаря второй формуле состояние, при котором у кого-то грипп, а у его друзей — нет, будет менее вероятно, чем то, где здоровые и зараженные попадают в отдельные кластеры друзей.

67
{"b":"546805","o":1}