Телегина_дипломная запискаx

advertisement
МИНОБРНАУКИ РОССИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ
ИМЕНИ АКАДЕМИКА С.П.КОРОЛЕВА
(НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ)» (СГАУ)
Кафедра информационных систем и технологий
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к дипломному проекту на тему
Автоматизированная система аппроксимации плотности
распределения вероятности радиально-базисной нейронной сетью
Дипломник _____________________ /Телегина Д.Д./
Руководитель проекта ____________ /Лезина И.В./
Консультанты___________________ /Куренкова В.П./
_______________________________ /Варфоломеева В.В./
Нормоконтролёр ________________ /Кудрина М.А./
Рецензент ______________________/________________/
Самара 2012
2
3
4
5
РЕФЕРАТ
Дипломный проект.
Пояснительная записка: с, рис., табл., приложения, источников.
АППРОКСИМАЦИЯ,
ПЛОТНОСТЬ
ВЕРОЯТНОСТИ,
НЕЙРОН,
НЕЙРОННАЯ
СЕТЬ, РАДИАЛЬНО-БАЗИСНАЯ НЕЙРОННАЯ СЕТЬ, ВЫБОРКА, ГИСТОГРАММА,
МЕТОД ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ, ГИБРИДНЫЙ МЕТОД,
АЛГОРИТМ
САМООРГАНИЗАЦИИ,
ФУНКЦИЯ
АКТИВАЦИИ,
CASE-
ТЕХНОЛОГИЯ
В дипломном проекте разработана автоматизированная система аппроксимации
плотности распределения вероятности радиально-базисной нейронной сетью. Целью данного
проекта является автоматизация процесса исследования аппроксимативных возможностей
RBF-сети в зависимости от различных параметров и метода обучения, а также входных
данных.
В рамках дипломного проекта изучена предметная область: проведен анализ
распространенных моделей нейронных сетей, применимых для аппроксимации; произведено
обоснование выбора модели сети; рассмотрены различные методы обучения радиальнобазисной сети.
В системе реализована работа с выборками данных (генерация по заданному закону
распределения, сохранение в файл). Обучение сети может быть произведено с помощью
различных алгоритмов: метода обратного распространения ошибки, гибридного алгоритма.
Для
выбора
начальных
значений
параметров
нейронов
реализован
алгоритм
самоорганизации (k-means).
Реализован процесс нейроаппроксимации с помощью обученной сети. Разработан
удобный и понятный пользовательский интерфейс, включающий в себя наглядные графики.
В системе есть возможность сохранить результаты аппроксимации (погрешность, время
обучения, параметры аппроксимирующей нейронной сети) в удобном для анализа и
сравнения виде. Качество аппроксимации оценивается с помощью критерия согласия
Пирсона.
Разработан логический проект автоматизированной системы по методологии UML с
помощью
CASE-средства
Sparx
Enterprise
Architect.
Реализация
программы
была
осуществлена на языке Java 1.6 в среде программирования Intellij Idea 10.3 с использованием
операционной системы Windows 7.
6
Дипломный
рассматриваются
постановка
проект
включает
основные
понятия
изучаемой
предметной
аппроксимации.
Приведен
обзор
задачи
в
себя
четыре
раздела.
В
первом
области,
наиболее
разделе
производится
распространенных
аппроксимативных методов. Обосновывается выбор метода аппроксимации с помощью
нейронной сети типа RBF. В данный раздел входит логический проект системы, с помощью
которого описываются структура автоматизированной системы аппроксимации и основные
принципы ее функционирования.
Во втором разделе приведено обоснование выбора средств проектирования и
разработки системы, оценка системных и эксплуатационных характеристик, а также
результаты исследования аппроксимативных возможностей реализованной RBF-сети.
В третьем разделе рассматриваются вопросы обеспечения безопасности на стадии
разработки автоматизированной системы аппроксимации плотности вероятности радиальнобазисной сетью.
В четвертом разделе проведена оценка экономической целесообразности создания
автоматизированной системы аппроксимации плотности вероятности радиально-базисной
сетью.
7
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ....................................................................................................................................................... 9
1 СИСТЕМОТЕХНИЧЕСКАЯ ЧАСТЬ ........................................................................................................11
1.1 Анализ предметной области ................................................................................................................11
1.2 Постановка задачи ................................................................................................................................12
1.3 Логический проект разрабатываемой автоматизированной системы .............................................32
1.3.2 Средство UML-проектирования Enterprise Architect .....................................................................37
1.3.3 Диаграмма вариантов использования..............................................................................................37
1.3.4 Диаграммы классов ...............................................................................................................................40
1.3.4 Диаграмма состояний............................................................................................................................43
1.3.6 Диаграмма кооперации (Collaboration Diagram).................................................................................47
1.3.7 Диаграмма деятельности (Activity Diagram) .......................................................................................48
1.5 Оценка системных и эксплуатационных характеристик ..................................................................51
1.5.1 Расчет объема ВЗУ ........................................................................................................................51
1.5.2 Расчет объема ОЗУ ........................................................................................................................51
1.5.3 Расчет времени реакции системы ................................................................................................52
1.5.4 Минимальные требования к системе...........................................................................................54
2 КОНСТРУКТОРСКО-ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ...........................................................................54
2.1 Обоснование архитектуры программы ..............................................................................................54
2.2 Выбор и обоснование средств реализации ........................................................................................54
2.2.1 Выбор языка программирования .................................................................................................54
2.2.2 Выбор среды программирования .................................................................................................55
2.2.3 Выбор операционной системы .....................................................................................................56
2.3 Разработка физической модели данных .............................................................................................56
2.4 Описание программной реализации ...................................................................................................56
2.5 Описание интерфейса ..........................................................................................................................58
2.6 Разработка программы и методики испытаний .................................................................................59
2.7 Описание контрольного примера .......................................................................................................60
2.8 Разработка руководства пользователя................................................................................................63
ЗАКЛЮЧЕНИЕ ..............................................................................................................................................64
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ .....................................................................................64
ПРИЛОЖЕНИЕ А ..........................................................................................................................................66
ПРИЛОЖЕНИЕ Б ...........................................................................................................................................75
8
ВВЕДЕНИЕ
Аппроксимация (от лат. approximo - приближаюсь) - замена одних математических
объектов другими, в том или ином смысле близкими к исходным. Аппроксимация позволяет
исследовать числовые характеристики и качественные свойства объекта, сводя задачу к
изучению более простых или более удобных объектов (например, таких, характеристики
которых легко вычисляются или свойства которых уже известны) [1]. Основными
преимуществами аппроксимативного подхода являются:

наглядность и компактность полученного аналитического выражения, легкость
визуализации;

возможность использования аналитического выражения для дальнейших
аналитических исследований и преобразований, с целью получения обобщенных
вероятностных характеристик;

сокращения объема хранимых данных. [2]
Задача аппроксимации в данном проекте решается с использованием нейронной сети
радиально-базисного типа. Нейронные сети имеют ряд преимуществ перед другими
методами (полиномиальная аппроксимация, аппроксимация методом наименьших квадратов
и др.):

богатые возможности. Нейронные сети – мощный метод моделирования,
позволяющий воспроизводить чрезвычайно сложные зависимости. Нейросети нелинейны
по своей природе. Кроме того, нейронные сети справляются с «проклятием размерности»,
которое не позволяет моделировать линейные зависимости в случае большого числа
переменных;

простота в использовании. Нейронные сети учатся на примерах. Пользователь
нейронной сети подбирает представительные данные, а затем запускает алгоритм обучения,
который автоматически воспринимает структуру данных. От пользователя, конечно,
требуется какой-то набор эвристических знаний о том, как следует отбирать и
подготавливать данные, выбирать нужную архитектуру сети и интерпретировать
результаты, однако уровень знаний, необходимый для успешного применения нейронных
сетей, гораздо скромнее, чем, например, при использовании традиционных методов
статистики

параллельная обработка информации одновременно всеми нейронами, что
обеспечивает ускорение процесса обработки информации;

нечувствительность к ошибкам, возникающих в отдельных контактах
(благодаря большому количеству межнейронных соединений);
9

способность к обобщению [3].
В дипломном проекте ставится задача разработки структуры радиально-базисной
нейронной сети, автоматизации генерации и хранения входных выборок по заданным
законам распределения, обучение сети и аппроксимация плотности распределения
вероятности с помощью обученной нейронной сети. В ходе дипломного проектирования
осуществляется разработка информационно-логической модели системы по методологии
UML, а также логической и физической модели базы данных для хранения информации о
входных выборках, коэффициентах нейронов и выходных данных о результатах
аппроксимации в нейронной сети.
10
1 СИСТЕМОТЕХНИЧЕСКАЯ ЧАСТЬ
1.1 Анализ предметной области
В
дипломном
проекте
в
соответствии
с
заданием
определяется
плотность
распределения вероятности путем аппроксимации радиально-базисной нейронной сетью.
Методы аппроксимации плотности вероятности можно разбить на два крупных класса:
методы параметрической аппроксимации и методы непараметрического оценивания.
Методы первого класса основаны на предположении о конкретном функциональном
виде искомой плотности вероятности, который зависит от конечного набора параметров,
число которых заранее известно. Здесь для получения оценки плотности вероятности нужно
оценить
параметры
аппроксимации
модели.
ограничена
Практическая
требованием
пригодность
методов
принадлежности
параметрической
оцениваемой
плотности
вероятности выбранному функциональному параметрическому классу, что на практике не
всегда выполнимо.
В нашем случае более целесообразно применение методов второго класса –
непараметрического оценивания, к которым относится и приближение функций многих
переменных, осуществляемое специальными формальными «устройствами» - нейронными
сетями [2].
Аппроксимация плотности вероятности поломок производится с помощью нейронной
сети, т.к. нейронная сеть имеет в данном случае ряд преимуществ перед другими
аппроксимативными методами. Главное заключается в том, что аппроксимирующая система
на базе искусственных нейронных сетей может выявлять зависимости, не поддающиеся
обнаружению при использовании других методов обработки информации.
Нейронные
сети
могут
аппроксимировать
непрерывные
функции.
Доказана
обобщённая аппроксимационная теорема: с помощью линейных операций и каскадного
соединения можно из произвольного нелинейного элемента получить устройство,
вычисляющее любую непрерывную функцию с некоторой наперёд заданной точностью. Это
означает, что нелинейная характеристика нейрона может быть произвольной: от
сигмоидальной до произвольного волнового пакета или вейвлета, синуса или многочлена. От
выбора нелинейной функции может зависеть сложность конкретной сети, но с любой
нелинейностью сеть остаётся универсальным аппроксиматором и при правильном выборе
структуры
может
достаточно
точно
аппроксимировать
функционирование
любого
непрерывного автомата [9].
В настоящее время нейронные сети широко используются при решении прикладных
инженерно-физических задач и в научных исследованиях. Существует много программных
11
продуктов для работы с нейронными сетями. В данном курсовом проекте был проведен
анализ наиболее известных пакетов относительно возможности аппроксимации с их
помощью. Краткие результаты анализа приведены в таблице 1 [5, 6, 7]. Рассмотрены такие
известные программные продукты, как Matlab Neural Network Toolbox, STATISTICA Neural
Networks, NeuroPro, BrainMaker, NeuroSolutions, NeuroShell. Они отличаются по количеству
функций, уровню сложности освоения программы, удобству в использовании, наглядности
интерфейса и, что немаловажно, по цене.
Из таблицы 1 можно сделать следующий вывод. Несмотря на существование большого
количества программных продуктов для моделирования, отладки и тестирования нейронных
сетей различного вида, ни один полностью не удовлетворяет одновременно всем
требованиям:
 простота и понятность работы с программой;
 приспособленность работы для аппроксимации функции радиально-базисной сетью;
 низкая цена и доступность для обычного пользователя (не для коммерческого
использования).
Этот факт подтверждает актуальность данного курсового проекта. В курсовом проекте
необходимо разработать программный комплекс, характеристики которого указаны в
таблице 2.
1.2 Постановка задачи
В результате анализа предметной области и существующих систем-аналогов для
работы с нейронными сетями мы определили несколько требований к программному
продукту.
В курсовом проекте предстоит разработать программный комплекс, который бы
позволял производить аппроксимацию плотности вероятности поломок оборудования, с
простым и понятным пользовательским интерфейсом и требующим минимальных знаний
для настройки нейронной сети.
Задача аппроксимации функции для нейронной сети формируется как задача
контролируемого обучения
(обучение с учителем). Суть задачи состоит в следующем.
Имеются значения функции в отдельных точках {𝑥𝑖 , 𝑦𝑖 }, система базисных функций (в
нашем случае радиально-базисных) и векторов регулируемых весовых коэффициентов 𝑤𝑗 .
12
Таблица 1 – Сравнительный анализ программных продуктов для аппроксимации РБ нейронной сетью
Характеристика/Пакет
1.Наличие
в
пакете
Matlab
Neural
STATISTICA
Network Toolbox
Networks
Есть
Есть
Neural
NeuroPro
BrainMaker
NeuroSolutions
NeuroShell
Нет
Есть
Есть
Нет
Требуется
Неопытному
Есть
выбранной модели НС
(РБ)
2.Сложность работы в
Для
программе
необходимо
структуры нейронной сети
поверхностное
пользователю сложно
способов
изучить как саму
и
знание нейронных
разобраться в работе
нейронной сети, в т.ч.
необходимы
среду Matlab, так
терминов
сетей
с программой
рассчитанных
поверхностные
и
работы
Требуется
знание
знание
специальных
большинство
функций
несколько
создания
на
новичков
Средний уровень
сложности,
знания
Neural
нейронных сетей
Network Toolbox
3.Возможность задания
Необходимо
Есть возможность загрузки
Возможность
Есть
возможность
Мощные средства для
Excel, MetaStock,
исходных данных для
самостоятельно
выборки из MS Excel или
загрузки входных
загрузки выборки из
организации обучающих
Omega,
обучения и расчета
формировать
создание
данных
из
MS Excel, текстового
выборок.
Поддержка
текстовые,
входную выборку
редакторе
форматов входных
файла и др. форматов
BMP, txt с числовыми
бинарные.
или
Редактирование
в
встроенном
типа «[1 0.5 0 1; -2
данных
dBase,
0 0.5 1]», легко
FoxBase,
FoxPro,
ошибиться
Clipper, Paradox
символьными
данными,
функции
непрерывного,
в
аналитическом виде или
в
виде
значений.
выборки
Нейропакет
позволяет использовать
любые
13
внешние
конверторы
данных,
определяемые
пользователем.
3.Цена
$895
Бесплатно
$69.95
(бета-
$800
в
$795 (варьируется
зависимости от уровня
в зависимости от
основной программы)
версии и числа
$195–1495
версия)
функций)
5.Наличие
Частичная
Есть
Есть
Удобный
Сложно
графический
обращения к справке
Частичная
Есть
Частичная
русификации
6. Интерфейс
работать
без
интерфейс
пользователя,
часто
но
Не
интуитивно
Невысокий
уровень
понятный
наглядности
графический
представляемой
интерфейс
информации
и
простоты
и
требуется
обращение
к
понятности
справке
о
интерфейса
Удобный,
понятный
интерфейс
Удобный
графический
интерфейс
написании
функций
7.Наличие справки
Есть,
на
Есть, на английском языке
Есть
Есть
Есть, платная
Есть
английском языке
электронный
учебник,
контекстная
справка
8.Прочие достоинства
Удобное
и
Достаточно
высокая
большое
число Один из лучших пакетов
наглядное
точность аппроксимации с
параметров
представление
помощью РБФ (точность
настройки алгоритма включает
14
для
работы
с
в
НС,
себя
результатов
модели
аппроксимации в
программе
виде графиков
самые
0.7%)
В
обучения нейронных мощнейший
используются
сетей, в том числе визуального
.
современные
возможность
алгоритмы обучения сети с
обучения
возможностью
ограничениями
создавать
редактор
проектирования
с нейронной
на позволяющий
сети,
создавать
сложные, практически не
весовые
практически
любые
ограниченные в размерах
коэффициенты
собственные
нейронные
комбинации
из
сетей
различных
архитектур,
выборочно
обучать
фрагменты
нейронной
структуры
сети. Есть автоматический
Конструктор Сети [6]
9.Прочие недостатки
Невозможность
Специально
Возможность
сохранения
создавался
результатов
решения
опроса обученной
прогнозирования при
сети
работе
для
задач
с
финансовыми
данными,
не
предназначен
широкого
для
круга
нейронных сетей
15
импорта только 5
типов
файлов
входных
Таблица 2 – Характеристики проектируемого программного комплекса
Характеристика/Пакет
1.Наличие
в
Проектируемый программный комплекс
пакете
Есть
выбранной модели НС (РБ)
2.Сложность
работы
в
программе
настройки параметров
3.Возможность
исходных
Невысокая; требуется минимальный набор знаний о нейронной сети для
задания
данных
Входные и тестовые выходные выборки могут быть получены из базы данных
для
обучения и расчета
3.Цена
Бета-версия - бесплатно
5.Наличие русификации
Есть
6. Интерфейс
Удобный графический интерфейс пользователя
7.Наличие справки
Есть, на русском языке
8.Прочие достоинства
Удобное и наглядное представление результатов аппроксимации в виде
графиков
и
гистограмм
плотности
вероятности;
функциональность
соответствует условиям поставленной задачи
9.Прочие недостатки
Не предназначен для решения широкого круга задач, связанных с нейронными
сетями
Необходимо обучить сеть,
т.е.
выбрать весовые коэффициенты при базисных
функциях так, чтобы их комбинация давала аналогичную зависимость, которая наилучшим
образом аппроксимирует множество значений функции отклика.
Если ограничиться k базисными функциями, то аппроксимирующее решение можно
представить в виде
𝐾
𝐹(𝑥) = ∑𝑖=1 𝑤𝑖 𝜑(||𝑥 − 𝑐𝑖 ||),
(1.1)
где 𝑐𝑖 – множество центров, которые необходимо определить. Задача аппроксимации
для радиально-базисной сети состоит в подборе соответствующего количества радиальных
функций 𝜑(||𝑥 − 𝑐𝑖 ||) и их параметров, а также в таком подборе весов 𝑤𝑖 (i = 1, 2,..,K),
чтобы решение уравнения (1) было наиболее близким к точному. Поэтому проблему подбора
параметров радиальных функций и значений весов 𝑤𝑖 сети можно свести к минимизации
целевой функции, которая при использовании метрики Эвклида записывается в форме:
𝐸 = ∑𝑝𝑖=1[ ∑
𝐾
𝑗=1
𝑤𝑗 𝜑(||𝑥𝑖 − 𝑐𝑖 ||) − 𝑑𝑖 ]2 ,
В этом уравнении:
K – количество радиальных нейронов (скрытый слой),
p – количество обучающих пар (𝑥𝑖 , 𝑑𝑖 ),
16
(1.2)
𝑥𝑖 - входной вектор,
𝑑𝑖 - соответствующая ему ожидаемая величина
Чаще всего в качестве радиальной функции применяется функция Гаусса. При
размещении ее центра в точке 𝑐𝑖 она может быть определена в сокращенной форме как
2
𝜑(𝑥) = 𝜑(||𝑥 − 𝑐𝑖 ||) = exp(
||𝑥− 𝑐𝑖 ||
2𝜎𝑖 2
)
(1.4)
Здесь 𝜎𝑖 - параметр, от значения которого зависит ширина функции.
Согласно алгоритму обучения обратного распространения неизвестные коэффициенты
подвергаются на каждой итерации обучения корректировке:
𝑤𝑘+1 = 𝑤𝑘 + ∆𝑤 = 𝑤𝑘 + 𝑛𝑝(𝑤)
(1.4)
или, расписывая p(w) – направление в многомерном пространстве:
𝑤𝑘+1 = 𝑤𝑘 + ∆𝑤 = 𝑤𝑘 - 𝑛 ∙ (∑𝐽𝑙=0 𝑤𝑙 (𝑘) ∙ 𝜑𝑙 (𝑘) − 𝑦) ∙ 𝜑𝑙 (𝑥)
(1.5)
где n – коэффициент обучения [8].
Таким образом, в курсовом проекте для получения результатов аппроксимации
необходимо совершить следующие действия:
1. построение гистограммы плотности вероятности поломок оборудования;
2. определение «узловых точек» – пар {𝑥𝑖 , 𝑦𝑖 };
3. определение количества членов ряда разложения и соответственно числа нейронов
скрытого слоя;
4. задание начальных значений параметров сети (𝑤𝑖, , 𝜎𝑖, 𝑐𝑖 );
5. обучение сети по градиентному методу обучения с учителем (с использованием
алгоритма обратного распространения) путем подачи на вход сети значений 𝑥𝑖 и
корректировки параметров при обратном ходе;
6. оценка погрешности аппроксимации плотности вероятности.
В автоматизированной системе должны быть реализованы следующие функции:

авторизация пользователя, настройка интерфейса в соответствии с правами
пользователя;

ведение справочника пользователей
и
справочника аппроксимируемых
выборок данных;

получение из базы данных выборки статистических данных о поломках
оборудования, подаваемой на вход нейронной сети, а также соответствующей выборки
выходных данных для ее обучения;

ввод и редактирование информации о входных выборках нейронной сети;
17

хранение информации о входных выборках, коэффициентах нейронов и
выходных данных о результатах аппроксимации в нейронной сети;

нейросетевая
аппроксимация
с
обучением
сети
методом
обратного
распространения ошибки;

формирование
и
анализ
информационных
отчетов
о
результатах
аппроксимации:

периодическое сохранение (архивирование) данных в базу данных..
В курсовом проекте также необходимо спроектировать логическую модель базы
данных и разработать логический проект программного комплекса с использованием
нотации UML.
Предварительная обработка данных
Для
повышения
предобработку
скорости
(нормировку)
и
качества
данных.
обучения
Простейшая
необходимо
функция
производить
масштабирования
–
минимаксная функция, выполняющая линейное преобразование после определения
минимального и максимального значений функции так, чтобы получаемые значения
находились в нужном диапазоне. Линейное преобразование [Филатова]
_
yt 
yi  yi min
yi max  yi min
масштабирует исходную выборку в единичный отрезок [0,1].
Для построения классификатора необходимо определить, какие параметры влияют на принятие
решения о том, к какому классу принадлежит образец. При этом могут возникнуть две проблемы. Вопервых, если количество параметров мало, то может возникнуть ситуация, при которой один и тот же
набор исходных данных соответствует примерам, находящимся в разных классах. Тогда невозможно
обучить нейронную сеть, и система не будет корректно работать (невозможно найти минимум,
который соответствует такому набору исходных данных). Исходные данные обязательно должны
быть непротиворечивы. Для решения этой проблемы необходимо увеличить
размерность пространства признаков (количество компонент входного вектора, соответствующего
образцу). Но при увеличении размерности пространства признаков может возникнуть ситуация, когда
число примеров может стать недостаточным для обучения сети, и она вместо обобщения просто
запомнит примеры из обучающей выборки и не сможет корректно функционировать. Таким образом,
при определении признаков необходимо найти компромисс с их количеством.
Далее необходимо определить способ представления входных данных для нейронной сети, т.е.
определить способ нормирования. Нормировка необходима, поскольку нейронные сети работают с
данными, представленными числами в диапазоне 0..1, а исходные данные могут иметь произвольный
диапазон или вообще быть нечисловыми данными. При этом возможны различные способы, начиная
от простого линейного преобразования в требуемый диапазон и заканчивая
многомерным анализом параметров и нелинейной нормировкой в зависимости от влияния
параметров друг на друга. [http://www.basegroup.ru/library/analysis/neural/classification/ ]
18
Если задача будет решаться с помощью нейронной сети, то необходимо собрать
данные для обучения. Обучающий набор данных представляет собой
набор наблюдений, для которых указаны значения входных и
выходных переменных. Первый вопрос, который нужно решить, - какие
переменные использовать и сколько (и каких) наблюдений собрать.
Выбор переменных (по крайней мере первоначальный) осуществляется
интуитивно. Ваш опыт работы в данной предметной области поможет определить,
какие переменные являются важными. При работе с пакетом ST Neural
Networks Вы можете произвольно выбирать переменные и отменять предыдущий
выбор; кроме того, система ST Neural Networks умеет сама опытным путем
отбирать полезные переменные. Для начала имеет смысл включить все
переменные, которые, по Вашему мнению, могут влиять на результат - на
последующих этапах мы сократим это множество.
Нейронные сети могут работать с числовыми данными, лежащими в определенном
ограниченном диапазоне. Это создает проблемы в случаях, когда данные имеют
нестандартный масштаб, когда в них имеются пропущенные значения, и когда
данные являются нечисловыми. В пакете ST Neural Networks имеются средства,
позволяющие справиться со всеми этими трудностями. Числовые данные
масштабируются в подходящий для сети диапазон, а пропущенные значения
можно заменить на среднее значение (или на другую статистику) этой переменной
по всем имеющимся обучающим примерам (Bishop, 1995).
Более трудной задачей является работа с данными нечислового характера. Чаще
всего нечисловые данные бывают представлены в виде номинальных переменных
типа Пол = {Муж , Жен }. Переменные с номинальными значениями можно
представить в числовом виде, и в системе ST Neural Networks имеются средства
для работы с такими данными. Однако, нейронные сети не дают хороших
результатов при работе с номинальными переменными, которые могут принимать
много разных значений.
Пусть, например, мы хотим научить нейронную сеть оценивать стоимость
объектов недвижимости. Цена дома очень сильно зависит от того, в каком районе
города он расположен. Город может быть подразделен на несколько десятков
районов, имеющих собственные названия, и кажется естественным ввести для
обозначения района переменную с номинальными значениями. К сожалению, в
этом случае обучить нейронную сеть будет очень трудно, и вместо этого лучше
присвоить каждому району определенный рейтинг (основываясь на экспертных
оценках).
Нечисловые данные других типов можно либо преобразовать в числовую форму,
либо объявить незначащими. Значения дат и времени, если они нужны, можно
преобразовать в числовые, вычитая из них начальную дату (время). Обозначения
денежных сумм преобразовать совсем несложно. С произвольными текстовыми
19
полями (например, фамилиями людей) работать нельзя и их нужно сделать
незначащими.
Вопрос о том, сколько наблюдений нужно иметь для обучения сети, часто
оказывается непростым. Известен ряд эвристических правил, увязывающих число
необходимых наблюдений с размерами сети (простейшее из них гласит, что число
наблюдений должно быть в десять раз больше числа связей в сети). На самом деле
это число зависит также от (заранее неизвестной) сложности того отображения,
которое нейронная сеть стремится воспроизвести. С ростом количества
переменных количество требуемых наблюдений растет нелинейно, так что уже
при довольно небольшом (например, пятьдесят) числе переменных может
потребоваться огромное число наблюдений. Эта трудность известна как
"проклятие размерности", и мы обсудим ее дальше в этой главе.
Для большинства реальных задач бывает достаточно нескольких сотен или тысяч
наблюдений. Для особо сложных задач может потребоваться еще большее
количество, однако очень редко может встретиться (даже тривиальная) задача, где
хватило бы менее сотни наблюдений. Если данных меньше, чем здесь сказано, то
на самом деле у Вас недостаточно информации для обучения сети, и лучшее, что
Вы можете сделать - это попробовать подогнать к данным некоторую линейную
модель. В пакете ST Neural Networks реализованы средства для подгонки
линейных моделей (см. раздел про линейные сети, а также материал по
модулю Множественная регрессия системы STATISTICA).
Во многих реальных задачах приходится иметь дело с не вполне достоверными
данными. Значения некоторых переменных могут быть искажены шумом или
частично отсутствовать. Пакет ST Neural Networks имеет специальные средства
работы с пропущенными значениями (они могут быть заменены на среднее
значение этой переменной или на другие ее статистики), так что если у Вас не так
много данных, Вы можете включить в рассмотрение случаи с пропущенными
значениями (хотя, конечно, лучше этого избегать). Кроме того, нейронные сети в
целом устойчивы к шумам. Однако у этой устойчивости есть предел. Например,
выбросы, т.е. значения, лежащие очень далеко от области нормальных значений
некоторой переменной, могут исказить результат обучения. В таких случаях
лучше всего постараться обнаружить и удалить эти выбросы (либо удалив
соответствующие наблюдения, либо преобразовав выбросы в пропущенные
значения). Если выбросы выявить трудно, то можно воспользоваться имеющимися
в пакете ST Neural Networks возможностями сделать процесс обучения
устойчивым к выбросам (с помощью функции ошибок типа "городских
кварталов"; см. Bishop, 1995), однако такое устойчивое к выбросам обучение, как
правило, менее эффективно, чем стандартное.
Выводы
Выбирайте такие переменные, которые, как Вы предполагаете, влияют на
результат.
20
С числовыми и номинальными переменными в пакете ST Neural Networks можно
работать непосредственно. Переменные других типов следует преобразовать в
указанные типы или объявить незначащими.
Для анализа нужно иметь порядка сотен или тысяч наблюдений; чем больше в
задаче переменных, тем больше нужно иметь наблюдений. Пакет ST Neural
Networks имеет средства для распознавания значимых переменных, поэтому
включайте в рассмотрение переменные, в значимости которых Вы не уверены.
В случае необходимости можно работать с наблюдениями,
содержащими пропущенные значения. Наличие выбросов в данных может создать
трудности. Если возможно, удалите выбросы. Если данных достаточное
количество, уберите из рассмотрения наблюдения с пропущенными
значениями.
В начало
1.4 Выбор алгоритма обучения сети
Выбор алгоритма обучения нейронной сети обусловлен несколькими
факторами.
С учителем, без учителя, .. – зависит от входных данных.
Во-первых, необходимо учитывать архитектуру сети. В различных
методах обучения варьируется порядок и способы обучения коэффициентов
скрытого (центры, радиусы) и выходного (веса) слоя. Таким образом, процесс
обучения сети RBF с учетом выбранного типа радиально-базисной функции
сводится к подбору:
1.
центров ci и параметров  i формы базисных функций (часто
используются алгоритмы обучения без учителя);
2.
весов нейронов выходного слоя (часто используются алгоритмы
обучения с учителем).
Во-вторых, все методы обучения имеют разную сложность реализации,
скорость сходимости. Для достижения наибольшей эффективности могут
потребоваться
различные
методы
инициализации
предварительная обработка входных данных.
21
параметров
сети,
В разработанной автоматизированной системе обучение радиальнобазисной нейронной сети может быть произведено по одному из трех
алгоритмов:

Метод обратного распространения ошибки

Алгоритм самоорганизации

Гибридный алгоритм
1.4.1 Метод обратного распространения ошибки
Обособленный класс алгоритмов обучения радиальных сетей
составляют градиентные алгоритмы обучения с учителем, в которых
используется алгоритм обратного распространения ошибки. Данный алгоритм
был предложен П.Вербосом, но оставался практически неизвестен до его
переоткрытия Д.Румельхартом, Дж. Хинтоном и Р.Вильямсом. Это
итеративный градиентный алгоритм обучения с учителем, который
используется с целью минимизации ошибки работы сети и получения
желаемого выхода. Основная идея этого метода заключается в распространении
сигналов ошибки от выходов сети к ее входам, в направлении, обратному
прямому распространению сигналов в обычном режиме работы. Исходная
информация должна быть задана в виде последовательности пар образов «входвыход», образующих обучающую выборку. В нашем случае на вход подается
координата x, а на выход – соответствующее ей значение плотности
вероятности, найденное по гистограмме. Целевая функция ошибки для одной
обучающей выборки (сумма квадратов расстояний от выходных сигналов сети
до их требуемых значений) имеет вид:
1 K

E   wii ( x)  d 
2  i 1

2
(3.25)
В качестве радиальной функции применяется функция Гаусса. При
размещении ее центра в точке 𝑐𝑖 она может быть определена в сокращенной
форме как
2
𝜑(𝑥) = 𝜑(||𝑥 − 𝑐𝑖 ||) = exp(
||𝑥− 𝑐𝑖 ||
2𝜎𝑖 2
)
()
Здесь 𝜎𝑖 - параметр, от значения которого зависит ширина функции.
Обучение сети с использованием алгоритма обратного распространения
ошибки можно описать в виде последовательности следующих шагов:
[Бодянский, Руденко]
22
1.
Задание начальных условий для синаптических весов сети в виде
достаточно малых случайных чисел (обычно 
0 .5
0 .5
 w[jis ] 
n s 1
n s 1 ) с тем, чтобы
активационные функции нейронов не вошли в режим насыщения на начальных
стадиях обучения (защита от «паралича» сети).
2.
Подача на вход сети образа x и вычисление выходов всех нейронов
при заданных w[sji ] .
3.
По
заданному
обучающему
вектору
d
и
вычисленным
промежуточным выходам…
4.
Уточнение всех синаптических весов по формуле
5.
Подача на вход сети следующего образа и т.д.
Процесс обучения продолжается до тех пор, пока не будет достигнуто
условие остановки: ошибка на выходе ИНС не станет достаточно малой, а веса
стабилизируются на некотором уровне, или число итераций обучения не
превысит установленную границу.
При начальной инициализации На первом этапе предъявляется
обучающая выборка и рассчитываются значения сигналов выходных нейронов
сети, после чего рассчитывается фактическое значение целевой функции,
заданной выражением (3.25). На втором этапе минимизируется значение этой
функции.
Для приближения к минимуму ошибки веса на каждой итерации
обучения изменяются в сторону, противоположную градиенту:
𝑤𝑘+1 = 𝑤𝑘 + ∆𝑤 = 𝑤𝑘 + 𝑛𝑝(𝑤)
(1.4)
или, расписывая p(w) – направление в многомерном пространстве:
𝑤𝑘+1 = 𝑤𝑘 + ∆𝑤 = 𝑤𝑘 - 𝑛 ∙
E
wi
E
𝐽
= (∑𝑙=0 𝑤𝑙 (𝑘) ∙ 𝜑𝑙 (𝑘) − 𝑦) ∙ 𝜑𝑙 (𝑥))
wi
23
(1.5)
где n – коэффициент обучения [].
5.4.2 Алгоритм самоорганизации
Взять из «ДИПЛОМ.doc» - про добавление псевдоинверсии
Алгоритм самоорганизации обучающих данных относится к группе так
называемых методов обучения «без учителя». Процесс самоорганизации
разделяет пространство на области Вороного, определяющие различающиеся
группы данных. Данные, сгруппированные внутри кластера, представляются
центральной точкой, определяющей среднее значение всех его элементов.
Центр кластера отождествляется с центром соответствующей радиальной
функции.
Разделение данных на кластеры можно выполнить с использованием
алгоритма K-усреднений (K-Means). Согласно этому алгоритму центры
радиально-базисных функций размещаются только в тех областях входного
пространства, в которых имеются информативные данные.
Пусть N - число нейронов скрытого слоя, t – номер итерации алгоритма.
Тогда алгоритм К-усреднений можно описать следующим образом [5]:
1. Инициализация. Случайным образом выбираем начальные значения
центров ci 0  , которые должны быть различны. При этом значения эвклидовой
нормы по возможности должны быть небольшими.
2. Выборка. Выбираем вектор xt из входного пространства.
3. Определение центра-победителя. Выбираем центр c w , ближайший к
xt , для которого выполняется соотношение: w  arg min xt  ci t  , i  1,2,..., N .
i
4. Уточнение. Центр-победитель подвергается
соответствии с формулой (3.6):
ci (t  1)  ci (t )   ( xt  ci (t )),
уточнению
в
(3.6)
где  - коэффициент обучения, имеющий малое значение (обычно
<<1), причем уменьшающееся во времени. Остальные центры не изменяются.
5. Продолжение. Увеличиваем на единицу значение t и возвращаемся к
шагу 2, пока положение центров не стабилизируется.
24
4.2.3 Гибридный алгоритм обучения радиальной сети
В гибридном алгоритме процесс обучения разделяется на три этапа:
1)
Инициализация параметров сети;
2)
Подбор линейных параметров сети (весов выходного слоя) при
использовании метода псевдоинверсии;
3)
Адаптация нелинейных параметров радиальных функций (центра ci
и радиуса  i этих функций).
Одним из простейших способом определения параметров базисных
функций считается случайный выбор. Веса выходного слоя инициализируются
случайными значениями из интервала [-0.5; 0.5] [Бодянский]. Начальные
значения центров радиально-базисных функций скрытых нейронов задаются,
исходя из обучающей выборки. Они устанавливаются на равном расстоянии
друг от друга по всей области определения входной функции.
Радиусы (значение стандартного отклонения) радиально-базисной
функции скрытого нейрона зависит от разброса центров ci :
d2

K
(
 (|| x c i ||2 )  e
||x ci ||2
)
d2
K
где K – число центров, d – максимальное расстояние между центрами ci .
[лекции ЭС]При фиксации конкретных значений центров и ширины
радиальных функций за один шаг, с помощью метода псевдоинверсии
подбираются веса выходного слоя. Если обозначить d  d1, d 2 ,..., dt  вектор
T
ожидаемых значений, w  w1, w2 ,..., wK  -вектор весов сети, а G – радиальную
T
матрицу Грина:
25
 ( x1  c1 )  ( x1  c2 ) ...  ( x1  cK ) 


 ( x2  c1 )  ( x2  c2 ) ...  ( x2  cK ) 
G
 , то задача нахождения
...
...
...
...


 ( x p  c1 )  ( x p  c2 ) ...  ( x p  cK ) 


вектора весов сводится
относительной весов:
к
решению
системы
уравнений,
G(w)=d
линейных
(3.14)
Вследствие прямоугольности матрицы G можно определить вектор весов
w с использованием операции псевдоинверсии матрицы G, то есть
w=G+d
(3.15),
где G   (G T G ) 1 G T обозначает псевдоинверсию прямоугольной матрицы G.
На практике псевдоинверсия рассчитывается с применением
декомпозиции SVD. Если G – действительная матрица размера pxK, то
существуют ортогональные матрицы U  u1 , u2 ,...,u p  и V  v1 , v2 ,..., v K  такие,
что G  USV T , где S – псевдодиагональная матрица размера pxK, K<p,
s1  s2  ...  s K  0 .
Пусть только первые r столбцов матрицы S имеют значимые величины,
тогда остальными столбцами можно пренебречь. Тогда матрицы U и V будут
иметь следующий вид U  u1 , u 2 ,..., u r  и V  v1 , v2 ,..., vr  , а матрица S
становится полностью диагональной S  diag s1 , s2 ,..., sr .
В этом случае матрица G может быть приближенно представлена в виде:
G  U r S rVrT .
(3.16)
Псевдообратная матрица для матрицы G находится по формуле:
G   U r S r1VrT
где
,
S r1  1 / s1 ,1 / s2 ,...,1 / sr .
(3.17)
Тогда
вектор
весов
находится
соотношения:
w  U r S r1VrT d .
(3.18)
26
из
На втором этапе при зафиксированных значениях выходных весов
возбуждающие сигналы пропускаются по сети до выходного слоя, что
позволяет рассчитать величину погрешности для последовательности векторов
xt . Далее происходит возврат к скрытому слою (обратное распространение). По
величине погрешности определяется вектор градиента целевой функции
относительно конкретных центров cij и ширины  ij .
Каждая радиальная функция определяется в общем виде как
 1
 2


i ( xt )  exp  uit  ,
(3.19)
где суммарный сигнал нейрона u it описывается выражением
uit 
N
( x jt  cij ) 2
j 1
 ij2

.
(3.20)
При существовании p обучающих пар целевую функцию можно задать в
виде
1 P
1 P K
E   ( yt  d t ) 2    wi  xk   d k 

2 t 1
2 t 1  i 1
2
(3.21)
В результате дифференцирования этой функции получим:
p 
E
 1  ( x jt  cij ) 
  ( yt  d t ) wi exp  uit 
,
cij t 1 
 2   ij2

(3.22)
2
p 
E
 1  ( x jt  cij ) 
  ( yt  d t ) wi exp  uit 
.
 ij t 1 
 ij3
 2 

Применение градиентного метода наискорейшего спуска позволяет
провести уточнение центров и ширины радиальных функций согласно
формулам (3.23) и (3.24):
27
cij (t  1)  cij (t )  
E
,
cij
 ij (t  1)   ij (t )  
(3.23)
E
.
 ij
(3.24)
Уточнение нелинейных параметров радиальной функции завершает
очередной цикл обучения. Многократное повторение обоих этапов ведет к
полному и быстрому обучению сети, особенно когда начальные значения
параметров радиальных функций близки к оптимальным значениям.
Генерация данных
Для обучения и тестирования сети необходимо иметь возможность
генерировать случайные выборки с заданным законом распределения.
Пользователю
выбирает
закон
из
предложенного
списка
распределения, задает объем выборки и число интервалов гистограммы.
28
законов
Таблица Б.1 – Законы распределения
Название
закона Функция распределения F(x)
распределения
Функция,
обратная
функции Функция
распределения F 1 ( x)
плотности
распределения f(x)
Равномерный
0, (  x  a )
x  a

F ( x)  
, ( a  x  b)
b  a
1, (b  x  )
0, (r  0)

1
F ( x)  a  r * (b  a), (0  r  1)
1, (r  1)

0, (  x  a )
 1

f ( x)  
, ( a  x  b)
b  a
0, (b  x  )
Лаплас
 1  ( x )
e
, (  x   )

2
F ( x)  
1  1 * e  ( x   ) , (   x  )
 2

ln( 2r )


, (0  r  0.5)



1
F ( x)  
  ln( 2(r  1)) , (0.5  r  1)


 1  ( x )
e
, (  x   )

2
f ( x)  
 1 e  ( x   ) , (   x  )

 2
Симпсон
0, (  x  a)

2
 2( x  a) , (a  x  a  b )
 (b  a) 2
2
F ( x)  
2
1  2(b  x) , ( a  b  x  b)

(b  a) 2
2

1, (b  x  )
0, (r

a 

F 1 ( x)  
b 


0, (r
Коши
F ( x) 
1

arctg
x 1

a
2
 0)
r
1
| b  a |, (0  r  )
2
2
1 r
1
| b  a |, (  r  1)
2
2
 1)
1
F 1 ( x)    a  tg ( (r  ))
2
29
0, (  x  a )

 4( x  a ) , (a  x  a  b )
 (b  a ) 2
2
f ( x)  
 4(b  x) , ( a  b  x  b)
 (b  a ) 2
2

0, (b  x  )
f ( x) 
1
a
 (x  ) 2  a 2

Арксинус
0, (  x   a )
1 1
x

F ( x)    arcsin , ( a  x  a )
a
2 
1, (a  x  )
0, (r  0)

1

F 1 ( x)  a  sin(  (r  )), (0  r  1)
2

1, (r  1)

0, (  x  a )


1
f ( x)  
, (a  x  a)
x
a 1  ( ) 2

a

0, (a  x  )
Вейбулла
0, (  x  0)
F ( x)  

1  e  x , (0  x  )
0, (r  0)

F 1 ( x)   ln( 1  r ) 1
 (  ) , (0  r  1)

0, (  x  0)
f ( x)  

x 1  e x , (0  x  )
Рэлея
0, (  x  0)

F ( x)  
x2
 2
2

, (0  x  )
1  e
0, (r  0)
F 1 ( x)  
 2 2 ln( 1  r ) , (0  r  1)
0, (  x  0)

f ( x)   x 2  x 22
 2 e 2 , (0  x  )

Экспоненциальны
0, (  x  0)
F ( x)  
x
1  e , (0  x  )
0, (r  0)

F ( x)   1
 ln( 1  r ), (0  r  1)

 
0, (  x  0)
f ( x)   x
e , (0  x  )
й
Нормальный
(Sechx) 2
F ( x) 
F ( x) 
1
2  
x
e

1
(t a )2
2 2
f ( x) 
dt

1 1
 tanh( x)
2 2
F 1 ( x) 
30
ln
r
1 r
2
f ( x) 
1
2  

e
(t a )2
2 2
1
(sec h( x)) 2
2
31
1.3 Логический проект разрабатываемой автоматизированной системы
1.3.1 Описание существующих методологий разработки логического проекта
автоматизированных систем
Построение моделей сложных систем, отражающих десятки различных типов
объектов и связей между ними, привело в конце 80-х годов к появлению большого числа
различных графических нотаций, которые в той или иной степени были ориентированы на
решение специальных классов задач. Наибольшее распространение в эти годы получил
подход к моделированию программных систем, который назвали системным структурным
анализом (ССА). [Леоненков].
Под ССА принято понимать метод исследования системы, который начинается с
наиболее общего ее описания с последующей детализацией представления отдельных
аспектов ее поведения и функционирования. При этом общая модель системы строится в
виде некоторой иерархической структуры, которая отражает различные уровни абстракции с
ограниченным числом компонентов на каждом из уровней. Одним из главных принципов
ССА является выделение на каждом из уровней абстракции только наиболее существенных
компонентов или элементов системы.
На
сегодняшний
день
наибольшее
распространение
среди
методологий
проектирования систем средней и высокой сложности, реализующих методы ССА,
получили:

SADT-методология (методология Росса);

UML-методология (Буч, Рамсо, Якобсон).
1.3.1.1 Описание SADT-методологии
Structured Analysis and Design Technique (SADT) — методология структурного
анализа
и
проектирования,
интегрирующая
процесс
моделирования,
управление
конфигурацией проекта, использование дополнительных языковых средств и руководство
проектом со своим графическим языком. SADT является одной из самых известных и
широко используемых технологий моделирования. Признание полезности SADT привело к
стандартизации
и
публикации
ее
части,
предназначенной
для
функционального
моделирования, как методологии и стандарта функционального моделирования IDEF0.
Методология SADT представляет собой совокупность методов, правил и процедур,
предназначенных для построения функциональной модели системы какой-либо предметной
области. Функциональная модель SADT отображает структуру процессов функционирования
системы и ее отдельных подсистем, т. е. выполняемые ими действия и связи между этими
действиями. Для этой цели строятся специальные модели, которые позволяют в наглядной
32
форме
представить
последовательность
определенных
действий.
Исходными
строительными блоками любой модели IDEFO процесса являются деятельность
(activity) и стрелки (arrows).
Деятельность представляет собой некоторое действие или набор действий, которые
имеют фиксированную цель и приводят к некоторому конечному результату. Иногда
деятельность в нотации IDEF0 называют процессом. Модели IDEF0 отслеживают различные
виды деятельности системы, их описание и взаимодействие с другими процессами. На
диаграммах деятельность или процесс изображается прямоугольником, который называется
блоком. Стрелка служит для обозначения некоторого носителя или воздействия, которые
обеспечивают перенос данных или объектов от одной деятельности к другой. Стрелки также
необходимы для описания того, что именно производит деятельность, и какие ресурсы она
потребляет.
Так называемые роли стрелок - ICOM - сокращение первых букв от названий
соответствующих стрелок IDEFO. При этом различают стрелки четырех видов:

I (Input) - вход, т. е. все, что поступает в процесс или потребляется процессом.

С (Control) - управление или ограничения на выполнение операций процесса.

О (Output) - выход или результат процесса.

М (Mechanism) - механизм, который используется для выполнения процесса.
Одной из наиболее важных особенностей методологии SADT является постепенное
введение все более детальных представлений модели системы по мере разработки отдельных
диаграмм. Построение модели SADT начинается с представления всей системы в виде
простейшей диаграммы, состоящей из одного блока процесса и стрелок ICOM, служащих
для изображения основных видов взаимодействия с объектами вне системы. Поскольку
исходный процесс представляет всю систему как единое целое, данное представление
является наиболее общим и подлежит дальнейшей декомпозиции.
В конечном итоге модель SADT представляет собой серию иерархически
взаимосвязанных диаграмм с сопроводительной документацией, которая разбивает исходное
представление сложной системы на отдельные составные части. Детали каждого из
основных процессов представляются в виде более детальных процессов на других
диаграммах. Каждая диаграмма нижнего уровня является декомпозицией некоторого
процесса из более общей диаграммы. На каждом шаге декомпозиции более общая диаграмма
конкретизируется на ряд более детальных диаграмм.
В настоящее время диаграммы структурного системного анализа SADT продолжают
использоваться целым рядом организаций для построения и детального анализа
33
функциональной модели существующих на предприятии бизнес-процессов, а также для
разработки новых бизнес-процессов. Основной недостаток данной методологии связан с
отсутствием явных средств для объектно-ориентированного представления моделей
сложных систем. Хотя некоторые аналитики отмечают важность знания и применения
нотации SADT, ограниченные возможности этой методологии применительно к реализации
соответствующих графических моделей в объектно-ориентированном программном коде
существенно сужают диапазон решаемых с ее помощью задач.
1.3.1.2 Описание методологии UML
Унифицированный язык моделирования – UML(Unified Modeling Language),
предназначен для описания, визуализации и документирования объектно-ориентированных
систем и бизнес процессов с ориентацией их на последующую реализацию в виде
программного обеспечения. При создании этого языка моделирования учитывались
следующие требования:
 позволять моделировать не только программное обеспечение, но и более широкие
классы
систем
и
бизнес-приложений,
с
использованием
объектно-
ориентированных понятий;
 явным образом обеспечивать взаимосвязь между базовыми понятиями для
моделей концептуального и физического уровней;
 обеспечивать масштабируемость моделей, что является важной особенностью
сложных многоцелевых систем;
 быть
понятным
аналитикам
и
программистам,
а
также
поддерживать
специальными инструментальными средствами, реализованными на различных
компьютерных платформах[12].
Язык UML ориентирован на применение в качестве языка моделирования для
решения широкого класса задач объектно-ориентированного анализа и проектирования. При
этом термин «унифицированный» в названии UML не является случайным и имеет два
аспекта. С одной стороны, он фактически устраняет многие из несущественных различий
между известными языками моделирования и методиками построения диаграмм. С другой
стороны, создает предпосылки для унификации различных моделей и этапов их разработки
для широкого класса систем, не только программного обеспечения, но и бизнес-процессов.
Язык UML основан на некотором числе базовых понятий, которые могут быть
изучены и применены большинством программистов и разработчиков, знакомых с методами
объектно-ориентированного анализа и проектирования. При этом базовые понятия могут
комбинироваться и расширяться таким образом, что специалисты объектного моделирования
34
получают возможность самостоятельно разрабатывать модели больших и сложных систем в
самых различных областях приложений.
Конструктивное использование языка UML основывается на понимании общих
принципов
моделирования
сложных
систем
и
особенностей
процесса
объектно-
ориентированного анализа и проектирования в частности. Выбор выразительных средств для
построения моделей сложных систем предопределяет те задачи, которые могут быть решены
с использованием данных моделей. При этом одним из основных принципов построения
моделей сложных систем является принцип абстрагирования, который предписывает
включать в модель только те аспекты проектируемой системы, которые имеют
непосредственное отношение к выполнению системой своих функций или своего целевого
предназначения. При этом все второстепенные детали опускаются, чтобы чрезмерно не
усложнять процесс анализа и исследования полученной модели.
Другим принципом построения моделей сложных систем является принцип
многомодельности. Этот принцип представляет собой утверждение о том, что никакая
единственная модель не может с достаточной степенью адекватности описывать различные
аспекты сложной системы. Применительно к методологии ООАП это означает, что
достаточно полная модель сложной системы допускает некоторое число взаимосвязанных
представлений (views), каждое из которых адекватно отражает некоторый аспект поведения
или структуры системы.
Еще одним принципом прикладного системного анализа является
принцип
иерархического построения моделей сложных систем. Этот принцип предписывает
рассматривать процесс построения модели на разных уровнях абстрагирования или
детализации
в
рамках
фиксированных
первоначальная
модель
сложной
представлений.
системы
имеет
При
наиболее
этом
общее
исходная
или
представление
(метапредставление)..
Язык UML предназначен для решения следующих задач:

предоставить
в
распоряжение
пользователей
легко
воспринимаемый
и
выразительный язык визуального моделирования, специально предназначенный
для разработки и документирования моделей сложных систем самого различного
целевого назначения;

снабдить
исходные
понятия
языка
UML
возможностью
расширения
и
специализации для более точного представления моделей систем в конкретной
предметной области.
35
Использование UML не ограничивается моделированием программного обеспечения.
Его также используют для моделирования бизнес-процессов, системного проектирования и
отображения организационных структур.
UML позволяет также разработчикам программного обеспечения достигнуть
соглашения в графических обозначениях для представления общих понятий (таких как класс,
компонент, обобщение (generalization), объединение (aggregation) и поведение), и больше
сконцентрироваться на проектировании и архитектуре.
Таким образом, методология UML является мощным средством проектирования,
устранившим недостатки более ранних методологий, в том числе и основной недостаток
SADT-методологии - отсутствие объектно-ориентированного представления моделей
сложных систем.
Проект автоматизированной системы разрабатывался с использованием UMLметодологии. Основная задача, которая стояла при разработке логического проекта системы
– отобразить функциональность и структуру системы. Средства методологии UML
позволяют наиболее наглядно отобразить все взаимосвязи, так как при проектировании
использовался объектно-ориентированный подход.
В рамках языка UML все представления о модели сложной системы фиксируются в
виде
специальных
графических
конструкций
–
диаграмм.
Процесс
объектно-
ориентированного анализа и проектирования неразрывно связан с процессом построения
диаграмм.
В UML используются следующие виды диаграмм:
1.
2.
3.
Структурные диаграммы:
-
диаграмма классов (Class Diagram);
-
диаграмма компонентов (Component Diagram);
-
диаграмма кооперации (Collaboration Diagram);
-
диаграмма развертывания (Deployment Diagram);
-
диаграмма пакетов (Package Diagram);
Диаграммы поведения:
-
диаграмма деятельности (Activity Diagram);
-
диаграмма деятельности (State Machine Diagram);
-
диаграмма вариантов использования (Use Case Diagram);
Диаграммы взаимодействия:
-
диаграмма последовательности (Sequence Diagram);
-
диаграмма коммуникации (Communication Diagram);
-
и др.
36
1.3.2 Средство UML-проектирования Enterprise Architect
Логическое проектирование автоматизированной системы было произведено с
помощью программы Enterprise Architect 7.5.
Enterprise Architect (EA) – CASE-инструмент для проектирования и конструирования
программного обеспечения. Разработан Sparx Systems. EA поддерживает спецификацию
UML2.0+, описывающую визуальный язык, которым могут быть определены модели
проекта. Некоторые из ключевых функций ЕА:
 создание элементов UML-моделей широкого круга назначения;
 размещение этих элементов в диаграммах и пакетах;
 создание коннекторов между элементами;
 документирование созданных элементов;
 генерация кода для конструируемого ПО;
 реверс-инжиниринг имеющегося кода на некоторых языках.
Используя EA, можно выполнять форвард и реверс-инжиниринг языков
программирования ActionScript, C++, C#, Delphi, Java, Python, PHP, VB.NET and Visual Basic
классов, синхронизировать код и элементы моделей, проектировать и генерировать элементы
баз данных. Из моделей может быть быстро создана документация в стандартном rtf-формате
и импортирована в Word для финального редактирования, так же доступна генерация HTMLдокументов. EA поддерживает все модели/диаграммы UML 2.0. С его помощью можно
моделировать бизнес-процессы, веб-сайты, пользовательские интерфейсы, сети,
конфигурации аппаратного обеспечения, сообщения и т.д., оценивать размер трудозатрат
проектных работ в часах, фиксировать и трассировать требования, ресурсы, тест-планы,
дефекты и запросы на изменения.
Таким образом, EA является мощным всесторонним набором UML инструментов,
охватывающим разработку программного обеспечения на стадиях анализа, дизайна,
испытания и обслуживания. EA предназначен для создания устойчивого и удобного в
сопровождении программного обеспечения. Является средством создания и визуализации
моделей, ориентированным на проектные группы, а также на отдельных разработчиков и
аналитиков. Работа по проекту внутри группы осуществляется с помощью репликации,
интеграции с системой контроля версий, а также совместного использования файлов внутри
сети. В возможности версии входят также создание проектной документации для кода и баз
данных, форум для обсуждения проекта и генерация отчетов в формате RTF.
Возможности EA полностью соответствуют требованиям из технического задания к
UML-проекту
разрабатываемой
автоматизированной
системы:
программа
позволяет
построить необходимые диаграммы (вариантов использования, классов и др.).
1.3.3 Диаграмма вариантов использования
Диаграмма вариантов использования (Use Case Diagram) описывает функциональное
назначение системы, то есть то, что система будет делать в процессе своего
функционирования.
Диаграмма
вариантов
37
использования
является
исходным
концептуальным представлением (моделью) системы в процессе ее проектирования и
разработки.
Разработка диаграммы вариантов использования преследует следующие цели:
 определить общие границы и контекст моделируемой предметной области на
начальных этапах проектирования системы;
 сформулировать
общие
требования
к
функциональному
поведению
проектируемой системы;
 разработать концептуальную модель системы для ее последующей детализации в
форме логических и физических моделей;
 подготовить исходную документацию для взаимодействия разработчиков системы
с ее заказчиками и пользователями.
Суть
данной
диаграммы
состоит
в
следующем:
проектируемая
система
представляется в виде множества сущностей или акторов(actor), взаимодействующих с
системой с помощью так называемых вариантов использования. При этом актором (actor)
или действующим лицом называется любая сущность, взаимодействующая с системой извне.
Это может быть человек, техническое устройство, программа или любая другая система,
которая может служить источником воздействия на моделируемую систему так, как
определит сам разработчик. В свою очередь вариант использования (use case) служит для
описания сервисов, которые система предоставляет актору. Другими словами, каждый
вариант использования определяет некоторый набор действий, совершаемый системой при
диалоге с актором. При этом ничего не говорится о том, каким образом будет реализовано
взаимодействие акторов с системой. Помимо акторов и вариантов использования, на данной
диаграмме можно расположить:
Интерфейсы – служащие для спецификации параметров модели, которые видимы
извне без указания внутренней структуры. Интерфейсы определяют совокупность операций,
которые обеспечивают необходимый набор сервисов или функциональности для акторов.
Примечания – предназначенные для включения в модель произвольной текстовой
информации, имеющей непосредственное отношение к контексту разрабатываемого проекта.
Отношения – описывающие взаимодействия экземпляров одних акторов и вариантов
использования с экземплярами других акторов и вариантов. В языке UML имеется несколько
стандартных видов отношений между акторами и вариантами использования:
Отношение ассоциации – служит для обозначения специфической роли актора в
отдельном варианте использования.
Отношение расширения – определяет взаимосвязь экземпляров отдельного варианта
использования с более общим вариантом, свойства которого определяются на основе способа
38
совместного
объединения
данных
экземпляров.
Отношение
расширения
является
направленным и отмечает тот факт, что один из вариантов использования может
присоединить к своему поведению некоторое дополнительное поведение, определенное для
другого варианта использования.
Отношение обобщения – применяется в том случае, когда необходимо отметить, что
дочерние
варианты
использования
обладают
всеми
атрибутами
и
особенностями
родительских вариантов. При этом дочерние варианты использования участвуют во всех
отношениях родительских вариантов. В свою очередь, дочерние варианты могут наделяться
новыми
свойствами
поведения,
которые
отсутствуют
у
родительских
вариантов
использования, а также уточнять или модифицировать наследуемые от них свойства
поведения.
Отношение включения – указывает, что некоторое заданное поведение для одного
варианта использования включается в качестве составного компонента в последовательность
поведения другого варианта использования. Данное отношение является направленным и
бинарным[12].
В разрабатываемом проекте актором является пользователь, который работает со
справочниками нейронных сетей и выборок, подсистемой обучения нейронной сети,
подсистемой тестирования обученной сети, подсистемой аппроксимации выборок нейронной
сетью, а также анализирует полученные результаты аппроксимации.
Также на диаграмме предложены следующие варианты использования системы:
 создать, редактировать, обучить, удалить нейронную сеть;
 создать, удалить выборку;
 обучить нейронную сеть;
 тестировать нейронную сеть;
 аппроксимировать обученную нейронную сеть.
Диаграмма вариантов использования разрабатываемой автоматизированной системы
представлена на рисунке 1.3.1.
39
uc Use Case Model
Генерировать
выборки для сети
Ввести параметры
выборки
«include»
Выбрать закон
распределения
функции
«include»
«extend»
Вести справочник
выборок
«include»
«extend»
Удалить выборку из
списка
Создать сеть
«include»
Задать параметры
сети
Ввести размер
выборки
«include»
«extend»
Вести справочник
нейронных сетей
«include»
Пользователь
Запустить создание
сети
«extend»
Удалить сеть
Ввести число
дифференциальных
коридоров
«extend»
Изменить параметры
сети
Обучить нейронную
сеть
Задать параметры
нейронной сети
«include»
Тестировать
обученную сеть
«include»
Запустить обучение
нейронной сети
«include»
«extend»
Аппроксимировать
выборки
«include»
Выбрать нейронную
сеть из списка
существующих
«extend»
«extend»
«extend»
Генерировать
выборку
Загрузить входные и
выходные выборки
для обучения
«include»
Проанализировать
выведенные системой
результаты
аппроксимации
«include»
Загрузить выборку из
списка
«include»
«include»
Запустить
аппроксимацию
Выбрать обученную
нейронную сеть
Рисунок 1.3.1 - Диаграмма вариантов использования системы
1.3.4 Диаграммы классов
Диаграмма классов служит для представления статической структуры модели
системы
в
терминологии
классов
объектно-ориентированного
программирования.
Диаграмма классов может отражать, в частности, различные взаимосвязи между отдельными
сущностями предметной области, такими как объекты и подсистемы, а также описывает их
внутреннюю структуру и типы отношений. Диаграмма классов является дальнейшим
развитием концептуальной модели проектируемой системы.
Диаграмма классов состоит из множества элементов, которые в совокупности
отражают декларативные знания о предметной области. Эти знания интерпретируются в
базовых понятиях языка UML, таких как классы, интерфейсы и отношения между ними и их
составляющими компонентами.
40
Класс в языке UML служит для обозначения множества объектов, которые обладают
одинаковой структурой, поведением и отношениями с объектами из других классов.
Обязательным элементом обозначения класса является его имя. Оно должно быть
уникальным. По мере проработки отдельных компонентов диаграммы, описания классов
дополняются атрибутами (свойствами) и операциями (сервисами).
Кроме внутреннего устройства или структуры классов, на соответствующей
диаграмме указываются различные отношения между классами. Базовыми отношениями или
связями в языке UML являются: отношение зависимости, отношение ассоциации,
отношение агрегации, отношение композиции, отношение обобщения.
Отношение зависимости – в общем случае указывает некоторое семантическое
отношение между двумя элементами модели или двумя множествами таких элементов,
которое не является отношением ассоциации, обобщения или реализации. Отношение
зависимости используется в такой ситуации, когда некоторое изменение одного элемента
модели может потребовать изменения другого зависимого от него элемента модели.
Отношение ассоциации – соответствует наличию некоторого отношения между
классами. Частным случаем отношения ассоциации является отношение агрегации (когда
один из классов представляет собой некоторую сущность, включающую в себя в качестве
составных частей другие сущности), которое, в свою очередь, тоже имеет специальную
форму – отношение композиции (служит для выделения специальной формы отношения
«часть-целое», при которой составляющие части не могут выступать в отрыве от целого, т.е.
с уничтожением целого уничтожаются и все его части).
Отношение обобщения – отношение между более общим элементом (родителем или
предком) и более частным и специальным элементом (дочерним или потомком).
Существуют разные точки зрения на построение диаграмм классов в зависимости от
целей их применения:
— концептуальная точка зрения — диаграмма классов описывает модель предметной
области, в ней присутствуют только классы прикладных объектов;
— точка зрения спецификации — диаграмма классов применяется при
проектировании информационных систем;
— точка зрения реализации — диаграмма классов содержит классы, используемые
непосредственно в программном коде (при использовании объектно-ориентированных
языков программирования)[12].
В разрабатываемой системе на концептуальном уровне выделены:

группа сущностных классов (рисунок 1.3.2);

группа управляющих классов (рисунок 1.3.3);
41

группа граничных классов (рисунок 1.3.4).
Сущностный класс представляет собой объект предметной области. В рамках
дипломного проекта выбраны следующие сущностные классы:
1.
«Нейронная RBF-сеть;
2.
«RBF-слой»;
3.
«RBF-нейрон;
4.
«Функция активации»;
5.
«Выборка данных»;
6.
«Алгоритм обучения».
Граничные классы представляют собой оконные формы, с которой взаимодействует
пользователь. После работы с «Формой авторизацией», в зависимости от веденного логина и
пароля, пользователь переходит в режим пользователя («Форма работы пользователя с
нейронной сетью») или эксперта («Форма работы эксперта с нейронной сетью»). В режиме
эксперта можно работать на «Форме создания и обучения нейронной сети», формах
редактирования справочников.
На диаграмме классов управления присутствуют классы для работы со справочниками
(добавление, удаление, редактирование информации).
Логика по обработке и отображению данных будет частично реализована в граничных
классах.
class Entity
«еntity»
Выборка данных
+
+
«еntity»
RBF-слой
Значение входного нейрона: int
Значение выходного нейрона: int
«еntity»
RBF-нейрон
включает
+
Массив скрытых нейронов: Array
+
+
+
Добавить нейрон(Neuron) : void
Получить массив нейронов() : Array
Вычислить выходное значение скрытого слоя() : int
1
+
1..* +
+
+
Значение весового коэффициента: int
Входное значение: int
Выходное значение: int
Функция активации: ActivationFunction
1
1..*
1
имеет
имеет
1
использует
1
«еntity»
Алгоритм обучения
+
+
+
+
+
+
+
+
+
+
+
Коэффициент обучения: double
Момент: double
Максимально допустимая погрешность обучения: double
Текущее значение погрешности обучения: double
Число проходов обучения: int
Текущая нейронная сеть: Net
1
+
+
+
+
+
+
+
+
+
Запустить обучение сети() : void
Инициализировать веса нейронов скрытого слоя() : void
Инициализировать центры нейронов скрытого слоя() : void
Инициализировать радиусы нейронов скрытого слоя() : void
Пересчитать радиусы нейронов скрытого слоя() : void
Пересчитать веса нейронов скрытого слоя() : void
Пересчитать центры нейронов скрытого слоя() : void
Посчитать значение выходного нейрона сети() : double
Остановить обучение сети() : void
1
«еntity»
Функция активации
«еntity»
Нейронная RBF-сеть
обучается по +
+
1 +
+
+
+
Наименование: String
Массив входных выборок данных: Array
Расположение файла с сетью: String
Скрытый слой: RBFLayer
Число скрытых нейронов: int
+
+
Значение центра функции активации: int
Значение радиуса функции активации: int
Обучить сеть(int)
Инициализировать параметры(Array) : NeuralNet
Сохранить сеть(String) : void
Инициализировать входные выборки(Array) : void
Сериализовать сеть(Net, String) : void
Десериализовать сеть(String) : Net
Рисунок 1.3.2 – Диаграмма сущностных классов
42
class Control
«сontrol»
Средство записи и чтения файлов
+
+
+
+
«сontrol»
Генератор выборок данных плотности вероятности
Записать выборку в файл(String, Sample) : void
Получить выборку из файла(String) : Sample
Записать сеть в файл(String, Net) : void
Получить сеть из файла(String) : Net
«сontrol»
Аппроксиматор выборок
Генерировать выборку(int, Distribution Function) : Sample
Загрузить выборку из файла(String) : Sample
Удалить выборку(Sample) : void
+
+
+
use
+
+
Аппроксимирующая сеть: Net
Аппроксимируемая выборка: Sample
+
Аппроксимировать выборку() : void
use
use
«сontrol»
Менеджер приложения
+
+
+
+
+
use
use
use
Обучить сеть() : void
Аппроксимировать сеть() : void
Работать со справочником выборок() : void
Работать со справочником сетей() : void
Показать графики() : void
use
Доступ к справочнику выборок
+
+
+
use
Добавить выборку() : void
Редактировать выборку() : void
Удалить выборку() : void
use
«сontrol»
Класс обучения сети
use
+
+
+
Обучаемая сеть: Net
Обучающие выборки: Array<Sample>
Текущий результат оубчения: TeachResult
+
Обучить нейронную сеть(Array<Sample>) : void
«сontrol»
Доступ к справочнику нейронных
сетей
+
+
+
use
Добавить нейрон() : void
Редактировать нейрон() : void
Удалить нейрон() : void
Рисунок 1.3.3 – Диаграмма управляющих классов
class Boundary
«show»
Форма
редактирования
справочника
выборок
Форма работы с
выборками
«show»
«show»
Главная форма приложения
«show»
+
+
+
+
авторизовать() : void
закрыть форму авторизации() : void
отобразить форму пользователя() : void
отобразить форму эксперта() : void
Форма работы с
нейронными
сетями
Форма
редактирования
параметров сети
Форма обучения
нейронной сети
«show»
Форма
отображения
графиков
«show»
«show»
«show»
«show»
«show»
Форма выбора из
списка выборок
«show»
Форма
аппроксимации
«show»
Форма
отображения
справочной
информации
Рисунок 1.3.4 – Диаграмма граничных классов
1.3.4 Диаграмма состояний
Главное
предназначение
диаграммы
состояний
–
описать
возможные
последовательности состояний и переходов, которые в совокупности характеризуют
поведение элемента модели в течение его жизненного цикла. Диаграмма состояний
представляет динамическое поведение сущностей, на основе спецификации их реакции на
восприятие некоторых конкретных событий[11].
Диаграмма состояний по существу является графом специального вида, который
представляет некоторый автомат. Вершинами этого графа являются состояния (или
43
псевдосостояния). Дуги графа служат для обозначения переходов из состояния в состояние.
Диаграммы состояния могут быть вложены друг в друга, образуя вложенные диаграммы
более детального представления отдельных элементов модели.
Состояние определяется именем и списком внутренних действий или деятельностей,
которые выполняются в процессе нахождения моделируемого элемента в данном состоянии
и характеризуются меткой действия (entry, exit, do, include). Начальное состояние – частный
случай состояния, которое не содержит никаких внутренних действий (псевдосостояния), в
котором находится объект по умолчанию в начальный момент времени. Конечное состояние
– частный случай состояния, которое не содержит никаких внутренних действий
(псевдосостояния), в котором находится объект по умолчанию после завершения работы
автомата в конечный момент времени. Состояния могут быть составными (композитными) –
т.е. состоящими из других, вложенных в него состояний (подсостояний), которые могут быть
как последовательными, так и параллельными; историческими – т.е. запоминающими;
синхронизирующими.
Простой переход – отношение между двумя последовательными состояниями,
которое указывает на факт смены одного состояния другим. Срабатывание перехода может
зависеть от наступления некоторого события или от выполнения определенного условия,
называемого сторожевым[12].
Сложные переходы:

соединение – если имеется две и более входящих дуг.

ветвление - если имеется две и более исходящих дуг.
Общая диаграмма состояний системы представлена на рисунке 1.3.5. Диаграмма
состояний работы с нейронными сетями на рисунке 1.3.6. Диаграмма состояний работы с
выборками представлена на рисунке 1.3.7. Диаграмма состояний работы со списком
нейронных сетей представлена на рисунке 1.3.8. Диаграмма состояний работы приложения в
режиме обучения нейронной сети представлена на рисунке 1.3.9. Диаграмма состояний
работы приложения в режиме аппроксимации на рисунке 1.3.10.
44
stm Работа пользователя с приложением
Загрузка главной
формы приложения
[Элементы главной формы
загружены]
Ожидание действий
пользователя
[Выбран пункт меню
"Выборки"]
[Закрытие формы
работы с
нейронными
сетями]
[Выбран пункт меню
"Нейронные сети"]
Завершение работы
пользователя с
приложением
[Выбран пункт меню
"Справка"]
[Закрытие формы
работы с
выбрками]
Работа с выборками
Работа с нейронными
сетями
[Нажатие кнопки
"Закрыть"]
[Закрытие формы
со справкой]
Просмотр справочной
информации
Рисунок 1.3.5 – Диаграмма состояний приложения
stm Работа с нейронными сетями
[Выбор пункта меню
"Список нейронных
сетей"]
Работа со
справочником
нейронных сетей
[Нажатие кнопки "Закрыть"]
Аппроксимация
[Выбор пункта меню
"Аппроксимация"]
[Нажатие кнопки "Закрыть"]
Рисунок 1.3.6 – Диаграмма состояний работы с нейронными сетями
45
stm Работа с выборками
Отображение формы
работы с выборками
[Элементы формы
загружены]
Ожидание действий
пользователя
[Нажатие кнопки "Закрыть"]
[Выбрана выборка
из списка]
[Новая выборка создана и сохранена]
Загрузка параметров
выбранной выборки
[Нажатие кнопки
"Удалить"]
Выборка удалена
Ввод значений
параметров выборки
[Нажатие
кнопки
"Генерировать"]
Создание новой
выборки
[Нажатие кнопки "Показать
плотность вероятности"]
Отображение графика
плотности
вероятности
[Выборка сохранена]
[Нажатие кнопки
"Сохранить в
файл"]
Изменение и
сохранение выборки
Редактирование
параметров выборки
Рисунок 1.3.7 – Диаграмма состояний работы с выборками
stm Работа со списком нейронных сетей
Отображение формы
работы со списком
нейронных сетей
[Элементы формы
загружены]
Ожидание действий
пользователя
[Нажатие кнопки "Закрыть"]
[Сеть создана]
[Изменения сохранены]
[Выбрана сеть из списка]
[Сеть удалена]
Загрузка параметров
выбранной сети
[Нажатие кнопки
"Удалить"]
Удаление сети
Ввод новых значений
параметров сети
[Нажатие кнопки
"Добавить"]
Создание новой сети
[Сеть обучена]
Редактирование
параметров сети
[Нажатие кнопки
"Сохранить"]
Сохранение сети
[Нажатие кнопки "Обучить"]
Обучение сети
Рисунок 1.3.8 – Диаграмма состояний работы со списком нейронных сетей
46
stm Обучение сети
[Нажатие кнопки "Закрыть"]
Загрузка формы
обучения сети
[Форма обучения
загружена]
[Параметры
отредактированы]
Редактирование
параметров сети и
обучения
Ожидание действий
пользователя
[Нажатие
кнопки
"Старт"]
Отображение
графиков исходной и
аппроксимированной
[Нажатие кнопки "Закрыть" на форме с графиками]
выборки
[Нажатие кнопки "Показать график"]
[Сеть обучена]
[Обучение
остановлено]
[Нажатие
кнопки
"Стоп"]
Обучение сети
Остановка обучения
Рисунок 1.3.9 – Диаграмма состояний работы приложения в режиме обучения сети
stm Аппроксимация
Загрузка формы
аппроксимации
[Форма аппроксимации
загружена]
Ожидание действий
пользователя
[Нажатие кнопки "Закрыть"]
Выбор нейронной
сети из списка
Отображение графика
аппроксимированной
выборки
[Сеть выбрана]
[Аппроксимация завершена]
[Выборка
выбрана]
Выбор выборки из
списка
Аппроксимация
выборки нейронной
сетью
Рисунок 1.3.10 – Диаграмма состояний работы приложения в режиме аппроксимации
1.3.6 Диаграмма кооперации (Collaboration Diagram)
Диаграмма кооперации – это динамическая модель системы обмена сообщений между
объектами.
Кооперация – описание общего расположения объектов и связей, которые
взаимодействуют для обеспечения некоторого поведения (например такого, как вариант
использования или операция).
Кооперация имеет статическую и динамическую части. В статической описываются
роли, которые могут играть объекты и их связи в экземпляре данной кооперации.
Динамическая состоит из одного или более взаимодействий, характеризующихся потоками
сообщений, которыми обмениваются между собой участники коопераций.
47
Диаграмма кооперации может быть представлена на двух уровнях: уровень
спецификаций – только роли классов и роли ассоциаций. Уровень экземпляров или частных
примеров – более детально, на уровне объектов и детализации сообщений. Одни и те же
объекты могут выполнять разные роли и участвовать в разных кооперациях. Каждая
кооперация реализует один вариант использования или одну операцию.
Диаграмма кооперации варианта использования «Вести справочник выборок»
представлена на рисунке 1.3.11.
sd Cooperation Diagram
:Форма работы со
списком выборок
8: click (Удалить выборку)
1: click(Создать выборку)
3: input(параметры)
2: show()
9: delete()
4: append()
:Форма создания
выборки
Пользователь
6: сообщение о добавлении выборки()
:Менеджер
работы с
файловой
системой
7: refresh (список выборок)
10: delete()
5: append()
:Выборка
Рисунок 1.3.11 – Диаграмма кооперации варианта использования «Вести
справочник выборок»
1.3.7 Диаграмма деятельности (Activity Diagram)
Диаграммы деятельности используются для моделирования процесса выполнения
операций. Каждое состояние на диаграмме деятельности соответствует выполнению
некоторой элементарной операции, а переход в следующее состояние срабатывает только
при завершении этой операции в предыдущем состоянии.
Графически диаграмма деятельности представляется в форме графа деятельности,
вершинами которого являются состояния действия, а дугами – переходы от одного состояния
действия к другому. Основным направлением использования диаграмм деятельности
является визуализация особенностей реализации операций классов, когда необходимо
представить алгоритмы их выполнения. На диаграмме деятельности отображается логика
или последовательность перехода от одной деятельности к другой, при этом внимание
фокусируется на результате деятельности. Сам же результат может привести к изменению
состояния системы или возвращению некоторого значения. Состояние действия –
специальный случай состояния с некоторым входным действием и, по крайней мере, одним
48
выходящим из состояния переходом. Этот переход неявно предполагает, что входное
действие уже завершилось. Состояние действия не может иметь внутренних переходов,
поскольку оно является элементарным. Обычное использование состояния действия
заключается в моделировании одного шага выполнения алгоритма (процедуры) или потока
управления[12].
49
act Activ ity Diagram
Загрузка NI обучающих
выборок
Присвоение начальных
значений n= ?, w =?, c=?,
q=? всем NJ нейронам
скрытого слоя
счетчик выборок i = 0
Значение x выборки[i]
подается на вход сети
i < NI
счетчик нейронов
скрытого слоя j = 0
Расчет значения
выходного сигнала
нейрона j Fj = f(||Xj -Cj ||)
j < NJ
j =j +1
j >= NJ
Расчет значения
выходного нейрона F =
SUMj (Wj * Fj )
Расчет погрешности
аппроксимации Pi = Fi - Di
Корректировка весов Wij
= W(i-1)j + deltaWij
i=i+1
i >= NI
Рисунок 1.12 - Диаграмма деятельности «Алгоритм обучения нейрона скрытого слоя РБС
методом обратного распространения ошибки»
50
Каждая
диаграмма
деятельности
должна
иметь
единственное
начальное
и
единственное конечное состояния. При этом каждая деятельность начинается в начальном и
заканчивается в конечном состоянии.
Диаграммы активности дополняют и уточняют диаграммы состояний активностями,
превращающими диаграмму в блок-схему алгоритма реализации данного модуля. Диаграмма
деятельности
«Алгоритм
обучения
радиально-базисной
сети
методом
обратного
распространения ошибки» представлена на рисунке 1.12.
1.5 Оценка системных и эксплуатационных характеристик
1.5.1 Расчет объема ВЗУ
Для того чтобы определить минимальные требования к системе, требуется рассчитать
объём используемой памяти как на жёстком диске, так и в оперативной памяти:
На жестком диске:

WindowsXP – 750 Мб

Исполняемый файл программы Approximator.jar – 2 Мб

Подгружаемые библиотеки .jar – 15 Мб

Папка с рисунками – 2 Мб
Расчёт объёма жёсткого диска ведётся по формуле (1.5.1):
Vжд = Voc + Vпс + Vд + [Vсоп.прог.]
(1.5.1)
Vжд = 750 Mб + 2 Мб + 125 Мб + 15 Мб + 2 Мб = 894 Мб
Планируется
также
при
работе
с
программой
использовать
дополнительное
пространство жесткого диска для хранения сериализованных выборок данных и нейронных
сетей в файлах. Объем файла с выборкой данных в среднем занимает 50 Кб (зависит от
размера выборки); нейронной сетью – 2 Кб. Пользователь может удалять и добавлять файлы.
В результате минимальный объём памяти на жёстком диске составляет около 1 Гб.
1.5.2 Расчет объема ОЗУ
Расчет необходимого объема ОЗУ производится по формуле (1.5.2) .
ОП
ОП
ОП
V ОП  VОС
 Vпрограммы
 Vданных
ОП
где VОС – объем оперативной памяти, необходимой операционной системе;
ОП
Vпрограммы
– объем оперативной памяти, необходимый программе;
51
(1.5.2)
ОП
– объем оперативной памяти, необходимый данным.
Vданных
Для работы операционной системы WindowsXP требуется около 500 Мб
оперативной памяти.
ОП
=5,79 Мб;
Vпрограммы
В качестве данных, используемых программой, выступают обучающие данные,
тестовые данные и нейронные сети. Тогда объем оперативной памяти, необходимой для
хранения данных, можно вычислить по формуле (1.5.3).
ОП
ОП
ОП
V Данных
 Vвыборки
 Vнейросети
(1.5.3)
ОП
где Vвыборки
– объем оперативной памяти, необходимой для хранения выборки;
ОП
Vнейросети
– объем оперативной памяти, необходимый для хранения структуры
нейронной сети.
В любой момент работы программы используется не более одной обучающей выборки
(одной тестирующей выборки), и одной нейронной сети. Максимальный объем обучающей
выборки – 1000 примеров.
ОП
Vвыборки
 1000  4  10 6 Мб = 4Кб;
При расчете объема оперативной памяти, занимаемого нейронной сетью, будем
считать, что максимальное число входов равно 1, число нейронов промежуточного слоя 50,
выходного слоя 1 (формула 1.5.4).
ОП
Vнейросети
 N нейронов  vнейрона  v управления
(1.5.4)
ОП
Vнейросети
 (50  72  104)  10 6 Мб=3,704 Кб.
ОП
ОП
ОП
V Данных
 Vвыборки
 Vнейросети
=2,8Кб + 3,704Кб=6,504Кб.
Тогда из (1.5.2) следует, что минимальный объем оперативной памяти, необходимый
для функционирования системы, равен:
VОП=500 Мб + 5,79 Мб + 6.504Кб = 506 Мб.
1.5.3 Расчет времени реакции системы
Время реакции системы рассчитывается по формуле (1.5.5).
tреакции=tввода+tвычисления+tвывода
где tввода – время ввода параметров сети и алгоритма обучения;
52
(1.5.5)
tвычисления – время вычислений, связанных с обучением сети;
tвывода – время вывода результатов на экран.
Время ввода параметров вычисляется по формуле (1.5.6).
tввода=Lсимв ∙ tсимв
(1.5.6)
где Lсимв – количество символов в запросе;
tсимв – время ввода одного символа, обычно tсимв=1.5 с.
Время ввода параметров tввода=Lсимв ∙ tсимв=16·1,5 с=24 с.
Время вычислений, т.е. процесса обучения рассчитывается по формуле (1.5.7).
t вычисления 
N опер  k м к
(1.5.7)
f
где Nопер – количество операторов,
kмк – среднее количество машинных команд, затрачиваемых на реализацию одного
оператора,
f – тактовая частота процессора в герцах.
Время вывода результатов на экран tвывода обычно составляет 0,5с.
Рассчитаем время реакции системы для случая обучения сети. Размерность входного
вектора 100, число обучаемых нейронов 20 3, число итераций обучения нейрона на всем
задачнике 1000, на одном примере – 10.
Количество операторов для формирования обучающей выборки 10000. Количество
операторов для обучения одного нейрона 20000. Следовательно, общее количество
операторов Nопер=10000+20*20000=410000. Принимая среднее количество машинных
команд, затрачиваемых на выполнение одного оператора равным kмк=60, частоту процессора
в герцах равной f=1,4∙109, получим, согласно (1.5.7), tвычисления=
410000  60
 17,57  10 3 с.
9
1,4  10
Тогда по (1.5.5) tреакции=24 с + 17,57·10-3 с + 0,5 с=25 с, что соответствует нормам
времени для диалогового режима (до 30 с). В данном случае при расчете времени реакции
учитывалось время ввода всех параметров. При инициализации системы уже введены
оптимальные параметры, поэтому время реакции системы может быть значительно
сокращено до 0,5 с.
53
1.5.4 Минимальные требования к системе
На основе выполненных расчётов занимаемой памяти и, исходя из основного
назначения программы, сделаем вывод о рекомендуемой конфигурации комплекса
технических средств:
 IBM – совместимый компьютер с тактовой частотой процессора 1,4 ГГц и более;
 объем оперативной памяти не менее 512 Мб;
 жесткий диск не менее 1 Гб;
 монитор с разрешением 800x600;
 видеокарта 512Mб с поддержкой 256 цветов;
 манипулятор мышь.
Программное обеспечение, необходимое для функционирования программы: ОС MS
Windows 98 или более новые версии.
2 КОНСТРУКТОРСКО-ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ
2.1 Обоснование архитектуры программы
Автоматизированная система аппроксимации плотности распределения вероятности
радиально-базисной нейронной сетью
является однозвенным приложением. С помощью
него производится обучение, хранение нейронной сети, а также
осуществляется
аппроксимация обученными нейронными сетями; генерируются выборки по заданным
законам распределения для обучения и тестирования нейронной сети. См Аппроксимация
полиномами и тп.pdf
Разработанная
автоматизированная
система
состоит
из
группы
подсистем,
реализующих следующие задачи:… - пункт 2.4
2.2 Выбор и обоснование средств реализации
2.2.1 Выбор языка программирования
Программный комплекс аппроксимации нейронной сетью реализован с помощью
языка программирования Java 1.6.
Java - объектно-ориентированный язык программирования, разработанный компанией
Sun Microsystems. Приложения Java обычно компилируются в специальный байт-код,
54
поэтому они могут работать на любой виртуальной Java-машине (JVM) независимо от
компьютерной архитектуры [7].
Достоинство подобного способа выполнения программ — в полной независимости
байт-кода от операционной системы и оборудования, что позволяет выполнять Javaприложения на любом устройстве, для которого существует соответствующая виртуальная
машина. Другой важной особенностью технологии Java является гибкая система
безопасности благодаря тому, что исполнение программы полностью контролируется
виртуальной машиной. Любые операции, которые превышают установленные полномочия
программы (например, попытка несанкционированного доступа к данным или соединения с
другим компьютером) вызывают немедленное прерывание.
Кроме кроссплатформенности, Java имеет еще одно несомненное достоинство:
ориентация на объектно-ориентированный подход программирования. Это позволяет
наиболее быстро, эффективно и качественно осуществить разработку программы, а также ее
дальнейшую поддержку.
Поэтому Java была выбрана в качестве языка для реализации программного
комплекса.
2.2.2 Выбор среды программирования
Реализация программного комплекса осуществляется в среде Intellij Idea 10.
IntelliJ
IDEA
-
интеллектуальная
интегрированная
среда
разработки
Java,
сосредоточенная на производительности разработчика, которая обеспечивает устойчивую
комбинацию расширенных инструментальных средств. Расширенная проектная навигация
структуры кода упрощает анализ даже больших файлов, обеспечивая удобный способ их
просмотра. Поиск распознает элементы языков, показывая результаты в интерактивной
навигационной панели, помогая проанализировать все найденные файлы [10].
Первая версия IntelliJ IDEA появилась в январе 2001 года и быстро приобрела
популярность, как первая Java IDE с широким набором интегрированных инструментов для
рефакторинга[1], которые позволяли программистам быстро реорганизовывать исходные
тексты программ. Дизайн среды ориентирован на продуктивность работы программистов,
позволяя им сконцентрироваться на разработке функциональности, в то время как IntelliJ
IDEA берет на себя выполнение рутинных операций.
Начиная с шестой версии продукта IntelliJ IDEA предоставляет интегрированный
инструментарий для разработки графического пользовательского интерфейса.
Начиная с версии 9.0, IntelliJ IDEA доступна в двух версиях: Community Edition и
Ultimate Edition. Community Edition является полностью open-source версией, доступной под
55
лицензией Apache 2.0. В ней реализована полная поддержка Java SE, Groovy, Scala, а также
интеграция с наиболее популярными системами управления версиями. В версии Ultimate
Edition реализована поддержка Java EE, UML-диаграмм, подсчет покрытия кода, а также
поддержка других систем управления версиями, языков и фреймворков.
Таким
образом,
возможности
данной
среды
программирования
полностью
соответствуют требованиям при разработке программного комплекса (поддерживает язык
Java, имеет полный набор инструментов для создания интерфейса, написания и отладки
кода).
2.2.3 Выбор операционной системы
Операционная система (Operating System, OS) — комплекс управляющих и
обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между
устройствами вычислительной системы и прикладными программами, а с другой стороны —
предназначены
эффективного
для
управления
распределения
устройствами
вычислительных
и
вычислительными
ресурсов
между
процессами,
вычислительными
процессами и организации надёжных вычислений.
Выбор операционной системы является важной составляющей разработки любого
программного продукта. ОС определяет интерфейс программы, быстродействие всего
информационно-вычислительного комплекса, удобство работы пользователя и т.д.
В пункте 2.2.1 в качестве языка программирования был выбран язык Java (п. 2.2.1),
который является кроссплатформенным. Таким образом, полученный исполняемый файл .jar
может быть запущен в любой операционной системе. Единственным требованием является
наличие предустановленной Java Machine (JVM). Поэтому на выбор разработчика
предоставляется большое число операционных систем (различные варианты Microsoft
Windows, ОС Unix и др.). В данном дипломном проекте была выбрана операционная система
Windows 7, т.к. это одна из самых распространенных и удобных операционных систем,
совместимых с JVM.
2.3 Разработка физической модели данных
Схема базы данных на физическом уровне
2.4 Описание программной реализации
Программный комплекс аппроксимации плотности вероятности нейронной сетью
включает в себя несколько подсистем (рисунок 2.2):

подсистему авторизации;

подсистему ведения справочников;
56

подсистему ведения базы данных;

подсистему обучения нейронной сети;

подсистему аппроксимации нейронной сетью;

подсистему отображения интерфейса.
Подсистема авторизации предназначена для сохранения данных пользователей и
разграничения
их
прав
(на
роли
эксперта
и
пользователя).
Включает
классы
AutorizeDAO.java, AutorizeForm.java.
obj ect Diagram
Программный
комплекс
аппроксимации
нейронной сетью
Подсистема
авторизации
Подсистема
отображения
интерфейса
Подсистема
ведения данных
Подсистема
работы с
нейронной сетью
Подсистема
ведения базы
данных
Подсистема
аппроксимации
нейронной сетью
Подсистема
ведения
справочников
Подсистема
обучения
нейронной сети
Рисунок 2.2 – Структура программного комплекса
Подсистема ведения справочников – для ведения справочников пользователей,
нейронных сетей (только для эксперта) и обучающих выборок. Включает классы
CatalogForm.java, Catalog.java.
В базе данных хранятся сведения о нейронных сетях, пользователях и выборках.
Включает классы NeuralNetDAO.java, VybDAO.java, UserDAO.java, Vyb.java, Net.java,
User.java, OracleConnector.java. В классе OracleConnector.java осуществляется получения и
закрытие соединения с базой данных

public static Connection getConnection()

public static void closeConnection(Connection con, ResultSet rs, PreparedStatement ps)–
– получения соединения с БД;
соединения с БД
57
закрытие
В подсистеме обучения нейронной сети производится аппроксимация функции
плотности вероятности, построенной по гистограмме плотности вероятности (из обучающей
выборки) с помощью нейронной радиально-базисной сети. Включает классы NeuroTest.java,
MainForm.java. В классе NeuroTest.java производится основная работа с нейронной сетью:

public
static
NeuralNetwork
createAndLearnNet(int
hidden_count,TrainingSet
learningRate, double dopError, double momentum, int maxLearningTime, int teachCount ) - создание
tset,
double
и обучение
нейронной сети с заданными параметрами;

public static ArrayList<Vyborka> testNeuralNetwork(NeuralNetwork nnet, TrainingSet tset)
-
аппроксимация заданной нейронной сетью nnet заданной выборки tset;

public static void saveNet(NeuralNetwork nn, String filepath) - сохранение

public static NeuralNetwork loadNetworkFromFile(String filename)-
нейронной сети в
файл;
загрузка нейронной сети
из файла
В подсистеме отображения интерфейса используются классы ApproximateChart.java,
HistogramChart.java, FAddNet.java, FAddUser.java, FAddVyborka.java.
2.5 Описание интерфейса
Интерфейс программного комплекса был разработан с учетом функциональных
требований. Используется диалоговый режим общения с пользователем.
Пользователь
может вводить любые параметры нейронной сети, сохранять их в базе данных или загружать
из базы данных посредством нажатия на соответствующие кнопки, а также просматривать
результаты обучения сети в виде графиков (рисунок 2.3)
На вкладке «Нейронная сеть» пользователь может выбрать сеть, отредактировать и
сохранить ее параметры в базе данных (название, число скрытых нейронов, функция
активации, допустимая ошибка, выборка для обучения, коэффициент обучения, момент,
максимальное время обучения и число интервалов разбиения выборки для построения
гистограммы плотности вероятности).
Далее эксперт может запустить обучение сети. При обучении отображается
динамический график изменения ошибки (рисунок 2.7).
58
Рисунок 2.3 – Форма работы с нейронной сетью
2.6 Разработка программы и методики испытаний
Объектом испытаний является программный комплекс аппроксимации плотности
вероятности поломок оборудования радиально-базисной сетью.
Целью испытаний является проверка работоспособности программы.
1.
Проверка возможности запуска программы.
Действия:
Запустить NeuralApproximator.jar
1)
Результат:
На экране отображается форма авторизации приложения
1)
2.
Проверка добавления нового пользователя
Действия:
1)
Запустить NeuralApproximator.jar
2)
На форме авторизации ввести логин и пароль эксперта, нажать «ОК».
3)
Перейти на вкладку «Справочники».
4)
Выбрать справочник пользователей, нажать кнопку «Выбрать справочник»
5)
На форме работы со справочником пользователей нажать кнопку «Добавить»
6)
Ввести новый логин и пароль пользователя, нажать кнопку «ОК»
Результат:
59
В списке пользователей на форме работы со справочником пользователей
1)
появился логин зарегистрированного пользователя.
Проверка возможности обучения нейронной сети
3.
Действия:
1) Запустить NeuralApproximator.jar
2) На форме авторизации ввести логин и пароль эксперта, нажать «ОК».
3) Перейти на вкладку «Нейронная сеть».
4) Заполнить необходимые параметры
5) Нажать кнопку «Обучить сеть»
6) После появления окна «Сеть обучена» нажать «ОК», затем на форме «Нейронная
сеть» нажать кнопку «График результатов аппроксимации».
Результат:
Система
1)
отобразила
сравнительный
график
гистограммы
плотности
вероятности и аппроксимированной функции плотности вероятности, по которому можно
судить об эффективности аппроксимации заданной выборки нейронной сетью с заданными
при обучении параметрами.
2.7 Описание контрольного примера
При запуске программы появляется окно авторизации (рисунок 2.4). Пользователь
вводит логин и пароль. Если они зарегистрированы в базе данных, пользователь входит как
эксперт (в системе есть только один эксперт), либо как пользователь.
Рисунок 2.4 – Форма авторизации
Если пользователь аутентифицирован как эксперт, появляется форма работы эксперта
(рисунок 2.3).
В качестве контрольного примера рассмотрим случайную выборку объемом 500 и
количеством интервалов разбиения для построения гистограммы 20. Выберем параметры
сети для аппроксимации выборки RBF-сетью:

Число скрытых нейронов – 4;

Функция активации – РБФ;
60

Допустимая ошибка – 0.00001

Коэффициент обучения – 0.05

Момент – 0.35

Максимальное время обучения – 10 секунд;
Эксперт может редактировать данные в справочниках выборок, нейронных сетей и
пользователей (рисунок 2.5). Также пользователю программы предоставляется справочная
информация (рисунок 2.6).
Рисунок 2.5 – Форма работы со справочниками пользователей
Рисунок 2.6 – Справочная информация
По окончании обучения эксперт может просмотреть гистограмму плотности
вероятности (рисунок 2.8) и сравнительный график исходной и аппроксимированной сетью
функции (рисунок 2.9).
61
Рисунок 2.7 – График изменения ошибки в процессе обучения сети
Рисунок 2.8 – Гистограмма плотности вероятности
Рисунок 2.9 – Сравнительный график исходной и аппроксимированной сетью функции
Результирующая
погрешность
обучения
для
нейронной
сети
с
заданными
параметрами равна 0.0006. Можно визуально оценить результат аппроксимации по рисунку
2.9.
62
Все проверки, описанные в методике испытаний, выполнены успешно.
2.8 Разработка руководства пользователя
Для
пользователя
и
эксперта
разработано
руководство
по
использованию
программного комплекса. Пользователь программного комплекса должен обладать
начальными теоретическими знаниями о нейронных сетях и понятии аппроксимации
функции плотности вероятности, чтобы иметь возможность грамотно задать параметры
нейронной сети и выполнить анализ результатов погрешности аппроксимации.
Полный текст руководства приведен в приложении А.
63
ЗАКЛЮЧЕНИЕ
В соответствии с заданием на курсовой проект разработан программный комплекс
аппроксимации с помощью радиально-базисной сети, которая обучается по методу
обратного распространения ошибки. Программа работает
в
режимах
эксперта и
пользователя. Эксперт, в отличие от пользователя, имеет дополнительные возможности по
обучению нейронной сети, редактировании ее параметров, а также по работе со
справочниками нейронных сетей и пользователей.
Создана информационно-логическая модель автоматизированной системы в нотации
UML с помощью инструментальных средств Enterprise Architector.
В ходе работы были сформулированы требования к техническому обеспечению и
обоснован выбор средств автоматизации. Программное обеспечение системы разработано в
среде Intellij Idea 10 на языке высокого уровня Java
под управлением ОС Windows 7.
Программное обеспечение соответствует требованиям, описанным в техническом задании.
1. Выводы к диплому
По приведенным данным можно сделать вывод о том, что применение
нейронных сетей даёт достаточно высокий уровень аппроксимации исходных
наблюдаемых данных, прежде всего это благодаря наличию в RBF нейросети
скрытого слоя нейронов с нелинейными радиально-базисными функциями
активации, которые позволяют отслеживать малейшие изменения в уровнях
исследуемого временного ряда.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Большая советская энциклопедия, http://www.rubricon.ru/;
2. Прохоров, С.А. Аппроксимативный анализ случайных процессов. [Текст]/-2-е изд.,
перераб. и доп./СНЦ РАН, 2001. – 125с.;
3. Филатова, Т.В. Применение нейронных сетей для аппроксимации данных. [Текст]
//NUE, 2004. – 120с.;
4. Neural
Network
Toolbox,
http://www.sl-
matlab.ru/services/products/detail.php?ID=434&list=c;
5. Matlab
для
DSP.
Нейронные
сети:
графический
http://chipnews.gaw.ru/html.cgi/arhiv/01_08/1.htm ;
64
интерфейс
пользователя,
6. Аппроксимация
функций
нейронными
сетями,
http://www.statsoft.ru/statportal/tabID__32/MId__141/ModeID__0/PageID__193/DesktopD
efault.aspx ;
7. Программные технологии, использующие нейронные сети, http://wiki.masu-inform.ru;
8. Осовский С. Нейронные сети для обработки информации / Пер. с польского И.Д.
Рудинского. – М.: Финансы и статистика, 2002. – 344 с.;
9. Горбань А. Н., Обобщенная аппроксимационная теорема и вычислительные
возможности нейронных сетей, Сибирский журнал вычислительной математики,
1998. Т.1, № 1. С. 12-24;
10. Информация
о
среде
программирования
Intellij
Idea,
http://ru.wikipedia.org/wiki/IntelliJ_IDEA ;
11. Дерябкин В.П. Проектирование автоматизированных систем обработки информации и
управления. Курс лекций. [Текст] //СГАУ, 2001. – 120с.;
12. Буч, Г. Язык UML. Руководство пользователя [Текст]/ Г. Буч, Д. Рамбо, А.
Джекобсон. – М., 2003. – 432 с.;
13. СТП СГАУ 6.1.4. Общие требования к оформлению учебных текстовых документов
[Текст]. - Самара, Самарский аэрокосмический университет, 1997. - 16 с.
65
ПРИЛОЖЕНИЕ А
Руководство пользователя
66
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ
УНИВЕРСИТЕТ
им. АКАДЕМИКА С. П. КОРОЛЁВА» (СГАУ)
УТВЕРЖДАЮ
Программный комплекс аппроксимации плотности вероятности поломок
оборудования радиально-базисной сетью
Руководство пользователя
ЛИСТ УТВЕРЖДЕНИЯ
А.В.00001-01 55 01-1-ЛУ
(вид носителя данных)
Листов 6
ПРЕДСТАВИТЕЛЬ
ПРЕДПРИЯТИЯРАЗРАБОТЧИКА
СОГЛАСОВАНО
РУКОВОДИТЕЛЬ
РАЗРАБОТКИ
ИСПОЛНИТЕЛЬ
НОРМОКОНТРОЛЕР
2011
67
УТВЕРЖДЕНО
А.В.00001-01 55 01-1-ЛУ
Программный комплекс аппроксимации плотности вероятности поломок
оборудования радиально-базисной сетью
Руководство пользователя
А.В.00001-01 55 01-1-ЛУ
(вид носителя данных)
Листов 6
2011
68
А.1 Назначение системы
Назначение разрабатываемого программного комплекса состоит в автоматизации
процесса исследования нейросети для решения задачи аппроксимации функции.
Целью разработки программного комплекса является моделирование нейронной сети
в качестве аппроксиматора плотности вероятности для изучения свойств и оценки качества
аппроксимации сетью с различными параметрами.
Функции программного комплекса представлены в приложении к заданию на
курсовой проект.
А.2 Условия работы системы
Для работы программы необходимо наличие следующих программных и аппаратных
средств (определены в пункте 1.5 «Оценка системных и эксплуатационных характеристик»).
Минимальные требования к аппаратным средствам:

IBM – совместимый компьютер с тактовой частотой процессора 233 МГц и

объем оперативной памяти не менее 2 Гб;

жесткий диск не менее 2 Гб

монитор с разрешением 800x600;

видеокарта 512Mб с поддержкой 256 цветов;

манипулятор мышь.
более;
Требования к программному обеспечению:

операционная система с поддержкой JVM;

JVM 1.6 (Java Machine);

СУБД Oracle 11g.
А.3 Подготовка к работе
Установка программы на компьютер пользователя или эксперта заключается в
копировании файла NeuralApproximator.jar, start.bat и поставляемых с ним папок (vyborki,
images, nets, libs) в любую директорию на компьютере.
А.4 Работа системы
Для начала работы с программой необходимо запустить start.bat. После запуска
появится окно авторизации.
69
При запуске программы появляется окно авторизации (рисунок А.1). Пользователь
вводит логин и пароль. Если они зарегистрированы в базе данных, пользователь входит как
эксперт (в системе есть только один эксперт), либо как пользователь.
Рисунок A.1 – Форма авторизации
Если пользователь аутентифицирован как эксперт, появляется форма работы эксперта
(рисунок A.2). Если как пользователь – появляется форма работы пользователя (рисунок
А.3).
Рисунок А.2 – Форма работы эксперта с нейронной сетью
Рисунок A.3 – Форма работы пользователя
70
Для обучения сети можем задать, изменить и сохранить следующие параметры сети:

Название сети;

Число скрытых нейронов;

Функция активации;

Допустимая ошибка

Коэффициент обучения

Момент

Список обучающих выборок

Максимальное время обучения (в секундах).
Эксперт может работать со справочниками . Эксперт может редактировать данные в
справочниках
выборок
пользователей(рисунок
(рисунок
А.6).
А.4),
В режиме
нейронных
сетей(рисунок
А.5)
и
пользователя доступна только работа со
справочником выборок.
Рисунок А.4 – Добавление выборки в справочник выборок
71
Рисунок А.5 – Работа со справочником нейронных сетей
Рисунок А.6 – Работа со справочником пользователей
В процессе обучения можно увидеть динамический график изменения ошибки
(рисунок А.7). По окончании обучения эксперт может просмотреть гистограмму плотности
вероятности (рисунок А.8) и сравнительный график исходной и аппроксимированной сетью
функции (рисунок А.9).
72
Рисунок А.7 – График изменения ошибки в процессе обучения сети
Рисунок А.8 – Гистограмма плотности вероятности
73
Рисунок А.9 – Сравнительный график исходной и аппроксимированной сетью функции
Результирующая
погрешность
обучения
для
нейронной
сети
с
заданными
параметрами равна значению, отображаемому в поле «Погрешность». Можно визуально
оценить результат аппроксимации по рисунку А.9.
Также
пользователю
программы
предоставляется
справочная
программе (рисунок А.10).
Рисунок А.10 – Справочная информация
74
информация
о
ПРИЛОЖЕНИЕ Б
Листинг программы
2.1.4 Применение критерия Пирсона
75
Download