Интеллектуальные информационные системы. Демонстрация применения и работы нейросетей
Скачать 223 Kb.
|
Министерство образования и науки РФ Государственное образовательное учреждение высшего профессионального образования «ВЛАДИМИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕСТИТЕТ им. А. Г. и Н. Г. Столетовых» Кафедра «Управление и информатика в технических и экономических системах» ЛАБОРАТОРНАЯ РАБОТА по дисциплине: «Интеллектуальные информационные системы»на тему: «Демонстрация применения и работы нейросетей» Принял: Васильев Д.Н. Выполнил студент: Сенцов А.Д. Группа: ЗПИсд-111 Владимир 2014 Задание: изучить области применения нейросетей по демонстрационным примерам; сформулировать типы задач, решаемых с использованием нейросетей; составить таблицу, включив в нее все рассмотренные в примерах архитектуры
для указанных в варианте архитектур нарисовать схему сети и привести краткие описания. По демонстрационному примеру изучить возможности оболочки NeuroShell. По демонстрационному примеру изучить работу нейросети. Изучаем области применения нейросетей по демонстрационным примерам. Авионика: обучаемые автопилоты, распознавание сигналов радаров, адаптивное пилотирование сильно поврежденного самолета, беспилотные летательные аппараты. Автоматизация производства: оптимизация режимов производственного процесса, контроль качества продукции, мониторинг и визуализация многомерной диспетчерской информации, предупреждение аварийных ситуаций, робототехника. Безопасность и охранные системы: распознавание лиц; идентификация личности по отпечаткам пальцев, голосу, подписи, лицу; распознавание автомобильных номеров, анализ аэрокосмических снимков, мониторинг информационных потоков в компьютерной сети и обнаружение вторжений, обнаружение подделок. Ввод и обработка информации: распознавание рукописных текстов, отсканированных почтовых, платежных, финансовых и бухгалтерских документов. Геологоразведка: анализ сейсмических данных, ассоциативные методики поиска полезных ископаемых, оценка ресурсов месторождений. Интернет: ассоциативный поиск информации, электронные секретари и автономные агенты в интернете, фильтрация информации, блокировка спама, автоматическая рубрикация новостевых лент, адресные реклама и маркетинг для электронной торговли. Медицина: постановка диагноза, обработка медицинских изображений, мониторинг состояния пациента, анализ эффективности лечения, очистка показаний приборов от шумов. Политологические и социологические технологии: предсказание результатов выборов, анализ опросов, предсказание динамики рейтингов, выявление значимых факторов, кластеризация электората, исследование и визуализация социальной динамики населения. Связь: сжатие видеоинформации, быстрое кодирование-декодирование, оптимизация сотовых сетей и схем маршрутизации пакетов. Экономика и бизнес: прогнозирование временных рядов (курсов валют, цен на сырьё, объемов продаж и т.д.), автоматический трейдинг, оценка рисков невозврата кредитов, предсказание банкротств, оценка стоимости недвижимости, выявление переоцененных и недооцененных компаний, рейтингование, оптимизация товарных и денежных потоков, считывание и распознавание чеков и документов, безопасность транзакций по пластиковым картам. Сформулируем некоторые типы задач, решаемых с использованием нейросетей. Классификация. Стоит отметить, что задачи классификации (вроде распознавания букв) очень плохо алгоритмизуются. Если в случае распознавания букв верный ответ очевиден для нас заранее, то в более сложных практических задачах обученная нейросеть выступает как эксперт, обладающий большим опытом и способный дать ответ на трудный вопрос. П римером такой задачи служит меди-цинская диагностика, где сеть может учитывать большое количество число-вых параметров (энцефалограмма, дав-ление, вес и т.д.). Конечно, «мнение» сети в этом случае нельзя считать окон-чательным. Нейросетевой подход особенно эффективен в задачах экспертной оцен-ки по той причине, что он сочетает в себе способность компьютера к обра-ботке чисел и способность мозга к обобщению и распознаванию. Кластеризация и поиск зависимостей. Кластеризация — это разбиение набора примеров на несколько компактных областей (кластеров), причем число кластеров заранее неизвестно. Кластеризация позволяет представить неоднородные данные в более наглядном виде и использовать далее для исследования каждого кластера раз-личные методы. Например, таким образом можно быстро выявить фальсифицированные страховые случаи или недобросовестные предприятия. Прогнозирование. Задачи прогнозирования особенно важны для практики, в частности, для финансовых приложений. Составим таблицу, включив в нее все рассмотренные в примерах архитектуры.
Нарисуем схему сети и приведем краткое описание. Сети нейронного распространения: Однослойный персептрон Многослойный персептрон Сеть радиальных базисных функций Рекуррентные с обратной связью сети: Соревновательные сети SOM Кохонена Сеть Хопфилда Модели ART Однослойный персептрон. Однослойный персептрон способен распознавать простейшие образы. Отдельный нейрон вычисляет взвешенную сумму элементов входного сигнала, вычитает значение смещения и пропускает результат через жесткую пороговую функцию, выход которой равен +1 или -1. В зависимости от значения выходного сигнала принимается решение: +1 - входной сигнал принадлежит классу А, -1 - входной сигнал принадлежит классу В. Многослойный персептрон. Многослойный персептрон представляет собой обобщение однослойного персептрона Розенблатта. Количество входных и выходных элементов в многослойном персептроне определяется условиями задачи. Сомнения могут возникнуть в отношении того, какие входные значения использовать, а какие нет. Вопрос о том, сколько использовать промежуточных слоев и элементов в них, пока совершенно неясен. В качестве начального приближения можно взять один промежуточный слой, а число элементов в нем положить равным полусумме числа входных и выходных элементов. Сеть радиальных базисных функций. Сеть радиальных базисных функций (RBF-сеть) - нейронная сеть прямого распространения сигнала, которая содержит промежуточный (скрытый) слой радиально симметричных нейронов. Такой нейрон преобразовывает расстояние от данного входного вектора до соответствующего ему "центра" по некоторому нелинейному закону (обычно функция Гаусса). Нейроны выходного слоя RBF-сети имеют линейные активационные функции. Соревновательные сети. Нейронные сети с алгоритмом обучения по методу соревнования. В таких сетях нейроны конкурируют друг с другом за право быть "победителем". К соревновательным сетям относятся нейронные сети группы "победитель получает все" ("winner takes all"), самоорганизующиеся карты Кохонена. SOM Кохонена. Самоорганизующаяся карта состоит из компонент, называемых узлами или нейронами. Их количество задаётся аналитиком. Каждый из узлов описывается двумя векторами. Первый — т. н. вектор веса m, имеющий такую же размерность, что и входные данные. Второй — вектор r, представляющий собой координаты узла на карте. Обычно узлы располагают в вершинах регулярной решётки с квадратными или шестиугольными ячейками. Изначально известна размерность входных данных, по ней некоторым образом строится первоначальный вариант карты. В процессе обучения векторы веса узлов приближаются к входным данным. Для каждого наблюдения (семпла) выбирается наиболее похожий по вектору веса узел, и значение его вектора веса приближается к наблюдению. Также к наблюдению приближаются векторы веса нескольких узлов, расположенных рядом, таким образом если в множестве входных данных два наблюдения были схожи, на карте им будут соответствовать близкие узлы. Циклический процесс обучения, перебирающий входные данные, заканчивается по достижении картой допустимой (заранее заданной аналитиком) погрешности, или по совершении заданного количества итераций. Сеть Хопфилда. Известен некоторый набор двоичных сигналов (изображений, звуковых оцифровок, прочих данных, описывающих некие объекты или характеристики процессов), которые считаются образцовыми. Сеть должна уметь из произвольного неидеального сигнала, поданного на ее вход, выделить ("вспомнить" по частичной информации) соответствующий образец (если такой есть) или "дать заключение" о том, что входные данные не соответствуют ни одному из образцов. В общем случае, любой сигнал может быть описан вектором X = { xi: i=0...n-1}, n – число нейронов в сети и размерность входных и выходных векторов. Каждый элемент xi равен либо +1, либо -1. Обозначим вектор, описывающий k-ый образец, через Xk, а его компоненты, соответственно, – xik, k=0...m-1, m – число образцов. Когда сеть распознa ет (или "вспомнит") какой-либо образец на основе предъявленных ей данных, ее выходы будут содержать именно его, то есть Y = Xk, где Y – вектор выходных значений сети: Y = { yi: i=0,...n-1}. В противном случае, выходной вектор не совпадет ни с одним образцовым. Модели ART. Нейроны входного слоя соединены с соответствующими нейронами первого слоя, блоком сброса R и блоком управления G. Каждый нейрон первого слоя соединён со всеми нейронами второго слоя и блоком сброса R. Нейроны второго слоя соединены со всеми нейронами первого слоя и блоком управления G. Общая схема функционирования сети выглядит следующим образом. Сигнал через входной слой X подается на нейроны первого слоя, Взвешенные (с помощью матрицы весов B) выходы первого слоя Y0 поступают на входы второго слоя. Взвешенные (с помощью матрицы весов T) выходы второго слоя Y1 возвращаются к первому слою. Выходы первого слоя Y0 и входной вектор X сравниваются, выполняется проверка состояния резонанса, т.е. проверяется "узнала" система образ или нет. Если резонанс не установлен то модифицируется второй слой и процедура повторяется со второго шага. Изучим возможности оболочки NeuroShell. NeuroShell - программа, предназначенная для создания нейронных сетей для изучения и анализа рынка. Программный продукт NeuroShell включает полный набор инструментов и индикаторов, используемых в техническом анализе. Программа работает с различными форматами файлов, включая формат Metastock. Изучим работу нейросети по демонстрационному примеру. Рассмотрим устройство простейшей многослойной нейросети. Любая нейронная сеть состоит из входного слоя и выходного слоя. Соответственно подаются независимые и зависимые переменные. Входные данные преобразуются нейронами сети и сравниваются с выходом. Если отклонение больше заданного, то специальным образом изменяются веса связей нейронов между собой и пороговые значения нейронов. Снова происходит процесс вычислений выходного значения и его сравнение с эталоном. Если отклонения меньше заданной погрешности, то процесс обучения прекращается. Вопросы для проверки. Какие изменения происходят в нейросети при обучении? При обучении сети имеется некоторая база данных, содержащая примеры. Предъявляя пример на вход сети, мы получаем от нее некоторый ответ, не обязательно верный. Нам известен и верный (желаемый) ответ. Вычисляя разность между желаемым ответом и реальным ответом сети, мы получаем вектор ошибки. Алгоритм обратного распространения ошибки - это набор формул, который позволяет по вектору ошибки вычислить требуемые поправки для весов сети. Одну и ту же букву (а также различные изображения одной буквы) предъявляют сети много раз. Этапы создания нейросетевой модели в оболочке NeuroShell? Подготовка файла данных, содержащего примеры того, что Вы хотите предсказать или распознать; Указание, в каких столбцах содержатся независимые переменные (входы нейросети) и в каком зависимая переменная (выход нейросети), т.е. то, что Вы хотите предсказать или классифицировать; Выбор стратегии тренировки - нейросетевую или генетическую; Тренировка сети Использовать ее для предсказания или классификации существующих или новых данных. Какие архитектуры сетей поддерживает NeuroShell? Нейросетевые архитектуры, лежащие в основе программ данной серии, являются самыми последними достижениями научного поиска, результатом которого явилось создание алгоритма "самопостроения" нейронной сети, обладающей рекордными скоростями обучения. Эти программы чрезвычайно просты в использовании. Теперь пользователь должен сосредоточиться только на формулировке задачи, все остальное программы данной серии сделают сами. Чем отличаются NeuroShell и NeuroWindows? Тем, что NeuroShell является полноценной программой, а NeuroWindows — всего лишь 32-битовое дополнение, являющееся версией динамической библиотеки (DLL). Настройки обучения и тестирования нейросетей. Для обучения и тестирования нейронных сетей существует специальные программные средства, называемые программами-нейроимитаторами. Каждая из таких программ обеспечивает обучение заданной сети по заложенному алгоритму (их может быть несколько на выбор), тестирование обученной сети и расчет ошибок сети на обучающей и тестирующей выборках. Входными данными является обучающая выборка (примеры входных значений и соответствующие им выходные значения) и тестирующая выборка. Выходными данными является информация о весовых коэффициентах, активационных функциях, структуре сети и ошибках при тестировании и обучении. Как рассчитывается ошибка цикла обучения нейросети? После многократного предъявления примеров веса сети стабилизируются, причем сеть дает правильные ответы на все (или почти все) примеры из базы данных. В таком случае говорят, что "сеть выучила все примеры", " сеть обучена", или "сеть натренирована". В процессе обучения величина ошибки (сумма квадратов ошибок по всем выходам) постепенно уменьшается. Когда величина ошибки достигает нуля или приемлемого малого уровня, тренировку останавливают, а полученную сеть считают натренированной и готовой к применению на новых данных. Как обучается нейросеть в задаче выделения амплитуды из зашумленного сигнала? Нейросеть обучается в возможности выделения из зашумленного сигнала его полезной составляющей. Как обучается нейросеть в задаче прогнозирования индексов? При тестировании с целью проверки качества обучения нейросети значения, полученные прогнозом, сравниваются с заранее известными значениями временного ряда. Как обучается нейросеть в задаче аппроксимации зависимостей? Стабильность результатов при разных задачах (и разных объемах выборок в этих задачах) говорит, что при обучении нейросети радиционными алгоритмами, минимизирующими только ошибку аппроксимации обучающей выборки, но не эмпирическую ошибку, не нужно стремиться к уменьшению размера нейросети. Стремление к использованию числа признаков, близкого к минимально необходимому для аппроксимации требуемого отклика на обучающей выборке, также чаще всего может ухудшить эмпирическую ошибку. Заключение. В данной лабораторной работе мною проведен ряд исследований в области нейросетей. Изучены области их применения, архитектура и решаемые с помощью них задачи. Рассмотрена программная оболочка NeuroShell. |