Искусственный интеллект
Метод представления знаний при проектировании модели. Требования к качеству восприятия информации, отображаемой на дисплеях. Схема простой многослойной искусственной нейронной сети. Неформальное определение когнитивной карты. Искажения изображения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 13.02.2016 |
Размер файла | 829,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Оглавление
- 1. Расчетно-пояснительная записка
- 1.1 Введение
- 1.2 Техническое задание
- 1.3 Обзор существующих решений
- 1.4 Обзор существующих методов представления знаний
- 1.5 Метод представления знаний при проектировании модели
- 1.6 Предлагаемый метод моделирования
- 1.7 Структура системы
- 2. Конструкторско-технологическая часть
- 2.1 Технология программирования
- 2.2 Выбор языка программирования
- 3. Охрана труда
- 3.1 Основные определения
- 3.2 Требования к освещению на рабочих местах, оборудованных ПЭВМ
- 3.3 Требования к качеству восприятия информации, отображаемой на дисплеях
- 3.4 Эргономические требования к цветовым параметрам
- 3.5 Требования безопасности к визуальным параметрам
- 3.6 Искажения изображения по рабочему полю
- 3.7 Требования безопасности к параметрам создаваемых полей
- 3.8 Требования к конструкции
- Заключение
- 4. Экологическая часть
- 4.1 Термины и определения
- 4.2 Методы измерений
- 4.3 Критерии соответствия
- Заключение
- 5. Решение задачи на ЭВМ
- 5.1 Структура классов
- 5.2 Пример функционирования
- Выводы
- Список литературы
1. Расчетно-пояснительная записка
1.1 Введение
Философы разделяют исследования в области искусственного интеллекта (далее - ИИ) на два направления. Первое направление ставит перед собой целью создание «программы, которая мыслит, а не моделирует мышление» [8]. Такая программа называется «сильным ИИ», в противовес второму направлению «слабого ИИ», являющийся программой, которая действует так, словно она разумна [8]. Другими словами, «слабый ИИ» - это программа, которая обладает способностями к решению задач в некоторых областях человеческой деятельности, равные или превосходящие способности человека решать такие задачи. Подход «слабого ИИ» является более практическим, и именно поэтому эта область настолько популярна на текущий день. В области «сильного ИИ» настолько заметных успехов сделано не было, хотя в ряде случаев эти два направления довольно сложно разграничить, и проекты находятся «между» этими двумя полюсами. Оба направления в общем случае используют один и тот же математический и алгоритмический аппарат.
Таким образом, исследования в области искусственного интеллекта привели к созданию огромного количества широко используемых на текущий день инструментов. Поисковые системы используют алгоритмы машинного обучения и обработки естественного языка для индексирования сайтов в сети Интернет. Алгоритмы обработки естественного языка также используются в автоматических переводчиках. Банки используют алгоритмы Data Mining для анализа кредитных данных. С помощью таких алгоритмов рекомендательные системы Интернет-магазинов предлагают пользователям купить товары, соответствующие их вкусу. Распознавание образов на фотографиях, видео- и звуковых данных осуществляется с помощью искусственных нейронных сетей. Экспертные системы, помогающие человеку принимать решения в различных областях жизнедеятельности, содержат огромное количество знаний - структурированной и обобщенной информации. Развитие робототехники привело к тому, что конструируются не только роботы-пылесосы и роботы-собаки, но и военные роботы, которые могут переносить в разы больше груза, чем человек, беспилотные самолеты, и даже роботы, которые могут охранять крупные мероприятия [17]. Компания Google Inc. в течение нескольких лет разрабатывает и тестирует проект Google Car - проект машины, которая имеет возможность ездить без прямого управления человеком [16]. Компания Mercedes-Benz, вслед за Google, также начала разрабатывать проект машины с «автопилотом» [15]. В индустрии компьютерных игр ИИ оппонента игрока является очень важным фактором интереса и, следовательно, популярности игры. Разработка игрового ИИ в первую очередь сосредоточена на проблемах поиска пути с учетом особенностей виртуального ландшафта, но в зависимости от жанра, важными направлениями могут быть моделирование жизненного цикла или распорядка дня игровых персонажей, применение ими командной или индивидуальной тактик против игрока, планирование будущих действий и коррекция своего поведения в зависимости от действий игрока. Такие модели поведения со временем становятся все сложнее, и игровой ИИ уже перестал быть «игрушкой», став сложным направлением разработок компьютерных игр, требующим специалистов своего профиля. Одним из перспективных направлений исследований ИИ является моделирование работы мозга на основе нейробиологических данных. Самым крупным из таких исследований является проект The Human Brain Project [18], конечной целью которого является наиболее приближенная к реальности модель мозга, способная помочь в понимании его механизмов и, в частности, болезней. Компания Numenta, Inc. разрабатывает систему под названием «Иерархическая Временная Память», которая представляет собой технологию машинного обучения, основанную на структурных и алгоритмических свойствах коры головного мозга, где происходят процессы мышления, планирования и других когнитивных функций [19]. Успешное развитие таких проектов в перспективе должно привести к возможности точного имитационного моделирования когнитивных функций человека, следовательно, и к созданию модели ИИ.
ИИ должен обладать возможностью хранить информацию внутри себя и оперировать ею. Такая возможность называется «представление знаний» [8]. Интеллект -- способность приобретать, воспроизводить и использовать знания для понимания конкретных и абстрактных понятий и отношений между объектами и идеями и использовать знания осмысленным способом [3]. В дальнейшем под знаниями будем понимать некоторую структурированную информацию об окружающем мире. Исследование возможных способов представления знаний и операций над ними является областью пересечения фактически всех исследований ИИ. Целью данной работы является создание модели поведения искусственного животного, называемого «анимат», и имитационное моделирование этого поведения в виртуальной среде. Основной задачей будет являться разработка метода представления знаний анимата.
1.2 Техническое задание
Анимат - это автономный агент, поведение которого должно следовать принципам поведения животных [9]. Анимат действует во внешней среде, взаимодействуя с объектами и принимая решение о своем поведении на основе данных, полученных в результате этих взаимодействий. По аналогии с живыми существами, он обладает следующими параметрами, указывающее на общее состояние его виртуального организма: «здоровье», «усталость» и «насыщенность». Анимат на базе разработанного инструментария должен научиться адаптироваться к любым изменениям во внешней среде, к примеру, смена места обитания или нападение хищника. Технически, он не должен допустить падение параметра «здоровье» до значения 0. Оценка «адаптивности» поведения будет происходить с помощью эмоциональных весов - оценок тех или иных действий по отношению к состоянию анимата. Как следствие, целевой функцией анимата будет являться оптимизация функции от эмоциональных оценок.
Для проведения экспериментов и исследований необходимо реализовать программу имитационного моделирования поведения аниматов, которое будет основано на предлагаемом методе представления знаний.
1.3 Обзор существующих решений
Breve - программное обеспечение с открытым исходным кодом для имитационного моделирования агентов в виртуальной среде [21]. Поведения агентов задается либо с помощью встроенного языка программирования, либо с помощью языка программирования Python 2. Виртуальная среда представляет собой трехмерное поле, на котором можно размещать агентов. Присутствует также поддержка простейшей физики, например, столкновений между объектами. Встроенный язык Breve не является подходящим средством для решения текущей задачи в силу ограниченности своих возможностей, язык Python 2 не полностью поддерживается Breve, и разработка программы была прекращена несколько лет назад, поэтому Breve не является подходящим инструментом для реализации поставленной цели.
Darwinbots представляет собой программное обеспечение с открытым исходным кодом для имитационного моделирования искусственных организмов [22]. Такие организмы, называемые «ботами», живут в виртуальной двумерной среде, взаимодействуя друг с другом различными способами, эволюционируя и размножаясь, пытаясь выжить. Поведение ботов контролируется с помощью базовых программ поведения - «генов». Каждый ген содержит условия активации гена и программу поведения, описываемую на специальном языке. Задача бота - выжить, контролируя приход энергии от поедания пищи и расход энергии на совершение действий. Программа Darwinbots является очень наглядной и удобной программой для имитационного моделирования поведения и эволюции организмов вроде бактерий, но из-за простоты структуры ботов и невозможности настройки этих структур и строительства сложных моделей поведения, позволяющих обобщать и структурировать информацию из внешней среды, она не является программным обеспечением, подходящим текущим целям.
DigiHive - это программное обеспечение для имитационного моделирования поведения объектов, называемых «частицами» [23]. Частицы - это точки в абстрактном двумерном пространстве, обладающие способностями к передвижению по этому пространству и объединению в более сложные структуры с помощью простых программ, задаваемых на внутреннем языке. Такие сложные «организмы» за счет взаимодействия программ отдельных частиц могут влиять на другие частицы, манипулируя ими и изменяя их или свою собственную структуру. Программное обеспечение DigiHive предназначено в первую очередь для построения систем, свойства которой определяются за счет взаимодействия многих отдельных базовых единиц, и не может являться инструментом для имитационного моделирования когнитивных процессов сложных организмов.
EcoSim позволяет проводить имитационное моделирование экосистемы на основе отношений «хищник - жертва» между объектами-особями [24]. Внешняя среда для особей представляет собой плоскость. Модель поведения каждой особи задается в виде графа отношений между такими понятиями как действия, восприятие и решения. В процессе имитационного моделирования особи могут изменять этот граф, изменяя таким образом свое поведение адаптируясь к внешней среде. EcoSim является очень мощным средством для моделирования эволюции экосистем, но не позволяет гибко настраивать поведение каждой особи и организовывать информацию в знания, в связи с чем не является подходящим инструментом для решения текущей задачи.
Evolve 4.0 - это программное обеспечение с открытым исходным кодом, предназначенное для имитационного моделирования жизни одноклеточных и многоклеточных организмов в двумерном среде [25]. Такие организмы могут поедать друг друга, размножаться и объединяться в более сложные организмы. Поведение каждого такого организма задается на встроенном языке программирования, который основан на языке программирования FORTH. Как и DigiHive, Evolve 4.0 является реализацией клеточного автомата, и не предоставляет средств для накопления информации и ее обобщения в знания.
Framsticks - это свободное программное обеспечение для имитационного моделирования поведения искусственных организмов в трехмерной виртуальной среде [26]. Каждый организм состоит из «тела» и «мозга». Тело представляет собой совокупность базовых частей вроде статических частей, мускулов (которые способны двигать статические части), рецепторов (воспринимающие информацию из внешней среды) и сочленений между различными частями. Мозг такого организма является искусственной нейронной сетью, контролирующей поведение отдельных частей. Эволюция организмов производится с помощью функции приспособленности этого организма (например, показатель скорости передвижения), которую организм будет пытаться оптимизировать. С помощью Framsticks возможно построить сложные и интересные организмы, но из-за того, что «мозг» организма является искусственной нейронной сетью, неподходящей для предлагаемой модели представления знаний, данное программное обеспечение не подходит в качестве инструмента имитационного моделирования анимата.
NetLogo - это программное обеспечение с открытым исходным кодом для имитационного моделирования естественных и социальных явлений [27]. С помощью NetLogo возможно проводить имитационное моделирование поведения искусственных организмов в виртуальной среде. Обладает большим количеством инструментов для расчета статистик имитационного моделирования. Программы задаются на собственном языке программирования, и, как и в случае с другими похожими программами, такой язык в силу своей простоты не предоставляет возможности для реализации предлагаемой модели представления знаний.
Polyworld - это программное обеспечение с открытым исходным кодом для имитационного моделирования поведения аниматов в виртуальной среде [28]. Каждый анимат может заниматься поиском еды, размножаться, сражаться с другими агентами и охотиться на них. Поведение аниматов контролируется с помощью искусственных нейронных сетей. Как и в случае с Framsticks, Polyworld не подходит для текущей задачи из-за возможности контроля поведения анимата только с помощью искусственных нейронных сетей.
Для создания программного обеспечения имитационного моделирования модели поведения необходим язык программирования, позволяющий как реализовать задуманную концепцию, так и обеспечивающий легкую переносимость на другие языки программирования за счет своей наглядности. Встроенные языки программирования или описания рассмотренных программ имитационного моделирования не подходят для реализации предлагаемого метода в силу ограниченности своих возможностей. Кроме Breve, которая не подходит по вышеназванным причинам, не было найдено программы имитационного моделирования, которая позволяла бы реализовать свои собственные модели поведения на распространненом языке программирования. Поэтому было принято решение создать свою собственную программу имитационного моделирования и реализовать в ней модель поведения анимата на языке Python, т.к. он обладает как простым и ясным синтаксисом (что позволит легко реализовать предложенный метод на другом языке программирования), так и широкими возможностями.
1.4 Обзор существующих методов представления знаний
Самой простой и очевидной моделью представления знаний является продукционная модель. Она основана на правилах вида «ЕСЛИ (условие), ТО (действие)». Условием является проверка одной или нескольких независимых переменных [5]. Чаще всего такие модели используются в экспертных системах. Сравнивая факты, полученные из внешней среды, такая система может заносить в свою память новые правила. Применяя алгоритм вывода, система может строить гипотезы и заключения. Недостатки этой модели кроются в ее простоте: знания связаны неясным образом, практически невозможно оценить целостную картину знаний и выделить отдельные логически-связные части. Такая система, по сравнению с другими, обрабатывает знания гораздо менее эффективнее.
Логическая модель знаний основывается на концепции, что знания можно представить в виде совокупностей фактов и утверждений, которые рассматриваются как формулы в некоторой логике. Выведение новых знаний производится с помощью правил логического вывода. Логическая модель знаний строится на понятии «формальная система».
Формальная система S определяется как кортеж
Где
T - алфавит теории (конечное множество базовых символов);
F - перечислимое множество формул, построенных из элементов T с использованием некоторого набора синтаксических правил;
A - множество формул, называемых аксиомами;
R - конечное множество правил вывода.
Правило вывода - это отношение вида на множестве F. При этом формула g называется непосредственно выводимой из множества по правилу ; формулы называются посылками, g - следствием или заключением [10].
Наиболее широкое распространение при моделировании ИИ получила формальная система исчисление предикатов первого порядка. Символами исчисления предикатов являются:
1. Символы истинности true и false.
2. Символы констант - символьные выражения, начинающиеся с символа нижнего регистра.
3. Символы переменных - символьные выражения, начинающиеся с символа верхнего регистра.
4. Функциональные символы - это символьные выражения, начинающиеся с символа нижнего регистра. С функциями связывается арность, указывающая на число их аргументов.
Функциональное выражение состоит из константы арности n, за которой следует n термов , заключенных в круглые скобки и отделенных друг от друга запятыми.
Терм исчисления предикатов может быть константой, переменной или функциональным выражением.
Символы в исчислении предикатов также могут представлять предикаты. Они начинаются с буквы нижнего регистра и представляют собой n-арную формулу, возвращающую либо символ true, либо символ false. Если терм обозначает объекты и свойства («кошка», «синий»), то предикат - отношения между несколькими объектами («раскрашен(кошка, синий)») [6].
Недостатки исчисления предикатов заключаются в сложности описания ими непрерывных и неоднозначных явлений.
Для представления знаний одним из широко используемых инструментов являются графы. Рассматривается множество V, состоящее из соединенных некоторым образом точек. Назовем V множеством вершин и элементы - вершинами. Граф
с множеством вершин V есть некоторое семейство сочетаний или пар вида
указывающих, какие вершины считаются соединенными. Такие пары называется ребрами. Если ребра являются неупорядоченными парами, то такое ребро называется неориентированным ребром; иначе ребро называется ориентированным. Граф называется ориентированным, если каждое его ребро ориентировано, и неориентированным, если каждое его ребро является неориентированным [12].
В психологии графы используются для построения модели долговременной памяти человека. В общем виде в таких графах каждая вершина представляет собой некоторую сущность, а дуги между ними являются ассоциациями. В модели Куиллиана «Обучаемая система, понимающая язык» каждая такая сущность может принадлежать к одному из двух типов - элементу (структура, которая соответствует объекту, событию или идее) или свойству (сообщающую некоторую информацию об элементе), ассоциации между ними называются «стрелками» и связывают элементы друг с другом и с принадлежащими им свойствами [Клацки]. Андерсон и Боуэр разработали модель «Ассоциативная память человека», в которой ассоциации делятся на несколько типов, в отличие от модели Куиллиана [Клацки]. Сэлз использовал графы для представления иерархии понятий и наследования свойств и разработал теорию схематического упреждения, которая повлияла на работы по фреймам и схемам в ИИ. Такие теории, которые определяются значение объекта в терминах сети ассоциаций с другими объектами, называются ассоционистскими теориями. [6]
С точки зрения такой теории восприятие объекта происходит через некоторые понятия, которые являются частью всего нашего знания о мире и связываются соответствующими ассоциациями с другими понятиями. Эти связи представляют свойства и поведение объекта, к примеру, понятия «улитка», «раковина», «медленный» и «рога» ассоциативно связаны друг с другом на основании нашего предыдущего опыта (безусловно, исключая опыт людей, которые не видели улиток, но видели раковины и рогатый скот). Наше знание об улитках и истинность утверждений вида "улитка медленная" возникают из этой сети ассоциаций. Графы оказались идеальным средством для формализации ассоционистских теорий знаний за счет точного представления отношений посредством дуг и узлов.
Одной из первых моделей представления знаний являются семантические сети, которой, по сути, является модель Куиллиана. Семантическая сеть представляет знания в виде графа, узлы которого соответствуют фактам или понятиям, а дуги - отношениям или ассоциациям между понятиями. Как узлы, так и связи обычно имеют метки. [6]
Разделяют шесть видов семантических сетей, которые отличаются главным образом именами узлов, связей и выводами, которые можно делать в этих структурах [13]:
1. Definitional networks акцентированы на отношении «является чем-то» между некоторым типом и его подтипом. Такая сеть позволяет строить иерархии типов, поддерживая свойство наследия, т.е. копирования свойств супертипа его подтипами. Информация в таких сетях считается истинной по умолчанию.
2. Assertional networks - это сети для утверждения предположений. Информация в таких сетях считается правдивой, пока на ней не висит специальная метка «ложь».
3. Implicational networks используют отношение «следствие» как основное отношение между вершинами сети. Такие сети могут быть использованы для представления причин или выводов.
4. Executable networks включают в себя специальные механизмы, такие как передача меток или выполнение некоторых процедур, которые могут выполнять логический вывод или искать образы и ассоциации.
5. Learning networks - это сети с возможностью изменять свою структуру в зависимости от новой информации, поступившей в них.
6. Hybrid networks комбинируют в себе две или более семантические сети, которые взаимодополняют и взаимодействуют друг с другом.
Дальнейшее развитие семантические сети получили в виде теории фреймов и концептуальных графов.
Фрейм является способом представления знаний, который был разработан М. Минским. Основная идея фрейма заключается в следующем: когда агент попадает в новую ситуацию (или изменяет текущую так, что она становится новой), он загружает из памяти структуру, которая называется фреймом. Фрейм - это структура данных, представляющая собой некоторую обобщенную или стереотипную ситуацию, понятие, объект, категорию или иную сущность, которая обладает атрибутами и связана отношениями с другими фреймами. Каждому фрейму соответствует некоторая информация о том, как использовать этот фрейм, что ожидать на следующем шаге и что делать в случае, если ожидания не выполняются. [11] Фреймы - это схема представления знаний, ориентированная на включение в строго организованные структуры данных неявных (подразумеваемых) информационных связях, существующих в предметной области. Это представление поддерживает организацию знаний в более сложные единицы, которые отображают структуру объектов этой области. [6] Фактически, по своей структуре фрейм представляет собой набор ячеек, каждая из которых содержит специальную информацию. Ячейки бывают следующих видов в зависимости от хранимой информации:
1. Данные для идентификации фрейма.
2. Взаимосвязь этого фрейма с другими фреймами. Фрейм «улитка» может быть подтипом для фрейма «Gastropoda», который, в свою очередь, может служить подтипом фрейма «Mollusca».
3. Набор требований для фрейма, которые используются для определения соответствия новых объектов стереотипу данного фрейма. К примеру, улитка должна иметь раковину.
4. Набор процедур, используемых в заданных случаях.
5. Значения ячеек, определенные по умолчанию.
6. Информация для нового экземпляра. Некоторые ячейки могут оставаться незаполненными до того, пока не понадобиться определить информацию в них для отдельного экземпляра или решения некоторой задачи.
По аналогии с семантическими сетями, фреймы позволяют организовать иерархию знаний. При этом фреймы расширяют возможности семантических сетей, позволяя представлять сложные объекты не в виде большой семантической структуры, а в виде единой сущности: в такой сети каждое понятие представляется узлами и связями на одном и том же уровне детализации. Уровень детализации определяется текущей задачей: для одних целей необходимо рассматривать объект как единое целое, в то время как для других - как совокупность частей, учитывая детали его внутренней структуры. Такая сетевая модель позволяет естественным образом представить стереотипные сущности, классы, наследование и значения по умолчанию.
Хотя фреймы, подобно логическим и сетевым представлениям, являются мощным средством, многие проблемы организации сложных баз знаний все же должны решаться на основе опыта и интуиции программиста. [6] Фреймы являются очень обобщенным инструментом, и каждая задача требует от программиста своей реализации фреймов, учитывая специфику решаемой проблемы.
Концептуальные графы, разработанные Дж. Ф. Сова в качестве инструмента запросов на естественном языке к базам данных [14] -- это конечный, связанный, двудольный граф. Узлы графа представляют понятия (конкретный или абстрактный объект в мире рассуждений), или концептуальные отношения (которые включают одно или несколько понятий). Метки дуг в концептуальных графах не используются. [6] Конкретные объекты - это фактические объекты из окружающего мира (домашняя кошка). В то же время, возможно сформировать некоторый обобщенный образ похожих объектов (абстрактная кошка). Концептуальные отношения описывают отношения, включающие одно или несколько понятий - за счет этого на языке концептуальных графов легко описывать отношения любой арности.
Каждый концептуальный граф является некоторым высказыванием, причем он может быть любой сложности, но должен быть конечным. База знаний, построенная на основе концептуальных графов, будет представлять собой набор таких высказываний.
Каждое понятие в концептуальном графе относится к какому-либо типу. Множество таких типов можно частично упорядочить с помощью введения операции «?» - операции принадлежности к подтипу. Если s и t - типы и s ? t, то говорят, что t - это подтип s, s - это супертип t.
Над концептуальными графами определены правила, позволяющие выводить новые графы из имеющихся графов. Каждое правило оказывает один из следующих возможных эффектов на логические отношения между исходным графом u и результирующим графом v [14]:
1. Эквивалентность. Правила копирования и упрощения генерируют граф v, эквивалентный исходному: . Правило копирования позволяет сформировать граф, полностью идентичный исходному. Правило упрощения позволяет сокращать одинаковые отношения, удаляя полные копии отношений вместе с дугами. Эквивалентные графы являются истинными в полностью одинаковых моделях.
2. Специализация. Правила объединения и ограничения создают граф v, который включает в себя исходный: . Правило объединения позволяет интегрировать два графа в один, сливая идентичные узлы в один узел. Правило ограничения позволяет заменить узлы графа узлами, представляющими их специализацию.
3. Обобщение. Правила разделения и расширения формируют граф v, который включает в себя исходный граф: , разделяя граф на подграфы или заменяя узлы графы на их обобщение соответственно.
Концептуальные графы являются мощным инструментом для представления знаний, во многом потому, что они очень близки к естественному языку. С другой стороны, как в случае с фреймами и семантическими сетями, их чрезвычайная абстрактность и широта требует от программиста реализации собственной версии графа под конкретную задачу.
В повседневной жизни очень часто присутствуют явления и понятия, которые сложно формально описать в рамках двоичной логики из-за многозначного и неточного характера этих явлений. Данную проблему помогает разрешить инструмент нечетких множеств, разработанный Л. Заде. Концепция, на котором строится теория нечетких множеств, заключается в том, что принадлежность к множеству может определяться некоторой функцией, принимающей непрерывные значения, в отличие от дискретных отношений «принадлежит» (или «истина») и «не принадлежит» (или «ложь»).
Пусть X - некоторое (четкое) множество точек (или объектов). Нечетким множеством в некотором непустом множестве X, что обозначается как , называется множество пар:
где функция принадлежности нечеткого множества A:
Эта функция приписывает каждому элементу степень его принадлежности к нечеткому множеству A, при этом можно выделить три случая:
1. означает полную принадлежность элемента x к нечеткому множеству A ().
2. означает отсутствие принадлежность элемента x к нечеткому множеству A ().
3. означает частичную принадлежность элемента x к нечеткому множеству А.
Нечеткое множество А равно нечеткому множеству В, что записывается как А=В, тогда и только тогда, когда
Над нечеткими множествами определен набор операций, позволяющий выводить новые множества.
1. Пересечением нечетких множеств называется нечеткое множество с функцией принадлежности
2. Алгебраическим произведением нечетких множеств называется нечеткое множество , определенное как
3. Суммой нечетких множеств называется нечеткое множество с функцией принадлежности
4. Дополнением нечеткого множества называется нечеткое множество с функцией принадлежности
Неоднозначные понятия, например, «холодно», «тепло» и «горячо» очень удобно представлять в виде нечетких множеств. Каждое такое понятие будет являться нечетким множеством над множеством всех возможных температур. После того, как будет определена температура, это понятие можно использовать в дальнейших рассуждениях: «если холодно - спрячься». Такие рассуждения выглядят естественными по отношению к живым существам: важно понять, что оппонент близко и с ним нужно сражаться, а не какое точное расстояние до него.
Нечеткие множества в сочетании с другими моделями представления знаний создают очень интересный и практичный симбиоз, к примеру, нечеткие правила и нейро-нечеткие системы [7], которые оперируют нечеткими множествами и позволяют описывать многозначные процессы уже проработанными инструментами этих моделей в сочетании со спецификой аппарата нечетких множеств.
Биологические исследования часто служат толчком для создания новых инструментов и алгоритмов обработки информации. Одним из таких инструментов являются искусственные нейронные сети, представляющие собой упрощенную модель биологических нейронных сетей.
Мозг представляет собой чрезвычайно сложную, нелинейную, параллельную систему обработки информации. Он обладает способностью организовывать свои структурные компоненты, называемые нейронами, так, чтобы они смогли выполнять конкретные задачи (распознавание образов, обработку сигналов чувств, моторные функции) во много раз быстрее, нежели компьютеры. [4] Функционирование каждого нейрона заключается в пропускании нервных импульсов или возбуждений, сгенерированных некоторым внешним источником, вдоль своих отростков. Результатом такого процесса может стать, к примеру, сокращение мышцы или активация следующего нейрона. Тело нейрона называется сомой, из которого выходят два типа отростков: дендриты, по которым поступают входные импульсы, и аксон, по которым нейрон передает выходной импульс. Аксон на своем конце имеет некоторое число синапсов, которые соединяются с дендритами других нейронов, причем такое число связей могут быть огромное: каждый нейрон может принимать и передавать сигналы тысячам других нейронов. Синапсы играют роль репитеров информации, в результате функционирования которых импульс может усиливаться или ослабляться. Поступающие в нейрон сигналы, таким образом, могут оказывать возбуждающее или тормозящее воздействие. Нейрон суммирует все сигналы, и если их алгебраическая сумма превышает некоторое пороговое значение, то сигналы с выхода нейрона пересылается посредством аксона к другим нейронам. [7]
Рассмотрим простейшую модель нейрона. [7] Введем следующие обозначения: - количество входов нейрона; - входные сигналы; - синаптические веса, также называется порогом; - выходной сигнал нейрона; - пороговое значение; - функция активации.
Формула, описывающая функционирование нейрона, имеет следующий вид:
Функция активации может принимать различные формы в зависимости от конкретной модели нейрона. Алгоритм работы нейрона очень простой: каждый входной сигнал перемножается с соответствующим синаптическим весом. Полученные значения суммируются друг с другом и вместе с порогом. В результате возникает сигнал , который передается на вход функции активации. В зависимости от вида этой функции, нейрон посылает некоторое выходное значение другим нейронам. Как правило, это значения 1 и 0 (имеющие смысл «нейрон активирован» и «нейрон не активирован»), но бывают и другие варианты.
Нейроны объединяются в нейронную сеть, выступая в качестве элементарных ячеек обработки информации. Формальное определение нейронной сети следующее [4]: нейронная сеть - это громадный распределенный параллельный процессор, состоящий из элементарных единиц обработки информации, накапливающих экспериментальные знания и предоставляющих их для последующей обработки. Нейронная сеть сходна с мозгом с двух точек зрения:
1. Знания поступают в нейронную сеть из окружающей среды и используются в процессе обучения.
2. Для накопления знаний применяются связи между нейронами, называемые синаптическими весами.
Нейронная сеть состоит из нескольких слоев нейронов. Слой нейронов, куда поступают первичные входные сигналы (информация из внешней среды), называется входным слоем. Слой нейронов, сигнал с которых поступает на выход, называется выходным слоем. Между ними может быть некоторое количество слоев нейронов, называемых скрытыми слоями. Чаще всего сигналами обмениваются только нейроны, расположенные в разных слоях, т.е. нейроны одного слоя не могут передавать друг другу импульсы. Сигнал поступает от входных нейронов и распространяется далее по сети, активирует те или иные нейроны. В качестве выходного значения получают значения функций активации нейронов выходного слоя.
Рис. 1. Схема простой многослойной искусственной нейронной сети
Рисунок простейшей многослойной искусственной нейронной сети. Зеленым обозначен входной слой нейронов, голубым - скрытый слой нейронов, желтым - выходной слой нейронов.
Корректируя синаптические веса, нейронную сеть можно обучить распознавать различные вектора входных сигналов. Недостаток нейронных сетей заключается в том, что из-за своей структуры они в случае отсутствия примеров для обучения с учителем и потенциального многообразия ситуаций.
В качестве отдельного подхода к моделированию ИИ следует выделить агентно-ориентированный подход. Агент - это некоторая сущность, которая воспринимает окружающую среду посредством сенсоров и выполняет в это среде некоторые действия посредством эффекторов. Агент-робот может иметь камеры и различные моторы для взаимодействия со средой. Агент-программа получает данные из сети, файлы и другую информацию, и действует в среде, обрабатывая данные, отсылая пакеты по сети и изменяя файлы. [8] Агент может обрабатывать информацию любым способом, и в наиболее простом виде состоит их трех блоков: сенсорный блок (воспринимающий информацию), аналитический блок (анализирующий информацию из сенсоров и принимающий решение, какое действие необходимо выполнить) и эффекторный блок (реализующий принятое действие во внешней среде).
Рис. 2. Схема простого агента.
Агенты чаще всего объединены в единую систему - мультиагентную систему. Мультиагентная система -- это вычислительная программа, блоки решения задач (решатели) которой расположены в некоторой среде, и каждый из них способен к гибким, автономным и социально организованным действиям, направленным (либо нет) на предопределенные реалии или цели. Таким образом, четырьмя свойствами интеллектуальной агентной системы, включающей программные решатели задач,
являются: ситуативность, автономность, гибкость и социальность. [6]
Ситуативность интеллектуального агента означает, что он воспринимает окружение, в котором действует, и может изменять это окружение. Примеры окружения для ситуативных агентов -- это Internet, среда ведения игры или "обитания" робота.
Автономная система может взаимодействовать со своим окружением без прямого вмешательства других агентов. Для этого она должна контролировать свои действия и внутренние состояния. Некоторые автономные агенты могут также обучаться на своем опыте, чтобы улучшить свое поведение в дальнейшем.
Гибкий агент должен демонстрировать качества отзывчивости или предусмотрительности (в зависимости от ситуации). Отзывчивый агент получает стимулы от своего окружения и вовремя отвечает на них соответствующим образом. Предусмотрительный агент не просто реагирует на ситуацию в своем окружении, но и адаптируется, целенаправленно действует и выбирает альтернативы в различных ситуациях.
Агент является социальным, если он может соответствующим образом взаимодействовать с другими программными или человеческими агентами. Таким образом, агент является частью системы, который выполняет некоторую подзадачу глобальной задачи системы. Взаимодействия социального агента с другими агентами ориентированы на достижение этой задачи и происходят не с помощью вызовов конкретных методов друг друга, а с помощью запросов на выполнение необходимых действий.
Модели представления знаний, как правило, разрабатываются для некоторого класса задач, и вне этого класса не являются настолько эффективными, насколько являются специально разработанные алгоритмы для других классов задач. Для представления знаний при моделировании поведения анимата наиболее подходящими являлись бы методы концептуальных графов и фреймов, но их применение потребовало бы собственной реализации данных моделей, подходящих к текущей задачи. Предложенный метод является методом как наследующим некоторые черты означенных моделей, так и обладающий своими собственными уникальными чертами.
1.5 Метод представления знаний при проектировании модели
Предлагаемая модель ИИ основывается на когнитивных картах - некотором базовом знании о мире. Ключевые идеи, положенные в основу этой концепции, сходны с ключевыми идеями фреймовой модели:
1. Когда анимат попадает в новую ситуацию или изменяет текущую так, что она становится новой, он загружает из памяти набор структур, которые соответствуют объектам данной ситуации.
2. Один и тот же объект, в зависимости от текущей задачи, можно рассматривать и как некоторую целую, неделимую сущность, и как набор отдельных частей. Это зависит от степени детализации этого объекта, необходимой для решения текущей задачи.
Когнитивные карты являются понятием из когнитивной психологии и впервые были введены Толменом. Когнитивная карта - это активная, направленная на поиск информации структура [1]. Такая структура относится к некоторой области внешней среды. Когнитивные карты, которые вводятся ниже, являются, с одной стороны, обобщением психологических когнитивных карт (и в этом они близки к фреймам, семантическим сетям и концептуальным графам), а с другой стороны - некоторым упрощением, поскольку оригинальные когнитивные карты включают в себя гораздо более широкий биологический и психологический аспекты (к примеру, как и каким образом направляется внимание на отдельные объекты на карте), непрактичный при применении в реализации текущих целей.
Неформальное определение когнитивной карты следующее: это отражение ограниченной части окружающей среды в памяти анимата, содержащее воспринятые схемы этой части и отношения между схемами относительно некоторого уровня детализации, на котором следует рассматривать эти схемы. В каждый момент времени у анимата активна только одна когнитивная карта, соответствующая текущей местности. Такая карта называется активной когнитивной картой.
Таким образом, мышление анимата происходит в границах когнитивной карты, которая соответствует воспринятой им некоторой части внешней среды. Информация вне этих границ не будет использована в, т.к. этого не требует текущая когнитивная карта. Информация внутри этих границ будет представлять собой «карту» воспринятых объектов и различных связей между ними. Такие границы могут определяться различными способами, к примеру, это могут быть границы между разными территориями («лес» и «поле») или разными ситуациями («я ищу еду» и «я убегаю от хищника» - разные ситуации), но общее правило - такая карта должна отображать некоторую территорию или стереотипную ситуацию. Для оценки ситуации (и последующего принятия решения) используются специальный вектор оценок.
Опр. Вектор оценок - это упорядоченный набор значений .
В данной работе используется вектор из двух оценок , такой вектор называется общей эмоциональной оценкой или просто эмоциональной оценкой. называется позитивной эмоциональной оценкой, - негативной. Множество всех возможных пар обозначается как W.
Необходимость введения двух шкал оценок вместо одной возникает из-за того, что при взаимодействии с миром возможны неоднозначные ситуации, когда получается как позитивный результат (к примеру, «много еды»), так и негативный одновременно («много еды, но пришлось сильно постараться»). Несколько шкал позволяют создать систему, более гибко адаптирующуюся под окружающую среду.
При анализе какого-либо события или объекта в окружающей среде, анимат в первую очередь ориентируется на эмоциональные оценки окружающей среды. Таким образом, анимату нет необходимости постоянно перебирать все возможные варианты своих и чужих действий, чтобы принять решение - достаточно ориентироваться на имеющиеся оценки и корректировать их при получении нового опыта.
Когда объект на когнитивной карте воспринимается как единое целое, то он называется схемой. Неформальное определение схемы следующее: это отражение опыта взаимодействия анимата с объектом или объектами внешнего мира, и может обозначать конкретное или абстрактное понятие. Множество всех схем обозначается S.
Схемы на каждой когнитивной карте связаны между собой отношениями.
Опр. Отношение r некоторого типа - упорядоченный набор , где , - множество доступных меток для отношения данного типа. Схема s1 называется схемой-источником взаимодействия, схемы - целями.
Множество всех отношений обозначается R.
Разделяют три типа отношений по логике взаимодействия между схемами в отношении.
Опр. Отношение p-типа - это отношение существования пути некоторого вида между схемами s1 и s2. Множество меток Tp формируется следующим образом: все возможные способы перемещения (например, «пешком», «вплавь») имеют либо истинное значение (означающее, что можно переместиться от одной схемы к другой таким типом перемещения), либо ложное (означающее, что невозможно переместиться таким образом от одной схемы к другой), а также могу являться либо отношением к объекту, либо к точке перехода (об этих двух случаях будет сказано ниже). Мощность множества возможных способов перемещения, таким образом, увеличивается в четыре раза по сравнению с множеством возможных типов перемещений, задаваемых исходно программистом. В множество исходных способов перемещений возможно также добавлять метки вида «далеко идти пешком» или «близко идти пешком», которые показывают одинаковые способы перемещения, но имеют разное логическое значение.
Опр. Отношение a-типа - это отношение действия для двух схем, означающее, что s1 может совершить указанное действие по отношению к s2 и получить какой-либо результат. Множество меток содержит все возможные действия и формируется аналогично множеству : для каждого исходно заданного программистом действия в множество добавляется метка, соответствующая невозможности совершения такого действия.
Опр. Отношение c-типа - это отношение композиции для двух схем, означающее, что схема s1 является частью схемы s2 (к примеру, лапы у животного). Множество меток Tc состоит из одной схемы «является частью».
Когнитивная карта - это мысленный образ анимата некоторой ограниченной части внешнего мира. Это может быть абстрактная карта местности или карта взаимодействий между объектами, которые определяются отношениями.
Опр. Когнитивная карта - упорядоченная пара c = <Sc, Rc>:
Множество всех сформированных когнитивных карт обозначается как C.
Опр. Слой p-типа (или p-слой) когнитивной карты c - это когнитивная карта, содержащая только отношения p-типа и схемы, связанные этими отношениями. Этот слой показывает всевозможные пути между объектами на исходной карте.
Опр. Слой a-типа (или a-слой) когнитивной карты c - это когнитивная карта, содержащая только отношения a-типа и схемы, связанные этими отношениями. Такой слой представляет собой карту действий между различными схемами, то, как схемы могут взаимодействовать.
Опр. Слой c-типа (или c-слой) когнитивной карты c - это когнитивная карта, содержащая только отношения c-типа, схемы, связанные этими отношениями и схему «ядро», которое будет введено ниже. Этот слой показывает, из каких частей состоит исходная когнитивная карта, другими словами - структуру исходной когнитивной карты.
Опр. Схема s - это кортеж , где
Когнитивная карта - это когнитивная карта, обязательно содержащая с-слой и опционально содержащая p-слой, показывающая структурные свойства схемы и возможные пути между объектами на этой схеме. Множество - это множество кортежей, описывающих возможное поведение данной схемы как цельного объекта внешней среды. Каждый кортеж является тройкой «когнитивная карта - когнитивная карта - оценка». Первая когнитивная карта с помощью отношений a-типа показывает возможное поведение такой схемы и обязательно содержит эту схему. Вторая когнитивная карта представляет собой результат такого действия. Все схемы и отношения на этой карте в случае совершения действия заменяют похожие схемы на когнитивной карте, где было совершено это действие, или добавляются к ней. Оценка является эмоциональной оценкой данного действия по отношению к анимату. На основании таких оценок действий других схем и самого себя, анимат принимает решения.
Также условимся, что выражения вида «схема содержит схему » или «схема содержит p-слой» будут эквивалентны выражениям «когнитивная карта схемы содержит схему » и «когнитивная карта схемы содержит p-слой» соответственно.
Для ограничения способности к детализации схем, необходимо ввести специальный класс схем. Атомарная схема - это схема, которая не может состоять из частей по некоторым причинам, например, обусловленным входными данными и способами их обработки (такими схемами могут являться схемы «цвет» или «форма»). Атомарная схема может иметь некоторое конкретное значение (цвет = «зеленый», здоровье = «изранен»), значение «неизвестно» или значение «любое».
Для анимата такие атомарные схемы задаются программистом на этапе создания виртуальной окружающей среды для анимата. Когнитивная карта такой схемы пуста. Неатомарные схемы будем называть сложными.
Введем специальные схемы - это пустая схема , схема «ядро» и схема «я» .
Пустая схема (также обозначающаяся как ) - это схема, которая описывает «нулевую» схему, «пустоту», отсутствие схемы. Когнитивные карта, описывающая части этой схемы, и карты поведения таких схем пустые.
Схема «ядро» (также обозначающаяся как K) через отношения c-типа с другими схемами обозначает, что когнитивная карта, на которой содержится такая схема, имеет какие-либо свойства или состоит из каких-либо частей. «Ядро» обозначает некоторый «центр» или «смысл» схемы, которой соответствует эта когнитивная карта. На каждой карте, соответствующей схеме и не являющейся атомарной схемой, присутствует «ядро», но при этом такая схема только одна и несет исключительно функциональную нагрузку, не имеет карт поведения и имеет пустую когнитивную карту.
Схема «я» (также обозначающаяся как I) - это схема, указывающая на самого анимата, показывающая через отношения его связи с другими схемами, своего рода «самовосприятие» анимата - как он понимает, куда можно дойти и с какой схемой и как можно взаимодействовать, что именно он получит от этого взаимодействия, какой результат. Такая схема аналогична упоминанию о себе в третьем лице.
Отношение p-типа показывают принципиальную возможность найти путь определенным способом передвижения между двумя схемами на некоторой когнитивной карте. В зависимости от схемы, необходимо рассмотреть три варианта возможного перемещения между этими схемами. Будем рассматривать некоторое отношение .
В первом случае схема является некоторым объектом на когнитивной карте, до которого можно переместиться от схемы . В таком случае говорится, что анимат находится на определенной схеме в данной когнитивной карте. Логически это означает, что анимат находится рядом с этой схемой. Конкретная реализация понятия «рядом», как и алгоритмы нахождения пути между схемами, ложится на плечи программиста. Схема в этом случае не должна иметь p-слоя своей когнитивной карты. Для такой схемы метка равна «некоторое действие - истина - объект».
Во втором случае схема является некоторой местностью, «внутри» которой можно находиться, но с которой нельзя находиться «рядом». Как правило, это соседние большие территории. Для перехода на когнитивную карту, соответствующую такой схеме, анимату необходимо пройти по соответствующему p-отношению. Для такой схемы метка равна «некоторое действие - истина - точка перехода».
Третий случай представляет собой объединение предыдущих двух случаев. Другими словами, схема содержит как p-слой, так и сама является объектом во внешнем мире, с которым можно находиться «рядом». Для такой схемы существует два отношения. Первое, обозначающая первый случай, имеет метку равную «некоторое действие - истина - объект». Второе отношение имеет метку равную «некоторое действие - истина - точка перехода».
На рисунке показаны p-слои схем, иллюстрирующие все три случая. Схемы «Роща» и «Водоем» являются вторым случаем схемы для «Водоема» и «Рощи» соответственно. Схема «Ручей» является схемой первого случая для «Водоема», «Улей» является схемой первого случая для схемы «Дерево #1», схемы «Дерево #2» и «Дерево #3» являются схемами первого случая для «Рощи» и «Водоема». Схема «Дерево #1» является схемой третьего случая для «Рощи» - она содержит p-слой, перейти на которой можно, если пройти по p-связи между этой схемой и ею самой с меткой «взобраться - истина - точка перехода».
Рис. 3. P-слои когнитивных карт схем «дерево #1», «роща» и «водоем».
Анимату необходимо не только понимать, что происходит на текущем «рабочем» участке внешней среды, но и ориентироваться на более глобальном плане. Для представления карты всей исследованной аниматом территории окружающей среды введем карту путей.
Подобные документы
Математическая модель искусственной нейронной сети. Структура многослойного персептрона. Обучение без учителя, методом соревнования. Правило коррекции по ошибке. Метод Хэбба. Генетический алгоритм. Применение нейронных сетей для синтеза регуляторов.
дипломная работа [1,5 M], добавлен 17.09.2013Выявление закономерностей и свойств, применимых в искусственной нейронной сети. Построение графиков и диаграмм, определяющих степень удаленности между объектами. Моделирование, тестирование и отладка программной модели, использующей клеточный автомат.
дипломная работа [4,1 M], добавлен 25.02.2015Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Преимущества нейронных сетей. Модели нейронов, представляющих собой единицу обработки информации в нейронной сети. Ее представление с помощью направленных графов. Понятие обратной связи (feedback). Основная задача и значение искусственного интеллекта.
реферат [1,2 M], добавлен 24.05.2015Представление знаний в когнитологии, информатике и искусственном интеллекте. Связи и структуры, язык и нотация. Формальные и неформальные модели представления знаний: в виде правил, с использованием фреймов, семантических сетей и нечетких высказываний.
контрольная работа [29,9 K], добавлен 18.05.2009История появления термина "искусственный интеллект". Приоритетные направления его применения: генерация речи, обработка визуальной информации. Нейронные, байесовы, иммунные сети, теории хаоса - примеры реализации современных интеллектуальных систем.
реферат [27,2 K], добавлен 14.01.2011Проблема представления знаний в компьютерных системах – одна из основных проблем в области искусственного интеллекта. Исследование различных моделей представления знаний. Определения их понятия. Разработка операции над знаниями в логической модели.
курсовая работа [51,9 K], добавлен 18.02.2011Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013