Содержание к диссертации
Введение
Глава 1. Методы определения закономерностей в системах обработки данных 11
1.1. Типы возможных закономерностей и способы обработки данных . 11
1.2. Методы «интеллектуального» анализа данных (Data Mining) 14
1.3. Нейросетевой подход «интеллектуального» анализа данных 20
1.3.1. Математическая модель нейрона 21
1.3.2. Искусственная нейронная сеть, принципы функционирования . 23
1.3.3. Анализ существующих систем, использующих нейросетевые технологии — 28
1.3.4. Выбор нейропарадигм для решения задач Data Mining 29
1.4. Принципы теории принятия решений 30
1.4.1. Использование деревьев решений и семантических сетей 32
1.5. Выводы 34
Глава 2. Автоматизированное проектирование нейросетевых структур обработки данных с использованием деревьев решений 35
2.1. Использование деревьев решений в качестве инструментария теории принятия решений 35
2.1.1. Модифицированная модель деревьев решений 39
2.1.2. Операции над деревьями решений 42
2.2. Предобработка и кодирование данных 45
2.2.1. Проверка данных на непротиворечивость 46
2.2.2. Кодирование входов-выходов 49
2.2.3. Нормировка данных 53
2.3. Нейросетевые структуры обработки данных 56
2.3.1. Многослойный персептрон 57
2.3.2. RBF-сеть... 69
2.3.3. Структура сети динамических ядер 77
2.3.4. Алгоритм определения количества классов в данных 78
2.3.5. Самоорганизующиеся карты Кохонена 81
2.3.6. Визуализация данных - 84
2.4. Прямой и обратный вывод. Семантические сети 86
2.5. Выводы 89
Глава 3. Модели и алгоритмы представления деревьев решений и нейронных сетей в подсистеме принятия решений и проектирования 91
3.1. Структура подсистемы 91
3.2. Информационная и объектно-ориентированная модели нейронных сетей 94
3.2.1. Разработка системы классов для описания НС. Создание объектно-ориентированной модели 94
3.2.2. Алгоритм формирования НС в рамках объектно-ориентированной модели 96
3.2.3. Разработка структуры фрагмента БД для хранения НС и результатов их работы 97
3.3. Осуществление вывода и формирование правил на основании модифицированных деревьев решения 103
3.3.1. Структура фрагмента БД для деревьев решения 103
3.3.2. Алгоритм прямого вывода 106
3.3.3. Алгоритм обратного вывода. Формирование правил 107
3.4. Представление деревьев решения в виде фактов семантической сети 110
3.4.1. Алгоритм преобразования деревьев решений в семантическую сеть 110
ЗА2. Структура фрагмента БД для семантических сетей 111
3.5. Выводы 112
Глава 4. Разработка программного и информационного обеспечения 113
4.1. Выбор программных средств и СУБД 113
4.2. Конструирование НС с помощью разработанной системы классов . 116
4.3. Программная реализация приложения 118
4.3.1. Ввод и построение деревьев решения 119
4.3.2. Представление результатов прямой и обратной цепочек рассуждений 121
4.3.3. Формирование выборки и предобработка данных 123
4.3.4. Построение нейросетей 124
4.4. Выводы 127
Заключение 128
Список литературы 130
Приложения 135
- Методы «интеллектуального» анализа данных (Data Mining)
- Нейросетевые структуры обработки данных
- Информационная и объектно-ориентированная модели нейронных сетей
- Конструирование НС с помощью разработанной системы классов
Введение к работе
Актуальность темы. Стремительное развитие хранилищ данных и рост объемов хранимой информации в самых различных областях человеческой деятельности предъявляет новые требования к системам обработки информации, в частности, все большую актуальность приобретают системы, способные не просто складировать данные, но и позволяющие осуществлять их анализ и обработку, находить закономерности, производить прогнозирование и выдавать результат в виде доступном человеку. При этом одна из основных проблем заключается в том, что данные могут быть разнотипными (количественными, качественными, текстовыми), многомерными, возможны пробелы в данных, отсутствие априорной информации, сложность зависимостей.
Методы обработки данных могут быть разделены на три категории. К первой относятся методы использующие средства формирования простых запросов и отчетов, позволяющие осуществлять выборку тех данных, которые удовлетворяют некоторым, заранее определенным условиям, т.е. помогают в отыскании фактов, которые произошли в прошлом и были зафиксированы. Вторая включает в себя средства OLAP (On-line Analyzing Processing - Системы оперативной аналитической обработки) позволяющие осуществить комплексный взгляд на собранную в хранилище данных информацию, ее обобщение, получение итогов и сравнений путем экстраполяции, агрегации, построения сводных отчетов и гиперкубического представления. Более глубокий анализ данных осуществляется методами Data Mining или, как их еще называют, методами «интеллектуального» анализа данных. Эта технология направлена на обнаружение в «сырых» данных предварительно неизвестных, практически полезных и доступных интерпретации знаний. Ее важным положением является нетривиальность разыскиваемых шаблоноз, которые представляют собой правила и закономерности, свойственные выборкам данных. Таким образом, найденные шаблоны могут отражать неочевидные, неожиданные регулярности в данных, составляющие так называемые скрытые знания.
Data Mining является мультидисциплинарной областью, возникшей и развивающейся на базе достижений прикладной статистики, распознавания образов, методов искусственного интеллекта, теории баз данных и др. Особенностью алгоритмов и методов, применимых при «интеллектуальном» анализе данных, является отсутствие ограничительных рамок априорных предположений о структуре выборки и виде распределений значений анализируемых показателей, чему наилучшим образом соответствует использование подхода, основанного на нейросетевых технологиях обработки данных или нейросетевой Data Mining. Это обусловлено способностью нейронных сетей к моделированию нелинейных процессов, работе с зашумленными данными, адаптивностью (обучение и самообучение), возможностью работы с малым объемом или полным отсутствием априорнойинформации.
В настоящее время существует достаточно большое количество систем, включающих в себя элементы нейросетевых технологий. Однако, их недостатком может служить то обстоятельство, что в большинстве своем они напрямую не предназначены для анализз информации, накопленной в базе данных, и требуют от пользователя специальной подготовки и понимания в какой ситуации и для каких целей может использоваться та или иная *>,] кОДс*?№1Ш№№Л№Ж^$' куй
кодирование данных. Кроме того, многие сшггемы (КфЯДОДОІДОсГО един вид
1 sFsjLsicX
нейросети (например: многослойный персептрон с возможностью изменять количество внутренних слоев и нейронов в слоях). В информационных системах наибольшее распространение нейронные сети нашли в информационных хранилищах для решения задач прогнозирования. Однако, в таких системах они являются элементом программного обеспечения, к которому пользователь фактически не имеет доступа, и решают ограниченный, заранее определенный класс задач.
В связи с вышеизложенным, актуальной становится задача разработки подсистемы нейросетевой обработки информации, которая предоставляет механизмы, позволяющие осуществлять проектирование и нахождение необходимых параметров сети для решения различных задач Data Mining на имеющихся данных.
Целью диссертационной работы является разработка методов, математических моделей и алгоритмов подсистемы принятия решений для автоматизированного проектирования нейросетевых структур обработки баз данных в зависимости от требований предъявляемых пользователем и имеющихся у него исходных данных.
Для достижения указанной цели были решены следующие основные задачи.
Формирование критериев применимости нейронных сетей для решения различных задач Data Mining, а также анализ зависимостей архитектуры сетей, количества слоев и нейронов в каждом слое, от исходных данных.
Разработка и совершенствование средств и методов принятия решений при выборе и автоматизированном проектировании нейросетевых структур обработки данных в зависимости от поставленной задачи и исходных данных
Разработка информационной и объектно-ориентированной моделей нейронных сетей, структуры фрагмента базы данных (БД) для хранения деревьев решения, семантических сетей, а так же шаблонов и уже построенных нейросетей.
Объект исследования. Объектом исследования являются вопросы использования методов принятия решений для автоматизированного проектирования нейросетевых структур обработки данных в зависимости от требований предъявляемых пользователем и исходных данных.
Предмет исследования. Предметом исследования настоящей работы является анализ и разработка подсистемы «интеллектуальной» обработки информации хранящихся в БД с использованием нейросетевых технологий.
Научная новизна и результаты, выносимые на защиту:
Разработаны модифицированные деревья решений и операции над ними для применения в качестве инструментария в подсистемах поддержки принятия решений.
Разработаны алгоритмы формирования правил, прямого и обратного вывода для модифицированных деревьев решения, а также алгоритм представления деревьев решения в виде фактов семантической сети.
Разработана методика для повышения эффективности выбора и автоматизированного проектирования нейросетевых структур обработки данных с помощью модифицированных деревьев решения.
Разработаны информационная модель нейросетевых структур для хранения в базе данных и объектно-ориентированная модель, представляющая собой иерархию классов, для программной реализации, что позволяет осуществлять их гибкое и эффективное конструирование.
Методы исследования. Исследование и решение поставленных в диссертации задач проводилось на основе комплексного использования теории вероятности, теории графов теории принятия решений, искусственных нейронных сетей, теории
систем. В разработке программного обеспечения использовалась технология объектно-ориентированного программирования.
Практическая ценность полученных результатов.
Сформированы критерии применимости искусственных нейронных сетей для решения различных задач «интеллектуального» анализа данных. Проведен анализ зависимостей архитектуры сетей и их структурных компонентов от исходных данных.
Разработаны алгоритмы и методы использования модифицированных деревьев решений и семантических сетей в качестве инструментария поддержки принятия решений в системах Data Mining.
На основании разработанных информационной и объектно-ориентированной моделей нейросетей, определена структура базы данных приложения для хранения, как шаблонов, так и уже построенных нейросетей, деревьев решений и семантических сетей, а также результатов их использования.
Реализовано приложение, осуществляющее автоматизированное проектирование нейросетевых структур обработки данных в зависимости от информации, хранящейся в базе данных, и требований предъявляемых пользователем.
Разработанные методы и алгоритмы могут стать основой для создания интеллектуальных средств поддержки принятия решений.
Реализация и внедрение результатов исследований.
Результаты диссертационной работы используются в Центре информационных технологий Б проектировании РАН по проекту «Развитие методов математического моделирования для оценки и прогнозирования действия факторов риска на деятельность человека» в рамках Программы фундаментальных научных исследований ОИТВС РАН «Фундаментальные основы информационных технологий и систем» и были отражены в сводном отчете РАН за 2003 год в томе 2 «Основные результаты в области естественных, технических, гуманитарных и общественных наук» (приложение 1).
Для использования в учебном процессе кафедры ИТАС МИЭМ разработано приложение, осуществляющее проектирование нейросетевых структур в зависимости от требований предъявляемых пользователем и имеющихся исходных данных. Результаты работы используются при изучении дисциплин «Базы данных», «Методы принятия решений», «Интеллектуальные подсистемы САПР». Подготовлены (в соавторстве) и изданы методические указания к практическим занятиям по курсу «Банки данных» (приложение 2).
Апробация работы. Основные положения диссертационной работы докладывались и обсуждались на научно-практических семинарах «Новые информационные технологии» (Москва, 2000-2004 гг.), научно-технических конференциях студентов, аспирантов и молодых специалистов МИЭМ (Москва, 2001» 2003 гг.), всероссийской научно-технической конференции «Аэрокосмические технологии» (Реутов, НПО машиностроения, 2002 г.), научно-технической конференции «Информационные технологии в проектировании, производстве и образовании» (Ковров, 2002 г.).
Публикации по теме. По теме диссертации опубликовано 11 печатных работ.
Объем работы. Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы из 83 наименований и приложений. Основное содержание диссертации изложено на 134 страницах и содержит 43 рисунка и 19 таблиц.
Методы «интеллектуального» анализа данных (Data Mining)
Data Mining является мультидисциплинарной областью, возникшей и развивающейся на базе достижений прикладной статистики, распознавания образов, методов искусственного интеллекта, теории баз данных и др. Отсюда обилие методов и алгоритмов, применимых при «интеллектуальном» анализе данных, особенностью которых является отсутствие ограничительных рамок априорных предположений о структуре выборки и виде распределений значений анализируемых показателей. Поэтому в различных действующих системах Data Mining имеется какой-то ключевой компонент, на который делается главная ставка [13,34,70]. Далее проведен анализ наиболее распространенных методов обработки данных, выявлены их достоинства и недостатки.
Статистические методы обработки [1,4] в основном используются для проведения разведочного анализа данных (РАД) и главное внимание в них уделяется методам корреляционного, регрессионного, факторного анализа. Но при использовании этих методов может возникнуть проблема с количеством данных, т.к. статистические методы хорошо работают при достаточно большом объеме исходных данных, а их может быть ограниченное количество. Также, необходимо определить, какие критерии «похожести» использовать, что может потребовать каких-либо дополнительных знаний о характере задачи. Например, регрессионные методы [43] применяются, главным образом, для обнаружения числовых зависимостей некоторых целевых переменных от наборов независимых переменных. Могут быть выделены методы линейной и нелинейной регрессии [15]. Как следует из названий, идея заключается в нахождении линейной или соответственно нелинейной функции независимых переменных, значение которой было бы наиболее близко известному значению целевой переменной. Недостатком метода линейной регрессии является тот факт, что в случае наличия в данных сильно нелинейной зависимости, данный метод может вовсе не обнаружить наличия какой-либо зависимости. При использовании метода нелинейной регрессии пользователь должен располагать довольно подробными знаниями об искомом решении, т.е. фактически требуется заранее знать вид регрессионной функции, примерные значения регрессионных коэффициентов и характерные масштабы их изменения, что далеко не всегда возможно, либо требует больших временных затрат. Также регрессионные методы плохо работают с данными в которых много дискретных категориальных полей. Еще одним недостатком статистических пакетов, ограничивающих их применение в Data Mining, может служить усреднение характеристик выборки, А при исследовании реальных сложных жизненных феноменов эти характеристики часто являются фиктивными величинами.
Идея методов рассуждений на основе аналогичных случаев [18] (case based reasoning — CBR) состоит в том, что для составления прогноза или принятия решения система пытается найти в прошлом близкую к существующей ситуацию, и выдает то же решение, которое было правильным для ситуации в прошлом. Эти методы также часто называют memory based reasoning (рассуждения основанные на памяти), подразумевая тот факт, что решения принимаются на основании всей информации, накопленной в системе. Главным их минусом можно считать то, что они вообще не создают каких-либо моделей или правил, обобщающих предыдущий опыт. Другой минус заключается в том, что результат и объем множества прецедентов, который необходимо хранить для получения удовлетворительного решения, напрямую зависят от меры «близости» между различными ситуациями. Обычно в этом методе применяется евклидова метрика, и когда число анализируемых показателей, или количество полей записей сравнимо с числом самих записей, получается пространство очень большого числа переменных с редкими скоплениями точек. Когда же, число параметров превышает число записей, скопление точек становится настолько редким, что никаких разумных оценок этот метод, как правило, не дает.
Генетические алгоритмы, предложенные в 1975 году Джоном Холландом (John Holland) из Мичиганского университета, предназначены для решения задач оптимизации, но также нашли свое применение ив решении задач «интеллектуальной» обработки данных [13,49]. Их построение состоит из нескольких этапов. На первом, происходит кодирование признаков характеризующих объект. Эти закодированные признаки называются генами, а совокупность таких признаков - хромосомой. Далее для реализации концепции отбора вводится способ сопоставления различных хромосом. Популяция обрабатывается с помощью процедур скрещивания, мутации и инверсии. Эти процедуры имитируют биологические процессы. В ходе работы процедур на каждой стадии эволюции получаются популяции со все более совершенными индивидуумами. Но эти алгоритмы имеют ряд недостатков. В основе генетических алгоритмов лежит метод случайного поиска, а для него неизвестно сколько понадобится времени для решения задачи. Также критерий отбора хромосом и используемые процедуры являются эвристическими и далеко не гарантируют нахождения "лучшего" решения. Как и в реальной жизни, эволюцию может "заклинить на какой-либо непродуктивной ветви. И, наоборот, можно привести примеры, как два неперспективных родителя, которые будут исключены из эволюции генетическим алгоритмом, оказываются способными произвести высокоэффективного потомка. Это особенно становится заметно при решении высокоразмерных задач со сложными внутренними связями.
Нейросетевые структуры обработки данных
Выбор нейросетевой архитектуры может быть сделан в зависимости от решаемой пользователем задачи, имеющихся данных, планируемых методов обучения. Фрагмент соответствующего дерева решений представлен на рисунке 2.18
Далее в этой главе рассматриваются используемые в работе нейросетевые парадигмы: многослойный персептрон, RBF-сеть, сеть метода динамических ядер, самоорганизующиеся карты Кохонена (обоснования их выбора приводятся в первой главе). Анализируется влияние исходных данных и поставленной задачи на применимость и значения параметров используемых сетей. Проводимый анализ направлен на формулировку правил проектирования в некотором смысле оптимальных нейросетей для решения задач Data Mining и на основании полученных правил строятся соответствующие фрагменты деревьев решений. Стоит отметить, что такой же порядок описания может быть использован как для формирования правил создания других сетей, так и других технологий Data Mining. Т.е. в случае, если для решения задачи необходимо использование отсутствующей в системе сети, то она может быть добавлена, путем: 1) разработки фрагмента дерева решений, который бы позволил автоматизировано ее проектировать и 2) подготовки соответствующей библиотеки.
Так для решения задач классификации, аппроксимации и прогнозирования применимы сети прямого распространения. Главным представителем сетей такого класса является многослойный персептрон, структура которого показана на рисунке 2.19. Этот вид нейросетей получил широкое распространение для решения задач распознавания образов, фильтрации шумов, предсказания временных рядов, обработки данных применительно к каналам управления при моделировании, идентификации и для адаптивного, или нелинейного управления [7,63,75]. Причина популярности персептронов обусловлена широким кругом доступных им задач, для которых они являются, во-первых, универсальными, а во-вторых, эффективными, с точки зрения вычислительной сложности, устройствами [20].
Принципы функционирования такой сети были довольно подробно рассмотрены в главе 1. Здесь же будут рассмотрены вопросы конструирования многослойного персептрона, цель которых заключается в определении количества слоев, числа нейронов входного, скрытых (если имеются) и выходного слоев, выборе метода обучения. Для этого строится дерево решений, которое используется в качестве алгоритма отыскания оптимальных значений характеристик сети в зависимости от сложившейся ситуации. В главе 3 приводится подробное описание функционирования алгоритма вывода (проектирования) нейросети по ее описанию в базе данных. Количество слоев
В большинстве случаев количество слоев обусловлено архитектурой нейронной сети и является фиксированной величиной. Так, например, самоорганизующиеся карты Кохонена и сети метода динамических ядер, которые будут рассмотрены далее, являются однослойными и состоят из входного и кластерного слоев. RBF-сеть является двухслойной и состоит из входного, выходного и дополнительно одного скрытого слоя. Входной слой служит лишь для распределения входных сигналов и не выполняет каких-либо вычислений, поэтому он не учитывается. Отличительной особенностью многослойного персептрона является тот факт, что количество его слоев может изменяться в зависимости от решаемой задачи.
Так Минский [42] в своей работе "Персептроны" доказал, что простейшие однослойные нейронные сети, состоящие из входного и выходного слоев (известные, как линейный персептрон), способны решать только линейно разделимые задачи и обеспечивают универсальную линейную аппроксимацию.
Это ограничение преодолимо путем добавления скрытых слоев и использования многослойных нейронных сетей [68]. В общем виде можно сказать, что при решении задач классификации в сети с одним скрытым слоем, вектор, соответствующий входному образцу, преобразуется скрытым слоем в некоторое новое пространство, которое может иметь другую размерность (увеличение скрытого слоя повышает размерность пространства, в котором выходной нейрон производит дихотомию), а затем гиперплоскости, соответствующие нейронам выходного слоя, разделяют его на классы. Таким образом, сеть распознает не только характеристики исходных данных, но и "характеристики характеристик", сформированные скрытым слоем. Сеть с одним скрытым слоем, содержащим h нейронов со ступенчатой функцией активации, способна осуществить произвольную классификацию hd точек -мерного пространства (т.е. классифицировать hd примеров). Более того, одного скрытого слоя нейронов с сигмоидной функцией активации достаточно для аппроксимации любой границы между классами или некоторой функции со сколь угодно высокой точностью [20].
Для таких сетей как самоорганизующиеся карты Кохонена, RBF-сеть и т.д. изменение количества слоев пользователю недоступно, а необходимое значение подставляется автоматически в зависимости от выбранной нейросетевой архитектуры. Для персептрона, параметр, отвечающий за количество слоев, является настраиваемым в процессе диалога с пользователем в зависимости от выбранной им проектируемой модели: линейной или нелинейной.
Например, когда решаемая задача классификации является существенно нелинейной и задана точность є, пользователю по умолчанию предлагается использовать 1 скрытый слой с сигмоидными функциями активации. Если же пользователь обладает информацией о том, что классы представлены некоторыми выпуклыми областями, он может воспользоваться двухслойной сетью с пороговыми функциями активации. Линейная модель используется только в том случае, когда исследуемые классы линейно разделимы.
Тем не менее, пользователь имеет возможность изменить количество скрытых слоев и функции активации по своему усмотрению, или исходя из имеющейся у него априорной информации. Так сети с большим числом скрытых слоев могут иметь меньшие размерности матриц синоптических весов нейронов одного слоя, чем сети с 1 скрытым слоем, реализующие то же самое отображение. Однако строгой методики построения таких сетей пока нет.
Данные рассуждения могут быть представлено с помощью фрагмента дерева решений рис.2.20.
Информационная и объектно-ориентированная модели нейронных сетей
С точки зрения объектно-ориентированного подхода нейросеть представляет собой иерархию классов: сеть, слой, нейрон и т.д. [53]
Фактически, именно, описание этой иерархии и хранится в базе данных. Рассмотрим более подробно эту иерархию, (рис. 3.3).
Класс NeuroNet представляет собой общее описание сети, включающее идентификатор, вид сети, назначение и область применения, а также другие наиболее общие характеристики. Класс NeuroStruct задает архитектуру сети: количество входов, слоев и выходов, определяет связи (в общем случае выделяется в отдельный класс) и т.д.
Класс NeuroEducate предназначен для описания характеристик обучения и содержит такие атрибуты как: вид алгоритма обучения, объем обучающей и тестовой последовательности, источник данных. Класс NeuroResult используется для описания получаемых результатов и определяет вид получаемых результатов, критерии их обработки и т.д. Класс NeuroStratum является описанием слоев нейронной сети и содержит информацию о количестве нейронов в слое и др. Класс Neuron задает основные характеристики нейрона.
Класс Activation определяет вид функции активации. -Класс InAct задает правила вычисления входа функции активации. Класс Weights задает весовые коэффициенты.
Создание нейросети осуществляется путем движения сверху вниз по иерархии классов, представленной на рисунке 3.3. Таким образом, сначала создаются объекты классов определяющих наиболее общие характеристики сети. Затем определяются все более мелкие, характерные фрагменты строящейся модели, т.е. построение происходит от общего к частному. Далее представлено пошаговое описание процесса формирования нейросети в рамках разработанных классов. Шаг 1. Создается объект наиболее общего класса NeuroNet. Шаг 2. Определяются основные характеристики, принадлежащие классу NeuroNet, такие как: структура сети NeuroStruct, алгоритм ее обучения NeuroEducate, вид выдаваемых результатов и способов их обработки NeuroResult. Стоит отметить, что класс NeuroStruct, определяющий структуру сети, также является составным. Он оперирует набором объектов класса NeuroStratum, которые являются описанием слоев рассматриваемой сети, определяет их количество, порядок следования. Шаг 3. Создается необходимое число слоев NeuroStratum. Каждый слой определяется своим порядковым номером, и набором принадлежащих ему нейронов класса Neuron. Шаг 4. Формируются объекты класса Neuron, принадлежащие соответствующим слоям нейросети. Данный класс определяет основные характеристики каждого нейрона: его номер в слое, правила вычисления входа InAct, функции активации Activation, набор весовых коэффициентов Weights. Шаг 5. Создаются объекты классов InAct, Activation и Weights, характеризующие каждый конкретный нейрон.
Реализованная таким образом иерархия классов позволяет работать, как со всей сетью, т.е. с объектом класса NeuroNet, так и с некоторыми ее фрагментами NeuroStratum или Neuron.
В силу того, что данная модель ориентирована на модели нейронных сетей с частью характеристик, известных заранее, некоторые атрибуты классов могут формироваться автоматически, другие вводятся в процессе взаимодействия с пользователем, причем это взаимодействие зависит от вида сети. Фактически данная иерархия классов соответствует информационной модели и таблицам БД с учетом того, что для хранения некоторых классов, используются несколько таблиц, возникших на этапе проектирования БД с использованием CASE - технологии, носящих в основном справочный характер и устраняющих избыточность и аномалии обновления[3]. Кроме того, в БД используется и ряд дополнительных отношений, к которым можно отнести системную таблицу, в которой фиксируются статистические данные, таблицы обучающей и тестовой последовательности и результатов испытаний. Более подробно структура компонент и методов используемых классов рассмотрена в Главе 4.
Конструирование НС с помощью разработанной системы классов
Как уже отмечалось в главе 3, конструирование неиросети осуществляется поэтапно, путем движения сверху вниз по иерархии классов, представленной на рисунке 3.2, т.е. от общего к частному. Таким образом, сначала создаются объекты классов определяющих наиболее общие характеристики сети, а затем определяются все более мелкие, характерные фрагменты строящейся модели. В этом параграфе рассматривается процесс конструирования неиросети с участием и описанием основных компонентных данных и методов разработанной системы классов. Так, на первом шаге создается объект класса NeuroNet и определяются значения его основных характеристик: структура сети, алгоритм обучения, вид выдаваемых результатов работы сети и т.д., описание которых выглядит следующим образом: Dim NeuroNetld As Long - идентификатор используемой неиросети. Dim NetName As String - название сети. Dim Struct As New NeuroStruct - определяет структуру сети. Dim Educate As New NeuroEducate - алгоритм обучения. Dim Result As New NeuroResult - выдаваемый результат работы сети. Тем самым класс NeuroNet включает в себя классы NeuroStruct, NeuroEducate и NeuroResult в качестве компонентных данных.
Одним из его основных методов является функция прямого прохождения сигнала через нейросеть: public function NeuroNetWork( input As Double ) As NeuroResult - эта функция получает вектор входных величин и возвращает результат работы сети типа NeuroResult. Класс NeuroStruct, определяющий структуру сети, также является составным и включает такие свойства как: Dim StratumNumber As Long - кол-во слоев нейросети. public Stratum As New Collection - набор слоев сети типа NeuroStratum. Основным методом данного класса также можно считать функцию прямого прохождения сигнала через данную структуру нейронов: public function NeuroStructWork( input As Double ) As Double. Таким образом, класс NeuroStruct оперирует набором объектов класса NeuroStratum, которые являются описанием слоев рассматриваемой сети, определяет их количество, порядок следования. Поэтому, при конструировании объекта NeuroStruct, так же будет создано необходимое число слоев NeuroStratum. В свою очередь, каждый слой состоит из набора объектов класса Neuron. Это потребовало использование следующих компонентных данных класса NeuroStratum: Dim NeuroStratumNum As Long - номер слоя. Dim NeuronlnStratum As Long - кол-во нейронов в слое. Dim NeuroStratumType As Long - идентификатор тип слоя. public StratumNeurons As New Collection - набор нейронов слоя типа Neuron. Класс NeuroStratum также включает метод, характеризующий прямое прохождение через него сигнала: public function NeuroStratum Work ( input As Double ) As Double - эта функция на входе получает, либо значение входа используемой структуры нейронов NeuroStruct (первый слой), либо результат работы предыдущего слоя. В качестве результата работы возвращаются значения, использующиеся в качестве входных величин для последующего слоя, либо как выход всей структуры нейронов (последний слой). Тем самым, сигнал передается от слоя к слою. Класс Neuron определяет основные характеристики каждого нейрона. Для этого используются объекты классов InAct, Activation и Weights, задающие правила вычисления входа нейрона, функции активации и веса. Таким образом, к основным компонентным данным могут быть отнесены: Dim NeuronNum As Long - номер нейрона в слое. Dim Neuron_Type As Long - тип нейрона Dim NumNeuronlnput As Long - размерность входного вектора. public NeuronWeights As New Collection - вектор весовых коэффициентов нейрона типа Weights. Dim NeuronActivation As New Activation - вид функции активации. Dim NeuronlnAct As New InAct - правила вычисления входа функции активации. double NeuronWork(double ); public function NeuronWork( input As Double ) As Double - функция прямого прохождение сигнала через нейрон.