Дедуктивный классификатор
Дедукти́вный классифика́тор — это разновидность инференс-машины (выводящей системы) в области искусственного интеллекта. Входными данными для классификатора служит набор утверждений, сформулированных на фреймовом языке о некоторой предметной области, например медицинских исследованиях или молекулярной биологии. К примеру, это могут быть названия классов, подклассов, свойства и ограничения допустимых значений. Классификатор определяет, согласуются ли сделанные утверждения между собой с логической точки зрения; в случае противоречий он указывает на конкретные неконсистентные утверждения и характер их несогласованности. Если утверждения непротиворечивы, классификатор может сделать дополнительные выводы исходя из поступившей информации — например, добавить сведения о существующих классах, создать дополнительные классы и пр. В отличие от традиционных выводящих систем, основанных на правилах «ЕСЛИ-ТО», классификатор работает с описательными декларациями. Классификаторы схожи с доказателями теорем, поскольку используют логику первого порядка для входа и вывода. Первые классификаторы появились в рамках фреймовых языков семейства KL-ONE. Они приобретают всё большее значение как составная часть технологий семантической паутины. Современные классификаторы активно используют Web Ontology Language (OWL). Модели, которые анализируются и строятся с их помощью, называются онтологиями[1].
История
Классической проблемой представления знаний в искусственном интеллекте является компромисс между выразительной мощностью и вычислительной эффективностью системы представления знаний. Наиболее мощной формой представления знаний выступает логика первого порядка; однако невозможно реализовать такую систему, которая обеспечивала бы всю выразительную мощь логики первого порядка — например, возможность описать множество всех целых чисел, перебор которого невозможен. Попытки реализовать утверждения, параметризованные по бесконечным множествам, по определению приводят к неразрешимости задачи или бесконечной работе программы. Как показал Гектор Левеск, чем ближе механизм представления знаний к логике первого порядка, тем больше вероятность возникновения утверждений, требующих для обработки бесконечных или неприемлемо больших вычислительных ресурсов[2].
В результате большого числа подобных компромиссов значительная часть ранних исследований в области представления знаний была посвящена поиску подходящих подмножеств логики первого порядка, дающих приемлемую скорость вычислений. Одним из первых и наиболее успешных компромиссных решений стало развитие языков, преимущественно основанных на modus ponens — то есть на правилах типа «ЕСЛИ-ТО». Экспертные системы, использующие такие правила вывода, составляли основу первых систем искусственного интеллекта и обеспечивали хорошую производительность при достаточно универсальном представлении знаний. Кроме того, такой подход был близок интуитивному пониманию предметно-ориентированных специалистов: психологические исследования показывали, что люди зачастую склонны структурировать знания в виде правил[3].
Со временем, однако, наряду с правилами всё более широкое применение находили фреймовые языки, либо правила и фреймы стали использоваться совместно. Фреймы позволяли более естественно описывать определённые типы понятий, особенно связанные с иерархией подклассов или частей. Это стимулировало разработку нового типа выводящей системы — классификатора. Классификатор мог анализировать иерархию классов (иначе — онтологию) и проверять её согласованность; при наличии противоречий он указывал несогласованные элементы. Для того чтобы язык мог использовать классификатор, требовалась строгая формальная база. Первой категорией языков, успешно реализовавших классификатор, было семейство KL-ONE. Позднее язык Loom, разработанный в Институте информационных наук (ISI), был во многом основан на KL-ONE и ориентирован на растущую популярность объектно-ориентированных инструментов: Loom поддерживал полноценную объектную модель (например, передачу сообщений) наряду с фреймовыми возможностями. Классификаторы играют значимую роль в развитии концепции семантической паутины: язык онтологий Web (OWL) позволяет строить формальные модели, валидируемые классификаторами, такие как Hermit и Fact++[4].
Внедрения
Первые версии классификаторов представляли собой системы автоматического доказательства теорем. Первый классификатор, работавший с фреймовым языком, был создан для фреймового языка KL-ONE[5][6]. Позднее в среде Common Lisp была разработана система LOOM Института информационных наук, которая предоставляла расширенные объектно-ориентированные возможности на основе Common Lisp Object System в сочетании с фреймовым языком[7]. В семантической паутине инструмент Protege, разработанный в Стэнфордском университете, содержит классификаторы как часть стандартной среды[8].
Примечания
- ↑ Berners-Lee, Tim; Hendler, James; Lassila, Ora (17 мая 2001). “The Semantic Web: A new form of Web content that is meaningful to computers will unleash a revolution of new possibilities”. Scientific American [англ.]. 284 (5): 34—43. DOI:10.1038/scientificamerican0501-34. Архивировано из оригинала 24 апреля 2013. Используется устаревший параметр
|url-status=(справка) - ↑ Levesque, Hector. A Fundamental Tradeoff in Knowledge Representation and Reasoning // Reading in Knowledge Representation : [англ.] / Hector Levesque, Ronald Brachman. — Morgan Kaufmann, 1985. — P. 49. — «The good news in reducing KR service to theorem proving is that we now have a very clear, very specific notion of what the KR system should do; the bad new is that it is also clear that the services can not be provided... deciding whether or not a sentence in FOL is a theorem... is unsolvable.». — ISBN 978-0-934613-01-9.
- ↑ Hayes-Roth, Frederick. Building Expert Systems : [англ.] / Frederick Hayes-Roth, Donald Waterman, Douglas Lenat. — Addison-Wesley, 1983. — P. 6–7. — ISBN 978-0-201-10686-2.
- ↑ MacGregor, Robert (1994). “A Descriptive Classifier for the Predicate Calculus” (PDF). AAAI - 94 Proceedings [англ.]. Дата обращения 2024-06-05.
- ↑ Woods, W. A.; Schmolze, J. G. (1992). “The KL-ONE family”. Computers & Mathematics with Applications [англ.]. 23 (2—5): 133—177. DOI:10.1016/0898-1221(92)90139-9.
- ↑ Brachman, R. J.; Schmolze, J. G. (1985). “An Overview of the KL-ONE Knowledge Representation System”. Cognitive Science [англ.]. 9 (2): 171—216. DOI:10.1207/s15516709cog0902_1.
- ↑ MacGregor, Robert (июнь 1991). “Using a description classifier to enhance knowledge representation”. IEEE Expert [англ.]. 6 (3): 41—46. DOI:10.1109/64.87683. S2CID 29575443. Проверьте дату в
|date=(справка на английском) - ↑ Protege Wiki: Reasoners that integrate with Protege (англ.). Stanford University. Дата обращения: 5 июня 2024.