Индуктивное логическое программирование ( ILP ) — это подраздел символического искусственного интеллекта , который использует логическое программирование в качестве единообразного представления примеров, фоновых знаний и гипотез. Термин « индуктивный » здесь относится к философской (т. е. предлагающей теорию для объяснения наблюдаемых фактов), а не математической (т. е. доказывающей свойство для всех членов упорядоченного множества) индукции. При наличии кодировки известных фоновых знаний и набора примеров, представленных в виде логической базы данных фактов, система ILP выведет гипотетическую логическую программу, которая влечет за собой все положительные и ни одного отрицательного примера.
Индуктивное логическое программирование особенно полезно в биоинформатике и обработке естественного языка .
Основываясь на более ранних работах по индуктивному выводу , Гордон Плоткин был первым, кто формализовал индукцию в клаузальной установке около 1970 года, приняв подход обобщения на основе примеров. [1] [2] В 1981 году Эхуд Шапиро представил несколько идей, которые сформировали область в его новом подходе к выводу модели, алгоритме, использующем уточнение и обратную трассировку для поиска полной аксиоматизации заданных примеров. [1] [3] Его первой реализацией была Система вывода модели в 1981 году: [4] [5] программа на Прологе , которая индуктивно выводила программы логики предложений Хорна из положительных и отрицательных примеров. [1] Термин «Индуктивное логическое программирование» был впервые введен в статье Стивена Магглтона в 1990 году и определялся как пересечение машинного обучения и логического программирования. [1] Магглтон и Рэй Бантин ввели изобретение предикатов и обратное разрешение в 1988 году. [1] [6]
Несколько систем индуктивного логического программирования, которые оказались влиятельными, появились в начале 1990-х годов. FOIL , представленная Россом Куинланом в 1990 году [7], была основана на модернизации пропозициональных алгоритмов обучения AQ и ID3 . [8] Golem , представленная Магглтоном и Фэном в 1990 году, вернулась к ограниченной форме алгоритма наименьшего обобщения Плоткина. [8] [9] Система Progol , представленная Магглтоном в 1995 году, впервые реализовала обратное вывод и вдохновила многие более поздние системы. [8] [10] [11] Aleph , потомок Progol, представленный Эшвином Шринивасаном в 2001 году, по-прежнему является одной из наиболее широко используемых систем по состоянию на 2022 год [обновлять]. [10]
Примерно в то же время появились первые практические приложения, особенно в биоинформатике , где к 2000 году индуктивное логическое программирование успешно применялось для разработки лекарств, прогнозирования канцерогенности и мутагенности, а также для выяснения структуры и функции белков. [12] В отличие от акцента на автоматическом программировании, присущего ранним работам, эти области использовали методы индуктивного логического программирования с точки зрения реляционного анализа данных . Успех этих первоначальных приложений и отсутствие прогресса в восстановлении более крупных традиционных логических программ сформировали фокус области. [13]
Недавно классические задачи из автоматизированного программирования снова оказались в центре внимания, поскольку введение метаинтерпретационного обучения делает изобретение предикатов и обучение рекурсивным программам более осуществимыми. Эта техника была впервые применена в системе Metagol, представленной Магглтоном, Дяньхуаном Линем, Нильсом Пехлеви и Алирезой Тамаддони-Нежадом в 2014 году. [14] Это позволяет системам ILP работать с меньшим количеством примеров и принесло успехи в обучении программам преобразования строк, грамматикам наборов ответов и общим алгоритмам. [15]
Индуктивное логическое программирование приняло несколько различных настроек обучения, наиболее распространенными из которых являются обучение через вывод и обучение через интерпретации. [16] В обоих случаях входные данные предоставляются в форме фоновых знаний B , логической теории (обычно в форме предложений, используемых в логическом программировании ), а также положительных и отрицательных примеров, обозначаемых и соответственно. Выходные данные даются в виде гипотезы H , которая сама по себе является логической теорией, которая обычно состоит из одного или нескольких предложений.
Эти две настройки различаются форматом представленных примеров.
По состоянию на 2022 год [обновлять]обучение на основе вывода является наиболее популярной настройкой для индуктивного логического программирования. [16] В этой настройке положительные и отрицательные примеры задаются как конечные множества и положительные и отрицательные базовые литералы соответственно. Правильная гипотеза H — это набор предложений, удовлетворяющих следующим требованиям, где символ турникета обозначает логическое вывод : [16] [17] [18] Полнота требует, чтобы любая сгенерированная гипотеза h объясняла все положительные примеры , а согласованность запрещает генерацию любой гипотезы h , которая несовместима с отрицательными примерами , при этом оба варианта заданы фоновыми знаниями B.
В установке Магглтона для обучения понятиям [19] «полнота» упоминается как «достаточность», а «согласованность» как «сильная согласованность». Добавляются еще два условия: « Необходимость », которая постулирует, что B не влечет за собой , не накладывает ограничений на h , но запрещает любое порождение гипотезы, пока положительные факты объяснимы без нее. . «Слабая согласованность», которая утверждает, что никакое противоречие не может быть выведено из , запрещает порождение любой гипотезы h , которая противоречит фоновому знанию B . Слабая согласованность подразумевает сильную согласованность; если не приведено ни одного отрицательного примера, оба требования совпадают. Слабая согласованность особенно важна в случае зашумленных данных, где полнота и сильная согласованность не могут быть гарантированы. [19]
При обучении на основе интерпретаций положительные и отрицательные примеры даются как набор полных или частичных структур Эрбрана , каждая из которых сама по себе является конечным набором литералов основания. Такая структура e называется моделью набора предложений, если для любой подстановки и любого предложения в , такого что , также выполняется. Цель состоит в том, чтобы вывести гипотезу, которая является полной, то есть каждый положительный пример является моделью , и последовательной, то есть никакой отрицательный пример не является моделью . [16]
Система индуктивного логического программирования — это программа, которая принимает в качестве входных данных логические теории и выводит правильную гипотезу H относительно теорий . Система является полной тогда и только тогда, когда для любых входных логических теорий может быть найдена любая правильная гипотеза H относительно этих входных теорий с помощью ее процедуры поиска гипотез. Системы индуктивного логического программирования можно грубо разделить на два класса: поисковые и метаинтерпретационные системы.
Системы, основанные на поиске, используют то, что пространство возможных предложений образует полную решетку в отношении подчинения , где одно предложение включает другое предложение, если существует подстановка, такая что , результат применения к , является подмножеством . Эту решетку можно обходить либо снизу вверх, либо сверху вниз.
Методы поиска по решетке включений «снизу вверх» исследовались с момента первой работы Плоткина по формализации индукции в клаузальной логике в 1970 году. [1] [20] Используемые методы включают наименьшее общее обобщение, основанное на антиунификации , и обратную резолюцию, основанную на инвертировании правила вывода резолюции .
Алгоритм наименьшего общего обобщения принимает в качестве входных данных два предложения и и выводит наименьшее общее обобщение и , то есть предложение, которое включает и , и которое включается любым другим предложением, которое включает и . Наименьшее общее обобщение может быть вычислено путем первого вычисления всех выборов из и , которые являются парами литералов, разделяющих один и тот же предикатный символ и отрицаемый/неотрицаемый статус. Затем наименьшее общее обобщение получается как дизъюнкция наименьших общих обобщений отдельных выборов, которые могут быть получены с помощью синтаксической антиунификации первого порядка . [21]
Для учета фоновых знаний индуктивные системы логического программирования используют относительные наименьшие общие обобщения , которые определяются в терминах категоризации относительно фоновой теории. В общем случае существование таких относительных наименьших общих обобщений не гарантируется; однако, если фоновая теория B представляет собой конечный набор базовых литералов , то отрицание B само по себе является предложением. В этом случае относительное наименьшее общее обобщение может быть вычислено путем разъединения отрицания B с обоими и, а затем вычисления их наименьшего общего обобщения, как и прежде. [22]
Относительные наименьшие общие обобщения являются основой восходящей системы Голем . [8] [9]
Обратное разрешение — это метод индуктивного рассуждения , который включает в себя обращение оператора разрешения .
Обратное разрешение берет информацию о резольвенте шага разрешения для вычисления возможных разрешающих предложений. В индуктивном логическом программировании используются два типа оператора обратного разрешения: V-операторы и W-операторы. V-оператор принимает предложения и в качестве входных данных и возвращает предложение, такое что является резольвентой и . W-оператор принимает два предложения и и возвращает три предложения , и такие, что является резольвентой и и является резольвентой и . [23]
Обратное разрешение было впервые введено Стивеном Магглетоном и Рэем Бантином в 1988 году для использования в системе индуктивного логического программирования Cigol. [6] К 1993 году это вызвало волну исследований операторов обратного разрешения и их свойств. [23]
Системы ILP Progol, [11] Hail [24] и Imparo [25] находят гипотезу H, используя принцип обратного вывода [11] для теорий B , E , H : . Сначала они строят промежуточную теорию F, называемую мостовой теорией, удовлетворяющую условиям и . Затем, как , они обобщают отрицание мостовой теории F с помощью антивывода. [26] Однако операция антивывода является вычислительно более затратной, поскольку она сильно недетерминирована. Поэтому альтернативный поиск гипотезы может быть проведен с использованием операции обратного подчинения (антиподчинения), которая менее недетерминирована, чем антивывод.
Возникают вопросы полноты процедуры поиска гипотез конкретной системы индуктивного логического программирования. Например, процедура поиска гипотез Progol, основанная на правиле вывода обратного вывода, не является полной по примеру Ямамото . [27] С другой стороны, Imparo является полной как по процедуре антивывода [28] , так и по ее расширенной процедуре обратного включения [29] .
Вместо явного поиска в графе гипотез, метаинтерпретативные или метауровневые системы кодируют индуктивную логическую программную программу как метауровневую логическую программу, которая затем решается для получения оптимальной гипотезы. Формализмы, используемые для выражения спецификации проблемы, включают Пролог и программирование набора ответов , с существующими системами Пролога и решателями набора ответов, используемыми для решения ограничений. [30]
Примером системы на основе Пролога является Metagol, которая основана на метаинтерпретаторе в Прологе , в то время как ASPAL и ILASP основаны на кодировании задачи индуктивного логического программирования в программировании набора ответов. [30]
Вероятностное индуктивное логическое программирование адаптирует настройку индуктивного логического программирования к обучению вероятностным логическим программам . Его можно рассматривать как форму статистического реляционного обучения в рамках формализма вероятностного логического программирования. [33] [34]
Данный
Цель вероятностного индуктивного логического программирования — найти вероятностную логическую программу, такую, чтобы вероятность положительных примеров согласно была максимизирована, а вероятность отрицательных примеров была минимизирована. [34]
Эта задача имеет два варианта: изучение параметров и изучение структуры. В первом случае дана структура (предложения) H , и цель состоит в том, чтобы вывести аннотации вероятностей данных предложений, в то время как во втором случае цель состоит в том, чтобы вывести как структуру, так и параметры вероятности H. Так же, как в классическом индуктивном логическом программировании, примеры могут быть даны как примеры или как (частичные) интерпретации. [34]
Параметрическое обучение для языков, следующих семантике распределения, было выполнено с использованием алгоритма максимизации ожидания или градиентного спуска . Алгоритм максимизации ожидания состоит из цикла, в котором шаги ожидания и максимизации выполняются повторно. На шаге ожидания распределение скрытых переменных вычисляется в соответствии с текущими значениями параметров вероятности, в то время как на шаге максимизации вычисляются новые значения параметров. Методы градиентного спуска вычисляют градиент целевой функции и итеративно изменяют параметры, двигаясь в направлении градиента. [34]
Структурное обучение было впервые предложено Дафной Коллер и Ави Пфеффером в 1997 году [35] , где авторы изучают структуру правил первого порядка с соответствующими вероятностными параметрами неопределенности. Их подход включает в себя создание базовой графической модели на предварительном этапе, а затем применение максимизации ожидания. [34]
В 2008 году Де Рэдт и др. представили алгоритм для выполнения сжатия теории в программах ProbLog , где сжатие теории относится к процессу удаления как можно большего количества предложений из теории, чтобы максимизировать вероятность заданного набора положительных и отрицательных примеров. Никакое новое предложение не может быть добавлено к теории. [34] [36]
В том же году Мирт, В. и др. представили метод обучения параметров и структуры основных вероятностных логических программ, рассматривая эквивалентные им байесовские сети и применяя методы обучения байесовских сетей. [37] [34]
ProbFOIL, представленный Де Рэдтом и Инго Тоном в 2010 году, объединил индуктивную систему логического программирования FOIL с ProbLog . Логические правила изучаются из вероятностных данных в том смысле, что как сами примеры, так и их классификации могут быть вероятностными. Набор правил должен позволять предсказывать вероятность примеров из их описания. В этой настройке параметры (значения вероятности) фиксированы, а структура должна быть изучена. [38] [34]
В 2011 году Елена Беллоди и Фабрицио Ригуцци представили SLIPCASE, который выполняет лучевой поиск среди вероятностных логических программ путем итеративного уточнения вероятностных теорий и оптимизации параметров каждой теории с использованием максимизации ожидания. [39] Его расширение SLIPCOVER, предложенное в 2014 году, использует нижние предложения, сгенерированные как в Progol, для управления процессом уточнения, тем самым сокращая количество ревизий и исследуя пространство поиска более эффективно. Более того, SLIPCOVER отделяет поиск перспективных предложений от поиска теории: пространство предложений исследуется с помощью лучевого поиска , в то время как пространство теорий ищется жадно . [40] [34]
В этой статье использован текст из свободного контента . Лицензия CC-BY 4.0 (лицензионное заявление/разрешение). Текст взят из A History of Probabilistic Inductive Logic Programming, Fabrizio Riguzzi, Elena Bellodi и Riccardo Zese, Frontiers Media .