Автор: Пользователь скрыл имя, 20 Декабря 2014 в 13:32, курсовая работа
Целью выполнения курсового проекта является расширение теоретических и закрепление практических знаний, полученных в ходе аудиторных и самостоятельных занятий по дисциплине Интеллектуальные информационные системы.
Для достижения поставленной цели необходимо решить следующие задачи:
самостоятельно изучить специальную литературу;
Введение ………………………………………………………………..………. 3
1. Аналитическая часть
1.1 Понятие интеллектуальной информационной системы …….....…. 5
1.2 Понятие нейронных сетей ………………………………….....…….. 8
1.3 Обзор информационных технологий/программных средств для реализации алгоритмов нейронных сетей …………………………………… 11
2. Практическая часть
2.1 Программная среда MATLAB …………………………….….…… 19
2.2 Детальное описание особенностей выполнения демонстрационного примера …………………………………………………….………………….. 25
2.3 Программный код ………………………………………………….. 32
Заключение …................................................................................................... 34
Список литературы ……………………………
Аналоговое исполнение
К преимуществам этой категории аппаратных
средств реализации ИНС следует отнести
высокие скорости обработки информации
и возможности высокой плотности расположения
элементов. Однако тут же дают о себе знать
и недостатки сложность в получении высокой
точности, обусловленная различиями в
компонентах из-за системы допусков при
производстве, различные характеры тепловых
и электромагнитных помех, искажающих
полезный сигнал. Еще одной проблемой
является сложность в долгосрочном хранении
весовых коэффициентов и организации
операций аналогового умножения.
В качестве примера можно привести разработку
Intel 8017NW ETANN (
Гибридное исполнение
Как понятно из названия, эта категория
представляет собой комплекс вышерассмотренных
систем. Разработчики таких проектов пытаются
получить от таких систем преимущества
аналогового и цифрового исполнений. По
большей части это достигается путем связи
между устройствами и датчиками посредством
цифровой составляющей, а обработка полностью
или частично реализуется аналоговыми
методами.
В качестве примера приведем чип Bellcore
CLNN-32, который хранит весовые коэффициенты
в цифровой форме, а производит моделирование
ИНС, используя аналоговую схему. Существуют
проекты, в которых весовые коэффициенты
хранятся в конденсаторах, периодически
подзаряжающихся от внутренних источников
тока. Также примерами гибридных систем
могут служить SU3232 Synapse и NU32 Neuron, разработанные
в лабораториях NeuralSemiconductor, и RN-100, представленный
Ricoh.
Ученые из UniversityofDusseldorf изучают дисфункцию
в искусственных условиях замороженных
мозговых клеток крыс, путем размещения
их на MicroelectrodeArrays (MEAs), параллельно исследуя
их реакцию на различные фармакологические
препараты
Пути развития
В дальнейшем развитие аппаратных средств
на основе ИНС может пойти следующими
путями:
1. Путем усовершенствования методов для
реализации нейросетевых методов на FPGA
(FieldProgrammableGateArray, ПЛИС, Программируемая
Логическая Интегральная Схема), VLSI (VeryLargeScaleIntegration,
СБИС, уровень интеграции, при котором
количество элементов на одной микросхеме
исчисляется тысячами и миллионами).
2. Благодаря исследованиям и внедрению
инновационных алгоритмов построения
ИНС, которые осуществимы аппаратными
средствами.
3. Разработкой промышленного стандарта
нейросетевых алгоритмов высокого уровня
в промышленности.
Первые два пункта более-менее понятны,
поясним, что подразумевается в последнем.
Разработанные методы должны легко адаптироваться
к нуждам промышленности, достаточно просто
реализовываться. Но для этого необходимо
специализированное ПО с полным набором
нейросетевых функций (для цифрового,
аналогового и гибридного исполнений).
Немаловажно и исследование методов внедрения
ИНС в уже существующие системы, создания
на их основе гетерогенных систем. Вообще
говоря, цепь обработки информации может
начинаться с аналоговых датчиков и заканчиваться
аналоговыми исполнительными устройствами,
или система может быть полностью цифровой,
в любом случае необходима оптимизация
на уровне системы, а не отдельных ее составляющих.
А согласно указанным направлениям развития,
все более вероятен переход на новые технологии.
Отметим, что Япония по скорости внедрения
новых интеллектуальных технологий шагает
далеко впереди, обогнав как страны СНГ,
так и страны Европы. Особенно это хорошо
заметно в области бытовой электроники,
где чипы на основе нейронных сетей устанавливаются
в микроволновые печи (Sharp), пылесосы, фото-
и видеокамеры.
Приведем краткий список фирм, уже применяющих
ИНС в их аппаратном исполнении: Ericsson (Англия
и Швеция), PhilipsResearch (Нидерланды), Siemens AG
Munich, Siemens/NixdorfBonn, 3M Laboratories (Europe) GmbHNeuss, XIONICS
DocumentTechnologiesGmbHDortmu
Применение
Ниже приведен далеко не полный список
возможных и перспективных аппаратных
реализаций и сфер применения:
• Системы коммуникаций, модуляторы/демодуляторы,
интеллектуальные антенны, полупроводники
для применения в космической отрасли.
• Идентификация объектов, сжатие изображения,
HDTV, медицинский и биометрический анализ
образов, системы обработки теплового
изображения, анализ материалов.
• Анализ человеческого характера, идентификация
говорящего, распознавание речи, распознавание
рукописного текста.
• Информационный поиск, исследовательский
анализ данных, проверка качества, изучение
функций, автоматический контроль и интеллектуальное
управление, экономическое прогнозирование,
прогнозирование потребления электричества,
автоматическая проверка работоспособности
VLSI и WSI.
Как известно, сложные электрические цепи постоянного тока легко описываются системами линейных уравнений, составленными на основе законов Кирхгофа, - например, методами узловых потенциалов и контурных токов. Для цепей переменного тока необходимо составлять такие уравнения с комплексными элементами. А для моделирования динамических систем и устройств необходимо составлять и решать системы ДУ, чаще всего нелинейных. Матричная система MATLAB – идеальное средство для реализации такого моделирования.
Среда MATLAB, являясь мощной матричной системой, открывает обширные возможности в выполнении численного моделирования как линейных, так и нелинейных систем и устройств, описываемых большими системами уравнений. Такое моделирование предполагает решение системы уравнений состояния достаточно апробированными и хорошо известными численными методами – в том числе на основе рекуррентных и итерационных алгоритмов. Уравнения состояния реальных систем и устройств часто содержат множество нулевых коэффициентов, что порождает разреженные матрицы и массивы. Их аппарат прекрасно представлен в базовой системе MATLAB.
В настоящее время известно множество программных средств моделирования частного характера. Например, для моделирования электронных схем применяются программы схемотехнического моделирования MicroCAP, MicroLOGIC, Pspice, DesignCenter, ElectronicsWorkBench и др. Они обычно содержат обширные библиотеки полупроводниковых и схемных компонентов и представляют результаты в привычном для пользователя виде – например в виде осциллограмм их виртуальных осциллографов или показаний виртуальных вольтметров или амперметров. Однако применение таких систем носит частный и потому довольно ограниченный характер, хотя в своей области многие такие программы являются подлинным шедевром изобретательности их создателей.
Разработчики системы MATLAB+Simulink отказались от конкуренции с разработчиками подобных программ узкого назначения. Они сосредоточили свое внимание на решении куда более важной и сложной задачи – моделирования блочных динамических систем и устройств произвольного назначения. Для этого пришлось с одной стороны существенно расширить библиотеки компонентов таких систем и устройств, а с другой стороны, применить укрупненные модели ряда компонентов, благодаря чему стало возможным моделирование сложных систем и устройств.
Среда MATLAB является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Система использует математический сопроцессор и допускает возможность обращения к программам, написанным на языках Fortran, C и C++.
Среда MATLAB имеет собственный язык программирования, напоминающий BASIC, а также располагает большими возможностями для работы с сигналами, для расчета и проектирования систем связи, цифровых и аналоговых фильтров, различных вычислительных систем. Имеются в наличии и средства для спектрального анализа и синтеза, быстрого преобразования Фурье (БПФ), обработки изображений, Wavelet-анализа. Кроме этого, пользователь может ввести в систему любую новую встроенную команду, оператор или функцию.
При помощи командного окна (рис. 7.1) можно осуществлять все вычисления в режиме калькулятора. При этом можно осуществлять присвоения различным переменным значений и далее пользоваться ими в командном окне. Рабочее пространство среды является удобным средством для просмотра числовых массивов в процессе формирования и отладки вычислительных процедур (программ).
Программирование в среде MATLAB осуществляется путем создания М-файлов с расширением .m (рис. 7.2). Недостатком является отсутствие оператора безусловного перехода GO TO, однако это можно полностью возместить путем структурного программирования с обращением к различным функциям и процедурам. Кроме этого, с помощью встроенных инструментальных средств имеется возможность формировать графический пользовательский интерфейс, значительно облегчающий работу с программами, созданными в среде MATLAB, а также их отладку.
Пакет визуального моделирования Simulink (рис. 7.1) является пакетом расширения среды MATLAB и позволяет осуществлять моделирование поведения динамических линейных и нелинейных систем. Пользователь осуществляет графическую сборку любой системы из отдельных блоков, хранящихся в библиотеках Simulink (рис. 7.3). В результате такой сборки образуется модель исследуемой системы (S-модель), которая хранится в файле с расширением .mdl.
Испытание готовых и отлаженных демонстрационных примеров может создать у малоопытного пользователя иллюзию простоты моделирования. На самом деле в большинстве случаев это возможно только при работе достаточно опытного пользователя, реально проработавшего с тем или иным пакетом расширения не один десяток часов и способного анализировать правоту (или неправоту) своих действий [14].
Малоопытный пользователь, скорее всего, при переходе к моделированию своих систем или устройств, столкнется с множеством неожиданных ошибок. Наиболее характерными из них являются:
– неверное задание параметров моделей;
– нестыковка входных, выходных и управляющих параметров блоков;
– несоответствие блоков по типу;
– ошибочные записи математических выражений;
– неверный выбор метода моделирования и т. д.
Никакая, даже самая обширная фирменная документация не способна отразить все нюансы ошибочного применения системы MATLAB с её пакетами расширения. Поэтому ограничимся лишь некоторыми общими рекомендациями.
Довольно часто причиной ошибок является несоответствие типов блоков и их входных и выходных параметров. В таких случаях надо предусматривать переходные элементы. Наглядный пример – переход от тока к напряжению включением резистора 1 Ом в цепь тока.
Особенно часто нестыковка блоков наблюдается при совместном использовании блоков из разных пакетов расширения, например, из пакетов PowerSystem и Simulink. Размерные величины, используемые в пакете PowerSystemBlockset, зачастую недопустимы для блоков Simulink, использующих безразмерные величины (например, при задании функций).
По-видимому, стоит разумно ограничить применение компонентов из различных пакетов расширения. Как показывает практика, каждый из пакетов расширения имеет довольно широкую сферу применения и позволяет решать множество практически полезных задач. Совместное применение нескольких пакетов расширения системы MATLAB+Simulink требует длительной практики работы в этой системе. Наименьший риск натолкнуться на трудности моделирования имеет место при использовании пакетов расширения группы Blockset, отнесенной к сфере прямого применения с расширением Simulink.
Важным обстоятельством для пользователей MATLAB является тот факт, что система тщательно диагностирует подготовленную модель и допускает её исполнение только после устранения всех обнаруженных ошибок. Сообщения об ошибках появляются в специальных окнах системы. Они достаточно подробны и позволяют наметить меры по устранению ошибок.
Поэтому стоит отметить, что примеры имитационных моделей, приведенные в литературе и в справочной базе данных MATLAB, нуждаются не просто в просмотре, а во внимательном их изучении, а также анализе получаемых выходных результатов моделирования.
2.2. Детальное описание
особенностей выполнения
Для загрузки демонстрационного примера «Обучение персептрона с использованием нормированной функции настройки» достаточно ввести в CommandWindow команду demop5. В окне Figures появится результат работы программы – график, который пытается классифицировать линейно неразделимые вектора. График свидетельствует о неудачи классификации.
Как же работает демонстрационный пример «Обучение персептрона с использованием нормированной функции настройки»?
Персептрон обучается для классификации 5 входных векторов с помощью 2 категорий. Несмотря на то,что одинвходной векторнамного больше, чемдругие,обучение сLEARNPN происходит быстро.
Р определяет последовательность входа для 5 векторов, а Т – последовательность цели (категорию вектора). Построим график для этих векторов с помощью функции PLOTPV.
P = [ -0.5 -0.5 +0.3 -0.1 -40; ...
-0.5 +0.5 -0.5 +1.0 50];
T = [1 1 0 0 1];
plotpv(P,T);
Обратим внимание,
что4входных вектораимеют намного меньшиевеличины, чем пятыйвектор
влевом верхнем углуграфика. Персептрон долженправильно
классифицировать5 входныхвекторовPна
две категории,определенныеТ.
NEWPсоздаетперсептрон.Первый аргумент
определяет ожидаемые диапазоныиз двухвходов.Второй аргумент определяет, чтоесть
только одиннейрон вслое.LEARNPNменее чувствителен
кбольшим изменениямво входныхразмерахвектора, чем LEARNP(по умолчанию).
net = newp([-40 1;-1 50],1,'hardlim','learnpn');
Добавление нейрона инициализирует попытку классификации графика.
Начальные значения равны нулю, так что любой вход даёт тот же результат и классифицирующая линия даже не появляется на графике, но это обучаемо!
holdon
linehandle = plotpc(net.IW{1},net.b{1});
ADAPT – возвращает новый объект сети, который работает лучше как классификатор, выход сети и ошибка. Этот цикл позволяет сети адаптироваться за 3 прохода, график классифицирует линию, и продолжит, пока ошибка не будет равна 0.
E = 1;
net.adaptParam.passes = 3;
while (sse(E))
[net,Y,E] = adapt(net,P,T);
linehandle = plotpc(net.IW{1},net.b{1},
drawnow;
end
Обучение сLEARNPпотребовалось всего 3прохода, а при решениитой же задачи сLEARNPNнеобходимо 32 прохода.Таким образом,LEARNPNработает гораздолучше, чемLEARNPкогда естьзначительные различияво входныхразмерахвектора.
ТеперьSIMможетбыть
использован для классификациилюбого
другого векторавхода.Например, классифицировать входной вектор[0,7; 1,2].
График этой новой точкис оригинальнымобучениемпоказывае
p = [0.7; 1.2];
a = net(p);
Информация о работе Обучение персептрона с использованием нормированной функции настройки