Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Фреймовая форма знаний.
Фреймовая модель представления знаний была предложена М.Минским в 1979 г. как структура знаний для восприятия пространственных сцен. В психологии и философии известно понятие абстрактного образа. Например, слово «комната» вызывает у слушающих образ комнаты: «жилое помещение с четырьмя стенами, полом, потолком, окнами и дверью, площадью 6-20 м2». Из этого описания ничего нельзя убрать (например, убрав окна, получим уже чулан, а не комнату), но в нем есть «дырки», или «слоты», это незаполненные значения некоторых атрибутов количество окон, цвет стен, высота потолка, покрытие пола и др. В этой теории такой абстрактный образ называется фреймом.
Скрипт это тип фреймов, который описывает последовательность событий во времени; типичный пример описание похода в ресторан. События здесь включают ожидание места, прочитать меню, сделать заказ, и так далее.
Фрейм имеет определенную внутреннюю структуру, состоящую из множества элементов, называемыхслотами, которым также присваиваются имена. За слотами следуют шпации, в которые помещают данные, представляющие текущие значения слотов. Каждый слот в свою очередь представляется определенной структурой данных. В значение слота подставляется конкретная информация, относящаяся к объекту, описываемому этим фреймом.
Структуру фрейма можно представить так:
ИМЯ ФРЕЙМА:
(имя 1-го слота: значение 1-го слота),
(имя 2-го слота: значение 2-го слота),
- - - -
(имя N-го слота: значение N-гo слота).
Ту же запись представим в виде таблицы, дополнив двумя столбцами.
Таблица 5.1 Структура фрейма
Имя слота |
значение слота |
способ получения значения |
присоединённая процедура |
|
|
|
|
|
|
|
|
В таблице дополнительные столбцы предназначены для описания способа получения слотом его значения и возможного присоединения к тому или иному слоту специальных процедур, что допускается в теории фреймов. В качестве значения слота может выступать имя другого фрейма; так образуют сети фреймов.
Различают фреймы-образцы, или прототипы, хранящиеся в базе знаний, и фреймы-экземпляры, которые создаются для отображения реальных ситуаций на основе поступающих данных.
Модель фрейма является достаточно универсальной, поскольку позволяет отобразить все многообразие знаний о мире:
· через фреймы-структуры, для обозначения объектов и понятий (заем, залог, вексель);
· через фреймы-роли (менеджер, кассир, клиент);
· через фреймы-сценарии (банкротство, собрание акционеров, празднование именин);
· через фреймы-ситуации (тревога, авария, рабочий режим устройства) и др.
Важнейшим свойством теории фреймов является заимствованное из теории семантических сетей наследование свойств. И во фреймах, и в семантических сетях наследование происходит по AKO-связям (A-Kind-Of = это). Слот АКО указывает на фрейм более высокого уровня иерархии, откуда неявно наследуются, то есть переносятся, значения аналогичных слотов.
Пример 1. Фрейм, описывающий человека.
Фрейм: |
Человек |
Имя слота: |
Значение слота |
Класс: |
Животное |
Структурный элемент: |
Голова, шея, руки, ... |
Рост: |
30 ? 220 см |
Масса: |
1 ? 200 кг |
Хвост: |
Нет |
Язык: |
Русский, английский, ... |
Связь: |
Обезьяна |
Основным преимуществом фреймов как модели представления знаний является то, что она отражает концептуальную основу организации памяти человека, а также ее гибкость и наглядность. Наиболее ярко достоинства фреймовых систем представления знаний проявляются в том случае, если родовидовые связи изменяются нечасто и предметная область насчитывает немного исключений. Во фреймовых системах данные о родовидовых связях хранятся явно, как и знания других типов. Значения слотов представляются в системе в единственном экземпляре, поскольку включаются только в один фрейм, описывающий наиболее понятия из всех тех, которые содержит слот с данным именем.
Семантические сети
Семанти́ческая сеть информационная модель предметной области, имеющая вид ориентированного графа, вершины которого соответствуют объектам предметной области, а дуги (рёбра) задают отношения между ними. Объектами могут быть понятия, события, свойства, процессы[1]. Таким образом, семантическая сеть является одним из способов представления знаний.
Для всех семантических сетей справедливо разделение по арности и количеству типов отношений.
Помимо концептуальных графов существуют и другие модификации семантических сетей, это является ещё одной основой для классификации (по реализации). См. более подробно в соответствующем разделе ниже.
Количество типов отношений в семантической сети определяется её создателем, исходя из конкретных целей. В реальном мире их число стремится к бесконечности. Каждое отношение является, по сути, предикатом, простым или составным. Скорость работы с базой знаний зависит от того, насколько эффективно реализованы программы обработки нужных отношений.
[править]Иерархические
Наиболее часто возникает потребность в описании отношений между элементами, множествами и частями объектов. Отношение между объектом и множеством, обозначающим, что объект принадлежит этому множеству, называется отношением классификации (ISA). Говорят, что множество (класс) классифицирует свои экземпляры.[3] (пример: «Шарик является собакой» = Шарик является объектом типа собака). Иногда это отношение именуют также MemberOf, InstanceOf или подобным образом. Связь ISA предполагает, что свойства объекта наследуются от множества. Обратное к ISA отношение используется для обозначения примеров, поэтому так и называется «Example», или по-русски «Пример». Иерархические отношения образуют древовидную структуру.
Часто в семантических сетях требуется определить отношения синонимии и антонимии. Эти связи либо дублируются явно в самой сети, либо определяются алгоритмической составляющей.
[править]Вспомогательные
В семантических сетях часто используются также следующие отношения [Гаврилова]:
Этот список может сколь угодно продолжаться: в реальном мире количество отношений огромно. Например, между понятиями может использоваться отношение «совершенно разные вещи» или подобное:Не_имеют_отношения_друг_к_другу(Солнце, Кухонный_чайник).
В семантической сети в качестве понятий могут быть как экземпляры объектов, так и их множества. Использование одних и тех же отношений и для элементов, и для коллекций может привести к недоразумениям. Подобные ошибки в работе некоторых первых систем были описаны в статье Дрю Макдермотта «Искусственный интеллект сталкивается с естественной глупостью».
Рассмотрим пример четыре предложения:
Для человека ясен смысл этих фраз и многие не задумываясь поставили бы во всех трёх случаях отношение есть отец. Однако это является ошибкой: в первом случае, действительно, описывается отношение между двумя экземплярами, но во втором и третьем между экземпляром и множеством, а в четвёртом отношение между представителями из двух множеств. В математической записи это выглядит так, соответственно для предложений 14:
I. ∃ павел & ∃ алексей : отец(алексей, павел);
IIа. ∃ павел → ∃ x ∈ мужчины : отец(x, павел);
IIб. ∃ алексей → ∃ y ∈ люди : отец(алексей, y);
III. ∀ y ∈ люди → ∃ x ∈ мужчины : отец(x, y);
Мы видим, что случаи IIа и IIб различаются только порядком следования переменных в предикате, однако для правильности сети это может сыграть важную роль.
Шкалы для представления знаний
Представление знаний вопрос, возникающий в информатике и в исследованияхискусственного интеллекта. В информатике с подбором представления конкретных и обобщённых знаний, сведений и фактов для накопления и обработки информации в ЭВМ. Главная задача в искусственном интеллекте (ИИ) научиться хранить знания таким образом, чтобы программы могли осмысленно обрабатывать их и достигнуть тем подобия человеческого интеллекта. Под термином «представление знаний» чаще всего подразумеваются способы представления знаний, ориентированные на автоматическую обработку современными компьютерами,
Исследователи ИИ используют теории представления знаний из когнитологии. Такие методы, как фреймы, правила вывода исемантические сети пришли в ИИ из теорий обработки информации человеком. Поскольку знание используется для достижения разумного поведения, фундаментальной целью дисциплины представления знаний является поиск таких способов представления, которые делают возможным процесс логического вывода, то есть создание знания из знаний.
В настоящее время разработано множество моделей представления знаний. Имея обобщенное название, они различаются по идеям, лежащим в их основе, с точки зрения математической обоснованности. Типы моделей показаны на рисунке.
Первый подход, называемый эмпирическим, основан на изучении принципов организации человеческой памяти и моделировании механизмов решения задач человеком. На основе этого подхода в настоящее время разработаны и получили наибольшую известность следующие модели:
Более подробно эти модели рассматриваются в соответствующих статьях. Условно в группу эмпирического подхода можно включить нейронные сети и генетические алгоритмы, относящиеся к бионическому (основано на предположении о том, что если в искусственной системе воспроизвести структуры и процессы человеческого мозга, то и результаты решения задач такой системой будут подобны результатам, получаемым человеком) направлению искусственного интеллекта. Особенностью моделей этого типа является широкое использование эвристик, что в каждом случае требует доказательства правильности получаемых решений.
Второй подход можно определить как теоретически обоснованный, гарантирующий правильность решений. Он в основном представлен моделями, основанными на формальной логике (исчисление высказываний, исчисление предикатов), формальных грамматиках, комбинаторными моделями, в частности моделями конечных проективных геометрий, теории графов, тензорными и алгебраическими моделями. В рамках этого подхода до настоящего времени удавалось решать только сравнительно простые задачи из узкой предметной области.
Нейронные сети
Иску́сственные нейро́нные се́ти (ИНС) математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей сетей нервных клеток живого организма.
Нейронные сети это одно из направлений исследований в области искусственного интеллекта, основанное на попытках воспроизвести нервную систему человека. А именно: способность нервной системы обучаться и исправлять ошибки, что должно позволить смоделировать, хотя и достаточно грубо, работу человеческого мозга. нервная система человека это сложная сеть структур человека, обеспечивающая взаимосвязанное поведение всех систем организма.
Биологический нейрон это специальная клетка, которая структурно состоит из ядра, тела клетки и отростков. Одной из ключевых задач нейрона является передача электрохимического импульса по всей нейронной сети через доступные связи с другими нейронами. Притом, каждая связь характеризуется некоторой величиной, называемой силой синаптической связи. Эта величина определяет, что произойдет с электрохимическим импульсом при передаче его другому нейрону: либо он усилится, либо он ослабится, либо останется неизменным.
Биологическая нейронная сеть обладает высокой степенью связности: на один нейрон может приходиться несколько тысяч связей с другими нейронами. Но, это приблизительное значение и в каждом конкретном случае оно разное. Передача импульсов от одного нейрона к другому порождает определенное возбуждение всей нейронной сети. Величина этого возбуждения определяет реакцию нейронной сети на какие-то входные сигналы. Например, встреча человека со старым знакомым может привести к сильному возбуждению нейронной сети, если с этим знакомым связаны какие-то яркие и приятные жизненные воспоминания. В свою очередь сильное возбуждение нейронной сети может привести к учащению сердцебиения, более частому морганию глаз и к другим реакциям. Встреча же с незнакомым человеком для нейронной сети пройдет практически незаметной, а значит и не вызовет каких-либо сильных реакций.
Можно привести следующую сильно упрощенную модель биологической нейронной сети:
Каждый нейрон состоит из тела клетки, которое содержит ядро. От тела клетки ответвляется множество коротких волокон, называемых дендритами. Длинные дендриты называются аксонами. Аксоны растягиваются на большие расстояния, намного превышающее то, что показано в масштабе этого рисунка. Обычно аксоны имеют длину 1 см (что превышает в 100 раз диаметр тела клетки), но могут достигать и 1 метра.
В 60-80 годах XX века приоритетным направлением исследований в области искусственного интеллекта были экспертные системы. Экспертные системы хорошо себя зарекомендовали, но только в узкоспециализированных областях. Для создания более универсальных интеллектуальных систем требовался другой подход. Наверное, это привело к тому, что исследователи искусственного интеллекта обратили внимание на биологические нейронные сети, которые лежат в основе человеческого мозга.
в искусственном интеллекте это упрощенные модели биологических нейронных сетей.
На этом сходство заканчивается. Структура человеческого мозга гораздо более сложная, чем описанная выше, и поэтому воспроизвести ее хотя бы более менее точно не представляется возможным.
У нейронных сетей много важных свойств, но ключевое из них это способность к обучению. Обучение нейронной сети в первую очередь заключается в изменении «силы» синаптических связей между нейронами. Следующий пример наглядно это демонстрирует. В классическом опыте Павлова, каждый раз непосредственно перед кормлением собаки звонил колокольчик. Собака достаточно быстро научилась ассоциировать звонок колокольчика с приемом пищи. Это явилось следствием того, что синаптические связи между участками головного мозга, ответственными за слух и слюнные железы, усилились. И в последующем возбуждение нейронной сети звуком колокольчика, стало приводить к более сильному слюноотделению у собаки.
На сегодняшний день нейронные сети являются одним из приоритетных направлений исследований в области искусственного интеллекта.
Объектно-ориентированные базы данных
В наиболее общей и классической постановке объектно-ориентированный подход базируется на концепциях:
Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта. Любой объект при своем создании получает генерируемый системой уникальный идентификатор, который связан с объектом во все время его существования и не меняется при изменении состояния объекта.
Каждый объект имеет состояние и поведение. Состояние объекта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта. Значение атрибута объекта - это тоже некоторый объект или множество объектов. Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов.
Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Объект должен принадлежать только одному классу (если не учитывать возможности наследования, см. следующий абзац). Допускается наличие примитивных предопределенных классов, объекты-экземляры которых не имеют атрибутов: целые, строки и т.д. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута.
Допускается порождение нового класса на основе уже существующего класса - наследование. В этом случае новый класс, называемый подклассом существующего класса (суперкласса) наследует все атрибуты и методы суперкласса. В подклассе, кроме того, могут быть определены дополнительные атрибуты и методы. Различаются случаи простого и множественного наследования. В первом случае подкласс может определяться только на основе одного суперкласса, во втором случае суперклассов может быть несколько. Если в языке или системе поддерживается единичное наследование классов, набор классов образует древовидную иерархию. При поддержании множественного наследования классы связаны в ориентированный граф с корнем, называемый решеткой классов. Объект подкласса считается принадлежащим любому суперклассу этого класса.
Одной из более поздних идей объектно-ориентированного подхода является идея возможного переопределения атрибутов и методов суперкласса в подклассе (перегрузки методов). Эта возможность увеличивает гибкость, но порождает дополнительную проблему: при компиляции объектно-ориентированной программы могут быть неизвестны структура и программный код методов объекта, хотя его класс (в общем случае - суперкласс) известен. Для разрешения этой проблемы применяется так называемый метод позднего связывания, означающий, по сути дела, интерпретационный режим выполнения программы с распознаванием деталей реализации объекта во время выполнения посылки сообщения к нему. Введение некоторых ограничений на способ определения подклассов позволяет добиться эффективной реализации без потребностей в интерпретации.
Как видно, при таком наборе базовых понятий, если не принимать во внимание возможности наследования классов и соответствующие проблемы, объектно-ориентированный подход очень близок к подходу языков программирования с абстрактными (или произвольными) типами данных.
Моделями ООБД являются реляционная, иерархичная, многомерная.
Основные системные понятия.
|
История и перспективы развития данных и знаний
Для структурирования информации, а также организации баз знаний и экспертных систем были предложены несколько способов представления знаний. Одно из них представление данных и сведений в рамках логической модели баз знаний.
В 1970-х и начале 1980-х были предложены, и с переменным успехом опробованы многочисленные методы представления знаний, например эвристические вопросно-ответные системы, нейросети, доказательство теорем и экспертные системы. Главными областями их применения в то время были медицинская диагностика (MYCIN) и игры (например, шахматы).
В 1980-х годах появились формальные компьютерные языки представления знаний. Основные проекты того времени пытались закодировать (занести в свои базы знаний) огромные массивы общечеловеческого знания. Например, в проекте «Cyc» была обработана большая энциклопедия, и кодировалась не сама хранящаяся в ней информация, а знания, которые потребуются читателю, чтобы понять эту энциклопедию: наивная физика, понятия времени, причинности и мотивации, типичные объекты и их классы. Проект Cyc развивается компанией Cycorp, Inc.; большая часть (но не вся) их базы свободно доступна.
Данная работа привела к более точной оценке сложности задачи представления знаний. Одновременно в математической лингвистике были созданы гораздо более объёмные базы языковой информации, и они, вместе с огромным приростом скорости и объёмов памяти компьютеров сделали более глубокое представление знаний более реальным.
Было также разработано несколько языков программирования, ориентированных на представление знаний. Пролог(разработанный в 1972 году,[1] но получивший популярность значительно позже) описывает высказывания и основную логику, и может производить выводы из известных посылок. Ещё больше нацелен на представление знаний язык KL-ONE (1980-е).
В области электронных документов были разработаны языки, явно выражающие структуру хранимых документов, такие какSGML (а впоследствии XML). Они облегчили задачи поиска и извлечения информации, которые в последнее время всё больше связаны с задачей представления знаний. Большой интерес проявляется к технологии семантической паутины, в которой основанные на XML языки представления знаний, такие как RDF, Карта тем и другие используются для увеличения доступности компьютерным системам информации, хранящейся в сети.
А по поводу развития пишем сочинение, друзья!
Разработка приложений для работ с базами данных
Итак, схема проектирования:
Простой пример, телефонный справочник, в простейшем тривиальном случае он представляет собой таблицу соответствия город-абонент-номер. Поскольку один город соответствует множеству абонентов, можно и нужно вынести список городов в отдельную таблицу, таблицу-справочник, а в основной таблице оставить просто цифру которая будет указывать на город, и связать их по ForeignKey. Таким образом убиваем сразу десять зайцев ракетой: получаем нормализацию БД, экономия места в основной таблице(вместо города пишем цифру), при добавлении нового телефонного номера он выбирается из списка, одинаковое написание всех городов