Языки программирования для ИИ и языки представления знаний. Языки Prolog и Lisp
Искусственный интеллект (ИИ) - это область исследований, находящаяся на стыке наук, специалисты, работающие в этой области, пытаются понять, какое поведение, считается разумным (анализ), и создать работающие модели этого поведения (синтез). Практической целью является создание методов и техники, необходимой для программирования «разумности» и ее передачи вычислительным машинам (ВМ), а через них всевозможным системам и средствам.
Все языки программирования можно разделить на процедурные и декларативные языки. Подавляющее большинство используемых в настоящее время языков программирования (Си, Паскаль, Бейсик и т. п.) относятся к процедурным языкам. Наиболее существенными классами декларативных языков являются функциональные (Лисп, Лого, АПЛ и т. п.) и логические (Пролог, Плэнер, Конивер и др.)
Языки представления знаний
Языки, предназначенные для описания предметных областей, называются языками представления знаний. Универсальным языком представления знаний является естественный язык.
Искусственные языки создавались и создаются для связи человека с машинами.
Примеры искусственных языков, которые используются преимущественно для представления знаний: CycL, IKL, KIF, Loom, OWL, KM: Машина Знаний (фреймовый язык, использовавшийся для задач представления знаний), язык Пролог.
КраткаЯ характеристика Языка ПРОЛОГ
Язык программирования (ЯП) Пролог (PROgramming in LOGic) был реализован в начале 70-х годов Колмероэ в Марселе (Франция) на основе теоретических разработок, выполненных в Эдинбургском университете (Шотландия) Ковальским.
Принципиальная особенность Пролога заключается в том, что программа представляется как множество объектов и множество отношений между ними.
Применение Пролога в основном связано с областью искусственного интеллекта и такими задачами, которые имеют сложную структуру, а скорость составления программ для них важнее скорости выполнения:
· обработка текстов естественного языка;
· экспертные системы;
· обучающие системы;
· контроль заданных спецификаций посредством реализации действующих макетов;
· поиск решения среди многих вариантов;
· создание небольших баз данных.
Рассмотрим основные понятия Пролога:
КраткаЯ характеристика Языка Лисп
Лисп (LISP, от англ. LISt Processing language — «язык обработки списков») — семейство языков программирования, программы и данные в которых представляются системами линейных списков символов.
Внешне лисп-программа выглядит как гигантское нагромождение скобок. Имеющиеся в любой современной системе средства форматированного вывода, позволяющие отобразить список так, чтобы была видна его структура.
Вследствие этого Лисп позволяет легко создавать мощные программы, динамически порождающие код. Лисп-машина способна воспринимать каждый поступающий на неё список на самом абстрактном уровне. В такой динамичной, высокоабстрактной среде можно реализовать как строго научные системы, так и неисчислимое множество программистских трюков и генераторов всевозможных машин.
Любая программа на языке Лисп состоит из последовательности выражений (форм). Результат работы программы состоит в вычислении этих выражений. Все выражения записываются в виде списков — одной из основных структур Лиспа, поэтому они могут легко быть созданы посредством самого языка. Это позволяет создавать программы, изменяющие другие программы или макросы, позволяющие существенно расширить возможности языка.
Адаптивные системы
Адаптивная система (самоприспосабливающаяся система) — система, автоматически изменяющая данные алгоритма своего функционирования и (иногда) свою структуру с целью сохранения или достижения оптимального состояния при изменении внешних условий.
Примеры адаптивных систем:
- «Живые»: человек, семья, организация;
- Механические: системы контроля и управления (за счет механизма обратной связи);
- Компьютерные: роботы, искусственная нейронная сеть.
Адаптивные системы можно разделить на два больших класса: самоорганизующиеся и самонастраивающиеся.
В самоорганизующихся системах в процессе функционирования происходит формирование алгоритма управления (его структуры и параметров), позволяющего оптимизировать систему с точки зрения поставленной цели управления (ЦУ).
Самонастраивающейся системой автоматического управления называется система, самостоятельно изменяющая свои динамические характеристики в соответствии с изменением внешних условий с целью достижения оптимального выхода системы.
СНС делятся на два подкласса: поисковые и беспоисковые. В поисковых СНС минимум (или максимум) меры качества (производительность установки, расход топлива и т.д.) ищется с помощью специально организованных поисковых сигналов. Простейшими поисковыми системами являются большинство экстремальных систем, в которых недостаток априорной информации восполняется за счет текущей информации, получаемой в виде реакции объекта на искусственно вводимые поисковые (пробные, тестовые) воздействия.
В беспоисковых СНС в явном или неявном виде имеется модель с желаемыми динамическими характеристиками. Задача алгоритма адаптации состоит в настройке коэффициентов регулятора таким образом, чтобы свести рассогласование между объектом управления и моделью к нулю. Такое управление называют прямым адаптивным управлением, а системы – адаптивными системами с эталонной моделью.
В случае непрямого адаптивного управления сначала проводят идентификацию объекта, а затем определяют соответствующие коэффициенты регулятора. Подобные регуляторы называются самонастраивающимися.
Когнитивная графика.
Когнитивная графика — это совокупность приемов и методов образного представления условий задачи, которое позволяет либо сразу увидеть решение, либо получить подсказку для его нахождения.
Методы когнитивной графики используются в искусственном интеллекте в системах, способных превращать текстовые описания задач в их образные представления, и при генерации текстовых описаний картин, возникающих во входных и выходных блоках интеллектуальных систем, а также в человеко-машинных системах, предназначенных для решения сложных, плохо формализуемых задач.
Многочисленные исследования психологов, посвященные анализу процесса решения задач людьми, показали, что наиболее трудоемкими в этом процессе являются первые два этапа. Максимальное усилие человек тратит на процесс перехода от неясного ощущения некоторой ситуации к четко сформулированной задаче. Как правило, именно этот этап воспринимается большинством исследователей, как творческий. На чем формируется замысел задачи и ищется ее формулировка.
Этапы формулировки задачи в условиях использования алгебраического подхода остаются вне поля зрения науки. Проблема эта явно не является алгоритмической. Каждая задача имеет индивидуальный характер, и существование каких-либо общих процедур, кроме чисто методологических (типа алгоритмов поиска изобретения, здесь вряд ли возможно). Однако, как неоднократно отмечали крупные математики, которые всерьез задумывались над процедурами математического творчества, на этапе поиска формулировки задачи весьма часто важную роль играли геометрические представления и модели. И интересно, что зачастую они не были прямо связаны с характером решаемой задачи, а просто ассоциативно вызывали эту постановку. Такой же феномен отмечают и психологи. Он и получил название когнитивная графика.
Когнитивная компьютерная графика - компьютерная графика для научных абстракций, способствующая рождению нового научного знания. Технической основой для нее являются мощные ЭВМ и высокопроизводительные средства визуализации
Примером применения когнитивной компьютерной графики в прикладной информатике может быть когнитивная визуализация блок-схем алгоритма, трехмерное представление объектов исследование, визуальное представление моделей данных и т.д.
Аналогичная методика была использована для периодичных функций. Как известно графики периодичных функций имеют повторяющие участки, следовательно, если переложить график периодичной функции на ноты, то музыка будет иметь повторяющиеся фрагменты.
Три основные задачи когнитивной компьютерной графики:
1. создание таких моделей представления знаний, в которых была бы возможность однообразными средствами представлять как объекты, характерные для логического мышления, так и образы-картины, с которыми оперирует образное мышление,
2. визуализация тех человеческих знаний, для которых пока невозможно подобрать текстовые описания,
3. поиск путей перехода от наблюдаемых образов-картин к формулировке некоторой гипотезы о тех механизмах и процессах, которые скрыты за динамикой наблюдаемых картин.
Основные направления прикладной когнитивной науки
· Искусственный интеллект: возможности и ограничения.
· Экспертные системы и системы поддержки принятия решения.
· Моделирование принятия решений в экономике и проблема человеческой рациональности. Проблема обработки естественного языка и системы машинного перевода.
· Основные направления робототехники: проблемы моделирования построения движения, ориентировки в пространстве и обучения мобильных роботов.
· Взаимодействие человека с компьютером: основные подходы и методы исследования.
· Когнитивная эргономика. Дизайн и компьютерная графика. Виртуальные реальности.
В области систем искусственного интеллекта когнитивная компьютерная графика позволит достичь больших результатов, чем другие системы благодаря алгебраическому и геометрическому подходу к моделированию ситуаций и различных вариантов их решения.
Так, в научных исследованиях, в том числе и в фундаментальных, характерный для начального этапа акцент на иллюстративной функции ККГ все более смещается в сторону использования тех возможностей ККГ, которые позволяют активизировать свойственную человеку способность мыслить сложными пространственными образами. В связи с этим начинают четко различать две функции ККГ: иллюстративную и когнитивную.
Иллюстративная функция ККГ позволяет воплотить в более или менее адекватном визуальном оформлении лишь то, что уже известно, т.е. уже существует либо в окружающем нас мире, либо как идея в голове исследователя. Когнитивная же функция ККГ состоит в том, чтобы с помощью некоего ККГ-изображения получить новое, т.е. еще не существующее даже в голове специалиста знание или, по крайней мере, способствовать интеллектуальному процессу получения этого знания.
Эта основная идея различий иллюстративной и когнитивной функций ККГ хорошо вписывается в классификацию знаний и компьютерных систем учебного назначения. Иллюстративные функции ККГ реализуются в учебных системах декларативного типа при передаче учащимся артикулируемой части знания, представленной в виде заранее подготовленной информации с графическими, анимационными, аудио- и видеоиллюстрациями. Когнитивная же функция ККГ проявляется в системах процедурного типа, когда учащиеся "добывают" знания с помощью исследований на математических моделях изучаемых объектов и процессов, причем, поскольку этот процесс формирования знаний опирается на, правополушарный механизм мышления, сами эти знания в существенной мере носят личностный характер.
8. Проблемы распознавания образов. Классификация методов распознавания образов.
Теория распознавания образа — раздел информатики и смежных дисциплин, развивающий основы и методы классификации и идентификации предметов, явлений, процессов, сигналов, ситуаций и т. п. объектов, которые характеризуются конечным набором некоторых свойств и признаков. Такие задачи решаются довольно часто, например, при переходе или проезде улицы по сигналам светофора. Распознавание цвета загоревшейся лампы светофора и знание правил дорожного движения позволяет принять правильное решение о том, можно или нельзя переходить улицу.
Необходимость в таком распознавании возникает в самых разных областях — от военного дела и систем безопасности до оцифровки аналоговых сигналов.
Проблема распознавания образа приобрела выдающееся значение в условиях информационных перегрузок, когда человек не справляется с линейно-последовательным пониманием поступающих к нему сообщений, в результате чего его мозг переключается на режим одновременности восприятия и мышления, которому такое распознавание свойственно.
Неслучайно, таким образом, проблема распознавания образа оказалась в поле междисциплинарных исследований - в том числе в связи с работой по созданию искусственного интеллекта, а создание технических систем распознавания образа привлекает к себе всё большее внимание.
Направления распознавания образов. Можно выделить два основных направления:
· Изучение способностей к распознаванию, которыми обладают живые существа, объяснение и моделирование их;
· Развитие теории и методов построения устройств, предназначенных для решения отдельных задач в прикладных целях.
Формальная постановка задачи. Распознавание образов — это отнесение исходных данных к определенному классу с помощью выделения существенных признаков, характеризующих эти данные, из общей массы несущественных данных.
При постановке задач распознавания стараются пользоваться математическим языком, стремясь - в отличие от теории искусственных нейронных сетей, где основой является получение результата путем эксперимента, - заменить эксперимент логическими рассуждениями и математическими доказательствами.
Классическая постановка задачи распознавания образов: Дано множество объектов. Относительно них необходимо провести классификацию. Множество представлено подмножествами, которые называются классами. Заданы: информация о классах, описание всего множества и описание информации об объекте, принадлежность которого к определенному классу неизвестна. Требуется по имеющейся информации о классах и описании объекта установить - к какому классу относится этот объект.
Некоторые методы распознавания графических образов
Для оптического распознавания образов можно применить метод перебора вида объекта под различными углами, масштабами, смещениями и т. д. Для букв нужно перебирать шрифт, свойства шрифта и т. д. Второй подход — найти контур объекта и исследовать его свойства (связность, наличие углов и т. д.). Ещё один подход — использовать искусственные нейронные сети. Этот метод требует либо большого количества примеров задачи распознавания (с правильными ответами), либо специальной структуры нейронной сети, учитывающей специфику данной задачи.
Примеры задач распознавания образов:
· Оптическое распознавание символов
· Распознавание штрих-кодов
· Распознавание автомобильных номеров
· Распознавание лиц
· Распознавание речи
· Распознавание изображений
· Распознавание локальных участков земной коры, в которых находятся месторождения полезных ископаемых
· Классификация документов
Классификация методов распознавания. Процедура предъявления обучающих выборок :
- фиксированная выборка - построение правил классификации по единственному обучающему множеству, предъявляемому до начала классификации;
- последовательная выборка - коррекция правила классификации с каждой новой предъявляемой выборкой на основе оценки критерия качества распознавания (самообучение, автоподстройка).
Фиксированная выборка. На основе обучающей выборки, представленной системе до начала выполнения ей функции распознавания, строится правило классификации. В дальнейшем это правило не меняется; все подлежащие распознаванию объекты оцениваются на основе полученных при обучении данных. Ошибки, совершаемые системой при распознавании, не учитываются и носят постоянный характер. Системы, построенные на этом принципе, требуют тщательного обучения и используются в основном там, где множество распознаваемых объектов хорошо известно, вариативность объектов предсказуема или хорошо отрабатывается правилами классификации. В целом, такие системы более простые и надежные.
Последовательная выборка.При таком подходе первоначальная выборка формирует лишь предварительную версию правил классификации. При последующей работе система оценивает качество распознавания и подстраивает правила классификации или вырабатывает новые с целью повышения качества распознавания. Процесс прекращается тогда, когда правила классификации начинают удовлетворять некоторому критерию оптимальности. Этот подход называется адаптивным распознаванием или машинным обучением. Свойства процедуры последовательного обучения: – сходимость — процесс изменения правил классификации должен приводить через конечное число корректировок к окончательному варианту; – оптимальность — решающее правило, к которому сходится процесс обучения, должно быть оптимальным в смысле минимизации функции стоимости возможных ошибок; – вычислительная сложность — финальное правило классификации должно минимизировать число шагов, необходимых для распознавания образа, время их выполнения. Системы с последовательной процедурой обучения проявляют большую гибкость при распознавании объектов с высокой степенью варьируемости. Кроме того, «накопление опыта» позволяет им достичь высокого качества и скорости распознавания. Однако, алгоритм работы таких систем более сложен и требует обоснования с точки зрения выполнения указанных выше свойств. Вид правил классификации - параллельные - проведение ряда тестов над всей совокупностью выявленных данных об объекте и принятие решения на основе их результатов; - последовательные - проведение последовательности тестов над подмножествами выявленных данных; выбор очередного теста определяется результатами предыдущих тестов.
Вид правил классификации.
- параллельные - проведение ряда тестов над всей совокупностью выявленных данных об объекте и принятие решения на основе их результатов;
- последовательные - проведение последовательности тестов над подмножествами выявленных данных; выбор очередного теста определяется результатами предыдущих тестов.
Фреймовые модели. Одним из способов анализа и согласования структурной информации об изображении является построение фреймовых моделей, предложенных в работе Минского. Информация о структурных элементах изображения и их взаимосвязи представляется в виде фреймов -- сетевых структур, узлы которых описывают объекты изображения, а именованные дуги -- их взаимоотношения. В процессе распознавания в изображении выделяются структурные элементы и определяются связи между ними. Процесс сегментации изображения управляется процессом проверки выбранного в текущий момент фрейма -- гипотезы. Изображение признаётся как описываемое каким-либо фреймом, если удаётся связать его терминальные узлы с наблюдаемыми элементами изображения. Преимуществом такой модели является возможность описания изображений на разных концептуальных уровнях, от наиболее абстрактных понятий к конкретным фрагментам изображения. Это позволяет проводить распознавания на разных уровнях детализации, способствуя решению проблемы вариативности начертания рукописных символов. Кроме того, существует возможность разделения несколькими высокоуровневыми объектами общих низкоуровневых элементов. Другой полезной особенностью является возможность задания для некоторых терминалов фрейма значений по умолчанию, которые могут быть изменены при обнаружении противоречия, или признаются действительными в противном случае.
Пандемониум Селфриджа
Одна их первых интеллектуальных систем, распознавания образов, ставшей классической, - пандемониум Селфриджа.
Системы распознавания строятся таким образом, что на первом этапе поступающие на вход изображения обрабатываются с целью выделения наиболее существенных признаков. Эти признаки могут представлять собой определенные участки изображения либо иметь достаточно общий характер, например, давать ответ на конкретный вопрос: «Имеется ли на изображении вертикальная черта?».
Система распознавания образов, предложенная Оливером Селфриджем [1] и называемая пандемониумом, состоит из элементов - демонов. Демоны - это относительно автономные сущности, выполняющие элементарные функции. На самом нижнем уровне находятся демоны данных, или демоны изображения (рисунок 2.1), которые играют роль светочувствительных элементов сетчатки глаза.
На самом верхнем уровне находится демон решения, который определяет выход всей системы в целом - выдает сообщение, к какой категории относится узнанный образ. Ниже демона решения имеется некоторое число демонов понимания, каждый из которых соответствует одной из узнанных категорий. Например, первый демон понимания соответствует кошке, второй - собаке, третий - человеку и т.д. Вычислительные демоны, обрабатывая визуальную информацию от демонов данных, вырабатывают признаки и передают их демонам понимания.
Идея пандемониума состоит в том, что каждый демон понимания должен определить меру соответствия поступающих на его вход признаков категории образа, представленного этим демоном понимания. Чем лучше это соответствие, тем более сильный сигнал посылается к демону решения, который сравнивает интенсивность сигналов и выбирает наиболее сильный.
О. Селфридж так образно описал работу предлагаемого устройства: «Задача демона понимания состоит в том, чтобы исследовать поступающие признаки и выкрикивать название своего класса, если он считает, что объект относится именно к этому классу. Демон должен кричать громко, если он уверен в своем решении, и тихо, если не уверен. Однако общий шум, производимый демоном понимания, зависит не только от его стараний, но и от способности кричать. Последнее определяет всемогущий демон решения, который наделяет демонов первого порядка сильными или слабыми голосами. Таким образом, каждый демон понимания выкрикивает название своего класса с интенсивностью, зависящей от его собственных оценок и от силы данного ему голоса. Демон решения, который ведет себя как председатель собрания, где проводится голосование, решает, название какого класса было выкрикнуто громче всех».
Идея, предложенная О. Селфриджем, программируется весьма просто. Демоны понимания всего лишь вычисляют взвешенные суммы сигналов, поступающих от вычислительных демонов. Так, i-й демон понимания вычисляет свой выходной сигнал Di следующим образом: (2.1) где wij - весовые множители, устанавливающие значимость признаков, поступающих для суммирования; dj - выходной сигнал j-го вычислительного демона.
Суммирование ведется по всем вычислительным демонам. Фактически демоны понимания различаются между собой только значениями указанных весовых множителей.
Пандемониум представляет собой обучающееся устройство, и каждый демон понимания осуществляет настройку своего способа комбинации выходных сигналов вычислительных демонов.
Когда весовые коэффициенты более-менее подобраны и принимаемое решение близко к оптимальному, то для любого вычислительного демона становится возможным вычислить его ценность для всей системы в целом. Ценность вычислительного демона определяется тем, насколько используется его выход. Мерой такой ценности может быть величина
(2.2)
Определение ценности позволяет производить изменения в используемом множестве вычислительных демонов. Например, можно автоматически исключать малоценные демоны и заменять их другими. Таким образом система приобретает самоорганизующийся характер и ее настройка не сводится просто к самооптимизации параметров.