
- •Определение понятия искусственного интеллекта (ии). Область применения ии. Классификация систем ии
- •1) История создания экспертных систем.
- •2.) Нейрокибернетическая модель организации
- •1) Технология разработки эс,
- •2) Обзор исследований в области искусственного интеллекта. Периоды развития методов ии.
- •Первые системы поддержки принятия решений
- •Основные модели представления знаний:
- •Классификация систем поддержки принятия решений
- •2Ой вопрос из 11 билета.
- •2/ Фреймы и графы. Значения по умолчанию и демоны. Множественное наследование. Сравнение сетей и фреймов.
- •1. Обучение
- •2. Обобщение
- •3. Применимость
Билет 1.
Определение понятия искусственного интеллекта (ии). Область применения ии. Классификация систем ии
Искусственный интеллект (ИИ) – это:
Научное направление, в рамках которого ставятся и решаются задачи аппаратного или программного моделирования тех видов человеческой деятельности, которые традиционно считаются интеллектуальными.
Свойство интеллектуальных систем выполнять функции (творческие), которые традиционно считаются прерогативой человека. Интеллектуальная система — это техническая или программная система, способная решать задачи, традиционно считающиеся творческими, принадлежащие конкретной предметной области, знания о которой хранятся в памяти такой системы.
Области применения:
Доказательства теорем;
Игры;
Распознавание образов;
Принятие решений;
Адаптивное программирование;
Сочинение машинной музыки;
Обработка данных на естественном языке;
Обучающиеся сети (нейросети);
Вербальные концептуальные обучения.
Классификация систем искусственного интеллекта:
1. Системы с интеллектуальной обратной связью и интеллектуальными интерфейсами.
2. Автоматизированные системы распознавания образов.
3. Экспертные системы (ЭС).
4. Автоматизированные системы поддержки принятия решений
5. Нейронные сети.
6. Генетические алгоритмы и моделирование эволюции.
7. Когнитивное моделирование.
8. Выявление знаний из опыта (эмпирических фактов) и интеллектуальный анализ данных (data mining).
Символическое представление. Физическая символическая система. Главная гипотеза. Структура данных в языке LISP. Обработка списков. Сопоставление с образцом. Почему LISP не является языком представления знаний. Языки представления знаний.
Символическое представление:
Понятие символ является очень важным в современной теории и практике искусственного интеллекта (ИИ). На нем базируются главные связи между проблематикой ИИ и формальными системами математики и логики.
Символ — это нечто, замещающее другое нечто. В этом определении "другое нечто" обычно называется значением (designation) символа. Это то, на что ссылается и что представляет символ. Значением может быть физический объект или понятие (концепт), но сам символ является физическим объектом. Так, цифра "7" является символом, представляющим число 7, которое является понятием.
Идея "символического вычисления" состоит в том, что под символом, с которым выполняются какие-то действия, мы можем понимать все, что угодно. Языки, основанные на этой парадигме, поддерживают множество простейших структур данных, связывающих одни символы с другими, а также примитивные операции манипулирования символами и структурами символов.
Таким образом, программист должен определить
такие синтаксические правила формирования символических структур из некоторых символов, чтобы первые имели смысл, зависящий от смысла вторых, т.е. их компонентов;
правила трансформации, регламентирующие преобразование одних символических структур в другие.
Как правило, программы манипуляций с символами принимают в качестве исходной информации одну или более символических структур (исходное состояние решаемой проблемы) и возвращают одну символическую структуру (конечное состояние проблемы или ее решение).
При этом и вход, и выход должны иметь форму, удовлетворяющую оговоренные синтаксические правила, а преобразование входных структур в выходную должно выполняться только с использованием дозволенных правил трансформации.
Программа на таком языке сама по себе также является символической структурой. Поэтому некоторая программа может рассматриваться в качестве исходных данных для другой.
Физическая символическая система:
Ньюэлл [Newell, 1981] описывает физическую символическую систему как машину, помещенную в некоторую среду и состоящую из следующих компонентов:
- памяти, включающей символические структуры, число и содержание которых может изменяться во времени;
- набора операторов для манипулирования символическими структурами, например чтения, записи, копирования;
- средств управления, предназначенного для непрерывной интерпретации текущей активной символической структуры или структуры, к которой выполняется обращение;
- средств ввода из окружающей среды посредством рецепторов и вывода в окружающую среду посредством эффекторов.
Программа в физической символической системе — это также символическая структура, которая интерпретируется или обрабатывается каким-либо способом, зависящим от символов, составляющих ее, и от символов, полученных от средств ввода.
Простейшие программы соответствуют операторам манипулирования символами, а более сложные описывают процедуры, скомпонованные из этих операторов.
Средства управления способны отличать данные от программы, хотя и те и другие являются символическими структурами.
Физическая символическая система схожа с компьютером общего назначения, оснащенным программами обработки символов.
Главная гипотеза сформулирована Алленом Ньюэллом и Гербертом Саймоном в 1976 году. Основанием для гипотезы стало успешное применение созданной ими программы — универсального решателя задач для моделирование рассуждений человека.
"Физическая символьная система имеет необходимые и достаточные средства для произведения базовых интеллектуальных действий, в широком смысле".
Другими словами, без символических вычислений невозможно выполнять осмысленные действия, а способность выполнять символические вычисления вполне достаточна для того, чтобы быть способным выполнять осмысленные действия. Таким образом, если мы полагаем, что животное, или человек, или машина действуют осмысленно, то значит, они каким-то образом выполняют символические вычисления.
Независимо от того, справедлива ли эта гипотеза, символические вычисления стали реальностью, и полезность этой парадигмы для программирования трудно отрицать.
Структура данных в языке LISP:
LISP отличается от прочих языков программирования следующими свойствами:
- основной структурой данных в нем является список;
- программы на этом языке также имеют списочную структуру;
- его базовыми операциями являются операции над списками.
Базовым блоком в структуре данных языка LISP является символическое выражение.
Алфавит языка включает в себя заглавные и строчные латинские буквы, цифры и все специальные знаки, которые есть на клавиатуре.
Атом - произвольная строка алфавитных символов.
Точечная пара - это конструкция следующего вида: ( ноль или более пробелов, атом или точечная пара, один или более пробелов, . , один или более пробелов, атом или точечная пара, ноль или более пробелов, )
Список - это такая точечная пара, в записи которой после применения правил упрощения не остается точек.
Для представления больших совокупностей относительно постоянных или редко меняющихся данных в LISP были включены другие типы структур. В современных версиях LISP поддерживаются массивы, хэш-таблицы и структуры, подобные записям, которые позволяют эффективнее использовать пространство памяти и повысить скорость доступа.
Обработка списков:
В языке LISP имеется пять операций, которые, хотя и не имеют специальных наименований, лежат в основе всех остальных. LISP использует их в качестве виртуального машинного кода при построении более сложных примитивов.
Пусть s — множество символических выражений.
(1)Е(Х , Y): S x S -> {Т, NIL} проверяет, равны ли два атома.
(2)А(Х): S -> {Т, NIL} проверяет, является ли символическое выражение атомом.
(З)Н(Х): S -> S извлекает голову символического выражения, которое не является атомом; если х — атом, то результат функции не определен.
(4) Т(Х): S —> S извлекает хвост символического выражения, которое не является атомом; если х — атом, то результат функции не определен.
(5)С(Х , Y): S х S —> S формирует символическое выражение; если А и в являются символическими выражениями , то можно сформировать новое символическое выражение (А . В).
В списке можно держать в поле зрения те альтернативные варианты, которые уже были рассмотрены ранее, не которые еще предстоит рассмотреть, и т.д. Поскольку между списками и древовидными ориентированными графами существует изоморфизм, естественно представлять развернутое пространство состояний в виде одного или более списков.
Можно использовать списки и для представления ассоциативной связи одних символов с другими.
Сопоставление с образцом:
Одним из ключевых компонентов в большинстве программ искусственного интеллекта является анализатор соответствия — компонент, который некоторым образом сравнивает поступающие на его вход списки (или другие структуры данных) с имеющимися символическими образцами и таким образом выполняет распознавание входных данных.
Главное назначение анализатора соответствия — показать, что имеющаяся в программе модель мира удовлетворяет условиям некоторого правила, которое в таком случае программа сможет затем применить.
Анализ соответствия — это довольно "расточительная" операция в смысле расхода вычислительных ресурсов, если только не пользоваться ею с умом. Существуют довольно эффективные алгоритмы, которые позволяют решить, в каких именно из имеющихся наборах правил сформулированы условия, соответствующие анализируемым данным.
Почему Lisp не является языком представления знаний:
В синтаксисе и семантике языка LISP нет ничего такого, что подсказало бы, как организовать знания.
Список — это удобная, но иногда неэффективная в работе структура данных, он не имеет никаких преимуществ с точки зрения представления знаний по сравнению с массивом в языке FORTRAN и менее удобен, чем класс в языке C++.
Языки представления знаний:
Язык CLIPS:Подход, базирующийся на правилах, на объектно-ориентированном подходе к программированию.
Язык PROLOG : методики логического программирования.
2-bilet
Структура экспертных систем:
База данных (рабочая память) предназначена для хранения исходных и промежуточных данных решаемой в текущий момент задачи. Этот термин совпадает по названию, но не по смыслу с термином, используемым в информационно-поисковых системах (ИПС) и системах управления базами данных (СУБД) для обозначения всех данных (в первую очередь долгосрочных), хранимых в системе.
База знаний (БЗ) в экспертных системах предназначена для хранения долгосрочных данных, описывающих рассматриваемую область (а не текущих данных), и правил, описывающих целесообразные преобразования данных этой области.
Решатель, используя исходные данные из рабочей памяти и знания из БЗ, формирует такую последовательность правил, которая приводит к решению задачи. Компонент приобретения знаний автоматизирует процесс наполнения экспертных систем знаниями, осуществляемый пользователем-экспертом.
Объяснительный компонент объясняет, как система получила решение задачи (или почему она не получила решение) и какие знания она при этом использовала, что облегчает эксперту тестирование системы и повышает доверие пользователя к полученному результату. Диалоговый компонент ориентирован на организацию дружественного общения с пользователем как в ходе решения задач, так и в процессе приобретения знаний и объяснения результатов работы.
Предпосылки создания ЭС:
Желание сознать гибкую программу, оперирующую с многочисленными знаниями и работающую по правилам логики
Одной из предпосылок создания экспертной системы является отсутствие стройных математических теорий, в рамках которых можно было бы конструировать точные алгоритмы.
Требования к эксперту:
Определяет знания( данные и правила), характеризующие проблемную область ;
Обеспечивает полноту и правильность введенных в ЭС знаний;
Осуществляет общение с ЭС( посредствам инженера по знаниям);
Базовые функции ЭС:
решение задач с использованием знаний о конкретной предметной области. возможно, при этом возникнет необходимость иметь дело с неопределенностью;
взаимодействие с пользователем, включая объяснение намерений и решений системы во время и после окончания процесса решения задачи.
2.Системы, основанные на знаниях = экспертные системы = Экспертная система – это интеллектуальная программа, способная делать логические выводы на основании знаний в конкретной предметной области и обеспечивающая решение специфических задач. ЭС выдают советы, проводят анализ, дают консультации, ставят диагноз. Практическое применение ЭС на предприятиях способствует эффективности работы и повышению квалификации специалистов.
Канонические системы: это разновидность формальной системы, основанной на следующих компонентах:
алфавит А, из символов которого формируются строки;
некоторое множество строк, которые рассматриваются как аксиомы,
множества порождений в форме
а1$1 ... am$m->b1$'1...bn$'1...bn$'n.
где:
(I) каждое ai и bi; есть фиксированная строка;
(II) а1 и am, часто есть нуль;
(III) некоторые или все из ai или bi могут представлять собой нуль;
(IV) каждое $i является переменной строкой, которая также может быть нулем;
(V) каждое $i заменяется определенным $'i .
Синатксис представления знаний : В настоящее время порождающие правила обычно реализуются в форме правил, манипулирующих с символическими структурами типа списка векторов, а не строк символов. В этом сказывается влияние языков программирования вроде LISP и тех структур данных, которые они поддерживают. (В ранних реализациях использовались языки манипулирования символами, например SNOBOL.)
В результате алфавит канонической символьной системы заменяется словарем символов или атомов и довольно простой грамматикой формирования символических структур. Словарь, как правило, состоит из трех подмножеств:
подмножества N имен объектов предметной области;
подмножества Р имен свойств, которые рассматриваются в качестве атрибутов объектов;
подмножества V допустимых значений атрибутов.
На практике подмножества N и V перекрываются.
Используемая грамматика, как правило, имеет вид триад объект-атрибут-значение. Триада (v, л, w) существует, если v принадлежит N и л принадлежит Р, w принадлежит V. Например, триада:
(ОРГАНИЗМ-1, морфология, палочка)
Представляет определенный микроорганизм, имеющий форму палочки.
Представленная синтаксическая форма обобщается в том случае, когда нужно для некоторого объекта v представить " вариантов пар атрибут-значение (л1,w1)…, (лn,wn). В таком случае они объединяются в вектор в форме:
(v, л1, w1,…, лn, wn).
На языке CLIPS тот факт, что определенный микроорганизм имеет форму палочки и активно развивается в воздушной среде, будет представлен вектором:
(organism-1 (morphology rod) (aerobicity aerobic)).
В дальнейшем мы будем повсеместно использовать именно такой синтаксис, поскольку CLIPS будет нашим основным программным инструментом.
Имея в своем распоряжении словарь символов и грамматику, регламентирующую порождение символических структур, можно представить в машинном виде исходное состояние интересующих нас проблем. Эти представления соответствуют аксиомам канонической системы – они представляют собой некоторую символическую структуру, которую нужно преобразовывать, применяя имеющиеся правила в определенном порядке.
Теперь перейдем к самим правилам. В этих правилах антецеденты должны соответствовать допустимым символическим структурам, а консеквенты – содержать специальные операторы манипулирования такими структурами. Детали этого процесса станут вам понятны после изучения следующего раздела, где будет описан вычислительный механизм применения таких правил.
Продукционная система (production system) состоит из множества правил (иногда этот набор правил называют продукционной памятью – production memory), интерпретатора правил, который решает, когда надлежит применить каждое из них, и рабочей памяти, содержащей данные, описание цели и промежуточные результаты, в совокупности определяющие текущее состояние проблемы. Именно структуры данных в рабочей памяти анализируются и преобразуются порождающими правилами. Обращение к правилам синхронизируется текущими данными, а интерпретатор правил управляет выбором и активизацией определенных правил в каждом цикле.
Схематически правила в продукционной системе имеют такую обобщенную форму:
P1,…, Pm, → Q1,…, Qn
Которая читается следующим образом:
если предпосылки Р1 и… и Рт верны, то выполнить действия Q1 и… и Qn.
Рабочая память: Основная функция рабочей памяти – хранить данные в формате векторов объект-атрибут-значение. Эти данные используются интерпретатором, который в случае присутствия (или отсутствия) определенного элемента данных в рабочей памяти активизирует те правила, предпосылки в которых удовлетворяются наличными данными. Как это делается, рассмотрим на примере.
Пусть в рабочей памяти содержатся векторы:
(patient (name Jones) (age 40)
(organism organism-1))
(organism (name organism-1)
(morphology rod) (aerobicity.aerobic)).
В очередном цикле интерпретатор просмотрит имеющийся список правил и отыщет в нем то, которое содержит условия, удовлетворяющиеся этими векторами.
Если предпосылка в правиле не содержит переменных, она удовлетворяется при точном совпадении выражений в правиле и в рабочей памяти. Если же предпосылка в правиле содержит переменные, т.е. является образцом, то она удовлетворяется, если в рабочей памяти содержится вектор, включающий такую пару атрибут-значение, которая остается постоянной при удовлетворении всех остальных условий в том же правиле.
В самом простом случае соответствие проверяется присвоением постоянных значений переменным, которые делают предпосылку совпадающей с вектором в рабочей памяти. Так, вектор состояния в рабочей памяти:
(patient (name Jones) (age 40)
(organism organism-1))
Удовлетворяет предпосылку в правиле:
(patient (name?pat) (organism?org))
Подстановкой Jones вместо ?pat и Organism-1 вместо ?org.
Управление функционированием интерпретатора: Процесс применения специфицированных правил можно описать в терминах цикла распознавание-действие, который состоит из следующих шагов.
(1) Сопоставить образцы в предпосылках правил и элементы данных в рабочей памяти.
(2) Если окажется, что можно активизировать более одного правила, выбрать одно из них; этот шаг называется разрешением конфликта.
(3) Применить выбранное правило. Результатом, скорее всего, будет добавление нового элемента данных в рабочую память и/или удаление какого-либо существующего элемента из рабочей памяти. Затем перейти к шагу 1.
Разрешение конфликтов: Цель процедуры разрешения конфликтов – выбрать из сформированного списка заявок единственное правило, которое должно быть применено в текущей ситуации. Поскольку стратегия разрешения конфликтов оказывает существенное влияние на производительность системы в целом, в большинстве программных систем предусматриваются определенные опции для подстройки этого механизма.
При выработке стратегии разрешения конфликтов обычно используется комбинация разных базовых механизмов, каждый из которых обладает свойственными только ему характеристиками. Производительность экспертной системы зависит от таких ключевых характеристик режима управления, как чувствительность и стабильность. Чувствительность характеризует, как быстро система будет реагировать на изменение среды, которое отражается в рабочей памяти, а стабильность характеризует степень консерватизма в поведении системы.
Билет 3