36. Назначение и основы использования систем искусственного интеллекта. Базы знаний. Экспертные системы

26.08.2014 15:42 Александр
Печать

Термин интеллект (intelligence) происходит от латинского intellectus - что означает ум, рассудок, разум; мыслительные способности человека. Соответственно искусственный интеллект(artificial intelligence) - ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий.

Интеллект - способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам.

В этом определении под термином "знания" подразумевается не только ту информацию, которая поступает в мозг через органы чувств. Такого типа знания чрезвычайно важны, но недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды обладают свойством не только воздействовать на органы чувств, но и находиться друг с другом в определенных отношениях. Ясно, что для того, чтобы осуществлять в окружающей среде интеллектуальную деятельность (или хотя бы просто существовать), необходимо иметь в системе знаний модель этого мира. В этой информационной модели окружающей среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как это отмечено в данном определении интеллекта, могут мысленно "целенаправленно преобразовываться".

Для того, чтобы пояснить, чем отличается интеллектуальная задача от просто задачи, необходимо ввести термин "алгоритм" - один из краеугольных терминов кибернетики.

Под алгоритмом понимают точное предписание о выполнении в определенном порядке системы операций для решения любой задачи из некоторого данного класса (множества) задач. Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными.

Таким образом, мы можем перефразировать определение интеллекта как универсальный сверхалгоритм, который способен создавать алгоритмы решения конкретных задач.

Исходя из сказанного выше, вытекает основная философская проблема в области искусственного интеллекта - возможность или не возможность моделирования мышления человека. В случае если когда-либо будет получен отрицательный ответ на этот вопрос, то все остальные вопросы не будут иметь не малейшего смысла.

Алгоритмическая универсальность ЭВМ означает, что на них можно программно реализовывать (т. е. представить в виде машинной программы) любые алгоритмы преобразования информации, - будь то вычислительные алгоритмы, алгоритмы управления, поиска доказательства теорем или композиции мелодий. При этом мы имеем в виду, что процессы, порождаемые этими алгоритмами, являются потенциально осуществимыми, т. е. что они осуществимы в результате конечного числа элементарных операций. Практическая осуществимость алгоритмов зависит от имеющихся в нашем распоряжении средств, которые могут меняться с развитием техники. Так, в связи с появлением быстродействующих ЭВМ стали практически осуществимыми и такие алгоритмы, которые ранее были только потенциально осуществимыми.

Однако не следует думать, что вычислительные машины и роботы могут в принципе решать любые задачи. Анализ разнообразных задач привел математиков к замечательному открытию. Было строго доказано существование таких типов задач, для которых невозможен единый эффективный алгоритм, решающий все задачи данного типа; в этом смысле невозможно решение задач такого типа и с помощью вычислительных машин. Этот факт способствует лучшему пониманию того, что могут делать машины и чего они не могут сделать. В самом деле, утверждение об алгоритмической неразрешимости некоторого класса задач является не просто признанием того, что такой алгоритм нам не известен и никем еще не найден. Такое утверждение представляет собой одновременно и прогноз на все будущие времена о том, что подобного рода алгоритм нам не известен и никем не будет указан или, и иными словами, что он не существует.

Исторически сложились три основных направления в моделировании искусственного интеллекта.

В рамках первого подхода объектом исследований являются структура и механизмы работы мозга человека, а конечная цель заключается в раскрытии тайн мышления. Необходимыми этапами исследований в этом направлении являются построение моделей на основе психофизиологических данных, проведение экспериментов с ними, выдвижение новых гипотез относительно механизмов интеллектуальной деятельности, совершенствование моделей и т. д.

Второй подход в качестве объекта исследования рассматривает искусственный интеллект. Здесь речь идет о моделировании интеллектуальной деятельности с помощью вычислительных машин. Целью работ в этом направлении является создание алгоритмического и программного обеспечения вычислительных машин, позволяющего решать интеллектуальные задачи не хуже человека.

Наконец, третий подход ориентирован на создание смешанных человеко-машинных, или, как еще говорят, интерактивных интеллектуальных систем, на симбиоз возможностей естественного и искусственного интеллекта. Важнейшими проблемами в этих исследованиях является оптимальное распределение функций между естественным и искусственным интеллектом и организация диалога между человеком и машиной.

Самыми первыми интеллектуальными задачами, которые стали решаться при помощи ЭВМ были логические игры (шашки, шахматы), доказательство теорем. Хотя, правда здесь надо отметить еще кибернетические игрушки типа "электронной мыши" Клода Шеннона, которая управлялась сложной релейной схемой. Эта мышка могла "исследовать" лабиринт, и находить выход из него. А кроме того, помещенная в уже известный ей лабиринт, она не искала выход, а сразу же, не заглядывая в тупиковые ходы, выходила из лабиринта.

Американский кибернетик А. Самуэль составил для вычислительной машины программу, которая позволяет ей играть в шашки, причем в ходе игры машина обучается или, по крайней мере, создает впечатление, что обучается, улучшая свою игру на основе накопленного опыта. В 1962 г. эта программа сразилась с Р. Нили, сильнейшим шашистом в США и победила.

Каким образом машине удалось достичь столь высокого класса игры?

Естественно, что в машину были программно заложены правила игры так, что выбор очередного хода был подчинен этим правилам. На каждой стадии игры машина выбирала очередной ход из множества возможных ходов согласно некоторому критерию качества игры.

Разумно сочетая такие критерии (например в виде линейной комбинации с экспериментально подбираемыми коэффициентами или более сложным образом), можно для оценки очередного хода машины получить некоторый числовой показатель эффективности - оценочную функцию. Тогда машина, сравнив между собой показатели эффективности очередных ходов, выберет ход, соответствующий наибольшему показателю. Подобная автоматизация выбора очередного хода не обязательно обеспечивает оптимальный выбор, но все же это какой-то выбор, и на его основе машина может продолжать игру, совершенствуя свою стратегию (образ действия) в процессе обучения на прошлом опыте. Формально обучение состоит в подстройке параметров (коэффициентов) оценочной функции на основе анализа проведенных ходов и игр с учетом их исхода.

По мнению А. Самуэля, машина, использующая этот вид обучения, может научиться играть лучше, чем средний игрок, за относительно короткий период времени.

Можно сказать, что все эти элементы интеллекта, продемонстрированные машиной в процессе игры в шашки, сообщены ей автором программы. Отчасти это так. Но не следует забывать, что программа эта не является "жесткой", заранее продуманной во всех деталях. Она совершенствует свою стратегию игры в процессе самообучения. И хотя процесс "мышления" у машины существенно отличен оттого, что происходит в мозгу играющего в шашки человека, она способна у него выиграть.

Ярким примером сложной интеллектуальной игры до недавнего времени являлись шахматы. В 1974 г. состоялся международный шахматный турнир машин, снабженных соответствующими программами. Как известно, победу на этом турнире одержала советская машина с шахматной программой "Каисса".

В настоящее время существуют и успешно применяются программы, позволяющие машинам играть в деловые или военные игры, имеющие большое прикладное значение. Здесь также чрезвычайно важно придать программам присущие человеку способность к обучению и адаптации. Одной из наиболее интересных интеллектуальных задач, также имеющей огромное прикладное значение, является задача обучения распознавания образов и ситуаций. Решением ее занимались и продолжают заниматься представители различных наук - физиологи, психологи, математики, инженеры.

В 1957 г. американский физиолог Ф. Розенблатт предложил модель зрительного восприятия и распознавания - перцептрон. Появление машины, способной обучаться понятиям и распознавать предъявляемые объекты, оказалось чрезвычайно интересным не только физиологам, но и представителям других областей знания и породило большой поток теоретических и экспериментальных исследований.

Перцептрон или любая программа, имитирующая процесс распознавания, работают в двух режимах: в режиме обучения и в режиме распознавания. В режиме обучения некто (человек, машина, робот или природа), играющий роль учителя, предъявляет машине объекты и о каждом их них сообщает, к какому понятию (классу) он принадлежит. По этим данным строится решающее правило, являющееся, по существу, формальным описанием понятий. В режиме распознавания машине предъявляются новые объекты (вообще говоря, отличные от ранее предъявленных), и она должна их классифицировать, по возможности, правильно.

Проблема обучения распознаванию тесно связана с другой интеллектуальной задачей - проблемой перевода с одного языка на другой, а также обучения машины языку. При достаточно формальной обработке и классификации основных грамматических правил и приемов пользования словарем можно создать вполне удовлетворительный алгоритм для перевода, скажем научного или делового текста. Для некоторых языков такие системы были созданы еще в конце 60-г. Однако для того, чтобы связно перевести достаточно большой разговорный текст, необходимо понимать его смысл. Работы над такими программами ведутся уже давно, но до полного успеха еще далеко. Имеются также программы, обеспечивающие диалог между человеком и машиной на урезанном естественном языке.

Что же касается моделирования логического мышления, то хорошей модельной задачей здесь может служить задача автоматизации доказательства теорем. Начиная с 1960 г., был разработан ряд программ, способных находить доказательства теорем в исчислении предикатов первого порядка. Эти программы обладают, по словам американского специалиста в области искусственного интеллекта Дж. Маккатти, "здравым смыслом", т. е. способностью делать дедуктивные заключения.

В программе К. Грина и др., реализующей вопросно-ответную систему, знания записываются на языке логики предикатов в виде набора аксиом, а вопросы, задаваемые машине, формулируются как подлежащие доказательству теоремы. Большой интерес представляет "интеллектуальная" программа американского математика Хао Ванга. Эта программа за 3 минуты работы IBM-704 вывела 220 относительно простых лемм и теорем из фундаментальной математической монографии, а затем за 8.5 мин выдала доказательства еще 130 более сложных теорем, часть их которых еще не была выведена математиками. Правда, до сих пор ни одна программа не вывела и не доказала ни одной теоремы, которая бы, что называется "позарез" была бы нужна математикам и была бы принципиально новой.

Очень большим направлением систем искусственного интеллекта является робототехника. В чем основное отличие интеллекта робота от интеллекта универсальных вычислительных машин?

Вся интеллектуальная деятельность человека направлена в конечном счете на активное взаимодействие с внешним миром посредством движений. Точно так же элементы интеллекта робота служат прежде всего для организации его целенаправленных движений. В то же время основное назначение чисто компьютерных систем искусственного интеллекта состоит в решении интеллектуальных задач, носящих абстрактный или вспомогательный характер, которые обычно не связаны ни с восприятием окружающей среды с помощью искусственных органов чувств, ни с организацией движений исполнительных механизмов.

Первых роботов трудно назвать интеллектуальными. Только в 60-х годах появились очуствленные роботы, которые управлялись универсальными компьютерами. К примеру в 1969 г. в Электротехнической лаборатории (Япония) началась разработка проекта "промышленный интеллектуальный робот". Цель этой разработки - создание очуствленного манипуляционного робота с элементами искусственного интеллекта для выполнения сборочно-монтажных работ с визуальным контролем.

Манипулятор робота имеет шесть степеней свободы и управляется мини-ЭВМ NEAC-3100 (объем оперативной памяти 32000 слов, объем внешней памяти на магнитных дисках 273000 слов), формирующей требуемое программное движение, которое отрабатывается следящей электрогидравлической системой. Схват манипулятора оснащен тактильными датчиками.

В качестве системы зрительного восприятия используются две телевизионные камеры, снабженные красно-зелено-синими фильтрами для распознавания цвета предметов. Поле зрения телевизионной камеры разбито на 64*64 ячеек. В результате обработки полученной информации грубо определяется область, занимаемая интересующим робота предметом. Далее, с целью детального изучения этого предмета выявленная область вновь делится на 4096 ячеек. В том случае, когда предмет не помещается в выбранное "окошко", оно автоматически перемещается, подобно тому, как человек скользит взглядом по предмету. Робот электротехнической лаборатории был способен распознавать простые предметы, ограниченные плоскостями и цилиндрическими поверхностями при специальном освещении. Стоимость данного экспериментального образца составляла примерно 400000 долларов.

Постепенно характеристики роботов монотонно улучшались, но до сих пор они еще далеки по понятливости от человека, хотя некоторые операции уже выполняют на уровне лучших жонглеров. К примеру удерживают на лезвии ножа шарик от настольного тенниса.

Еще пожалуй здесь можно выделить работы киевского Института кибернетики, где под руководством Н. М. Амосова и В. М. Глушкова (ныне покойного) ведется комплекс исследований, направленных на разработку элементов интеллекта роботов. Особое внимание в этих исследованиях уделяется проблемам распознавания изображений и речи, логического вывода (автоматического доказательства теорем) и управления с помощью нейроподобных сетей.

Понятие экспертных систем и  баз знаний

Аналогично БД (база данных) существует понятие база знаний (БЗ). Чаще всего БЗ используются в экспертных системах.

Экспертная система - это совокупность методов и средств организации, накопления и применения знаний для решения сложных задач в некоторой предметной области. Экспертная система достигает более высокой эффективности за счет перебора большого числа альтернатив при выборе решения, опираясь на высококачественный опыт группы специалистов. Анализирует влияние большого объема новых факторов, оценивая их при построении стратегий, добавляя возможности прогноза. Современные ЭС - специализированные компьютерные программы, моделирующие действия эксперта-человека при решении задач в какой-либо предметной области на основе накопленных знаний, составляющих базу знаний (БЗ). Создание и использование ЭС является одним из концептуальных этапов развития информационных технологий. В основе интеллектуального решения проблем в некоторой предметной области лежит принцип воспроизведения знаний опытных специалистов - экспертов.

В англоязычной литературе кроме понятия Artificial Intellect используется также термин - Knowledge Based Systems (KBS) - системы, базирующиеся на знаниях (СБЗ).

Таким образом, СБЗ - система, дающая возможность использовать подходящим образом представленные знания с помощью компьютера.

Компоненты СБЗ:

· база знаний

· механизм получения решений

· интерфейс

Самая характерная черта СБЗ - использование базы знаний. Общепринятого определения базы знаний нет.

Структура и функции системы баз знаний

Знания в БЗ можно разделить на алгоритмические и неалгоритмические.

· алгоритмические (процедурные) знания - это алгоритмы (программы, процедуры), вычисляющие функции, выполняющие преобразования, решающие точно определенные конкретные задачи. Пример: любая библиотека программ.

· неалгоритмические знания - состоит из объектов, называемых понятиями. Понятие обычно имеет имя, определение, структуру (составные элементы), связано с другими понятиями и входит в какую-то систему понятий. Другие неалгоритмические знания - это связи между понятиями или утверждения о свойствах понятий и связях между ними.

На практике во многих экспертных системах и СБЗ содержимое базы знаний подразделяют на "факты" и "правила". Факты - элементарные единицы знания (простые утверждения о характеристиках объекта), правила служат для выражения связей, зависимостей между фактами и их комбинациями. Таким образом, классификацию знаний можно представить следующим образом:

· понятия (математические и нематематические)

· факты

· правила, зависимости, законы, связи

· алгоритмы и процедуры

Прямое использование знаний из базы знаний для решения задач обеспечивается механизмом получения решений (inference engine - машина вывода) - процедурой поиска, планирования, решения. Механизм решения дает возможность извлекать из базы знаний ответы на вопросы, получать решения, формулируемые в терминах понятий, хранящихся в базе. Примеры запросов:

· найти объект, удовлетворяющий заданному условию;

· какие действия нужно выполнить в такой ситуации и т.д.

Интерфейс - обеспечивает работу с базой знаний и механизмом получения решений на языке высокого уровня, приближенном к профессиональному языку специалистов в той прикладной области, к которой относится СБЗ.

Для создания СБЗ могут использоваться:

1. Традиционные языки программирования - C, Basic, Pascal, Lisp и др. Особо в этом ряду стоит выделит язык функционального программирования Lisp. Его основные свойства: данные представляются в виде списков, для получения решений используется рекурсия.

2. Языки представления знаний (такие как Prolog) - имеют специфические средства описания знаний и встроенный механизм поиска вывода.

3. Пустые оболочки экспертных систем - содержат реализации некоторого языка представления знаний и средства организации интерфейса пользователя. Позволяют практически полностью исключить обычное программирование при создании прикладной экспертной системы.

 

Для иллюстрации приведем пример, заимствованный из книги К.Нейлора. Создадим экспертную систему, с помощью которой можно отличить птицу от самолета. В таблице 17 представлен массив FACTS (факты), который фактически является в нашем случае базой знаний. В нем перечислены некоторые характеристики объектов "птица" и "самолет", наличие данной характеристики и объекта отмечено цифрой 1, отсутствие - 0.

Сформируем теперь правило вывода. Для этого тем характеристикам, которые присущи обоим объектам, присвоим нулевые весовые коэффициенты. Характеристикам присущим только "птице" поставим в соответствие весовой коэффициент 1, присущим только объекту "самолет" -1. Массив RULES, содержащий правило вывода представлен в крайнем правом столбце таблицы. Тогда механизм получения решений будет иметь вид:

Массив VALUES заполняется при опросе пользователя. Нетрудно убедиться, что при полном и правильном указании всех характеристик объектов механизм получения решений дает 2 для "птицы" и -2 для "самолета". При неполном указании характеристик объекта вывод о его принадлежности можно сделать на основании того, насколько близок полученный результат к одному из этих предельных значений.

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

Таким образом, хотя СБЗ может быть создана на основе реляционной или объектной СУБД, более производительно создавать СБЗ с помощью специализированных средств, располагающих особым языком представления знаний (ЯПЗ). Чаще всего интеллектуальные системы (ИС) применяются для решения сложных задач, где основная сложность решения связана с использованием слабо-формализованных знаний специалистов-экспертов и где логическая (или смысловая) обработка информации превалирует над вычислительной. Например, понимание естественного языка, поддержка принятия решения в сложных ситуациях, постановка диагноза и рекомендации по методам лечения, анализ визуальной информации, управление диспетчерскими пультами и др.

В конце данного очень краткого обзора рассмотрим примеры крупномасштабных экспертных систем.

MICIN - экспертная система для медицинской диагностики. Разработана  группой по инфекционным заболеваниям Стенфордского университета. Ставит соответствующий диагноз, исходя из представленных ей симптомов, и рекомендует курс медикаментозного лечения любой из диагностированных инфекций. База данных состоит из 450 правил.

PUFF - анализ нарушения дыхания. Данная система представляет собой MICIN, из которой удалили данные по инфекциям и вставили данные о легочных заболеваниях.

 

DENDRAL - распознавание химических структур. Данная система старейшая, из имеющих звание экспертных. Первые версии данной системы появились еще в 1965 году во все том же Стенфордском университете. Пользователь дает системе DENDRAL некоторую информацию о веществе, а также данные спектрометрии (инфракрасной, ядерного магнитного резонанса и масс-спектрометрии), и та в свою очередь выдает диагноз в виде соответствующей химической структуры.