Нейронные сети сейчас везде. Что само по себе не плохо: их популярность вполне обоснована и результаты приложений впечатляют. Вот только за всем этим ажиотажем и новостными заголовками теряются интереснейшие направления исследований в области искусственного интеллекта: рассуждения по прецедентам, рассуждения по аналогии, экспертные системы, контекстные системы поддержки принятия решений, и множество других.
Рассуждения по прецедентам (case-based reasoning CBR)
В этой области исследований для решения задач используется опыт, накопленный системой. Единицей хранения опыта является прецедент. В прецеденте описывается ситуация, состоящая из проблемы и решения.
Использование прецедентов способствует обучению системы - если проблема решена, то прецедент сохраняется и его можно использовать в похожих ситуациях. Поэтому говорят о цикле рассуждений по прецедентам, который состоит из четырёх этапов:
1) Извлечь самый похожий прецедент (или прецеденты)
2) Повторно использовать содержащуюся в нем информацию
3) Проверить корректность результата
4) Сохранить новый прецедент
Первая CBR система, CYRUS, была разработана в 1983 году Дж. Колоднер (Janet Kolodner). Это была вопросно-ответная система, хранившая информацию о рабочих поездках бывшего госсекретаря США Сайруса Вэнса. Несмотря на давность лет, идеи, положенные в основу этой системы, не потеряли своей актуальности.
Основная идея проста: объединить похожие прецеденты в рамках обобщённой структуры - эпизодического пакета. Каждый такой пакет содержит (a) прецеденты, (b) нормы, хранящие общую для прецедентов информацию, и (c) индексы, описывающие различия. Кроме того, вместо прецедента можно сохранить и другой эпизодический пакет. В результате из них можно строить иерархические структуры.
Пытливый читатель может спросить: "И что же здесь такого особенного? Ведь получается, что мы просто разбираем прецеденты на составляющие - всё одинаковое пишем в нормы, а все различия в индексы."
Однако, если в самом деле следовать такой стратегии, память быстро распухнет до неуправляемых размеров. С добавлением новых прецедентов неизбежен комбинаторный взрыв количества индексов, поэтому их выбор нужно контролировать. Для индексирования выбираются только те свойства, которые обладают "предсказательной способностью", т.е. их значения коррелируют с другими свойствами.
Сохраненные в памяти прецеденты нужно как-то извлекать. Для этого выполняется проход по индексам. Сначала запрос сравнивается с нормами. Если найдены совпадающие элементы, запрос сравнивается с индексами, и для совпадений выполняется дальнейший спуск по иерархии, пока не будет найден самый похожий прецедент.
На первый взгляд звучит тривиально. Вот только что делать, если запрос сформулирован в терминах, которые не использовались для индексирования? Или же формулировка настолько общая, что на её основе невозможно выполнить проход по индексам? Для этого в CYRUS используется подгонка индексов (index fitting) и построение возможных индексов (plausible-index generation).
Идеи, лежащие в основе этих механизмов, основаны на том, как люди отвечают на вопросы. Колоднер приводит в качестве примера монолог человека, которого попросили перечислить в каких музеях он побывал:
"Я помню, что посетил в Европе много музеев. Я был в Англии и сходил там в несколько музеев - некоторые в Лондоне - Британский музей, Лондонская национальная галерея и несколько галерей поменьше. Я был в музее в Брайтоне - Королевском павильоне. В Париже - Лувр и несколько других, поменьше. ..."
Из-за того, что этот человек бывал во многих музеях, выражение "посещение музея" не может идентифицировать отдельные события - их слишком много. Поэтому он вспоминает дополнительные свойства, которые напомнили бы каждое конкретное событие. В данном случае это географическое расположение.
Модель эпизодической памяти является только одним из множества способов организации базы прецедентов. Многообещающим направлением исследований является интеграция рассуждений по прецедентам с различными моделями представления знаний: продукционной (системы, основанные на правилах), коннекционистской (нейронные сети), логической (системы, использующие нечёткую логику) и другими.
Здесь наблюдательный читатель может заметить: "Но ведь мы рассмотрели только первый этап цикла! А дальше?". А дальше - методы повторного использования прецедентов. Эту сложную и интересную тему мы рассмотрим в следующий раз.
Литература
1. Aamodt A., Plaza E. A. Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches. AI Communications. IOS Press. 1994. Vol. 7:1. pp. 39-59.
2. Kolodner J. Maintaining organization in a dynamic long term memory. Cognitive Science. 1983. Vol. 7:4. pp.243–280.
3. Kolodner J. Reconstructive memory: a computer model. Cognitive Science. 1983. Vol. 7:4. pp.281–328.
4. Biswas S., Sinha N., Purkayastha B. A review on fundamentals of case-based reasoning and its recent application in different domains. International Journal of Advanced Intelligence Paradigms. 2014. Vol. 6:3. pp. 235-254.