
На эти и другие вопросы вы найдете ответ в статье под катом, написанной на основе выступления Константина Анисимовича, директора департамента разработки технологий ABBYY, одного из ведущих экспертов страны в сфере искусственного интеллекта.
При его личном участии были созданы технологии распознавания документов, которые применяются в продуктах ABBYY FineReader и ABBYY FormReader. Константин рассказал об истории и основах разработки AI на одном из мастер-классов для студентов Технопарка Mail.Ru. Материал мастер-класса и стал базой для цикла статей.
Всего в цикле будет три поста:
• Искусственный интеллект для программистов
• Применение знаний: алгоритмы поиска в пространстве состояний
• Получение знаний: инженерия знаний и машинное обучение
Взлеты и падения подходов в AI
Еще с 1950-х годов в сфере создания искусственного интеллекта выделилось два подхода — символьные вычисления и коннекционизм. Символьные вычисления – это направление, основанное на моделировании мышления человека, а коннекционизм — на моделировании устройства мозга.
Первыми достижениями в области символьных вычислений были созданный в 50-е годы язык Lisp и работа Дж. Робинсона в области логического вывода. В коннекционизме таковым стало создание персептрона – самообучающегося линейного классификатора, моделирующего работу нейрона. Дальнейшие яркие достижения находились в основном в русле символьной парадигмы. В частности, это работы Сеймура Пайперта и Роберта Антона Уинсона в области психологии восприятия и, конечно, фреймы Марвина Минского.
В 70-е годы появились первые прикладные системы, использующие элементы искусственного интеллекта – экспертные системы. Дальше произошел некий ренессанс коннекционизма с появлением многослойных нейронных сетей и алгоритма их обучения методом обратного распространения. В 80-е годы увлечение нейронными сетями было просто повальным. Сторонники этого подхода обещали создать нейрокомпьютеры, которые будут работать практически как человеческий мозг.

Следующей популярной парадигмой в области искусственного интеллекта стало машинное обучение. Подход начал бурно развиваться с конца 80-х годов и не теряет популярности и поныне. Значительный толчок развитию машинного обучения дало появление интернета и большого количества разнообразных легкодоступных данных, которые можно использовать для обучения алгоритмов.
Главные задачи при проектировании искусственного интеллекта
Можно проанализировать, что роднит те задачи, которые относятся к искусственному интеллекту. Несложно заметить, что общее в них — отсутствие известной, четко определенной процедуры решения. Этим, собственно, задачи, относящиеся к AI, отличаются от задач теории компиляции или вычислительной математики. Интеллектуальные системы ищут субоптимальные решения задачи. Нельзя ни доказать, ни гаратировать, что найденное искусственным интеллектом решение будет строго оптимальным. Тем не менее, в большинстве практических задач субоптимальные решения всех устраивают. Более того, нужно помнить, что и человек практически никогда не решает задачу оптимально. Скорее, наоборот.
Возникает очень важный вопрос: как может AI решить задачу, для которой нет алгоритма решения? Суть в том, чтобы делать это так же, как и человек — выдвигать и проверять правдоподобные гипотезы. Естественно, что для выдвижения и проверки гипотез нужны знания.

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

Неструктурированные представления используются обычно в тех сферах, которые связаны с решением задач классификации. Это обычно векторы оценок весовых коэффициентов, вероятностей и тому подобное.
Практически все способы структурированного представления знания базируются на формализме фреймов, которые в 1970-е ввел Марвин Минский из MIT, чтобы обозначить структуру знаний для восприятия пространственных сцен. Как выяснилось, подобный подход годится практически для любой задачи.
Фрейм состоит из имени и отдельных единиц, называемых слотами. Значением слота может быть, в свою очередь, ссылка на другой фрейм… Фрейм может быть потомком другого фрейма, наследуя у него значения слотов. При этом потомок может переопределять значения слотов предка и добавлять новые. Наследование используется для того, чтобы сделать описание более компактным и избежать дублирования.
Несложно заметить, что существует сходство между фреймами и объектно-ориентированным программированием, где фрейму соответствует объект, а слоту — поле. Сходство это неслучайное, потому что фреймы были одним из источников возникновения ООП. В частности, один из первых объектно-ориентированных языков Small Talk практически в точности реализовывал фреймовые представления объектов и классов.
Для процедурного представления знаний используются продукции или продукционные правила. Продукционная модель — это модель, основанная на правилах, позволяющих представить знание в виде предложений «условие — действие». Такой подход раньше был популярен в различных системах диагностики. Достаточно естественно в виде условия описывать симптомы, проблемы или неисправности, а в виде действия — возможную неисправность, которая приводит к наличию этих симптомов.
В следующей статье мы поговорим о способах применения знаний.
Список литературы.
- John Alan Robinson. A Machine-Oriented Logic Based on the Resolution Principle. Communications of the ACM, 5:23-41, 1965.
- Seymour Papert, Marvin Minsky. Perceptrons. MIT Press, 1969
- Marvin Minsky. Symbolic vs. Connectionist, 1990
- Marvin Minsky. A framework for representing knowledge. MIT AI Laboratory Memo 306, June, 1974.
- Russell, Norvig. Artificial Intelligence: A Modern Approach.
- Simon Haykin. Neural networks: a comprehensive foundation.
- Nils J. Nilsson. Artificial Intelligence: A New Synthesis.