Введение

Грамматическая индукция (или грамматический вывод) — это процесс в машинном обучении, заключающийся в обучении формальной грамматике (обычно представленной в виде набора правил переписывания или продукций, либо, альтернативно, в виде конечного автомата или машины) на основе набора наблюдений, что позволяет построить модель, описывающую характеристики наблюдаемых объектов. В более широком смысле, грамматический вывод — это область машинного обучения, в которой пространство экземпляров состоит из дискретных комбинаторных объектов, таких как строки, деревья и графы.

Уроки грамматики

Грамматический вывод часто был сильно сосредоточен на задаче обучения конечных автоматов различных типов (см. статью «Индукция регулярных языков» для получения подробной информации об этих подходах), поскольку с 1980-х годов существуют эффективные алгоритмы для решения этой задачи. С начала века эти подходы были расширены на задачу вывода контекстно-свободных грамматик и более сложных формализмов, таких как множественные контекстно-свободные грамматики и параллельные множественные контекстно-свободные грамматики. Другие классы грамматик, для которых изучался грамматический вывод, включают комбинаторные категориальные грамматики, контекстные грамматики и языки образцов.

Модели обучения

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

Методологии

Существует большое разнообразие методов грамматического вывода. Два классических источника также посвящают краткий раздел этой проблеме и приводят ряд ссылок. Базовый метод проб и ошибок, представленный ими, обсуждается ниже. Для подходов к выводу подклассов регулярных языков, в частности, см. «Индукция регулярных языков». Более современный учебник де ла Игуэры (2010) содержит обзор, исследующий методы грамматического вывода для естественных языков.

Индукция вероятностных грамматик

Существует несколько методов индукции вероятностных контекстно-свободных грамматик.

Грамматическое выводы по методу проб и ошибок

Метод, предложенный в разделе 8.7, предполагает последовательное выдвижение гипотез о грамматических правилах (продукциях) и проверку их на соответствие положительным и отрицательным примерам. Набор правил расширяется таким образом, чтобы он мог генерировать каждый положительный пример, но если данный набор правил также генерирует отрицательный пример, он должен быть отброшен. Этот подход можно охарактеризовать как "тестирование гипотез" и он имеет некоторое сходство с алгоритмом пространства версий Митчелла. В тексте приводится простой пример, наглядно иллюстрирующий этот процесс, однако практическая применимость такого неконтролируемого подхода проб и ошибок для решения более сложных задач представляется сомнительной.

Грамматическое выводы генетическими алгоритмами

Грамматическая индукция с использованием эволюционных алгоритмов — это процесс эволюции представления грамматики целевого языка посредством некоторого эволюционного процесса. Формальные грамматики могут быть легко представлены в виде древовидных структур производственных правил, которые могут подвергаться эволюционным операторам. Алгоритмы такого рода берут начало из парадигмы генетического программирования, разработанной Джоном Козой. Другие ранние работы с простыми формальными языками использовали бинарное строковое представление генетических алгоритмов, но присущая грамматикам иерархическая структура, выраженная в языке EBNF, сделала деревья более гибким подходом. Коза представлял программы Lisp в виде деревьев и смог найти аналоги генетическим операторам в стандартном наборе древовидных операторов. Например, обмен поддеревьями эквивалентен соответствующему процессу генетического кроссовера, при котором подстроки генетического кода переносятся в особь следующего поколения. Пригодность (fitness) оценивается по результатам работы функций кода Lisp. Подобные аналогии между древовидным представлением Lisp и представлением грамматик в виде деревьев сделали возможным применение методов генетического программирования для грамматической индукции. В случае грамматической индукции перенос поддеревьев соответствует обмену производственных правил, обеспечивающих синтаксический разбор фраз целевого языка. Оператор пригодности грамматики основан на некоторой мере того, насколько успешно она выполняет разбор группы предложений из целевого языка. В древовидном представлении грамматики терминальный символ производственного правила соответствует листовому узлу дерева, а его родительские узлы — нетерминальному символу (например, именной или глагольной группе) в наборе правил. В конечном итоге корневой узел может соответствовать нетерминалу предложения.

Распределенное обучение

Более поздний подход основан на обучении на основе распределения данных. Алгоритмы, использующие такие подходы, были применены к изучению контекстно-свободных грамматик и языков с умеренной контекстной чувствительностью и доказали свою корректность и эффективность для больших подклассов этих грамматик.

Изучение языков шаблонов

Англюин определяет шаблон как "последовательность постоянных символов из Σ и переменных символов из непересекающегося множества". Язык такого шаблона – это множество всех его непустых конкретных экземпляров, то есть всех строк, получаемых путем согласованной замены его переменных символов непустыми последовательностями постоянных символов. Шаблон называется описательным для конечного набора входных строк, если его язык минимален (по включению) среди всех языков шаблонов, содержащих данный набор входных строк. Англюин предлагает полиномиальный алгоритм для вычисления, для заданного набора входных строк, всех описательных шаблонов с одной переменной x. Для этого она строит автомат, представляющий все потенциально релевантные шаблоны; используя сложные рассуждения о длине слов, основанные на том, что x – единственная переменная, количество состояний можно существенно сократить. Эрлебах и др. предлагают более эффективную версию алгоритма обучения шаблонов Англюин, а также параллельную версию. Аримура и др. показывают, что класс языков, полученный из ограниченных объединений шаблонов, может быть изучен за полиномиальное время.

Приложения

Принцип грамматической индукции был применен к другим областям обработки естественного языка и нашел применение (среди множества других задач) в семантическом разборе, понимании естественного языка, машинном переводе на основе примеров, усвоении языка, грамматической компрессии и обнаружению аномалий.