Таблица 2
Число исков
П\ П2
0 1 2 3 4 5
763 782 105 046 11539 1206 112 20
0 763 725 105 388,1 11271,8 1140,2 113,2 11,1
(0,0) (1.1) (6,3) (3,8) (0,0) (7Д)
113 778 24 246 3656 471 55 11
1 113 716,7 24325,2 3690,8 488,6 60,1 7Д
(0,0) (0,3) (0,3) (0,6) (0,4) (2,2)
13 441 3731 747 148 20 1
2 13123,8 3982,5 790,9 129,6 19 2,6
(7J) (15,9) (2,4) (2,6) (ОД) (1)
1380 571 138 19 9 4,7 1
3 1432,4 568,9 139,9 27,4 0,7
(1.9) (ОД) (0,0) (2,5) (4)
160 81 22 8
4 153,5 75,5 22,1 0,2
(0,3) (0,4) (0,0) О
17 18 6 0 0,2 8
5 16,3 9,6 3,3 0,8 0
(0,0) (7,5) (2,3) (30,1)
СПИСОК ЛИТЕРАТУРЫ
1. Besson J.-L., Partrat С. Trend et systèmes de bonus-malus // ASTIN Bull. 1992. 22. P. 11-31.
2. Лемер Ж. Системы бонус-малус в автомобильном страховании. М.: Янус-К, 2003.
3. Бауэре Н., Хикман Дж., Гербер J1. и др. Актуарная математика. М.: Януе-К, 2001.
Поступила в редакцию 12.02.2008
УДК 681.3:519.9:519.68:612.001.57 Е.А. Попова1
МЕТОД ПАРАЛЛЕЛЬНОГО ПОСТРОЕНИЯ КОМИТЕТА ДЕРЕВЬЕВ РЕШЕНИЙ ДЛЯ ОБРАБОТКИ СИГНАЛОВ ЭЛЕКТРОЭНЦЕФАЛОГРАФИИ
В работе описан метод параллельного построения ансамбля классификаторов для решения задачи локализации нейронных источников внутри мозга на основе анализа сигналов электроэнцефалографии (ЭЭГ). Идея предложенного параллельного численного метода — рассмотрение параметров источников как атрибутов деревьев решений, которые строятся параллельно. Метод основан на формировании тренировочного набора данных по экспериментальному сигналу и построении классификатора на основании значения ошибки по потенциалу — разницы экспериментальных измерений и модельного потенциала. Рассматривается эффективность распараллеливания задачи локализации — распределения данных между процессорами и распределенного обучения ансамблей деревьев решений. Представлен анализ масштабируемости задачи построения ансамблей классификаторов с числом процессоров при решении задачи локализации нейронных источников на многопроцессорных вычислительных комплексах. Параллельный алгоритм локализации источников разработан для архитектур с общей и распределенной памятью. Реализация выполнена с помощью технологии MPI, в работе также обсуждается гибридная модель параллельных вычислений на MPI и ОрепМР.
Ключевые слова: деревья решений, обработка сигналов, локализация источников, параллельное программирование.
1Факультет ВМиК МГУ, асп., e-mail:eapopova®gmail.com
Введение. Задача локализации нейронных источников мозга по электроэнцефалографическим измерениям (ЭЭГ) рассматривалась в традиционных постановках [1]. Обратная задача ЭЭГ имеет не единственное решение и требует модели аппроксимации нейронных источников-диполей, которыми моделируется абстрактная группа активных нейронов, находящаяся в непосредственной близости друг к другу. Решение оптимизационной задачи нахождения параметров диполей-источников, например, градиентным методом сильно зависит от хорошего начального приближения, медленно сходится и требует больших вычислительных затрат на каждом итерационном шаге, особенно при большом количестве входных параметров задачи. Появление мощных ЭВМ позволяет взглянуть на проблему по-другому. В работе [2] был предложен алгоритм локализации нейронных источников на основе построения ансамбля деревьев решений. Алгоритм основан на постановке задачи классификации параметров диполей, для которых модельный потенциал на поверхности головы максимально приближен к экспериментальным измерениям. Особое значение имеет случай, когда объем обучающего множества превышает размеры оперативной памяти вычислительной системы [3-5].
В наиболее эффективных из существующих параллельных подходов построения дерева решений снижаются затраты на обмен информацией для вычисления точек разбиения в узлах дерева, оптимизируется работа с обучающим множеством (необходимо минимизировать число проходов по базе данных) [3, 4] предлагаются вероятностные оценки интервалов разбиения значений атрибутов [5].
Целью настоящей работы является построение параллельного алгоритма разбиения исходной задачи на независимые подзадачи. Принимается во внимание природа исходных данных и алгоритм решения прикладной задачи локализации нейронных источников, предложенный в [2]. Опираясь на традиционные схемы параллельного построения деревьев решений, предлагается способ "быстрого построения" множества деревьев-классификаторов, каждое из которых формирует вероятную зону локализации в зависимости от количества доступных ресурсов вычислительной системы. Разработанный алгоритм адаптирован для вычислительных систем с распределенной памятью.
1. Параллельный алгоритм построения ансамблей деревьев решений. Обучающее множество для построения классификатора формируется на основе данных ЭЭГ и решения прямой задачи нахождения потенциала по расположению источников [2]. Алгоритм построения одного дерева решений соответствует схеме, относящейся к классу традиционной программы С4.5 [6]. Исследования, относящиеся к алгоритмическим особенностям предлагаемого подхода, описаны в работе [2].
Рассмотрим параллельный алгоритм построения множества деревьев решений (комитета) на вычислительной архитектуре с распределенной памятью, учитывая специфику задачи локализации. При построении ансамбля деревьев решений каждое дерево (член ансамбля) может быть построено независимо. Взаимодействие всех деревьев необходимо только на последнем этапе построения ансамбля — этапе выработки функции голосования. Голосование деревьев занимает от 7-10% от общего времени решения задачи локализации, поэтому в рамках данного рассмотрения будет исследована только часть алгоритма эффективного решения обратной задачи локализации, а именно этап построения деревьев решений из обучающего множества большого размера.
Каждое дерево строится независимо, но поскольку объем обучающей выборки превышает локальную память процессорного блока в системе, то предлагается метод распределения деревьев между процессорами. Пусть есть множество свободных процессоров Pfree, a Nt — количество деревьев решений, которые нужно построить для формирования ансамбля. Тогда группа процессоров Pfree разбивается на блоки по PfTee/Nt mod Щ, где Щ — количество процессоров в каждом блоке. После этого построение каждого дерева выполняется на одном блоке процессоров. Рассмотрим алгоритм построения дерева решений для каждого многопроцессорного блока. Предположим, что число процессоров в блоке есть степень двойки и они представляют собой топологию гиперкуба (соответственно алгоритм может быть модифицирован, если общее число Р процессоров в блоке — не степень двойки). Приведем шаги параллельного алгоритма.
1. База данных обучающих примеров дерева решений равномерно распределена среди Р процессоров. Таким образом, если N — общее число обучающих примеров в подмножестве для данного дерева решений, то у каждого процессора в локальной памяти будет N/P примеров.
2. Изначально все процессоры принадлежат одному узлу NQ и работают вместе для вычисления точки разбиения.
• Каждый процессор для каждого атрибута, находящегося у него в памяти, вычисляет распределение классов и записывает его в свою копию хэш-таблицы.
• Каждый процессор обменивается данными о распределении классов с другими процессорами посредством записи в глобальную редукционную переменную (хэш-таблицу).
• Одновременно процессоры вычисляют значение энтропии и индекс Гини для каждого атрибута узла и выбирают наилучший атрибут для разбиения на подмножестве, а потом и на всем обучающем множестве посредством записи в редукционную переменную.
• Вычисляются потомки рассматриваемого узла, тренировочное множество разбивается на подмножества-потомки.
3. С увеличением глубины дерева объем собираемой статистики на каждом уровне увеличивается. На каком-то уровне временная стоимость обмена информацией между процессорами становится чрезмерно большой. Тогда в этом случае группа процессоров, работающих в блоке над каждым узлом, разбивается на две подгруппы, которые выполняют построение поддеревьев параллельно.
• В гиперкубе каждая из двух подгрупп процессоров соответствует подкубу. Сначала соответствующие процессоры двух подкубов обмениваются нужными данными. После обмена у каждого из подкубов есть вся информация для построения следующего узла дерева. Число обучающих примеров на каждом процессоре может быть от 0 до 2 • /V//тогда каждая подгруппа процессоров сбалансированно распределяет количество узлов на процессор.
4. Шаги алгоритма начиная с первого повторяются для созданных подгрупп процессоров, которые могут работать независимо.
5. Если число процессоров в группе становится меньше двух, то эта группа объединяется с группой процессоров, которая имеет такое же число процессоров.
Ключевой момент в данном алгоритме — это критерий разбиения группы работающих процессоров на подгруппы. Если делать разбиение слишком часто или редко, то время на обмен информации между процессорами будет тратиться неэффективно. Оптимальная точка разбиения достигается, когда время на передачу информации равно времени пересылки примеров между процессорами на стадии поиска точки разбиения узла:
Scom >МС + Lc, (1)
где Scom — общие временные затраты на обмен данными, Мс — затраты на обмен данными между блоками процессоров, Ьс — затраты на обмен данными между процессорами одного блока. Дальнейший анализ эффективности предложенного алгоритма будет приведен ниже.
2. Анализ масштабируемости и производительности предложенного алгоритма. Для
анализа производительности алгоритма сделаем следующие предположения.
1. Процессоры образуют топологию гиперкуба.
2. Все уравнения, описывающие затраты на передачу данных, написаны для бинарного дерева с 2Ь листами на глубине L.
3. Размер дерева решений асимптотически не зависит от размера входного обучающего множества. Обозначим через Аd число атрибутов. Тогда для каждого уровня дерева существует Аd таблиц
распределения классов, которыми должны обменяться процессоры. Размер каждой из таблиц определяется произведением числа классов и числа значений атрибутов:
Size = С -Ad- М,
где С — число классов, A(i — число атрибутов, М — число различных значений атрибутов (или пороговые значения, позволяющие восстановить значения атрибутов). Число узлов (листов) на уровне L равно I. - 21-. Тогда полный размер таблицы Ts определяется следующим образом:
'/; с • л,, • м • 2'-.
На уровне L полное время вычислений, включая проходы по обучающему множеству, создание и обновление таблиц распределений классов для каждого атрибута, равно
cPl = e(^ + c.Ad.M.2Lytc = e^y, (2)
где N — общее число обучающих примеров, Р — общее число процессоров. После локальных вычислений на каждом процессоре выполняется синхронизация процессоров путем записи в глобальную
редукционную переменную — общую таблицу распределения классов. Тогда затраты на передачу можно оценить следующим образом:
Спи = {и + ги) ■ С ■ Ал ■ м ■ 2Ь) ■ \giPi) <: в(\8Р),
где — единица измерения времени вычислений, — временная задержка при передаче одного пакета данных. Когда группа процессоров разбивается на две подгруппы, каждый узел приписывается к подгруппе таким образом, чтобы число обучающих примеров в каждой подгруппе было примерно одинаковым. В каждой подгруппе процессоров должно быть необходимое множество обучающих примеров, число которых в полностью сбалансированной системе равно Н/Р. Выполнение этих условий осуществляется в два этапа, первый — перемещение каждым процессором необходимых примеров другому процессору, следовательно, каждый процессор может принять и отправить максимум Н/Р примеров процессору другой подгруппы. Тогда затраты на синхронизацию Стоу можно оценить как
N
Стоу ^ 2 • — • . (3)
Второй этап — это балансировка внутри каждой подгруппы. К моменту синхронизации подгрупп у каждого процессора может быть от 0 до ^г примеров, каждый процессор может получить и отправить максимум Н/Р примеров. Без учета перегрузок сети балансировка Сь&\ занимает
СЬа1 -Н/Р-и0.
Затраты на балансировку подгруппы с учетом перегрузок и задержек оценены в работе [5].
Предположим, что для построения классификационной модели обучающей базы данных было построено дерево глубиной Глубина дерева — это константа, не зависящая от размера обучающего множества, если данное дерево решений аппроксимирует данные. Затраты на создание новых подгрупп процессоров Ср — это произведение всего числа подгрупп и затрат на передачу данных для полного формирования одной группы равно в (см. (2)). Общее число разбиений, в котором может участвовать процессор при построении всего дерева, равно его глубине
С^Ьг-в^У
Затраты на обмен данными на каждом уровне дерева описываются уравнением (3) (и равны в(^Р)). Общее время передачи данных при построении всех уровней равно
С1^Ь1-0(1£Р)=0(1£Р).
Цена всех коммуникаций между процессорами С^а1 — это сумма затрат на создание разбиения группы на подгруппы и затрат на обработку таблиц распределений классов:
Сгош = 0(1о+ в ■
Общее время выполнения построения дерева
а1 = 0
Время выполнения параллельного построения Траг = С^а! + ТЬо%а1, где
Тра1 = в(\оёР)+в(^У
В случае последовательного выполнения программы проход по обучающему множеству выполняется один раз при построении каждого уровня и время на построение равно
Т8ег = в(М) ■ Ьг = в(М).
Для подсчета эффективности использования параллельных вычислений приравняем время выполнения последовательной программы ко времени выполнения параллельной программы, умноженному на
число использованных процессоров:
Таким образом, мера эффективности равна в(Р^Р) с учетом того, что перегрузок или других задержек, связанных с коммуникационной сетью, нет. Аналитически мы можем сказать, что задача построения ансамбля деревьев решений является масштабируемой.
3. Результаты обработки сигнала ЭЭГ с помощью параллельного алгоритма построения деревьев решений. Анализировались реальные данные ЭЭГ, снятые с пациентов во время определенного эксперимента. Полное описание экспериментов испытуемых, первичную обработку электроэнцефалограммы, выборки окон и временных точек можно найти в работах [1, 2]. Ниже в таблице приведены характеристики исходных обучающих множеств и результаты их обработки предлагаемым методом.
Временные затраты вычислительной системы, %
Номер Число Число Число Число Этап
базы зон атрибутов примеров деревьев Формиро- Построение Голосование
данных локали- в базе в ансамбле вание ансамбля членов
зации данных базы данных классификаторов ансамбля
1 1 6 7е 250 54 31 15
2 1 6 12е 500 58 35 7
3 2 12 250 62 25 13
4 2 12 12^ 500 69 19 12
Параметры формирования обучающих множеств в таблице следующие: число примеров в обучающем множестве, число деревьев решений при построении ансамбля, число зон локализации, параметры сетки при решении прямой задачи [1]. Исследовались две задачи нахождения одной зоны активности при нескольких параметрах сетки внутри головы и две задачи нахождения двух зон активности также при разных параметрах сетки. Аналитически показано, что эффективность может повышаться с увеличением числа процессоров. Точность задачи локализации можно увеличивать, изменяя шаг сетки при задании параметров прямой задачи и значение порога для формировании обучающего множества обратной задачи. Данные характеристики значительно увеличивают размерность входного обучающего множества, поэтому использование больших вычислительных массивно-параллельных комплексов будет существенно сокращать временные затраты.
70 ■ 60 ■ 50 ■ 40 ■ 30 ■ 20 ■ 10 ■
° 20 40 60 80 100 120 N 140
Рис. 1. Ускорение времени построения полного ансамбля деревьев решений для тренировочных множеств, состоящих из: 76 (1); 126 (2); 712 (3);
1212 (4) примеров
На рис. 1 представлены результаты построения ансамбля деревьев решений для баз данных, описанных в таблице, с распределением по 4 процессора на группу.
Рис. 2. Среднее ускорение времени работы алгоритма построения одного члена ансамбля: при отсутствии разбиения на всех уровнях дерева решений (_/); на каждом уровне построения дерева решений (2); при разбиении в зависимости от значения порога (3)
При анализе масштабируемости рассматриваемой задачи построения ансамбля деревьев решений (1) было выявлено, что необходимо найти оптимальную точку при построении дерева для выполнения разбиения группы процессоров на независимые подгруппы. Также было показано, что эта точка характеризуется отношением
д = Ссош ^
Стоу + Сьа1
На рис. 2 показано ускорение работы алгоритма построения одного члена ансамбля при разбиении группы процессоров на подгруппы на каждом уровне построения дерева при отсутствии разбиения на всех этапах и при разбиении в зависимости от значения порога. Результаты показали, что теоретические выводы о масштабируемости задачи верны. Когда разбиение выполняется слишком часто и размер поддерева сложно предсказать на этапе построения, то алгоритм начинает терять эффективность. Затраты на передачу данных и постоянное обновление необходимых хэш-таблиц значительно сказываются на времени выполнения. При отсутствии каких-либо разбиений вообще эффективность увеличивается при работе двух процессоров в группе, после этого начинает снижаться из-за увеличения буферов обмена данными и количества узлов для построения на большой глубине дерева. Из рисунка видно, что при оптимальном пороге разбиения можно наблюдать ускорение времени выполнения задачи. Выявить аналитическим путем оптимальный порог разбиения достаточно сложно. Приведем результаты обработки конкретных исследуемых обучающих множеств и экспериментальное определение оптимального порога разбиения. По некоторым оценкам, приведенным в работе [3], интервал нахождения оптимального значения отношения (4) лежит около единицы. Мы исследовали время выполнения задачи для нескольких значений порога разбиения, лежащих около единицы.
4. Выводы. Из многочисленных исследований алгоритма построения деревьев решений [6] можно указать основные параметры, отвечающие дереву, такие, как максимальная глубина, число узлов, число листьев, сбалансированность. Существуют оценки сложности деревьев решений и такое понятие, как "сила" дерева [6]. Ключевым параметром предложенного параллельного алгоритма является пороговое значение для разбиения группы процессоров на подгруппы. Оно оценивается исходя из соотношения (4), которое учитывает временные затраты на обмен данными и выполнение построения дерева, но не берет во внимание "оценку" дерева решений (риск, глубину, количество узлов и т.д.) на этапе его построения. Можно предполагать, что априорная оценка сложности дерева решений, его влияние на распределение задач по процессорам могут значительно сократить временные затраты вычислительной системы.
В настоящем исследовании проведен полный анализ производительности и масштабируемости алгоритма построения ансамбля деревьев решений для задачи локализации нейронных источников мозга. Исследование показало, что задача масштабируется с ростом процессоров и может быть оптимизирована по времени за счет параметров разбиения процессоров на подгруппы. Исследование было
проведено для массивно-параллельных архитектур, получивших широкое развитие в последнее время. В дальнейшем планируется модифицировать оптимизационные параметры задачи и привязать их к характеристикам формируемого дерева. Необходимо также исследовать максимальную загруженность каждого процессора при построении ансамбля для прогнозирования максимального количества используемых алгоритмом ресурсов вычислительной системы.
СПИСОК ЛИТЕРАТУРЫ
1. Mosher J., Leahy М., Lewis P. EEG and MEG: forward solutions for inverse methods // IEEE Trans. Biomed. Eng. 1999. 46. N 3. P. 245-259.
2. Попова E. А. Ансамбль деревьев решений для локализации нейронных источников мозга // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2008. № 3. С. 46-55.
3. Mehta М., Agrawal R., Rissanen J. SLIQ: a fast scalable classifier for data mining // Proc. of the Fifth Int. Conf. on Ext. Database Technology. Avignon, Erance: Springer-Verlag, 1996. P. 18-32.
4. Shafer J., Agrawal R., Mehta M. SPRINT: a scalable parallel classifier for data mining // Proc. of Very Large Databases Conf. Bombay, India: Morgan Kaufmann, 1996. P. 544-555.
5. Jin R., Agrawal J. Communication and memory efficient parallel decision tree construction // Proc. of the Third SIAM Int. Conf. on DM. San Erancisco, CA, USA: SIAM, 2003. P. 571-576.
6. Breiman L. Random forests // Machine Learning. 2001. 45. N 3. P. 5-32.
Поступила в редакцию 20.11.07