Вероятностная мягкая логика
Разработчик(и) | Лаборатория LINQS |
---|---|
Первоначальный выпуск | 23 сентября 2011 г. |
Стабильная версия | 2.2.2 [1]
/ 20 мая 2020 г. |
Репозиторий | github |
Написано в | Ява |
Платформа | Linux , MacOS , Windows |
Тип | Машинное обучение , Статистическое реляционное обучение |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | пожалуйста |
Probabilistic Soft Logic (PSL) — это платформа статистического реляционного обучения (SRL) для моделирования вероятностных и реляционных областей. [2] Он применим к различным задачам машинного обучения , таким как коллективная классификация , разрешение сущностей , прогнозирование связей и выравнивание онтологий . PSL сочетает в себе два инструмента: логику первого порядка с ее способностью лаконично представлять сложные явления и вероятностные графические модели , которые отражают неопределенность и неполноту, присущие знаниям реального мира. Более конкретно, PSL использует «мягкую» логику в качестве логического компонента и марковские случайные поля в качестве статистической модели. PSL предоставляет сложные методы вывода для поиска наиболее вероятного ответа (т.е. максимального апостериорного состояния (MAP)). «Смягчение» логических формул делает вывод полиномиальной операцией по времени, а не NP-трудной операцией.
Описание
[ редактировать ]Сообщество SRL представило несколько подходов, сочетающих графические модели и логику первого порядка , что позволяет разрабатывать сложные вероятностные модели с реляционными структурами. Ярким примером таких подходов являются марковские логические сети (MLN). [3] Как и MLN, PSL — это язык моделирования (с сопутствующей реализацией). [4] ) для обучения и прогнозирования в реляционных областях. В отличие от MLN, PSL использует мягкие значения истинности для предикатов в интервале между [0,1]. Это позволяет быстро решить основной вывод как задачу выпуклой оптимизации. Это полезно в таких задачах, как коллективная классификация , прогнозирование связей , моделирование социальных сетей и идентификация объектов/разрешение объектов/связывание записей .
Probabilistic Soft Logic была впервые выпущена в 2009 году Лизой Гетор и Маттиасом Брочелером. [5] Эта первая версия в значительной степени была сосредоточена на рассуждениях о сходстве между сущностями. Более поздние версии PSL по-прежнему сохранят возможность рассуждать о сходстве, но сделают язык более выразительным.
В 2017 году в журнале исследований машинного обучения была опубликована статья с подробным описанием PSL и базовой графической модели, а также была выпущена новая основная версия PSL (2.0.0). [2] Основными новыми функциями PSL 2.0.0 стали новый тип правил, используемый в основном для определения ограничений, и интерфейс командной строки .
Синтаксис и семантика
[ редактировать ]Терминология
[ редактировать ]- Программа PSL — набор правил, каждое из которых представляет собой шаблон потенциала в графической модели.
- Правило — выражение, касающееся атомов. Правила обычно принимают форму либо первого порядка логического следствия , либо линейной комбинации .
- Константа — строка или число, представляющее реальный элемент во вселенной, которую представляет программа PSL. Константы могут представлять атрибуты или целые сущности.
- Переменная — идентификатор, который можно заменить константами.
- Термин — либо константа, либо переменная.
- Предикат — отношение, определяемое уникальным именем и количеством принимаемых аргументов.
- Атом — предикат вместе с его аргументами-терминами.
- Основной атом — атом, все аргументы которого являются константами.
Синтаксис
[ редактировать ]Модель PSL состоит из ряда взвешенных правил и ограничений. PSL поддерживает два типа правил: логические и арифметические. [6]
Логические правила состоят из импликации только одного атома или соединения атомов в теле и одного атома или дизъюнкции атомов в голове. Поскольку PSL использует мягкую логику, операторы жесткой логики заменяются мягкими логическими операторами Лукасевича . Пример выражения логического правила:
Similar(A, B) & HasLabel(A, X) -> HasLabel(B, X)
Это правило можно интерпретировать следующим образом: если A и B подобны и A имеет метку X, то существует свидетельство того, что B также имеет метку X.
Арифметические правила — это отношения двух линейных комбинаций атомов.
Ограничение каждой стороны линейной комбинацией гарантирует, что результирующий потенциал будет выпуклым .
Поддерживаются следующие операторы отношений: =
, <=
, и >=
.
Similar(A, B) = Similar(B, A)
Это правило отражает идею о том, что сходство в этой модели симметрично.
Часто используемой функцией арифметических правил является операция суммирования.
Операцию суммирования можно использовать для объединения нескольких атомов.
При использовании атом заменяется суммой всех возможных атомов, где фиксированы переменные, не подлежащие суммированию.
Переменные суммирования создаются путем добавления к переменной префикса +
.
Пример Лисы:
HasLabel(A, +X) = 1.0
Если возможные значения X — label1 , label2 и label3 , то приведенное выше правило эквивалентно:
HasLabel(A, 'label1') + HasLabel(A, 'label2') + HasLabel(A, 'label3') = 1.0
Оба этих правила заставляют сумму всех возможных меток объекта равняться 1,0. Этот тип правил особенно полезен для задач коллективной классификации , где можно выбрать только один класс.
Семантика
[ редактировать ]HL-MRF
[ редактировать ]Программа PSL определяет семейство вероятностных графических моделей , параметризованных данными. Более конкретно, определяемое им семейство графических моделей принадлежит к особому классу марковских случайных полей , известному как марковское поле шарнирных потерь (HL-MRF). HL-MRF определяет функцию плотности по набору непрерывных переменных. с общим доменом используя набор доказательств , веса и потенциальные функции формы где является линейной функцией и . Условное распределение учитывая наблюдаемые данные определяется как
Где является функцией распределения. Эта плотность представляет собой логарифмически выпуклую функцию , и, следовательно, обычная задача вывода в PSL состоит в нахождении максимальной апостериорной оценки совместного состояния является выпуклой задачей. Это позволяет сделать вывод в PSL за полиномиальное время.
Открытые/закрытые предикаты – предположение о закрытом мире
[ редактировать ]Предикаты в PSL могут быть помечены как открытые или закрытые.
Когда предикат помечен как закрытый, PSL делает предположение о закрытом мире : любые предикаты, которые не указаны явно в PSL, считаются ложными. Другими словами, предположение о закрытом мире предполагает, что предикат, который частично истинен, также известен как частично истинный. Например, если бы у нас были следующие константы в данных для представления людей: и следующая константа для фильмов: и мы предоставили PSL данные предиката и был помечен как закрытый, то PSL будет считать, что даже несмотря на то, что эти данные никогда не предоставлялись системе явно.
Если предикат помечен как открытый, то PSL не делает предположения о закрытом мире. Вместо этого PSL попытается коллективно сделать вывод о ненаблюдаемых случаях.
Заземление
[ редактировать ]Данные используются для реализации нескольких потенциальных функций в процессе, называемом заземлением. Полученные потенциальные функции затем используются для определения HL-MRF.
Заземление предикатов в PSL — это процесс всех возможных замен переменных в каждом предикате существующими константами в данных, в результате чего образуется набор основных атомов, . Затем для создания основных правил производятся все возможные замены основных атомов предикатов в правилах.
Каждое из основных правил интерпретируется либо как потенциал, либо как жесткое ограничение в индуцированной HL-MRF. Логическое правило переводится как непрерывное ослабление булевых связок с использованием логики Лукасевича . Основное логическое правило преобразуется в свою дизъюнктивную нормальную форму . Позволять — набор индексов переменных, соответствующих неотрицательным атомам, и, аналогично набор индексов, соответствующих атомам, которые отрицаются в разделительном предложении. Тогда логическое правило преобразуется в неравенство:
Если логическое правило имеет вес и возведен в степень с , то потенциал
добавляется в HL-MRF с весовым параметром .
Арифметическое правило используется для и результирующий потенциал принимает вид .
Интерфейсы
[ редактировать ]PSL доступен через три различных языковых интерфейса : CLI , Java и Python . Интерфейс командной строки (CLI) PSL — рекомендуемый способ использования PSL. [7] Он поддерживает все обычно используемые функции в воспроизводимой форме, не требующей компиляции. Поскольку PSL написан на Java, интерфейс PSL Java является наиболее обширным, и пользователи могут обращаться непосредственно к ядру PSL. [8] Интерфейс Java доступен через центральный репозиторий Maven . [9] Интерфейс PSL Python доступен через PyPi. [10] и использует Pandas DataFrames для передачи данных между PSL и пользователем. [11]
PSL ранее предоставлял интерфейс Groovy. [12] Он устарел в версии PSL 2.2.1 и планируется удалить в версии 2.3.0. [13]
Примеры
[ редактировать ]Лаборатория LINQS, разработчики официальной реализации PSL, поддерживает коллекцию примеров PSL. [14] Эти примеры охватывают как синтетические, так и реальные наборы данных и включают примеры из научных публикаций с использованием PSL. Ниже приведен игрушечный пример из этого репозитория, который можно использовать для вывода отношений в социальной сети. К каждому правилу прилагается комментарий, описывающий интуитивную мотивацию, лежащую в основе утверждений.
/* People living in the same location are more likely to know one another. */
20: Lived(P1, L) & Lived(P2, L) & (P1 != P2) -> Knows(P1, P2) ^2
/* People who have not lived in the same location are not likely to know one another. */
5: Lived(P1, L1) & Lived(P2, L2) & (P1 != P2) & (L1 != L2) -> !Knows(P1, P2) ^2
/* Two people with similar interests are more likely to know one another. */
10: Likes(P1, X) & Likes(P2, X) & (P1 != P2) -> Knows(P1, P2) ^2
/* People in the same circles tend to know one another (transitivity). */
5: Knows(P1, P2) & Knows(P2, P3) & (P1 != P3) -> Knows(P1, P3) ^2
/* Knowing one another is symmetric. */
Knows(P1, P2) = Knows(P2, P1) .
/* By default, assume that two arbitrary people do not know one another (negative prior). */
5: !Knows(P1, P2) ^2
См. также
[ редактировать ]- Статистическое реляционное обучение
- Вероятностно-логическая сеть
- Марковская логическая сеть
- Нечеткая логика
Ссылки
[ редактировать ]- ^ «ПСЛ 2.2.2» . Гитхаб . Проверено 16 июля 2020 г.
- ^ Перейти обратно: а б Бах, Стивен; Брохелер, Матиас; Хуанг, Берт; Гетур, Лиза (2017). «Марковские случайные поля с шарнирными потерями и вероятностная мягкая логика». Журнал исследований машинного обучения . 18 : 1–67.
- ^ Гетур, Лиза ; Таскар, Бен (2007). Введение в статистическое реляционное обучение . МТИ Пресс. ISBN 978-0262072885 .
- ^ «Репозиторий GitHub» . Проверено 26 марта 2018 г.
- ^ Брохелер, Матиас; Гетур, Лиза (2009). Вероятностная логика подобия . Международный семинар по статистическому реляционному обучению (SRL).
- ^ «Уточнение правил» . psl.linqs.org . Лаборатория LINQS. 6 декабря 2019 года . Проверено 10 июля 2020 г.
- ^ Августин, Эрик (15 июля 2018 г.). «Начало работы с PSL» . Вероятностная мягкая логика . Проверено 15 июля 2020 г.
- ^ «Справочник по API PSL» . Вероятностная мягкая логика . Проверено 15 июля 2020 г.
- ^ «Репозиторий Maven: org.linqs »psl-java» . mvnrepository.com . Проверено 15 июля 2020 г.
- ^ «pslpython: интерфейс Python для программного обеспечения PSL SRL/ML» . Индекс пакетов Python . Проверено 15 июля 2020 г.
- ^ Августин, Эрик (6 декабря 2019 г.). «Выпуск PSL 2.2.1» . Вероятностная мягкая логика . Проверено 15 июля 2020 г.
- ^ «Репозиторий Maven: org.linqs »psl-groovy» . mvnrepository.com .
- ^ Августин, Эрик (6 декабря 2019 г.). «Выпуск PSL 2.2.1» . Вероятностная мягкая логика . Проверено 15 июля 2020 г.
- ^ "linqs/psl-примеры" . Гитхаб . языки. 19 июня 2020 г.