1.3. Наиболее известные системы искусственного интеллекта
ЭЛИЗА(ELIZA). Почти в каждой работе по ИИ можно встретить упоминание о программе ЭЛИЗА, написанной в конце 60-х годов профессором Массачусетского технологического института Дж. Вайзенбаумом. Эта программа была создана для анализа фраз на естественном языке и была названа по имени главной героини пьесы Б. Шоу "Пигмалион", которую, как известно, по ходу действия пьесы ученый-языковед на пари учит правильной английской речи. Основная мысль Шоу заключалась в том, что Элиза до этого курса обучения и после него оставалась тем же самым человеком, т. е. с одними и теми же добродетелями и пороками, хотя окружающие воспринимали девушку-цветочницу, разговаривающую на примитивном жаргоне и прекрасно одетую даму с изысканной речью, как совершенно разных людей. Можно высказать аналогичную мысль и об ЭВМ, остающейся безжизненной совокупностью электронных устройств, несмотря на сложные программы, загружаемые в нее. Вайзенбаум [3] подробно описывает организацию этой программы и показывает, как ее следует использовать. ЭЛИЗА может "научиться" вести диалог на любую тему, располагая небольшим набором ключевых слов, выбранных случайным способом из исходного предложения, введенного собеседником, а затем с помощью слов, получаемых от него в процессе диалога. Слова из сообщения, введенного пользователем, последовательно сравниваются с ключевыми словами, находящимися в стеке. Затем из стека возможных ответов выбирается фраза, содержащая данное слово. Если во входной строке ключевое слово не было найдено, ответ выбирается случайным образом из другого стека, содержащего нейтральные общие фразы, которые обычно присутствуют почти в каждой беседе и при этом совершенно не влияют на ее развитие. Такие фразы можно обнаружить не только в пустой болтовне, но и в деловом разговоре. Таким образом, ЭЛИЗА может поддерживать разговор на любую предложенную собеседником тему,
Создавая программу ЭЛИЗА, Вайзенбаум не ставил своей целью разработку системы ИИ. На примере данной программы он хотел продемонстрировать сложность общения с ЭВМ на естественном языке, так как диалог между людьми с трудом поддается точному определению и никогда заранее нельзя предугадать, какие смысловые оттенки придают собеседники тем или иным фразам. К удивлению автора программы ЭЛИЗА один из ее вариантов был воспринят серьезно. Он назывался ДОКТОР (DOCTOR) и был задуман Вайзенбаумом как пародия на одну из широко известных школ психотерапии. Во время "психотерапевтического сеанса" ДОКТОР задает вопросы (типа "Каким образом?" или "Почему вы об этом говорите именно сейчас?") или в другом случае повторяет слегка перефразированный ответ собеседника, приглашая его тем самым развивать свою мысль дальше. Вайзенбаум никак не ожидал, что эта шуточная программа будет воспринята как шаг к доказательству возможности общения с ЭВМ на естественном языке и что даже достаточно рассудительные люди всерьез начнут относиться к возможности разрешения своих сугубо личных проблем, посвящая машину в собственные секреты и ожидая от нее помощи как от умудренного опытом врача-психотерапевта.
Возможно, кто-то будет сомневаться в искренности скептического отношения Вайзенбаума к своей программе. Я бы порекомендовал скептикам, а также всем, кого заинтересовали возможности программы ЭЛИЗА, обратиться к книге этого автора и составить собственное мнение о программе. На самом деле различные варианты этой программы получили широкое распространение, и часть психотерапевтов считает, что она может помочь в диагностике и даже в лечении ряда психических нарушений. Один из таких сторонников программы ЭЛИЗА предложил установить ЭВМ с этой программой в общественных местах, таких, как, например, вокзалы и почтовые отделения, чтобы каждый имел возможность обратиться к машине, заплатив несколько долларов за сеанс.
Читатель может написать собственный вариант программы ЭЛИЗА для бытовой ПЭВМ, но, конечно, при условии, что у нее достаточный объем оперативной памяти. Однако можно привести несколько причин, объясняющих, почему заниматься программированием еще одного варианта ЭЛИЗЫ не следует. Во-первых, алгоритм, реализованный программой ЭЛИЗА, используется в современных системах ИИ достаточно редко. Данная программа была разработана для создания иллюзии "разумности машины", а не для моделирования каких-либо мыслительных способностей человека. Кроме того, чтобы написать и отладить такую программу, понадобится много времени и можно считать, что это время будет потрачено впустую, поскольку, как уже было отмечено, методы программирования, используемые при ее написании, для создания систем ИИ не применяются. Правда, необходимо отметить, что ЭЛИЗА в свое время наделала много шума. Но следует при этом учитывать, что тогда возможности вычислительной техники были известны лишь небольшой группе специалистов. В наше же время, когда школьники с помощью собственных программ проникают в засекреченные базы данных сложнейших систем, а ЭВМ стала предметом домашнего обихода, такая программа едва ли привлечет много внимания.
Система MYCIN. Любая область деятельности всегда опирается на большой объем знаний, полученных опытным путем. Процесс обучения специалиста обычно состоит из двух основных периодов: сначала знания накапливаются, а затем проверяются на практике. Фактический материал составляет значительную часть знаний специалиста, но важную роль играют также различные неформальные правила, позволяющие строить правильные решения на основе неполной информации. Поэтому и для ученика, постигающего ремесло, и для студента, изучающего какую-либо область науки, одинаково важно не только приобрести основные знания по интересующему его предмету, но и узнать о неточных, неопределенных до конца его сторонах.
Факты заносятся в экспертную систему непосредственно в том виде, в каком они обычно представляются в печатных документах. Гораздо сложнее в этих системах формируется часть, реализующая моделирование экспертизы. Эта часть состоит из формализованных правил, которыми руководствуется эксперт в своей работе. Обычно экспертные системы строятся из двух основных частей: базы знаний и программного механизма вывода, выполняющего действия, основанные на логической дедукции. Указанный механизм с помощью заложенных в него правил и на основании имеющихся фактов строит логические заключения, иногда дополняя ответ оценкой его правдоподобия.
Автор программы MYCIN E. Шортклиф описал ее в 1976 г. Эта программа предназначалась для консультационной помощи при диагностике инфекционных заболеваний крови. Врачи обращались к указанной программе за консультацией при определении болезни пациента и могли сами обновлять первоначально заложенную информацию, вводя новые данные и правила.
Перечислим основные свойства программы MYCIN. Во-первых, эта программа может с помощью правил вывода и на основании данных, заложенных изначально и вводимых пользователем, делать логические выводы. Во-вторых, в программу MYCIN заложены средства, позволяющие оценивать правдоподобность полученного вывода, пользуясь шкалой оценок от 0 до 1,0. Третье важное свойство заключается в том, что данная программа может давать пояснения к полученному решению, указывая шаг зя шагом ход своих "рассуждений". Наконец, в-четвертых, она можи быть использована для диагностики других инфекционных заболеваний. Последнее свойство является на наш взгляд наиболее важным. Оно означает возможность замены правил и данных, связанных с диагностикой инфекционных заболеваний, на другие, соответствующие иным областям применения.
Таким образом, можно рассматривать MYCIN как универсальную экспертную систему. Механизм вывода программы MYCIN, называемый EMYCIN (Essential MYCIN или Engine MYCIN), используется в совершенно различных областях деятельности. Интересно, например, применение EMYCIN совместно с программой MARK, предназначенной для решения задач методом конечных элементов. Правильное обращение с этой программой, разработанной по заказу ВВС США, требует большой предварительной подготовки. На основе EMYCIN была создана программа SACON (Structural Analizis Consultant), формирующая обращения к программе MARK с помощью анализа запросов пользователя, написанных на несложном языке структурных спецификаций.
Еще один пример использования программы EMYCIN - пакет ГУИДОН (GUIDON), разработанный в Станфордском университете В. Кланси и описанный в его докторской диссертации в 1979 г. С помощью этого пакета можно создавать программы для обучения работе с любой основанной на EMYCIN экспертной системой. Указанный пакет программ использует специальные правила для создания методики обучения и правила вывода для выбранной предметной области. С помощью программы EMYCIN можно создавать обучающие программы для самых разных областей приложения. В последней главе мы рассмотрим несколько небольших экспертных систем, основанных на ряде принципов, используемых в программах EMYCIN и ГУИДОН.
ДЕНДРАЛ (DENDRAL). В функционировании популярной экспертной системы ДЕНДРАЛ, используемой для решения задач химического анализа, можно выделить три основных этапа. Сначала с помощью базы знаний составляется список исходных условий, дополняемый на втором этапе пользователем, затем система генерирует, проверяет и ранжирует возможные решения, после чего выводит их на печать в порядке рангов. Первоначально ДЕНДРАЛ была написана на языке Лисп, но затем была реализована на других языках, что позволило перенести ее на различные ЭВМ. Одна из таких версий была создана в г. Эдинбурге для PDR-10. Основные этапы работы данной версии - это планирование, генерация и проверка решений. Указанная версия системы ДЕНДРАЛ используется в США и в Западной Европе и представляет собой едва ли не лучшее на сегодняшний день применение системы ИИ.
В статье профессора Станфордского университета Е. Фейген-баума, напечатанной в сборнике "Интеллектуальные системы" под редакцией Д. Хейеса и Д. Мичи [6], указаны два главных принципа инженерии знаний. Согласно первому для построения и функционирования любой экспертной системы главными являются закладываемые в систему знания. Недостаточный объем знаний не может быть компенсирован более сложным механизмом вывода, хотя долгое время многие придерживались противоположной точки зрения.
Второй не менее важный принцип заключается в том, что большая часть знаний должна носить эвристический характер, т. е. представлять часть человеческого опыта, позволяющую специалистам в какой-либо области находить правильные решения в условиях с неполной информацией. Так, например, опытный автомеханик может сразу обнаружить большую часть неисправностей мотора, однако при этом не всегда в состоянии объяснить, какие именно факторы он использовал при диагностике. Эксперт пользуется всеми своими природными чувствами совершенно бессознательно, не отдавая себе отчета, каким образом каждое из них влияет на получение ответа.
О важности знаний для экспертных систем в первую очередь должны помнить пользователи персональных ЭВМ, так как боязнь создать программу, не умещающуюся в памяти машины, может привести к попытке улучшить систему с помощью многократного совершенствования механизма вывода в ущерб пополнению базы знаний.