Понятие искусственного интеллекта
12.1. НАПРАВЛЕНИЯ ИССЛЕДОВАНИЙ
И РАЗРАБОТОК В ОБЛАСТИ СИСТЕМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Научное направление, связанное с машинным моделированием человеческих интеллектуальных функций - искусственный интеллект - возникло в середине 60-х годов XX столетия. Его возникновение непосредственно связано с общим направлением научной и инженерной мысли, которое привело к созданию компьютера -направлением на автоматизацию человеческой интеллектуальной деятельности, на то, чтобы сложные интеллектуальные задачи, считавшиеся прерогативой человека, решались техническими средствами.
Говоря о сложных интеллектуальных задачах следует понимать, что всего 300 -400 лет назад перемножение больших чисел вполне относилось к таковым; однако, усвоив в детстве правило умножения столбиком, современный человек пользуется им не задумываясь, и вряд ли эта задача сегодня является «сложной интеллектуальной». По-видимому, в круг таковых следует включить те задачи, для решения которых нет «автоматических» правил, т.е. нет алгоритма (пусть даже и очень сложного), следование которому всегда приводит к успеху. Есди для решения задачи, которая нам сегодня представляется относящейся к указанному кругу, в будущем придумают четкий алгоритм, она перестанет быть «сложной интеллектуальной».
Несмотря на свою краткость, история исследований и разработок систем искусственного интеллекта может быть разделена на четыре периода:
• 60-е - начало 70-х годовXX века - исследования по «общему интеллекту», попытки смоделировать общие интеллектуальные процессы, свойственные человеку: свободный диалог, решение разнообразных задач, доказательство теорем, различные игры (типа шашек, шахмат и т.д.), сочинение стихов и музыки и т.д.;
• 70-е годы - исследования и разработка подходов к формальному представлению знаний и умозаключений, попытки свести интеллектуальную деятельность к формальным преобразованиям символов, строк и т.д.;
• с конца 70-х годов - разработка специализированных на определенных предметных областях интеллектуальных систем, имеющих прикладное практическое значение (экспертных систем);
• 90-е годы - фронтальные работы по созданию ЭВМ 5-го поколения, построенных на иных принципах, чем обычные универсальные ЭВМ, и программного обеспечения для них.
В настоящее время «искусственный интеллект» - мощная ветвь информатики, имеющая как фундаментальные, чисто научные основы, так и весьма развитые технические, прикладные аспекты, связанные с созданием и эксплуатацией работоспособных образцов интеллектуальных систем. Значение этих работ для развития информатики таково, что именно от их успеха зависит появление ЭВМ нового 5-го поколения. Именно этот качественный скачок возможностей компьютеров -обретение ими в полной мере интеллектуальных возможностей - положен целью развития вычислительной техники в ближайшей перспективе и является признаком компьютерной техники нового поколения.
Любая задача, для которой не известен алгоритм решения, может быть отнесена к сфере искусственного интеллекта. Примерами могут быть игра в шахматы, медицинская диагностика, составление резюме текста или перевода его на иностранный язык - для решения этих задач не существует четких алгоритмов. Еще две характерные особенности задач искусственного интеллекта: преобладающее использование информации в символьной (а не в числовой) форме и наличие выбора между многими вариантами в условиях неопределенности.
Перечислим отдельные направления, где применяются методы искусственного интеллекта.
1. Восприятие и распознавание образов (задача, упоминавшаяся ранее, как одно из направлений кибернетики). Теперь под этим понимаются не просто технические системы, воспринимающие визуальную и звуковую информацию, кодирующие и размещающие ее в памяти, проблемы понимания и логического рассуждения в процессе обработки визуальной и речевой информации.
2. Математика и автоматическое доказательство теорем.
3. Игры. Как и формальные системы в математике, игры, характеризующиеся конечным числом ситуаций и четко определенными правилами, с самого начала исследований по искусственному интеллекту привлекли к себе внимание как предпочтительные объекты исследования, полигон для применения новых методов. Интеллектуальными системами был быстро достигнут и превзойден уровень человека средних способностей, однако уровень лучших специалистов не достигнут до сих пор. Возникшие трудности оказались характерными и для многих других ситуаций, так как в своих «локальных» действиях человек использует весь объем знаний, который он накопил за всю свою жизнь.
4. Решение задач. В данном случае понятие «решение» используется в широком смысле, относится к постановке, анализу и представлению конкретных ситуаций, а рассматриваемые задачи - те, которые встречаются в повседневной жизни, для решения которых требуется изобретательность и способность к обобщению.
5. Понимание естественного языка. Здесь ставится задача анализа и генерации текстов, их внутреннего представления, выявление знаний, необходимых для понимания текстов. Трудности связаны, в частности, с тем, что значительная часть информации в обычном диалоге не выражается определенно и ясно. Предложениям естественного языка присуща:
• неполнота;
• неточность;
• нечеткость;
• грамматическая некорректность;
• избыточность;
• зависимость от контекста;
• неоднозначность.
Однако такие свойства языка, являющегося результатом многовекового исторического развития, служат условием функционирования языка как универсального средства общения. Вместе с тем, понимание предложений естественного языка техническими системами с трудом поддается моделированию из-за- этих особенностей языка (да и вопрос о том, что такое «понимание», нуждается в размышлениях). В технических системах должен использоваться формальный язык, смысл предложений которого однозначно определяется их формой. Перевод с естественного языка на формальный является нетривиальной задачей.
6. Выявление и представление знаний экспертов в экспертных системах. Экспертные системы - интеллектуальные системы, вобравшие в себя знания специалистов в конкретных видах деятельности - имеют большое практическое значение, с успехом применяются во многих областях, таких как автоматизированное проектирование, медицинская диагностика, химический анализ и синтез и т.д.
Во всех этих направлениях главные трудности связаны с тем, что недостаточно изучены и поняты принципы человеческой интеллектуальной деятельности, процесс принятия решений и решение задач. Если в 60-х годах широко обсуждался вопрос «может ли компьютер мыслить», то теперь вопрос ставится иначе: «достаточно ли хорошо человек понимает, как он мыслит, чтобы передать эту функцию компьютеру»? В силу этого, работы в области искусственного интеллекта тесно соприкасаются с исследованиями по соответствующим разделам психологии, физиологии, лингвистики.
12.2. ПРЕДСТАВЛЕНИЕ ЗНАНИЙ
В СИСТЕМАХ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Основной особенностью интеллектуальных систем является то, что они основаны на знаниях, а вернее, на некотором их представлении.Знания здесь понимаются как хранимая (с помощью ЭВМ) информация, формализованная в соответствии с некоторыми правилами, которую ЭВМ может использовать при логическом выводе по определенным алгоритмам. Наиболее фундаментальной и важной проблемой является описание смыслового содержания проблем самого широкого диапазона, т.е. должна использоваться такая форма описания знаний, которая гарантировала бы правильную обработку их содержимого по некоторым формальным правилам. Эта проблема называется проблемой представления знаний.
В настоящее время наиболее известны три подходак представлению знаний в обсуждаемых системах:
• продукционная и логическая модели;
• семантические сети;
• фреймы.
Продукционные правила - наиболее простой способ, представления знаний. Он основан на представлении знаний в форме правил, структурированных в соответствии с образцом «ЕСЛИ - ТО». Часть правила «ЕСЛИ» называется посылкой, а «ТО» - выводом или действием. Правило в общем виде записывается так:
ЕСЛИ A1, A2, ...,An, ТО В.
Такая запись означает, что «если все условия от A1 до Аn являются истинными, то В также истинно» или «когда все условия от А1 до Аn выполняются, то следует выполнить действие В».
Рассмотрим правило
ЕСЛИ (1) у является отцом х
(2) z является братом у
ТО z является дядей х
В данном случае число условий п = 2.
В случае п = 0 продукция описывает знание, состоящее только из вывода, т.е. факт. Примером такого знания является факт «атомная масса железа 55,847 а.е.м».
Переменные х, у и г показывают, что правило содержит некое универсальное, общее знание, абстрагированное от конкретных значений переменных. Одна и та же переменная, использованная в выводе и различных посылках, может получать различные конкретные значения.
Знания, представленные в интеллектуальной системе, образуютбазу знаний.В интеллектуальную систему входит такжемеханизм выводов, который позволяет на основе знаний, имеющихся в базе знаний, получать новые знания.
Проиллюстрируем сказанное. Положим, что в базе знаний вместе с описанным выше правилом содержатся и такие знания:
ЕСЛИ (1) z является отцом х
(2) z является отцом у
(3) х и у не являются одним и тем же человеком
ТО х и у являются братьями
Иван является отцом Сергея
Иван является отцом Павла
Сергей является отцом Николая
Из представленных знаний можно формально вывести заключение, что Павел является дядей Николая. При этом считается, что одинаковые переменные, входящие в разные правила, независимы; объекты, имена которых эти переменные могут получать, никак не связаны между собой. Формализованная процедура, использующая сопоставление (при котором устанавливается, совпадают ли между собой две формы представления, включая подстановку возможных значений переменных), поиск в базе знаний, возврат к исходному состоянию при неудачной попытке решения, представляет собой механизм выводов.
Простота и наглядность представления знаний с помощью продукций обусловила его применение во многих системах, которые называются продукционными.
Семантическая сеть - иной подход к представлению знаний, который основан на изображении понятий (сущностей) с помощью точек (узлов) и отношений между ними с помощью дуг на плоскости. Семантические сети способны отображать структуру знаний во всей сложности их взаимосвязей, увязать в единое целое объекты и их свойства. В качестве примера может быть приведена часть семантической сети, относящейся к понятию «фрукты» (рис. 1.47).
Рис. 1.47. Пример семантической сети
Фреймовая система имеет все свойства, присущие языку представления знаний, и одновременно являет собой новый способ обработки информации. Слово «фрейм» в переводе с английского языка означает «рамка». Фрейм является единицей представления знаний об объекте, которую можно описать некоторой совокупностью понятий и сущностей. Фрейм имеет определенную внутреннюю структуру, состоящую из множества элементов, называемыхслотами. Каждый слот, в своюо-чередь, представляется определенной структурой данных, процедурой, или может быть связан с другим фреймом.
Фрейм: человек | ||
Класс | : | Животное |
Структурный элемент | : | Голова, шея, руки, ноги,... |
Рост | : | 30-220 см |
Масса | : | 1 - 200 кг |
Хвост | : | Нет |
Фрейм аналогии | : | Обезьяна |
Существуют и другие, менее распространенные подходы к представлению знаний в интеллектуальных системах, в том числе гибридные, на основе уже описанных подходов.
Перечислим главные особенности машинного представления данных.
1. Внутренняя интерпретируемость. Обеспечивается наличием у каждой информационной единицы своего уникального имени, по которому система находит ее для ответа на запросы, в которых это имя упомянуто.
2. Структурированность. Информационные единицы должны обладать гибкой структурой, для них должен выполняться «принцип матрешки», т.е. вложенности одних информационных единиц в другие, должна существовать возможность установления соотношений типа «часть - целое», «род - вид», «элемент - класс» между отдельными информационными единицами.
3. Связность. Должна быть предусмотрена возможность установления связей различного типа между информационными единицами, которые бы характеризовали отношения между информационными единицами. Эти отношения могут быть как декларативными (описательными), так и процедурными (функциональными).
4. Семантическая метрика. Позволяет устанавливать ситуационную близость информационных единиц, т.е. величину ассоциативной связи между ними. Такая близость позволяет выделять в знаниях некоторые типовые ситуации, строить аналогии.
5. Активность. Выполнение действий в интеллектуальной системе должно инициироваться не какими-либо внешними причинами, а текущим состоянием представленных в системе знаний. Появление новых фактов или описание событий, установление связей должны стать источником активности системы.
МОДЕЛИРОВАНИЕ РАССУЖДЕНИЙ
Рассуждение - один из важнейших видов мыслительной деятельности человека, в результате которого он формулирует на основе некоторых предложений, высказываний, суждений новые предложения, высказывания, суждения. Действительный механизм рассуждений человека остается пока недостаточно исследованным. Человеческим рассуждениям присущи: неформальность, нечеткость, нелогичность, широкое использование образов, эмоций и чувств, что делает чрезвычайно трудными их исследование и моделирование. К настоящему времени лучше всего изучены логические рассуждения и разработано много механизмов дедуктивных выводов, реализованных в различных интеллектуальных системах, основанных на представлении знаний с помощью логики предикатов 1-го порядка.
Предикат - это конструкция вида P(t1, t2, ..., tn), выражающая какую-то связь между некоторыми объектами или свойствами объектов. Обозначение этой связи или свойства, Р, называют «предикатным символом»; t1, t2, .... tn обозначают объекты, связанные свойством (предикатом) Р и называют термами.
Термы могут быть только трех следующих типов:
1) константа (обозначает индивидуальный объект или понятие);
2) переменная (обозначает в разное время различные объекты);
3) составной терм – функция f(t1, t2, … tn), имеющая в качестве своих аргументов m термов t1, t2, … tm.
Примеры.
1. Предложение «Волга впадает в Каспийское море» можно записать в виде предиката
впадает (Волга, Каспийское море).
«Впадает» - предикатный символ; «Волга» и «Каспийское море» - термы-константы. Мы могли обозначить отношение «впадает» и объекты «Волга» и «Каспийское море» символами.
Вместо термов-констант можно рассматривать переменные:
впадает (Х, Каспийское море)
или
впадает (X,Y).
Это тоже предикаты.
2. Отношение х + 1 < у можно записать в виде предиката А(х,у). Предикатный символ А здесь обозначает то, что останется от x + 1 < у, если выбросить из этой записи переменные х и у.
Итак, предикат - это логическая функция, принимающая значения «истина» или «ложь» в зависимости от значений своих аргументов. Количество аргументов у предиката называют егоарностью.
Так, для наших примеров предикат «впадает» имеет арность 2 и при Х = «Волга», а Y = «Каспийское море» истинен, а при Х = «Дон», Y = «Бискайский залив» ложен. Предикат А в примере 2 также имеет арность 2, истинен при Х = 1, Y = 3 и ложен при X=3, Y=1.
Предикаты могут быть объединены в формулы с помощью логических связок (союзов): ^ («и», конъюнкция), v («или», дизъюнкция), ~ («не», отрицание), → («следует», импликация), ↔ («тогда, и только тогда, когда», эквиваленция).
Ниже приведены таблицы истинности этих союзов, позволяющие определить, истинно или ложно значение формулы-связки при различных значениях, входящих в нее предикатов A и В.
Математически строго формулы логики предикатов определяются рекурсивно:
1) предикат есть формула;
2) если А и В - формулы, то А, А^В,АvВ, А→B, А↔В - тоже формулы;
3) других формул не бывает.
Многие формулы логики предикатов требуют использованиякванторов, определяющих область значений переменных - аргументов предикатов. Используются кванторы общности (перевернутое А от английского «All» - все) и квантор существования - (перевернутое Е от английского «Exists» - «существует»). Запись "x читается «для любого х», «для каждого х»; $х - «существует х», «хотя бы для одного х». Кванторы связывают переменные предикатов, на которые они действуют, и превращают предикаты в высказывания.
Таблица 1.12 Истинность связок предикатов (И - истина, Л - ложь)
А | В | А^В | AvB | ~А | А→В | А↔В |
И И Л Л | И Л И Л | И Л Л Л | И И И Л | Л Л И И | И Л И И | И Л Л И |
Пример.
Введем обозначения: А(х) - студент х учится отлично; В(х) - студент х получает повышенную стипендию. Теперь формула А (Иванов) → В (Иванов) означает: студент Иванов учится отлично, следовательно, студент Иванов получает повышенную стипендию, а формула с квантором общности (Vx) (A(x) —> В(х)) означает: каждый студент, который учится отлично, получает повышенную стипендию.
Из всевозможных формул нам потребуется только один их вид, называемый фразами Хорна. Фразы Хорна содержат в общем случае импликацию и конъюнкцию предикатов А, В1, В2,. . . , Вп следующим образом: В1, В2,. . . Вп → А, или в более удобных обозначениях:
А:-В1, В2,...Вn
(читается: А если B1 и В2 и ... и Вп).
Очевидно, фраза Хорна является формой записи некоего правила, и в дальнейшем будет называться правилом. Предикат А называется заголовком или головой правила, а предикаты В1, В2,... ,Вп- его подцелями.
Очевидно, что отдельный предикат является частным случаем фразы Хорна: А.
Другой частный случай фразы Хорна - правило без головы
:-В1, В2,...,Вп,
или
:-В.
Такая фраза Хорна называется вопросом. Мы будем записывать «: - В» в виде «? - В», а «:- В1, В2,.... Вп» в виде «? – В1, В2,.... Вп».
Поясним логический смысл такой формулы. Напомним, что импликация А: - В (В —> А) может быть выра-жена через отрицание и дизъюнкцию : ~BvА (проверьте это с помощью таблицы истинности). Значит, если отбросить А, останется только ~В - отрицание В. Формула ← B1, ..., Вп означает отрицание конъюнкции ~{B1^B2^...^Bn), что по закону де Моргана ~(X^Y) = (~X)v(~Y) равно (~B1)v(~B2) v ... v(~Bn) - дизъюнкции отрицаний.
Множество фраз Хорна применительно к некоторой проблемной области образует теорию (в логическом смысле).
Пример.
Рассмотрим предметную область: сдачу экзамена по некоторой дисциплине. Введем обозначения:
А - студент успешно сдает экзамен.
В - студент посещал занятия.
С - студент освоил учебный материал.
D - студент занимался самостоятельно.
Е - студент подготовил шпаргалку.
Введем знания о предметной области:
Студент успешно сдаст экзамен, если студент освоил учебный материал.
Студент освоил учебный материал, если студент посещал занятия и студент занимался самостоятельно. Студент посещал занятия. Студент занимался самостоятельно.
Форма логической записи:
А:-С;
C:-B,D;
В;
D.
В приведенном примере можно выполнить логический вывод. Так, из истинности фактов В и D и правила С:-В, D следует истинность С, и из правила А:-С - истинность предиката А, т.е., студент успешно сдаст экзамен. Кроме того, правила А :-С и С:-В, D можно было бы переписать в виде А :-В, D.
В этих случаях используют правила вывода, называемыеметодом резолюций.
Рассмотрим простейшую форму резолюции. Допустим, имеются «родительские» предложения
отрицание: ~А импликация: А :-В.
В результате одного шага резолютивного вывода получаем новое предложение:
В, которое называетсярезольвентой. В этом случае резолюция соответствует стандартному пропозициональному правилу вывода:
допуская, что не А
и А, если В
выводим не В.
Еще более простой случай:
отрицание: ~А
факт: А.
Резольвента - противоречие.
В общем случае имеются родительские предложения
~(А1^ ... ^Аn)
Ak:-B1,...,Bm 1 £ k £ n.
В качестве резольвенты за один шаг вывода получается ~(A1^…^Ak-1 ^B1^…^Bm^Ak+1^…^An).
Таким образом, резолюция является подстановкой предикатов - подцелей B1,... Вп, вместо соответствующего предиката Ak из отрицания. Отрицание инициирует логический вывод и поэтому называется запросом (или вопросом) и обозначается А1, А2, ... , An. Смысл метода резолюций состоит в том, что строится отрицание конъюнкции и проверяется, истинно его значение или ложно. Если значение результирующей конъюнкции ложь, значит, получилось противоречие и, поскольку на старте было отрицание предикатов, выполнено доказательство «от обратного». Если получено значение «истина», то доказательство не выполнено.
Пример.
Пусть предикат дает (Х,Y,Z) означает, что «X дает Y некоторому объекту Z», а предикат получают (X, Y) означает, что «Y получает Z». Пусть знания об этих отношениях выражаются предложениями
1) получает(вы, сила):- дает (логика, сила, вы);
2) дает (логика, сила, вы).
Задача, которую нужно решить, состоит в том, чтобы ответить на вопрос: получаете ли вы силу ?
Представим этот вопрос в виде отрицания -получает(вы, сила). Резолюция предложения 1 и отрицания приводит к ~дает (логика, сила, вы), что вместе с фактом 2 приводит к противоречию. Следовательно, ответом исходной задачи является «да».
Пока что мы рассмотрели резолюцию для высказываний или предикатов без переменных. Если же вывод производится для множества предикатов с переменными в качестве аргументов, эти переменные в ходе вывода получают значения соответствующих констант или, как еще говорят, конкретизируются константами.
Рассмотрим это на примере.
Пример.
Рассмотрим следующие родительские предложения:
1) ~получает (вы. У);
2) получает (X, сила) :- дает (Z, сила, X).
Они содержат три переменные X,Y и Z, которые неявно находятся под действием квантора общности. Так, предложение 1 утверждает, что «для всех Y вы не получаете Y», а 2 - «для всех Z любой Х получает силу, если Z дает силу X». Правило резолюции требует совпадения предиката из отрицания 1 и головы правила 2. Это означает, что переменные получают значения (конкретизируются) соответственно их месту в предложениях 1 и 2 следующим образом: Х = вы, Y = сила. Предикат получает (вы, сила) называется общим примером для предикатов получает(вы Y) и получает (Х, сила).
Изложенные положения логики предикатов находят реализацию и дальнейшее развитие в языке программирования Пролог.