Научная статья на тему 'Обработка статистических данных и определение состава входов нейросети в процессе формирования информационной базы для прогнозирования'

Обработка статистических данных и определение состава входов нейросети в процессе формирования информационной базы для прогнозирования Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
897
134
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Авдеева В. М., Крючкова И. Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Обработка статистических данных и определение состава входов нейросети в процессе формирования информационной базы для прогнозирования»

Информатизация

Авдеева В.М., Крючкова И.Н.

ОБРАБОТКА СТАТИСТИЧЕСКИХ ДАННЫХ И ОПРЕДЕЛЕНИЕ СОСТАВА ВХОДОВ НЕЙРОСЕТИ В ПРОЦЕССЕ ФОРМИРОВАНИЯ ИНФОРМАЦИОННОЙ БАЗЫ ДЛЯ ПРОГНОЗИРОВАНИЯ

ИФНС РФ по Центральному району г.Воронежа Международный институт компьютерных технологий, г.Воронеж

Широкое применение нейронных сетей в задачах прогнозирования обусловлено наличием в большинстве временных рядов сложных закономерностей, не обнаруживаемых линейными методами. Одним из самых важных этапов в решении задачи нейросетевого прогнозирования является формирование обучающей выборки [2, 5]. Именно от состава, полноты, качества обучающей выборки существенно зависят время обучения нейронных сетей и достоверность получаемых моделей.

Этап формирования информационной базы для прогнозирования является наиболее трудоемким для исследователя, так как в современных нейро-сетевых пакетах реализованы только некоторые алгоритмы предобработки данных. Отбор факторов, значимо влияющих на исследуемую функцию, определение глубины выборки, необходимое количество примеров в обучающем, контрольном и тестовом множествах, способ кодирования номинальных переменных остается неформализованной задачей, плохо поддающейся алгоритмизации.

Для решения поставленной в [6] задачи нейросетевого моделирования и прогнозирования временного ряда с учетом значимо влияющих факторов необходимы значения контролируемой величины и влияющих факторов, измеренные в определенные моменты времени. Источником исходных данных являются экспертные оценки и результаты непосредственных наблюдений, которые в явном виде непригодны для использования в качестве входов нейросети. Для приведения данных к виду, допускающему нейросетевую обработку, необходим этап предварительных преобразований, включающий решение следующих задач.

1. Предварительное определение состава факторов, влияющих на исследуемую величину.

2. Сбор результатов наблюдений, получение экспертных оценок для факторов, значения которых не поддаются прямым измерениям, исключение наблюдений, имеющих пропущенные данные, либо заполнение пропусков.

3. Предварительные преобразования, имеющие целью увеличение информативности исходных данных, что можно характеризовать увеличением энтропии.

4. Определение глубины погружения для каждого фактора и построение обучающего, контрольного и тестового множеств для дальнейшего обучения и прогнозирования.

Данные этапы предварительной обработки исходных данных являются стандартными [1], однако для задачи прогнозирования коротких многомерных временных рядов с учетом временных лагов существуют особенности проведения стандартных преобразований. Также состав предварительных преобразований должен быть дополнен процедурой сдвига рядов исходных данных на величины оптимальных лагов.

Первым этапом формирования информационной базы для нейросетево-го моделирования и прогнозирования является определение состава факторов (независимых переменных), влияние которых на прогнозируемую величину должна учесть нейросетевая модель. Это неформализуемая задача, которая решается на основе анализа предметной области и опроса экспертов. Необходимо учитывать, что экспертные оценки значимости каждого фактора могут существенно различаться, кроме того, выделение слишком большого количества независимых переменных при недостаточной истории переменных приведет в дальнейшем к нехватке обучающих примеров и переобучению нейронной сети.

На втором этапе исходный набор независимых переменных подвергается редукции в процессе сбора результатов непосредственных наблюдений и экспертных оценок. Именно особенности рассматриваемых временных рядов, описывающих системы со сравнительно короткой историей наблюдений, определяют требования к полноте и достоверности исходных данных. Реализованный в некоторых нейросетевых пакетах, например, в STATISTICA Neural Networks 4.0, подход, заключающийся в игнорировании обучающих примеров, содержащих пропущенные данные, не может быть применен при анализе коротких временных рядов, так как может привести к недостатку данных для обучения. На рис. 1 представлены данные о зависимости ошибки прогнозирования в форме (1) от процентного содержания пропущенных данных в рядах, содержащих 40 наблюдений (ряд 1) и 10 наблюдений (ряд 2). Дополнение рядов велось стандартными методами - игнорированием наблюдений с пропусками, заполнением средним и обнулением. Для анализа использовалась функция (2).

Вычислялись значения показателя процентной погрешности MAPE [7], определяемым в виде

Y - Y

• 100%, (1)

МАРЕ =--------

У

*

где У - фактическое значение выходной переменной, У - спрогнозированное значение.

В ходе вычислительного эксперимента были рассмотрены 8 независимых переменных Х^),... Х8(1) и зависящая от них функция

(Х/О + Х31) - 1п(Х4)). Хз(1з)

У(1) = 10 +----------3---------------------0,44Х7(17) + Х8, (2)

Х6 + 2,5Х5(15) 77 8

где 13 = 1-1, 15 = 1-3, 17 = 1-2.

о

6)

_е— N=40 — N=10

Количество пропусков,%

в)

о

N=40 — N=10

Количество пропусков,%

Рис. 1. Зависимость ошибки прогнозирования от процентного содержания пропущенных значений: а - игнорирование наблюдений с пропусками; б - заполнение нулями; в - заполнение средним значением по выборке

Для первого ряда выполняется соотношение К/М=5, где N - количество наблюдений, М - количество входов нейронной сети. Для второго ряда это соотношение равно 1,25. Анализ представленных данных показал, что нейронная сеть чувствительна к наличию пропусков в данных при любом из традиционных способов дополнения пропущенных значений. Необходимо отме-

тить снижение ошибки прогнозирования для ряда 1 при заполнении нулями пропущенных значений и достижении количества пропусков, превышающих 60 процентов. Такой результат объясняется уменьшением весов связей, соответствующих входу с пропусками в процессе обучения вплоть до установления нулевых значений. Сеть, обучавшаяся на коротких временных рядах, демонстрирует устойчивое повышение ошибки прогнозирования при наличии пропусков в данных в среднем при достижении 20 процентов пропущенных данных.

Следовательно, независимые переменные, временные ряды которых содержат более 20% пропущенных значений, должны быть исключены из рассмотрения.

Если же принято решение о сохранении временного ряда с пропущенными значениями, необходимо выбрать механизм дополнения ряда. 1. Обнуление, при котором неизвестное значение принимается равным нулю.

2. Вычисление среднего значения по ряду без учета пропущенных значений. Все неизвестные значения принимаются равными найденному среднеарифметическому.

3. Вычисление «среднего по известным соседним». Пропущенное значение принимается равным среднему арифметическому предшествующего и следующего за пропущенным значений.

4. Линейная или нелинейная интерполяция временного ряда, содержащего пропуск в данных, и расчет недостающих значений на основе полученной модели.

Перечисленные методы применимы для заполнения пропусков в числовых данных. Для нечисловых переменных применимо заполнение по известному предыдущему или последующему значению.

На третьем эта предварительных преобразований производится процедуры кодирования входов и выходов, нормировки данных, удаление очевидных регулярностей из данных [3], построение обучающей, контрольной, тестовой выборок, включая определение глубины погружения в историю каждого фактора.

Необходимость кодирования входов и выходов определяется тем, что нейросеть способна обрабатывать только числовые данные, так как работа нейросетевых алгоритмов базируется на арифметических операциях умножения и сложения. Однако не всякая входная или выходная переменная в исходном виде может иметь численное выражение. Соответственно, все нечисловые переменные следует закодировать - перевести в численную форму, прежде чем начать собственно нейросетевую обработку. Кодирование нечисловых переменных производилось с учетом следующих соображений.

Определено, что для произвольной компоненты нормированных (пре-добработанных) данных х^ среднее количество информации, приносимой каждым примером Ха, равно энтропии распределения значений этой компо-

ненты Н (~,) [4]. Если эти значения сосредоточены в относительно небольшой области единичного интервала, информационное содержание такой компоненты мало. В пределе нулевой энтропии, когда все значения переменной совпадают, эта переменная не несет никакой информации. Напротив, если значения переменной Ха равномерно распределены в единичном интервале, информация такой переменной максимальна.

Общий принцип предобработки данных для обучения, таким образом, состоит в максимизации энтропии входов и выходов. Этим принципом руководствуются и на этапе кодирования нечисловых переменных.

Могут быть выделены два основных типа нечисловых переменных: упорядоченные (называемые также ординальными) и категориальные. В обоих случаях переменная относится к одному из дискретного набора классов {с1,...,сп}. Но в первом случае эти классы упорядочены - их можно ранжировать: С У с2 У ... У сп, тогда, как во втором такая упорядоченность отсутствует. Категориальные переменные просто обозначают один из классов, являясь именами категорий.

Для кодирования ординальных переменных необходимо поставить в соответствие номерам категорий такие числовые значения, которые сохраняли бы существующую упорядоченность. Так как любая монотонная функция от номера класса порождает свой способ кодирования, необходимо выбрать такую монотонную функцию, которая максимизирует энтропию данных. При использовании сигмоидных функций активации все выходные значения лежат в конечном интервале - обычно [0,1].

Из всех статистических функций распределения, определенных на конечном интервале, максимальной энтропией обладает равномерное распределение, поэтому кодирование переменных числовыми значениями должно приводить, по возможности, к равномерному заполнению единичного интервала закодированными примерами.

Практически, при кодировании ординальных переменных единичный отрезок разбивается на п отрезков - по числу классов - с длинами, пропорциональными числу примеров каждого класса в обучающей выборке (3):

Лхк = Рк/Р, (3)

где Рк- число примеров класса к, Р - общее число примеров.

Центр каждого отрезка будет являться численным значением для соответствующего ординального класса (рис. 2).

Категориальные переменные также можно закодировать описанным выше способом, пронумеровав их произвольным образом. Однако такое навязывание несуществующей упорядоченности только затруднит решение задачи. Оптимальное кодирование не должно искажать структуры соотношений между классами. Если классы не упорядочены, такова же должна быть и схема кодирования.

В качестве стандартного используется двоичное кодирование типа «п——п», когда имена п категорий кодируются значениями п бинарных ней-

ронов, причем первая категория кодируется как (1,0,0,... ,0), вторая, соответственно - (0,1,0,... ,0) и т.д. вплоть до п-ной: (0,0,0,... ,1). В такой симметричной кодировке расстояния между всеми векторами-категориями равны.

> 1: 1а |Л Г . Л *2 - р с ^ II н <

*1 х2

1 1

Рис. 2. Иллюстрация способа кодирования ординальных переменных с учетом количества примеров каждой категории

Такое кодирование, однако, не оптимально в случае, когда классы представлены существенно различающимся числом примеров. В этом случае, функция распределения значений переменной крайне неоднородна, что существенно снижает информативность этой переменной. Исходя из этого, был применен более компактный код п^ш, когда имена п классов кодировались т-битным двоичным кодом.

Как входами, так и выходами нейросети могут быть совершенно разнородные величины. Очевидно, что результаты нейросетевого моделирования не должны зависеть от единиц измерения этих величин. А именно, чтобы сеть трактовала их значения единообразно, все входные и выходные величины должны быть приведены к единому - единичному - масштабу. Кроме того, для повышения скорости и качества обучения полезно провести дополнительную предобработку данных, выравнивающую распределение значений еще до этапа обучения.

Приведение данных к единичному масштабу обеспечивается нормировкой каждой переменной на диапазон разброса ее значений. В простейшем варианте это - линейное преобразование:

Х1 =

1,Ш1П

X:

1,шах

X:

(4)

1,Ш1П

в единичный отрезок: х^ е [0,1].

Однако такая нормировка делает невозможной экстраполяцию, ограничивая возможность нейросети интерполяцией внутри рассматриваемого отрезка. Совершенно очевидно, что в задачах прогнозирования временных рядов такая предобработка недопустима. Решением данной проблемы является изменение целевого диапазона минимаксной масштабирующей функции. В результате обучающие данные будут отображаться в уровни, соответ-

ствующие средней части диапазона выходных значений. Поэтому линейное масштабирование значения признака x для i-го примера выборки в интервал [a,b] проводилось по формуле:

xi = (Xi-XmnHb-a^ a, (5}

X — X

max min

где xmax, xmin - максимальное и минимальное выборочные значения признака.

Линейная нормировка оптимальна, когда значения переменной xi плотно заполняют определенный интервал. Однако, если в данных имеются относительно редкие выбросы, намного превышающие типичный разброс, именно эти выбросы определят согласно формуле (5) масштаб нормировки. Это приводит к концентрации основной массы значений нормированной переменной xi вблизи нуля: | xi|<<1.

Поэтому при нормировке данных при наличии выбросов обычно опираются не на экстремальные значения, а на типичные, то есть статистические характеристики данных, такие как среднее и дисперсия. В этом случае основная масса данных будет иметь единичный масштаб, т.е. типичные значения всех переменных будут сравнимы.

Недостаток описанного метода нормировки состоит в том, что нормированные величины не принадлежат гарантированно единичному интервалу, более того, максимальный разброс значений xi заранее не известен. Такой способ нормировки неприемлем для выходных переменных, так как они используются в качестве эталонов для выходных нейронов. В случае, если выходные нейроны характеризуются сигмоидной функцией активации, они могут принимать значения лишь в единичном диапазоне. Чтобы установить соответствие между обучающей выборкой и нейросетью, необходимо ограничить диапазон изменения переменных.

В случае наличия выбросов в данных для предобработки данных используют функцию активации нейронов. Например, нелинейное преобразование (формулы (6), (7))

f — \

, (6)

xi — xi

V Уi У где si - дисперсия,

1

-—7. (7)

f (a )=

1 + е

нормирует основную массу данных, одновременно гарантируя, что х^ е [0,1].

Однако в случае коротких временных рядов экстремальные значения в исходных данных могут определяться скрытыми закономерностями, игнорирование которых и использование сглаженных значений для обучения не позволит выявить особенности исследуемой системы. Исходя из этого, предложен следующий модифицированный алгоритм нормирования исходных данных.

Шаг 1. Линейная нормировка значений каждого ряда в интервал [0.05, 0.95] с исследованием равномерности заполнения нормированными данными целевого интервала.

Шаг 2. Сужение интервала до получения наилучшей равномерности заполнения нормированными данными целевого интервала.

Шаг 3. Предварительное обучение нейросети на нормированных данных до получения удовлетворительной ошибки обучения и обобщения. В случае невозможности достижения заданной точности - использование нелинейной нормировки по формулам (6), (7).

После выполнения предварительных преобразований для различных моментов времени ^ временной ряд представляется в виде множества значений функции зависимости прогнозируемой величины от определяющих факторов (или в виде множества наборов).

Далее из множества полученных наборов выделяются три непересе-кающихся множества. Одно из них представляет собой обучающую выборку, на которой будет выполняться обучение нейронной сети. Другое подмножество представляет собой контрольную выборку, которая не предъявляется нейронной сети в процессе обучения и используется для проверки качества прогноза. Кроме того, для окончательного контроля качества прогнозирования выделяют тестовое множество. Таким образом, прогнозирование временного ряда сводится к задаче экстраполяции функции многих переменных. Нейронная сеть используется для восстановления этой функции по множеству наборов, входящих в состав обучающей выборки, а затем для получения прогнозного значения на данных, не использовавшихся при обучении нейросети.

Список использованных источников

1. Крисилов В.А., Чумичкин К.В., Кондратюк А.В. Представление исходных данных в задачах нейросетевого прогнозирования (http://www.1ibrary.mephi.ru/data/scientific-8е88ЮП8/2003/Кеиго_1/184.рё1:'.)

2. Питолин А.В. Методика формирования обучающей выборки данных при ней-росетевом анализе больших объемов многомерной информации // Вестник Воронежского государственного технического университета. Сер.: САПР и системы автоматизации производства, вып.3.4, 2004. - С. 83-85.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Семенов М.В., Воротилина М. А. Использование статистических методов для улучшения качества моделирования с помощью нейронных сетей // Вестник Воронежского государственного технического университета. Сер.: САПР и системы автоматизации производства, вып.3.4, 2004. - С. 73-76.

4. Тарасенко Р.А. Метод анализа и повышения качества обучающих выборок

нейронных сетей для прогнозирования временных рядов// Дисс....... канд. техн. наук:

05.13.17 - ОНПУ - 2002.

5. Царегородцев В.Г. Оптимизация предобработки данных: константа Липшица обучающей выборки и свойства обученных нейронных сетей // Нейрокомпьютеры: разработка, применение, №7, 2003. - С. 3-8.

6. Авдеева В.М., Кравец О.Я. Теоретические основы прогнозирования налоговых поступлений на основе кросскорреляционного анализа многомерных временных рядов// Системы управления и информационные технологии, 2006, №1.2(23). - С. 212-216.

7. Осовский С. Нейронные сети для обработки информации. - М.: Финансы и статистика, 2004. - 344 с.

Ангельцев А.А.

МОДЕЛИРОВАНИЕ ПОВЕДЕНИЯ ОРГАНИЗАЦИИ, РАЗМЕЩАЮЩЕЙ ЗАКАЗ НА КОНКУРСНОЙ ОСНОВЕ

Самарский государственный технический университет

В настоящее время популярным становится проведение различного рода тендеров на исполнение заказа. Это позволяет заказчику выбрать наиболее подходящего исполнителя с минимальными издержками.

При этом с точки зрения кандидата на роль исполнителя заказа исход тендера является неопределенным. Под неопределенностью будем понимать свойство, присущее внешней среде, заключающееся в непредсказуемости наверняка конкретных состояний, в которых будет находиться объект в течение некоторого промежутка времени или на момент, относящийся к будущему, в существовании некоторого конечного или бесконечного множества альтернатив ожидаемой ситуации. Вполне естественным будет стремление кандидатов снизить неопределенность (в идеале - полностью убрать неопределенность, детерминировать исход) исхода тендера. Одним из возможных вариантов решения этой задачи является моделирование поведения заказчика.

В настоящей работе предлагается использовать модель принятия решений на основе теории активных систем (АС). Здесь заказчик, проводящий тендер, будет являться управляемым субъектом - агентом, а кандидат -управляющим органом - центром.

Для простоты будем рассматривать систему, состоящую из двух участников - центра и агента, обладающих собственными предпочтениями и способностью самостоятельно предпринимать некоторые действия. В моделях управления социально-экономическими системами центр играет роль управляющего органа, агент - роль управляемого субъекта, причем первоначально распределение «ролей» может не быть фиксированным.

Опишем модель принятия решений агентом. Введем следующее описание взаимодействия агента с его обстановкой, в которую могут входить другие агенты, управляющие органы и прочие объекты и субъекты (как принадлежащие рассматриваемой АС, так и являющиеся элементами внешней среды).

Пусть агент способен выбирать некоторое действие (стратегии, состояния и т.д.) из множества А - множества допустимых действий данного агента. Действие будем обозначать у, уе А. В результате выбора действия у е А под влиянием обстановки реализуется результат деятельности агента, который будем обозначать хе Ао, где А - множество возможных результатов деятельности. Возможное несовпадение действия агента и результата его деятельности может быть обусловлено влиянием обстановки - внешней среды, действий других участников АС и т.д. Связь между действием агента уе А и результатом х е А0 его деятельности может иметь сложную природу и описы-

i Надоели баннеры? Вы всегда можете отключить рекламу.