Извлечение знаний с помощью нейронных сетей
Понимание закономерностей временных последовательностей
Исправление данных является важной компонентой подхода, позволяющего извлекать из нейронных сетей знания, касающиеся воспроизводимых ими временных закономерностей. Если, например, нейронная сеть обучена и используется для предсказания курса рубля по отношению к доллару, то естественно попытаться осмыслить связь большего или меньшего падения этого курса с теми или иными параметрами, подаваемыми на вход нейронной сети.
Кравен и Шавлик (Craven & Shavlik, 1996) разработали алгоритм TREPAN, порождающий дерево решений, аппроксимирующее поведение обученной нейронной сети. Важным достоинством алгоритма является то, что он не предъявляет никаких требований к архитектуре сети, числу ее элементов и связей (вспомним как важно было упростить структуру сети при использовании правила NeuroRule). Для него вполне достаточно того, что нейронная сеть является черным ящиком или Оракулом, которому можно задавать вопросы и получать от него ответы. Точность предсказания, даваемое сгенерированным деревом решений, близка к точности нейросетевого предсказания.
Приведем формальную схему алгоритма TREPAN Исходные данные обученная нейронная сеть (Оракул); обучающая выборка - S; множество признаков - F, min_sample - минимальное множество вопросов для каждого узла дерева, baem_width - число ветвей.
Инициализируем корень дерева R в виде листа. <Выборка векторов признаков> Используем все обучающее множество примеров S для конструирования модели распределения входных векторов, достигающих узла R.
![q:=\max(0,min_sample-|S|)](/sites/default/files/tex_cache/ee68553111706a56f051eefe5c489e9a.png)
![query_R:=](/sites/default/files/tex_cache/5b6feb9b66a5906f893e3e1237317cd4.png)
![q](/sites/default/files/tex_cache/7694f4a66316e53c8cdd9d9954bd611d.png)
![M_R](/sites/default/files/tex_cache/57c997442544c177e63500cf8eb0478e.png)
![x\in(S\cup query_R)](/sites/default/files/tex_cache/f23634eb78a535ebb12541f09cc2d8a6.png)
![x](/sites/default/files/tex_cache/9dd4e461268c8034f5c8564e155c67a6.png)
![x:=Oracle(x)](/sites/default/files/tex_cache/5c98e744b919ee84289ca5eb67b1f160.png)
![Queue](/sites/default/files/tex_cache/722ad2d05ecf4868b00c5484b82fd808.png)
![\langle R,S,query_R,\{\}\rangle](/sites/default/files/tex_cache/c914235022d9eab7efb3f12ef0c9a23c.png)
![Queue](/sites/default/files/tex_cache/722ad2d05ecf4868b00c5484b82fd808.png)
![\langle узел N, s_N, query_N, constr_N\rangle](/sites/default/files/tex_cache/0d1285086d9931721b6e71951e2d720d.png)
![Queue](/sites/default/files/tex_cache/722ad2d05ecf4868b00c5484b82fd808.png)
![F,S_N.query_N](/sites/default/files/tex_cache/c8accd89f6ce972031b76a6be6f74727.png)
![N](/sites/default/files/tex_cache/8d9c307cb7f3c4a32822a51922d1ceaa.png)
![T](/sites/default/files/tex_cache/b9ece18c950afbfa6b0fdbfa4ff731d3.png)
![T](/sites/default/files/tex_cache/b9ece18c950afbfa6b0fdbfa4ff731d3.png)
![C](/sites/default/files/tex_cache/0d61f8370cad1d412f80b84d143e1257.png)
![N](/sites/default/files/tex_cache/8d9c307cb7f3c4a32822a51922d1ceaa.png)
![constr_C:=constr_N\cup\{T=t\}](/sites/default/files/tex_cache/f579a951612309f6c4f18d0acf98a02e.png)
![S_C:=](/sites/default/files/tex_cache/ec9fac4873b769374fdc4ead30ec4d57.png)
![S_N](/sites/default/files/tex_cache/cdff67efcc45d928a9ae5e0cafb3a843.png)
![M_C](/sites/default/files/tex_cache/c9feb4923241913422fab22239fe8bfa.png)
![C](/sites/default/files/tex_cache/0d61f8370cad1d412f80b84d143e1257.png)
![q:=\max(o,min_sample-|S_C|)](/sites/default/files/tex_cache/1c68da7e21d765fed8b1d0b732c4e239.png)
![query_C](/sites/default/files/tex_cache/dec01f21b666b17cfc0006dadc9c3797.png)
![q](/sites/default/files/tex_cache/7694f4a66316e53c8cdd9d9954bd611d.png)
![M_C](/sites/default/files/tex_cache/c9feb4923241913422fab22239fe8bfa.png)
![constr_C](/sites/default/files/tex_cache/27ea9c20c5356aa4b8a7ad45316d9271.png)
![x\in query_C](/sites/default/files/tex_cache/3c0f4ce8ddb7028a7ee1b4fab85104c5.png)
![x:=Oracle(x)](/sites/default/files/tex_cache/5c98e744b919ee84289ca5eb67b1f160.png)
![S_C](/sites/default/files/tex_cache/622a4ac483348c233f7c922b809d6731.png)
![query_C](/sites/default/files/tex_cache/dec01f21b666b17cfc0006dadc9c3797.png)
![C, S_C, query_C, constr_C](/sites/default/files/tex_cache/336fd04eeaad6c45656284505a166a22.png)
![Queue](/sites/default/files/tex_cache/722ad2d05ecf4868b00c5484b82fd808.png)
![R](/sites/default/files/tex_cache/e1e1d3d40573127e9ee0480caf1283d6.png)
TREPAN поддерживает очередь листьев, которые раскрываются и порождают поддеревья. В каждом узле очереди TREPAN сохраняет: (i) подмножество примеров, (ii) еще одно множество векторов, который называется набором вопросов (query) и (iii) набор ограничений ( ). Подмножество примеров включает просто те векторы обучающего набора, которые достигают данного узла дерева. Дополнительный набор вопросов Оракулу используется для выбора теста на разветвление в узле и определения класса примеров, если узел является листом. Алгоритм всегда требует, чтобы число примеров, на основе которых оценивается узел, было бы не меньше заданного (min_sample). Если же до данного узла доходит меньшее число примеров, TREPAN генерирует новые искусственные примеры, используя набор ограничений в данном узле. Множество ограничений определяет условия, которым должны удовлетворять примеры, чтобы достичь данного узла - эта информация используется при формировании набора вопросов для создаваемого нового узла. Для завершения процедуры построения дерева TREPAN использует локальный критерий - он оценивает состояние данного узла и решает, превратить ли его в лист, и глобальные критерии - максимальный размер дерева и общую оценку качества классификации примеров деревом.
Возникает естественный вопрос: "А зачем вообще нужна нейронная сеть для данного алгоритма?" Ведь он может просто использовать
обучающую выборку - известно же, какому классу принадлежит каждый пример. Более того, как бы хорошо ни была обучена сеть, она все
равно будет делать ошибки, неправильно классифицируя некоторые примеры. Дело в том, что именно использование нейросетей в качестве
Оракула дает возможность получать деревья решений, имеющих более простую структуру, чем у деревьев, обученных на исходных примерах.
Это является следствием как хорошего обобщения информации нейронными сетями, так и использования при их обучении операции
исправления данных ( CLEARNING ). Кроме того, алгоритмы построения деревьев, исходя из тренировочного набора данных, действительно
разработаны и с их помощью такие деревья строятся путем рекурсивного разбиения пространства признаков. Каждый внутренний узел
подобных деревьев представляет критерий расщепления некоторой части этого пространства, а каждый лист дерева - соответствует
классу векторов признаков. Но в отличие от них TREPAN конструирует дерево признаков методом первого наилучшего расширения.
При этом вводится понятие наилучшего узла, рост которого оказывает набольшее влияние на точность классификации генерируемым деревом.
Функция, оценивающая узел , имеет вид
где
- вероятность достижения узла
примером, а
- оценка правильности обработки этих
примеров деревом. TREPAN очень интересно осуществляет разделение примеров, достигающих данный внутренний узел дерева, а именно,
использует так называемый
тест. Такой тест считается выполненным, когда выполняются по меньшей мере одно из условий. Если,
например, имеется 3 булевых переменных
, то использование выражения
будет
эквивалентно использованию логической функции
.
Подобная формулировка правил делает деревья вывода более компактными и четкими. Приведем пример дерева решений, полученного
алгоритмом TREPAN, Оракулом в которой являлась нейронная сеть, обученная предсказывать курс обмена немецкой марки на доллар
(Weigend et al., 1996). Заметим, что для обучения сети использовался рекомендуемый для финансовых приложений метод CLEARNING, с
которым мы уже познакомились. Сеть обучалась на данных, охватывающих период с 1985 по 1994 гг. и предсказывала рост или падение
курса обмена на следующий день в течение всего 1995 г.
Таким образом, нейронные сети могут эффективно использоваться в практически важных задачах извлечения хорошо сформулированных знаний не только в случае, если их структура достаточно проста, но и в общем случае.