TL; DR: логика может помочь AI и ML в сложных областях или в областях с очень небольшим объемом данных.

В этом посте мы рассмотрим логику в AI и ML и рассмотрим способы ее использования в AI / ML.

Под логикой мы подразумеваем символический, основанный на знаниях, аргументированный и другие подобные подходы к ИИ, которые отличаются, по крайней мере внешне, от существующих форм классического машинного обучения и глубокого обучения. Это очень важно помнить, поскольку существует множество форм машинного обучения; существует множество различных форм логических подходов к ИИ со своими собственными компромиссами.

Вкратце, системы искусственного интеллекта, основанные на логике, можно рассматривать как системы программирования высокого уровня, которые могут легко кодировать человеческие знания в компактной и удобной форме.

Краткий обзор классической логики

Начиная с простейшей логической системы, у нас есть логика высказываний (иногда называемая логикой нулевого порядка). В логике высказываний у нас есть объекты, известные как предложения или формулы, которые кодируют информацию. Они обозначают какое-то утверждение о мире. Для строительных блоков у нас есть основные предложения , известные как атомы, обычно обозначаемые «P, Q, R, S,… ..». Например, P может означать «Идет дождь» и представляет собой атом. .

Атомы могут сочетаться с логическими связками, такими как «и, или, если то», чтобы образовывать больше предложений, называемых составными формулами.

Формулы позволяют нам представлять информацию. Тогда как нам перейти от информации, которая у нас уже есть, к новой? Мы делаем это с помощью рассуждений или умозаключений. Логика высказываний снабжена набором схем, называемых методами вывода. Методы вывода можно представить себе как небольшие программы, которые принимают набор предложений в качестве входных данных и выводят одно или несколько предложений. На рисунке ниже показан очень простой метод вывода, который принимает формулу, представляющую «Q и R», и производит в качестве вывода формулу R. Например, если ввод - «Солнечно и тепло», на выходе будет быть «Солнечно».

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

Логика высказываний является хорошей отправной точкой по педагогическим причинам, но она громоздка для моделирования областей с большим количеством объектов. Например, предположим, что мы хотим записать ограничения, которым должна удовлетворять головоломка Судоку. Допустим, у нас есть для каждого числа k и каждой строки i и столбца j атом A_ ijk, который стоит для строка i и столбец k содержат число k. Благодаря этому мы можем быстро записать ограничения для судоку в логике высказываний [8]. Например, предложение на рисунке ниже гласит, что цифра 5 должна появиться в первой строке.

Аналогичным образом мы можем записать другие ограничения для других чисел [8]. В наших ограничениях будет всего 9³ = 729 атомов. Каждый атом может быть истинным или ложным, что дает нам в общей сложности 2 возможных состояния (намного больше, чем количество физических атомов в нашей Вселенной).

Логика первого порядка улучшает логику высказываний, вводя атомы, которые могут принимать аргументы, заменяющие объекты в предметной области. В логике первого порядка вместо атома A_ ijk для каждой комбинации i, j и k у нас будет один атом, который принимает эти переменные в качестве аргументов. Например, A (1,3,5) говорит, что в строке 1 и столбце 3 стоит 5. На рисунке ниже показано, что в строке 1 существует один столбец с номером 5. Как видите, представление «Строка 1 имеет 5 в некотором столбце» гораздо более компактно в логике первого порядка.

Другая логика

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

Теперь, когда мы прошли очень и очень краткий обзор логики, каковы современные способы использования логики в областях, которые пересекаются с ИИ и машинным обучением?

Приложения логики в AI и ML

1. Автоматизированные открытия в науке

Одно из наиболее успешных применений логики было в научной области для представления структурированного научного знания. В 2007 году группа в Уэльсе и Англии создала систему под названием Adam (Автоматизированная машина обнаружения и анализа) [9].

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

Когда придет время писать историю искусственного интеллекта (ИИ), алгоритм, который получит эту работу, скорее всего, отметит 12 июня 2007 года как заслуживающий внимания. Это был день, когда робот по имени Адам положил конец монополии человечества на открытие научных знаний, определив функцию дрожжевого гена.

- Ник Флеминг, май 2018 г., Nature Spotlight

Https://www.nature.com/articles/d41586-018-05267-x

Совсем недавно Ева, система, похожая на Адама, использовалась для ускорения открытия лекарств.

(Подробнее читайте здесь: https://www.cam.ac.uk/research/news/artificially-intelligent-robot-scientist-eve-could-boost-search-for-new-drugs)

2. Индуктивное программирование.

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

0, 2, 4, 8, 12: Да

1, 3, 7, 9: No

Индуктивное программирование занимается созданием систем, которые могут учиться на таких примерах. Такие системы обычно формулируются с использованием логики. Современные системы индуктивного программирования могут изучать сложные рекурсивные программы всего на нескольких примерах. Рассмотрим два примера ввода / вывода, показанные ниже. Цель здесь - изучить программу, которая находит первый символ во входной строке, который дублируется.

Metaopt [1] может найти эффективную и рекурсивную программу на Прологе, которая может решить эту задачу. Программа представлена ​​ниже:

Где это полезно? Подсчитано, что специалисты по данным тратят большую часть своего времени на написание программ для преобразования данных. Для обучения программам очистки и преобразования данных использовались методы индуктивного программирования [6].

3. Автоматизация математических рассуждений.

На примере судоку выше мы показали, что логика первого порядка более выразительна, чем логика высказываний. Есть ли предел тому, что мы можем моделировать с его помощью? Сама по себе логика первого порядка довольно сильна. Он достаточно мощный, чтобы моделировать почти всю классическую математику. Если вы работаете в рамках стандартной математики, вы можете сформулировать любую цель, которую хотите доказать (предположение), и попросить вашу работу (математическое доказательство) автоматически проверить на машине. Примеры того, как это работает, можно найти в Journal of Formalized Mathematics, журнале, в котором публикуются результаты по математике, прошедшие машинную проверку. Системы рассуждений и умозаключений также использовались для доказательства ранее недоказанных результатов, а не просто для проверки доказательств, произведенных человеком. Один из самых впечатляющих подвигов машинного мышления произошел, когда логик первого порядка смог доказать открытую математическую гипотезу, которая не была решена в течение 60 лет.

4. Проверка компьютерных систем (включая системы машинного обучения)

Помимо математики, для проверки компьютерных систем используются логики, основанные на логике первого порядка и подобных системах. Это поле называется формальная проверка. При формальной проверке у вас есть компьютерная система S, свойство P, и вы должны достаточно жестко подтвердить, что это свойство действительно. Например, см. ACL2 (http://www.cs.utexas.edu/users/moore/acl2/), промышленную систему, используемую для проверки аппаратных и программных систем. В последние годы аналогичные подходы использовались для проверки и обеспечения гарантий для систем глубокого обучения. В [5] Huang et al. используйте инструменты логического обоснования для проверки наличия враждебных входов в многоуровневых нейронных сетях с прямой связью.

4. Логические системы и модели машинного обучения.

Наряду с растущим числом приложений и доменов, использующих модели машинного обучения, все еще существуют сценарии, требующие использования логических систем наряду с моделями машинного обучения. Например, многие системы обнаружения мошенничества используют одну или несколько моделей машинного обучения вместе с большим набором правил, созданных вручную. Эти правила необходимы по многим причинам. В области обнаружения мошенничества эти правила могут фиксировать новые и развивающиеся модели мошенничества, для которых может не хватить данных для обучения новых моделей [7]. Некоторые недавние исследования, посвященные различным способам включения логики в системы глубокого обучения, см. В [2], [3] и [4].

На этом мы завершаем краткий обзор логики и ее приложений в AI и ML. Как упоминалось ранее, мы только что коснулись поверхности обширной области исследований. Чтобы статья была относительно короткой, мы опустили многие системы и приложения. В будущих публикациях мы более подробно рассмотрим конкретные приложения и системы и рассмотрим некоторые способы включения логики в свои модели глубокого обучения.

использованная литература

[1] Кроппер А. и Магглетон С.Х., 2019. Изучение эффективных логических программ. Машинное обучение, 108 (7), стр. 1063–1083. Http://andrewcropper.com/pubs/mlj18-metaopt.pdf

[2] Сюй Дж., Чжан З., Фридман Т., Лян Ю. и Брок Г., 2018, июль. Функция семантической потери для глубокого обучения с использованием символических знаний. В Международной конференции по машинному обучению (стр. 5498–5507). Ванкувер https://arxiv.org/abs/1711.11157

[3] Манхейв Р., Думанчич С., Киммиг А., Демейстер Т. и Де Рэдт Л., 2018. DeepProblog: нейронно-вероятностное логическое программирование. В книге Достижения в системах обработки нейронной информации (стр. 3749–3759). Http://papers.nips.cc/paper/7632-deepproblog-neural-probabilistic-logic-programming

[4] Коэн, У.В., Янг, Ф. и Мазайтис, К.Р., 2017. Tensorlog: глубокое обучение встречается с вероятностными базами данных. Препринт arXiv arXiv: 1707.05390. Https://arxiv.org/abs/1707.05390

[5] Хуанг, X., Квятковска, М., Ван, С. и Ву, М., 2017, июль. Проверка безопасности глубоких нейронных сетей. В Международной конференции по компьютерной проверке (стр. 3–29). Спрингер, Чам. Https://arxiv.org/pdf/1610.06940.pdf

[6] Раза, М., Гулвани, С., 2017, февраль. Автоматизированное извлечение данных с использованием прогнозирующего программного синтеза. В Тридцать первой конференции AAAI по искусственному интеллекту.

[7] https://stripe.com/radar/guide#rules-and-manual-reviews

[8] https://www.cs.ox.ac.uk/people/james.worrell/lec2-2015.pdf

[9] Кинг, Р.Д., Роуленд, Дж., Оливер, С.Г., Янг, М., Обри, В., Бирн, Э., Лиаката, М., Маркхэм, М., Пир, П., Солдатова, Л.Н. и Спаркс, А., 2009. Автоматизация науки. Наука, 324 (5923), стр.85–89.