Нейрокомпьютинг и его применения в экономике и бизнесе


Исправление данных


Итак, перед извлечением правил из нейронной сети производится ее обучение и прореживание. Упомянем еще об одной процедуре, которая иногда осуществляется при извлечении знаний из нейронных сетей - исправление (очищении). Подобная операция была предложена Вайгендом и коллегами и по сути используется параллельно с обучением (Weigend, Zimmermann, & Neuneier 1996). Гибридное использование обучения и исправления данных носит название CLEARNING (CLEARING+LEARNING). Данная процедура включает восходящий процесс обучения, при котором данные изменяют связи в нейронной сети и нисходящий процесс, в котором нейронная сеть изменяет данные, на которых производится обучение. Ее достоинствами являются выявление и удаление информационных записей, выпадающих из общей структуры обучающей выборки, а также замена искаженных данных и данных с лакунами на исправленные величины. При использовании данной процедуры происходит торг между доверием к данным и доверием к нейросетевой модели, обучаемой на этих данных. Эта конкур енция составляет существо так называемой дилеммы наблюдателя и наблюдений.

2Способность работать с неточными данными является одним из главных достоинств нейронных сетей. Но она же парадоксальным образом является и их недостатком. Действительно, если данные не точны, то сеть в силу своей гибкости и адаптируемости будет подстраиваться к ним, ухудшая свои свойства обобщения. Эта ситуация особенно важна при работе с финансовыми данными. В последнем случае существует множество источников погрешности. Это и ошибки при вводе числовых значений или неправильная оценка времени действия ценных бумаг (например, они уже не продаются). Кроме того, если даже данные и введены правильно, они могут быть слабыми индикаторами основополагающих экономических процессов, таких как промышленное производство или занятость. Наконец, возможно, что многие важные параметры не учитываются при обучении сети, что эффективно может рассматриваться как введение дополнительного шума. Данные, далеко выпадающие из общей тенденции, забирают ресурсы нейронной сети. Некоторые из нейронов скрытого слоя могут настраива ться на них. При этом ресурсов для описания регулярных слабо зашумленных областей может и не хватить. Множество попыток применения нейронных сетей к решению финансовых задач выявило важное обстоятельство: контроль гибкости нейросетевой модели является центральной проблемой. Изложим кратко существо процедуры обучения сети, объединенной с исправлением данных. Для простоты рассмотрим сеть с одним входом и одним выходом. В этом случае минимизируемой величиной является сумма двух слагаемых (Weigend & Zimmermann, 1996):

E=\frac{1}{2}\eta(y-y^d)+\frac{1}{2}k(x-x^d).

Первый член описывает обычно минимизируемое в методе обратного распространения ошибки квадратичное отклонение выхода нейронной сети

y=y(x,w)
от желаемого значения
y^d
. Второе слагаемое представляет собой квадратичное отклонение исправленного входного значения
x
от реального его значения
x^d
. Соответственно, для весов сети
w
и для исправленных входных значений
x
получаются два правила их модификации. Для весов оно такое же, как и в стандартном методе обратного распространения ошибки, а для исправленного входа имеет вид

x_{i+1}=x_i-\frac{\partial E}{\partial x},

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

\triangle_{i+1}=(1-k)\triangle_i-\eta(y-y^d)\frac{\partial y}{\partial x}.

Это уравнение включает

  • экспоненциальное затухание
    \triangle
    : в отсутствие нового входа
    \triangle
    стремится к нулю со скоростью пропорциональной
    (1-k) k\in [0,1]
    .
  • член, пропорциональный ошибке выходного значения
    (y-y^d)
    : аналогичная пропорциональность свойственна и обычному соотношению для модификации весов - чем больше ошибка, тем больше ее влияние на исправление входного значения. Этот член также пропорционален чувствительности выхода ко входу -
    \partial y/\partial x
    .

3Вайгенд и его коллеги предложили наглядную механическую интерпретацию минимизируемой функции, а также отношению скоростей обучения и исправления (см. рисунок 9.4).


Рис. 9.4.  Механическая аналогия конкуренции между обучением и исправлением данных. К реальному входу
x^d
присоединяется пружина и растягивается другим концом до точки
x
, что сопровождается увеличением энергии в пружине на
1/2k(x^d - x)^2
. Но при этом энергия, запасенная в пружине, связывающей реальное и желаемое значения выхода сети, может уменьшиться (растяжение правой пружины меньше, чем левой) так, что суммарная энергия двух пружин уменьшается

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

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

x^d
и исправленным значением
x
. Энергия, запасенная в этих пружинах составляет
k\triangle^2/2
. Минимизация суммарной функции ошибки соответствует минимизации полной энергии, запасенной в обеих типах пружин. Отношение
\eta
описывает конкуренцию между важностью ошибок выхода и важностью ошибок входа.

Понимание закономерностей временных последовательностей

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

Кравен и Шавлик (Craven & Shavlik, 1996) разработали алгоритм TREPAN, порождающий дерево решений, аппроксимирующее поведение обученной нейронной сети. Важным достоинством алгоритма является то, что он не предъявляет никаких требований к архитектуре сети, числу ее элементов и связей (вспомним как важно было упростить структуру сети при использовании правила NeuroRule). Для него вполне достаточно того, что нейронная сеть является черным ящиком или Оракулом, которому можно задавать вопросы и получать от него ответы. Точность предсказания, даваемое сгенерированным деревом решений, близка к точности нейросетевого предсказания.

Приведем формальную схему алгоритма TREPAN Исходные данные обученная нейронная сеть (Оракул); обучающая выборка - S; множество признаков - F, min_sample - минимальное множество вопросов для каждого узла дерева, baem_width - число ветвей.

Инициализируем корень дерева R в виде листа. <Выборка векторов признаков>

Используем все обучающее множество примеров S для конструирования модели распределе-ния входных векторов, достигающих узла R.

q:=\max(0,min_sample-|S|)

query_R:=
множество из
q
примеров, генерируемых моделью
M_R
. <Используем нейронную сеть для классификации всех векторов признаков>

Для каждого вектора признаков

x\in(S\cup query_R)
узнаем у Оракула принадлежность
x
тому или иному классу - ставим метку класса
x:=Oracle(x)
<Осуществляем наилучшее первое расширение дерева>

Инициализируем очередь

Queue
, составленную из наборов
\langle R,S,query_R,\{\}\rangle
До тех пор пока очередь
Queue
не пуста и глобальный критерий остановки не выполнен <создаем узел в начале очереди>

удаляем

\langle узел N, s_N, query_N, constr_N\rangle
из начала очереди
Queue
. Используем
F,S_N.query_N
и beam_width для конструирования в узле
N
разветвления
T
. lt;создаем узлы следующего поколения>

Для каждого ответвления t разветвления

T
создаем
C
- новый дочерний узел
N

constr_C:=constr_N\cup\{T=t\}

<выборка векторов для узла С>

S_C:=
члены
S_N
с ответвлением t. Конструируем модель
M_C
распределения примеров, покрываемых узлом
C

q:=\max(o,min_sample-|S_C|)

query_C
множество из
q
примеров, сгенерированных моделью
M_C
и ограничением
constr_C
Для каждого вектора признаков
x\in query_C
ставим метку класса
x:=Oracle(x)

<временно принимаем, что узел С является листом>

Используем

S_C
и
query_C
для определения метки класса для С. <Определяем долен ли узел С расширяться>

если локальный критерий остановки не удовлетворен то поместить <

C, S_C, query_C, constr_C
> в очередь
Queue
. Вернуть дерево с корнем
R
.

TREPAN поддерживает очередь листьев, которые раскрываются и порождают поддеревья. В каждом узле очереди TREPAN сохраняет: (i) подмножество примеров, (ii) еще одно множество векторов, который называется набором вопросов (query) и (iii) набор ограничений ( ). Подмножество примеров включает просто те векторы обучающего набора, которые достигают данного узла дерева. Дополнительный набор вопросов Оракулу используется для выбора теста на разветвление в узле и определения класса примеров, если узел является листом. Алгоритм всегда требует, чтобы число примеров, на основе которых оценивается узел, было бы не меньше заданного (min_sample). Если же до данного узла доходит меньшее число примеров, TREPAN генерирует новые искусственные примеры, используя набор ограничений в данном узле. Множество ограничений определяет условия, которым должны удовлетворять примеры, чтобы достичь данного узла - эта информация используется при формировании набора вопросов для создаваемого нового узла. Для завершения процедуры построения дерева TREPAN использует локальный критерий - он оценивает состояние данного узла и решает, превратить ли его в лист, и глобальные критерии - максимальный размер дерева и общую оценку качества классификации примеров деревом.

Возникает естественный вопрос: "А зачем вообще нужна нейронная сеть для данного алгорит-ма?" Ведь он может просто использовать обучающую выборку - известно же, какому классу принадлежит каждый пример. Более того, как бы хорошо ни была обучена сеть, она все равно будет делать ошибки, неправильно классифицируя некоторые примеры. Дело в том, что именно использование нейросетей в качестве Оракула дает возможность получать деревья решений, имеющих более простую структуру, чем у деревьев, обученных на исходных примерах. Это яв-ляется следствием как хорошего обобщения информации нейронными сетями, так и использо-вания при их обучении операции исправления данных (CLEARNING). Кроме того, алгоритмы построения деревьев, исходя из тренировочного набора данных, действительно разработаны и с их помощью такие деревья строятся путем рекурсивного разбиения пространства признаков. Каждый внутренний узел подобных деревьев представляет критерий расщепления некоторой части этого пространства, а каждый лист дерева - соответствует классу векторов признаков. Но в отличие от них TREPAN конструирует дерево признаков методом первого наилучшего расширения. При этом вводится понятие наилучшего узла, рост которого оказывает набольшее влияние на точность классификации генерируемым деревом. Функция, оценивающая узел

n
, имеет вид
F(n)=r(n)(1-f(n))
, где
r(n)
- вероятность достижения узла
n
примером, а
f(n)
- оценка правильности обработки этих примеров деревом. TREPAN очень интересно осуществляет разделение примеров, достигающих данный внутренний узел дерева, а именно, использует так называемый
m-of-n
тест. Такой тест считается выполненным, когда выпол-няются по меньшей мере из условий. Если, например, имеется 3 булевых переменных
x_1,x_2,x_3
, то использование выражения
2-of-\{x_1,-x_2,x_3\}
будет эквивалентно использо-ванию логической функции
(x_1\cap-x_2)\cup(x_1\cap x_3)\cup(-x_2\cap x_3)
. Подобная формулировка правил делает деревья вывода более компактными и четкими. Приведем пример дерева реше-ний, полученного алгоритмом TREPAN, Оракулом в которой являлась нейронная сеть, обучен-ная предсказывать курс обмена немецкой марки на доллар (Weigend et al., 1996). Заметим, что для обучения сети использовался рекомендуемый для финансовых приложений метод CLEARNING, с которым мы уже познакомились. Сеть обучалась на данных, охватывающих пе-риод с 1985 по 1994 гг. и предсказывала рост или падение курса обмена на следующий день в течение всего 1995 г.

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

<


Начало  Назад  



Книжный магазин