23. Понятие искусственного интеллекта. Экспертные системы: структура, назначение, возможности. Рекурсия в программах на языке Пролог.

 

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

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

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

Развитие ИИ

Термин искусственный интеллект (artificial intelligence) был предложен в 1956 г. на семинаре с аналогичным названием, который проходил в США и был посвящён разработке логических, а не вычислительных задач. Вскоре после признания искусственного интеллекта самостоятельной отраслью науки произошло её разделение на два основных направления:

1.      Нейрокибернетика - бионическое направление;

2.      Кибернетика "чёрного ящика" - прагматическое направление.

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

Первые нейросети были созданы в конце 50-х гг. американскими учёными Г. Розенблаттом и П. Мак - Каллоком. Это были попытки создать системы, моделирующие человеческий глаз и его взаимодействие с мозгом. Постепенно количество работ в 70 - 80 гг. по этому направлению искусственного интеллекта стало снижаться. Авторы работ объясняли неудачи малой памятью и низким быстродействием существующих в то время компьютеров.

Однако в середине 80-х гг. в Японии был создан нейрокомпьютер. Как раз в то время ограничения по памяти и быстродействию были практически сняты. Появились параллельные компьютеры с большим количеством процессоров. От них был один шаг до НЕЙРОКОМПЬЮТЕРОВ, моделирующих структуру человека. Основная область применения нейрокомпьютеров - распознавание образов.

В настоящее время используют три подхода к созданию нейросетей:

· АППАРАТНЫЙ - создание специальных компьютеров, плат расширения, наборов микросхем, реализующих все необходимые алгоритмы;

·  ПРОГРАММНЫЙ - создание программ, рассчитанных на высокопроизводительные компьютеры. Сети создаются в памяти компьютера, всю работу выполняют его собственные процессоры;

· ГИБРИДНЫЙ - комбинация первых двух подходов. Часть вычислений выполняют специальные платы расширения (сопроцессоры), часть - программные средства.

В основу кибернетики "ЧЁРНОГО ЯЩИКА" лёг принцип, противоположный нейрокибернетики. Не имеет значение, как устроено "мыслящее " устройство. Главное, чтобы на заданные входные воздействия оно реагировало так же, как человеческий мозг, именно в этом направлении достигнуты важные результаты, имеющие практическую ценность.

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

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

В 1963 - 1970 гг. к решению задач стали подключать методы математической логики. На основе метода резолюций , позволившего автоматически доказывать теоремы при наличии набора исходных аксиом, в 1973 г. создаётся язык ПРОЛОГ.

В середине 70 - х гг., когда на смену поискам универсального алгоритма мышления пришла идея моделирования конкретных знаний специалистов - экспертов, пришёл новый подход к решению задач искусственного интеллекта - ПРЕДСТАВЛЕНИЕ ЗНАНИЙ. А начиная с середины 80 - х годов происходит рост капиталовложений в развитие искусственного интеллекта, создаются промышленные экспертные системы и всё более растёт интерес к самообучающимся системам.

Направления развития ИИ.

1)      Представление знаний и разработка систем, основанных на знаниях.

2)      Игры и творчество.

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

3)      Разработка естественноязыковых интерфейсов и машинный перевод.

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

· неполнота;

·неточность;

· нечёткость;

· грамматическая некорректность;

· избыточность;

· зависимость от контекста;

· неоднозначность;

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

4)      Распознавание образов.

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

5)      Новые архитектуры компьютеров.

6)      Интеллектуальные роботы.

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

Само слово появилось в 20 -х гг., а его автором был чешский писатель Карел Чапек.

Сначала появились роботы с жёсткой схемой управления - это современные промышленные роботы, принадлежащие к первому поколению.

Адаптивные роботы с сенсорными устройствами. Есть образцы таких роботов, но в промышленности они пока практически не используются.
Самоорганизующиеся, или интеллектуальные роботы, которые по большому счёту являются конечной целью робототехники. Основная проблема при создании интеллектуальных роботов - проблема машинного зрения.

7)      Специальное программное обеспечение.

8)      Обучение и самообучение.

9)      Математика и автоматическое доказательство теорем.

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

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

 

Систему ИИ, построенную на основе высококачественных специальных знаний о некоторой предметной области (полученных от экспертов – специалистов в этой области), называют экспертной системой (ЭС).

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

От других программ ЭС отличаются по следующим признакам:

1)      Компетентность – в конкретной предметной области ЭС должна достигать того же уровня, что и эксперты – люди, при этом она должна пользоваться теми же эвристическими приемами, также глубоко и широко отражать предметную область;

2)      Символьные рассуждения – знания, на которых основана ЭС, представляют в символьном виде понятия реального мира, рассуждения также происходят в виде преобразований символьных наборов;

3)      Глубина – экспертиза должна решать глубокие, нетривиальные задачи, отличающиеся сложностью либо в плане сложности знаний, которые ЭС использует, либо в плане из обилия это не позволяет использовать полный перебор вариантов как метод решения задачи и заставляет прибегать к эвристическим, творческим, неформальным методам;

4)      Самосознание – ЭС должна включать в себя механизм объяснения того, каким образом она приходит к решению задачи.

Структура ЭС

 

 

 

 

 

 

 

 

 

 

 

 


Пользователь – специалист предметной области, для которого предназначена система.

Инженер по знаниям – специалист по ИИ, выступающий в роли промежуточного буфера между экспертом и базой знаний.

Интерфейс пользователя – комплекс программ, реализующих диалог пользователя с ЭС как на стадии ввода информации, так и получения результатов.

База знаний (БЗ)– ядро ЭС, совокупность знаний предметной области, записанная на машинный носитель в форме, понятной эксперту и пользователю.

Решатель – программа, моделирующая ход рассуждений эксперта на основании знаний, имеющихся в БЗ.

Подсистема объяснений – программа, позволяющая пользователю получить ответы на вопросы: «Как была получена та или иная рекомендация?» и «Почему система приняла такое решение?».

Интеллектуальный редактор БЗ – программа, представляющая инженеру по знаниям возможность создавать БЗ в диалоговом режиме.

Назначение ЭС

ЭС создаются для решения разного рода проблем.

Типичные категории способов применения ЭС

 

Категория

Решаемая проблема

Интерпретация

Прогноз

Диагностика

 

Проектирование

Планирование

Наблюдение

Отладка

 

Ремонт

Обучение

Управление

Описание ситуации по информации, поступающей от датчиков

Определение вероятных последствий заданных ситуаций

Выявление причин неправильного функционирования системы по наблюдениям

Построение конфигурации объектов при заданных ограничениях

Определение последовательности действий

Сравнение результатов наблюдений с ожидаемыми результатами

Составление рецептов исправления неправильного функционирования системы

Выполнение последовательности предписанных исправлений

Диагностика и исправление поведения обучаемого

Управление поведением системы как целого

 

Важность экспертных систем состоит в следующем:

 технология экспертных систем существенно расширяет круг практически значимых задач, решаемых на компьютерах, решение которых приносит значительный экономический эффект;

 технология ЭС является важнейшим средством в решении глобальных проблем традиционного программирования: длительность и, следовательно, высокая стоимость разработки сложных приложений;

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

 объединение технологии ЭС с технологией традиционного программирования добавляет новые качества к программным продуктам за счет: обеспечения динамичной модификации приложений пользователем, а не программистом; большей "прозрачности" приложения (например, знания хранятся на ограниченном ЕЯ, что не требует комментариев к знаниям, упрощает обучение и сопровождение); лучшей графики; интерфейса и взаимодействия.

 

Возможности ЭС.

По мнению ведущих специалистов, в недалекой перспективе ЭС найдут следующее применение:

 ЭС будут играть ведущую роль во всех фазах проектирования, разработки, производства, распределения, продажи, поддержки и оказания услуг;

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

 

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

Рекурсия в программах на языке Пролог.

                                                                 

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

В системах логического программирования рекурсия служит также для описания циклов, повторений и является важнейшим методом программирования.

Пример.

Вычисление факториала натурального числа n!

Определение n! рекурсивно:

1.      1!=1;

2.      n!=(n-1)!*n

Для описания отношения «факториал» между n и n! будем использовать двухарный предикат

Факт (N, M).

Тогда база знаний, соединенная с запросом,  приобретает вид:

 

Факт (1,1).

Факт (N,X):-факт(N-1,Y), X is Y*N.

?- факт(3,А);

 

В данной программе «факт» вызывает сам себя – это и есть рекурсия. Запись X*Y представляет собой обращение к встроенному предикату “is” («есть») для описания арифметического действия.

Процесс работы программы можно изобразить так:

 

?факт(3,А0).

                               ОТВЕТ: А=6

?факт(2,А1).

                                X1=2*3=6

?факт(1,А2).

                                X2=1*2=2

факт(1,1)

 

Предикат факт (1,1) играет очень важную роль – это ограничитель рекурсии.

 

 

 

 

 

Hosted by uCoz