Автор: Пользователь скрыл имя, 07 Марта 2013 в 09:14, доклад
Идея, что мир можно рассматривать как в терминах объектов, так и событий, была известна еще в древности. По словам Декарта, люди имеют обектно-ориентированный взгляд на мир. Объектный подход является одним из современных методов реализации программных систем. Он позволяет применять объектную ориентацию для решения всего круга проблем, связанных со сложными системами. Объектный подход является концептуальной основой объектно-ориентированного проектирования, которое использует в качестве метода объектно-ориентированный анализ, а в качестве инструмента для реализации объектно-ориентированное программирование.
Введение
1 Постановка задачи
2 Описание проектного решения
2.1 Объектно-ориентированный анализ
2.1.1 Описание предметной области
2.1.2 Информационная модель системы
2.1.3 Модель состояний
2.1.4 Модель процессов
2.2 Объектно-ориентированное проектирование
2.3 Реализация критериев качества
3 Программная реализация
4 Руководство пользователя
Заключение
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ КЫРГЫЗСКОЙ РЕСПУБЛИКИ ИНСТИТУТ ЭЛЕКТРОНИКИ И ТЕЛЕКОММУНИКАЦИЙ при КГТУ им. И. Раззакова
ДОКЛАД
на тему "Искусственная нейронная сеть"
по курсу " ИНТЕЛЕКТУАЛЬНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ
Подготовил Ступкин В.А.
Группа - ИСТз(т)-1-10
БИШКЕК 2013
Содержание
Введение
1 Постановка задачи
2 Описание проектного решения
2.1 Объектно-ориентированный анализ
2.1.1 Описание предметной области
2.1.2 Информационная модель системы
2.1.3 Модель состояний
2.1.4 Модель процессов
2.2 Объектно-ориентированное проектирование
2.3 Реализация критериев качества
3 Программная реализация
4 Руководство пользователя
Заключение
Введение
Идея, что мир можно рассматривать как в терминах объектов, так и событий, была известна еще в древности. По словам Декарта, люди имеют обектно-ориентированный взгляд на мир. Объектный подход является одним из современных методов реализации программных систем. Он позволяет применять объектную ориентацию для решения всего круга проблем, связанных со сложными системами. Объектный подход является концептуальной основой объектно-ориентированного проектирования, которое использует в качестве метода объектно-ориентированный анализ, а в качестве инструмента для реализации объектно-ориентированное программирование.
Наиболее показательна эффективность применения объектного подхода для больших программных систем, со сложным характером взаимодействия значительного числа элементов. Исследованию этих вопросов и посвящен данный доклад. Цель данного доклада – детальное проектирование и реализация системы, которая реализует процессы создания и взаимодействия группы объектов. В качестве реализуемой системы для реализации была выбрана искусственная нейронная сеть. Она представляет собой объект, который состоит из объектов – слоев. В свою очередь каждый слой состоит из определенного числа элементарных объектов – нейронов.
1 ПОСТАНОВКА ЗАДАЧИ
Целью разработки данной системы является проблема распознавания образов компьютером. В данном докладе реализуется распознавание компьютером печатных букв с помощью многослойной нейронной сети, обучающейся по методу обратного распространения ошибки. Нейронная сеть состоит из нескольких слоев нейронов. Формальная модель нейрона представлена на рисунке 1.1.
x1 w1
A y
x2 w2
xn wn
Рисунок 1.1 – Формальная модель нейрона
Нейрон имеет n входов . Каждый вход представляет собой числовое значение из некоторого диапазона. Для каждого входа диапазон может отличаться. В нейроне значение входа умножается на коэффициент – вес входа-w. , . Результаты перемножения складываются: . От результата вычисляется некоторая функция: y=f(A). Существует несколько разновидностей функций: линейная, нелинейная, скачкообразная.
Слой нейронов состоит из нескольких однотипных нейронов. Однотипные нейроны вычисляют одинаковые функции.
Нейронная сеть состоит из одного или более слоев. Слой принимает выход предыдущего слоя в качестве входа. Нейроны различных слоев могут иметь различные функции.
В данном докладе, используя объектно-ориентированный подход, была разработана искусственная полносвязанная многослойная нейронная сеть. Функцией активации нейронов этой сети является сигмоид, сдвинутый по оси ординат на -0.5. В качестве примера ее использования, реализуется распознавание рисунков печатных букв с помощью этой сети. Для того, чтобы сеть могла распознавать эти буквы, ее необходимо обучить. В данном докладе реализуется алгоритм обучения нейронной сети «С учителем» - метод обратного распространения ошибки. Он заключается в следующем: для каждой обучающей пары вычисляется ошибка на выходе, затем, учитывая эту ошибку, корректируют веса нейронов выходного слоя. Далее вычисляют ошибку для нейроннов слоя, следующего перед выходным, и корректирую веса его нейроннов. И так далее вплоть до входного слоя.
Для распознавания букв другого шрифта, ее необходимо обучить заново. Она может распознавать буквы, поступившие на ее вход с помехами.
Программа, разработанная при выполнении данного доклада, запускается в операционной системе Windows 95/98/2000. Для ее выполнения необходима динамическая библиотека mfc42.dll, которая поставляется вместе с программой.
ОПИСАНИЕ ПРОЕКТНОГО РЕШЕНИЯ
2.1 Объектно-ориентированный анализ
Задача состоит в создании системы распознавания рисунков печатных букв. Данная система реализует это действие, используя для распознавания искусственную нейронную. Нейронная сеть представляет собой один или несколько последовательно связанных между собой слоев нейроннов. Выход каждого предыдущего слоя является входом следующего. Вход первого слоя – это вход сети, а выход последнего – это выход сети. Нейрон представляет собой сумматор, выход которого поступает на вход функционального преобразователя. Выход с функционального преобразователя – выход нейрона. Входы сумматора – входы нейрона. Каждый вход умножается на свой вес. Функция в функциональном преобразователе называется активационной. В данной системе в качестве активационной функции используется сигмоид, сдвинутый по оси ординат на -1/2.
В системе используется многослойная нейронная сеть. Для корректного распознавания букв она должна быть обучена. Обучение нейронной сети состоит в том, веса ее связей корректируются, при предъявлении обучающей пары (входного вектора и соответствующего ему выходного вектора). В данной системе нейронная сеть обучается по методу обратного распространения ошибки.
На вход нейронной сети поступает вектор, который выдает элемент, в котором вводится рисунок буквы. Этот вектор состоит из четырехсот элементов. Пустой клетке соответствует элемент -0.5, а закрашенной клетке – элемент 0.5. Сеть просчитывается, и анализируется выходной вектор нейронной сети. Номеру максимального элемента соответствует номер распознанной буквы. Это позволяет правильно распознать букву, даже когда она поступает на вход с помехами.
Система работает под управлением операционной системы Windows и реализует графический диалоговый режим работы. Ввод рисунков букв осуществляется в специально разработанный для этого графический элемент. Вывод распознанных букв в текстовое поле.
2.1.1 Описание предметной области
Основа проектирования – определение ключевых абстракций, характеризующих словарь предметной области и механизмов управления ими.
Сформируем список ключевых абстракций:
Буквы должны как-то вводиться.
Элемент для ввода.
Выходной вектор.
Буквы должны распознаваться искусственной нейронной сетью.
Нейронная сеть.
Входной слой нейронов.
Скрытые слои нейронов.
Выходной слой нейронов.
Число скрытых слоев нейронов.
Нейронная сеть состоит из слоев нейронов.
Слой нейроннов.
Число нейроннов в слое.
Нейронны.
Слой нейронов состоит из нейронов.
Нейрон.
Входы нейрона.
Число входов.
Веса входов.
Выход.
Таким образом список абстракций включает четыре класса. Из них три: нейронная сеть, слой нейронов и нейрон предназначены для построения нейронной сети, т. е. нейронная сеть состоит из слоев нейронов, а слой нейронов состоит из нейронов. Четвертая абстракция – элемент для ввода, предназначена для ввода рисунков букв.
2.1.2 Информационная модель системы
В данной системе помимо объектов, созданных непосредственно средой программирования для реализации пользовательского интерфейса и обеспечения работы программы в операционной системе, были созданы следующие объекты, исходя из абстракций, выделенных в пункте 2.1.1.
Объект Элемент для ввода представляет собой реальный объект, созданный для ввода рисунка букв. Графическое представление этого объекта на рисунке 2.1.2.1.
Рисунок 2.1.2.1 – Графическое представление объекта Элемент ввода
Все атрибуты данного объекта являются описательными, за исключение контекста устройства, который является указывающим.
Данный объект имеет следующие атрибуты:
- Выходной вектор – вектор, содержащий численное значение для каждой клетки элемента ввода. Если клетка закрашена, то элемент вектора равен 1, в противном случае элемент вектора равен 0.
- Х-координата – х-координата левого верхнего угла элемента в окне программы.
- У-координата – у-координата левого верхнего угла элемента в окне программы.
- Видимость – определяет, выводится ли на экран элемент.
- Контекст устройства – указывает на контекст устройства, в котором выводится объект.
Объект Нейрон является реальным объектом. Является элементарным объектом нейронной сети.
Графическое представление этого объекта представлено на рисунке 2.1.2.2.
Рисунок 2.1.2.2 – Графическое представление объекта Нейрон
Объект нейрон имеет следующие описательные атрибуты:
- Выход – значение выхода нейрона (аксон).
- Входы – вектор входных
- Веса входов – вектор весов входов нейрона
- Число входов – число,
Объект Слой нейронов включает в свой состав массив нейронов и является составной частью нейронной сети. Его графическое представление на рисунке 2.1.2.3.
Рисунок 2.1.2.3 – Графическое представление объекта Слой нейронов
Его атрибут - число нейронов определяет количество нейронов в слое.
Объект Нейронная сеть создан для распознавания рисунков букв. Он представляет собой набор слоев нейронов: входной слой, скрытые слои и выходной слой. Его графическое представление на рисунке 2.1.2.4.
Рисунок 2.1.2.4 – Графическое представление объекта Нейронная сеть
Атрибут этого объекта - число скрытых слоев определяет количество скрытых слоев в нейронной сети.
Опишем связи между объектами в системе.
Каждый слой нейронов включает в себя несколько нейронов, и каждый нейрон может входить только в один слой. В объект Нейрон был довавлен дополнительный атрибут Имя слоя.
Каждая нейронная сеть включает в себя несколько слоев нейронов и каждый слой нейронов входит только в одну нейронную сеть. В объект Слой нейронов был добавлен дополнительный атрибут Имя сети.
Объект элемент ввода не связан с остальными объектами. Нейронная сеть просто использует его выходной вектор в качестве своих входных сигналов.
Руководствуясь приведенными выше объектами и связями, мы можем нарисовать диаграмму информационной структуры системы.
2.1.3 Модель состояний
Изобразим диаграммы жизненных циклов объектов.
Диаграмма жизненного цикла Элемента ввода изображена на рисунке 2.1.3.1.
ввод буквы
сброс
Рисунок 2.1.3.1 – Диаграмма жизненного цикла Элемента ввода
Диаграмма жизненного цикла Нейрона изображена на рисунке 2.1.3.2.
подача входного
вектора
Рисунок 2.1.3.2 – Диаграмма жизненного цикла нейрона
2.1.4 Модель процессов
На рисунке 2.1.4.1 представлена диаграмма потоков данных в данной системе.
ввод рисунка буквы
подача вектора сети
на вход сети
вывод рисунка на экран
Рисунок 2.1.4.1 – Диаграмма потоков данных системы
2.2 Объектно-ориентированное
На рисунке 2.2.1
представлены различные типы моделей,
которые необходимы для объектно-ориентированного
проектирования. Совокупность этих моделей
описывает все необходимые
Эти четыре модели (логическая и физическая структуры с динамическими и статическими аспектами) дают возможность смотреть на проект с различных точек зрения.