Автор работы: Пользователь скрыл имя, 11 Марта 2012 в 18:47, отчет по практике
В данной практической работе будет исследована проблема распознавания образов с помощью использования искусственных нейронных сетей[1]. Практической частью данной работы является построение нейронной сети (в простом случае персептрона[2]), и обучение данной нейронной сети на множестве образов (графические растровые файлы, содержащие изображения геометрических фигур, цифр и букв английского алфавита). Также отдельной целью стоит уменьшение времени обучения сети и увеличение быстродействия работы самой сети.
1. Введение
2. Тема производственной практики
3. Цель работы
4. Задачи работы
5. Программные средства используемые в процессе производственной практики
6. Общая информация об искусственных нейронных сетях
7. Некоторые известные применения нейронных сетей
8.1. Распознавание образов и классификация
8.2. Прогнозирование
8. Решение задач
8.1. Задача №1 связать изображения фигур с их названиями
8.2. Задача №2. Распознавание рукописных цифр (0-9).
8.3. Задача №3. Распознавание рукописных английских букв (А-J)
9. Заключение
10. Список используемой литературы
Федеральное агентство по образованию РФ
Сочинский государственный университет туризма и курортного дела
Факультет информационных технологий и математики
Кафедра информационных технологий
Отчет
о производственной практике
«Интеллектуальные системы распознавания с использованием искусственных нейронных сетей»
Подготовил студент
Группы 08-ПИЭ
Васильев В.А.
“10” июля 2010
Период проведения с 5 июля – 10 июля.
Защищен “….” …………… 2010 г.
Оценка ………………………………
Члены комиссии:
………………………………………..
………………………………………..
Сочи, 2010 г.
Содержание:
1. Введение
2. Тема производственной практики
3. Цель работы
4. Задачи работы
5. Программные средства используемые в процессе производственной практики
6. Общая информация об искусственных нейронных сетях
7. Некоторые известные применения нейронных сетей
8.1. Распознавание образов и классификация
8.2. Прогнозирование
8. Решение задач
8.1. Задача №1 связать изображения фигур с их названиями
8.2. Задача №2. Распознавание рукописных цифр (0-9).
8.3. Задача №3. Распознавание рукописных английских букв (А-J)
9. Заключение
10. Список используемой литературы
1. Введение
В данной практической работе будет исследована проблема распознавания образов с помощью использования искусственных нейронных сетей[1]. Практической частью данной работы является построение нейронной сети (в простом случае персептрона[2]), и обучение данной нейронной сети на множестве образов (графические растровые файлы, содержащие изображения геометрических фигур, цифр и букв английского алфавита). Также отдельной целью стоит уменьшение времени обучения сети и увеличение быстродействия работы самой сети.
Искусственные нейронные сети прочно вошли в нашу жизнь и в настоящее время широко используются при решении самых разных задач - распознавание речи, звука, диагностика в медицине, анализ и прогнозирование экономических показателей. Сюда относятся также и задачи распознавания сложных процессов и явлений, возникающих, например, при выборе целесообразных действий руководителем предприятия или выборе оптимального управления технологическими, экономическими, транспортными или военными операциями. Активно применяются там, где обычные алгоритмические решения оказываются неэффективными или вовсе невозможными.[1]
2. Тема производственной практики
Тема задания: «Интеллектуальные системы распознавания с использованием искусственных нейронных сетей. Решение задач распознавания графических данных (схем, рисунков и текстов)».
3. Цель работы
Реализация нейронной сети (в простом случае персептрона), и обучение данной нейронной сети на множестве образов (графические растровые файлы, содержащие изображения геометрических фигур, цифр и букв английского алфавита).
4. Задачи работы
o Выбрать подходящее программное средство в среде которого решение поставленных задач будет наиболее удобным.
o Получить общее представление об искусственных нейронных сетях
o Решение задач в области распознавания графических данных.
а) Распознавание геометрических фигур (метод линейных ассоциаций);
б) Распознавание рукописных цифр (0-9);
в) Распознавание рукописных английских букв (А-J);
5. Программные средства используемые в процессе производственной практики
Virtual Box – программный продукт виртуализации (создания VM – виртуальных машин) для операционных систем Microsoft Windows, DOS, Linux, Mac OS X. Существует две версии — свободная и расширенная, различающиеся по функциональности различающиеся по функциональности; полнофункциональная расширенная версия для личного использования распространяется бесплатно.
К ключевым возможностям VirtualBox можно отнести:
o Возможность инсталляции на различных ОС
o Модульность
o Поддержка USB 2.0, когда устройства хост – машины[3] становятся доступными для гостевых ОС
o Экспериментальная поддержка образов жестких дисков VMDK/VMware
o Поддержка виртуализации аудиоустройств
o Поддержка различных видов сетевого взаимодействия (таких как NAT, Host Networking via Bridged, Internal)
o Поддержка дерева сохраненных состояний виртуальной машины (snapshots), к которым может быть произведен откат из любого состояния гостевой системы.
o Поддержка Shared Folders для простого обмена файлами между хостовой и гостевой системами.[5]
ОС Windows XP (кодовое название при разработке — Whistler; внутренняя версия — Windows NT 5.1) — операционная система семейства Windows NT от компании Microsoft. Она была выпущена 25 октября 2001 года и является развитием Windows 2000 Professional. Название XP происходит от англ. experience (опыт). Название вошло в практику использования, как профессиональная версия. [6]
STATISTICA Neural Networks - это среда, предназначенная анализа нейросетевых моделей. Программа имеет следующие возможности.
Самые современные и мощные алгоритмы обучения сети; возможность создавать сложные, практически не ограниченные в размерах комбинации из сетей различных архитектур; выборочное обучение фрагментов нейронной сети; встроенная система Нейро-Мастер – Network Wizard помогающая пользователю принимать решения и выбирать параметры. STATISTICA Neural Networks может работать в среде STATISTICA, но также может использоваться и как самостоятельное приложение (имеется возможность ввода-вывода файлов данных системы STATISTICA; матрицы выходных данных и графики, по желанию пользователя, можно выводить либо в собственной графической среде модуля, либо в среде STATISTICA). [8]
NeuroSolutions универсальный нейропакет фирмы NeuroDimension, Inc предназначен для моделирования широкого круга искусственных нейронных сетей. Основное достоинство описываемого нейропакета состоит в его гибкости: помимо традиционно используемых нейросетевых парадигм[4] (типа полносвязных многослойных нейронных сетей или самоорганизующихся полей Кохонена) нейропакет включает в себя мощнейший редактор визуального проектирования нейронной сети, позволяющий создавать практически любые собственные нейронные структуры и, что немаловажно, собственные алгоритмы их обучения.
Нейропакет NeuroSolutions снабжен мощными и хорошо продуманными средствами визуализации: отображать в каком угодно виде и визуально контролировать можно все, начиная от структуры нейронной сети и кончая процессом и результатом обучения. Наличие мощных средств визуализации выводит данный нейропакет на уровень CAD-систем (систем автоматизированного проектирования), т.е. NeuroSolutions можно считать системой проектирования и моделирования нейронной сети. Пакет NeuroSolutions предназначен для работы в операционных системах Windows'95/NT. Помимо грамотно организованных средств взаимодействия с операционной системой (поддерживается OLE2[5]) нейропакет снабжен также генератором исходного кода и средствами, позволяющими использовать внешние модули при проектировании и обучении нейронной сети.
Пакет поддерживает программы, написанные на языке C++ для наиболее известных компиляторов (Microsoft Visual C++ и Borland С++, а также программы в виде выполняемого кода (в виде DLL[6]). Другими словами, пакет NeuroSolutions представляет собой гибкую открытую систему, которую можно дополнять и модифицировать при необходимости. Внутри пакета имеется встроенный макроязык, позволяющий производить практически любую мыслимую настройку пакета под задачу.[7]
Я сделал выбор в пользу NeuroSolutions, т.к. в отличии от Neural Networks (которая является приложением к программе STATISTICA) - это целая нейросреда, фактически позволяющая конструировать сети произвольной топологии, а также имеет очень наглядный и удобный интерфейс.
6. Общая информация об искусственных нейронных сетях
Искуственные нейронные сети (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса Впоследствии, после разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др. [4, с.363]
В данный момент существует множество подходов к решению задачи распознавания символов. Но вначале независимо от конкретного метода распознавания необходимо провести обработку полученного изображения, к примеру, преобразование цветного изображения к градациям серого, или к черно-белому изображению. Полученное преобразованное изображение подается на вход распознающей системы.
В настоящее время для задач распознавания образов используются искусственные нейронные сети - набор нейронов, соединенных между собой. Искусственные нейронные сети в первом приближении построены по подобию биологической нейронной сети. На вход искусственного нейрона[7]. поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, и все произведения суммируются, определяя уровень активации нейрона. (Рис. 1)
Как правило, передаточные функции всех нейронов в нейронной сети фиксированные, а весы являются параметрами нейронной сети и могут изменяться. Некоторые входы нейронов обозначены как внешние входы нейронной сети, а некоторые выходы - как внешние выходы нейронной сети. Подавая любые числа на входы нейронной сети, мы получаем какой-либо набор чисел на выходах нейронной сети. Таким образом, работа нейронной сети составляется в преобразовании входного вектора в исходный вектор, причем это преобразование задается весами сети. Простейшая нейронная модель, показанная на (рис. 2) называется персептроном и работает по следующему принципу: элемент S умножает каждый вход х на вес w и суммирует взвешенные входы. Если эта сумма больше заданного порогового значения, выход равен единице, в противном случае – нулю. [1]
Персептрон - это некоторый инструмент, который способен "запоминать" ("обучиться") - какой образ относится к какому классу. После такого "обучения", в идеале, он должен уметь правильно "узнавать" и другие образы, не входившие в обучающее множество, но достаточно похожие на них, или сообщать, что образ не похож ни на один из множества обучающих образов. Степень "достаточной похожести" определяется удачностью выбора признакового множества. А способность персептрона "обучиться" зависит от разделимости признакового множества, то есть от уникальности наборов признаков с точностью до класса (иными словами - не пересекаются ли области, ограничивающие свои классы). [2, c.58]
Отличительной чертой нейросетей (НС) является глобальность связей. Базовые элементы искусственных нейросетей - формальные нейроны - изначально нацелены на работу с множественной информацией. Каждый нейрон нейросети, как правило, связан со всеми нейронами предыдущего слоя обработки данных, архитектура нейросетей проста и универсальна. Специализация связей возникает на этапе их обучения под влиянием конкретных данных. На способ обработки информации решающим образом сказывается наличие или отсутствие в сети петель обратных связей. Если обратные связи между нейронами отсутствуют (т.е. сеть имеет структуру последовательных слоев, где каждый нейрон получает информацию только с предыдущих слоев), обработка информации в сети однонаправлена. Входной сигнал обрабатывается последовательностью слоев и ответ гарантированно получается через число тактов равное числу слоев. Наличие же обратных связей может сделать динамику нейросети (называемой в этом случае рекуррентной) непредсказуемой. В принципе, сеть может "зациклиться" и не выдать ответа никогда. Причем, согласно Тьюрингу, не существует алгоритма, позволяющего для произвольной сети определить придут ли когда-либо ее элементы в состояние равновесия [3, c.62].
Вообще говоря, то, что нейроны в рекуррентных сетях помногу раз принимают участие в обработке информации позволяет таким сетям производить более разнообразную и глубокую обработку информации. Но в этом случае следует принимать специальные меры к тому, чтобы сеть не зацикливалась. (Таблица 1).
Сравнение сетей | Без обратных связей (многослойные) | С обратными связями |
Преимущества: | Простота реализации. Гарантированное получение ответа после прохождения данных по слоям. | Минимизация размеров сети - нейроны многократно участвуют в обработке данных. Меньший объем сети облегчает процесс обучения. |
Недостатки: | Требуется большее число нейронов для алгоритмов одного и того же уровня сложности. Следствие - большая сложность обучения. | Требуются специальные условия, гарантирующие сходимость вычислений. |