Общий метод построения кусочно-линейной разделяющей поверхности для множеств объектов, заданных точками в пространстве признаков
д.т.н. проф. Гданский Н.И, асп. Крашенинников A.M.
Университет машиностроения, Российский государственный социальный университет
8(905)7658738, [email protected]
Аннотация. В статье дан общий метод построения разделяющей поверхности для множеств точек-прецедентов в пространстве значений признаков, основанный на использовании гиперплоскостей, нормальных к межоцентровым векторам множеств.
Ключевые слова: разделяющая поверхность, классификация.
Геометрическая интерпретация объектов из некоторого однотипного набора реализуется при помощи задания точек в многомерных пространств значений характеристических признаков объектов. В общем случае сложной задачей является не только построение разделяющих поверхностей для произвольных множеств точек-прецедентов, но и получение алгоритмов разделения, эффективных в вычислительном плане, т.е. не требующих больших вычислительных затрат при классификации новых точек.
Для упрощения вида получаемых условий разделения вместо обычного вектора координат точек х в пространстве признаков использованы однородные координаты вида хр = (1, х ), у которых на начальной позиции к х добавлена единица. Условие отделения для отдельной точки с однородными координатами хр принимает вид:
( С iik, Хр) > 0. (1)
Предложено строить разделяющие поверхности в виде совокупностей гиперплоскостей - простейших поверхностей в рассматриваемых пространствах. Поскольку в общем случае проблема построения оптимальной разделяющей плоскости является сложной переборной задачей, то для упрощения данной задачи для пары множеств точек предложено использовать гиперплоскости фиксированного вида - нормальные по отношению к межцентровому вектору множеств. Получаемая в итоге построения графо-аналитическая структура названа нормальным классификатором (НК).
Для каждого отделяемого множества Ai итоговый НК содержит две основные компоненты.
1. Бинарное дерево 7}, задающее структуру множества Ai, в котором узлам nti (1< nti <nE,) дерева 7}, практически соответствуют подмножества AiJ- исходного множества Ai (в частности, корню (nti =0) соответствует все А) а программная модель узла может содержать 0,1 или 2 ссылки на левый и правый потомки узла. Пустые ссылка в узле дерева обозначаются значением (-1).
2. Каждому узлу nti дерева 7i, (и соответствующему подмножеству Anti еАi) может соответствовать одна гиперплоскость Hnti, заданная множеством ее коэффициентов С = (С0,С1,... ,Cn) и описывающая геометрическое условие, проверяемое для подмножества Anti для его отделения. Если узлу дерева 7i соответствует своя гиперплоскость, его назовем разделяющим. В противном случае - проходным.
В процессе построения НК двух множеств А1 и А2 необходимо использовать дополнительную промежуточную информацию и структуры для ее эффективного хранения и преобразования. Для подмножеств ^nt1 и Ant2, используемых при разделении обоих исходных множеств А1 и А2 предложено дополнительно использовать массивы координат точек, длин подмножеств, координат их центров тяжести, радиусов, а также номеров подмножеств
Фактически, в процессе построения HK1 {nE1, T1, TT1, Н1} и НК2{ nE2,T2, TT2, Н2} используется общая структура S={T,TTl,TT2,Hlfl2AS14S2,L1,L2, C1,C2,R1R2, N1, N2}, включающая в себя общее дерево T. После завершения разделения по ней строятся искомые НК1и НК2.
Обозначим координаты центров тяжести классов А1,А2 через С1 и С2, радиусы их (расстояния от центра до максимально удаленной точки) - через Я1, Я2.
Межцентровым назван вектор С12, соединяющий С1 и С2: С12 = С2 - С1. Длина вектора С12 (межцентровое расстояние множеств ^1зЛ2) обозначена р12. Гиперплоскости, нормальные к вектору С1С2. Для краткости они названы нормальными. Уравнение нормальной плоскости имеет простой вид:
N12( X, Со) = ( С12, х1 ) + Со = 0. (2)
Нормально разделимыми названа такая пара классов ^1зЛ2, для которых существует единственная разделяющая их нормальная гиперплоскость. Условием разделения точек классов А1 и гиперплоскостью Н12 с вектором коэффициентов С является следующая пара неравенств:
Н12( хр , С) > 0, если хвА1 , Н12( хр , С) < 0, если хв. (3)
Для нормально разделимых классов доказаны две теоремы.
Теорема 1. Если для классов А1,А2, имеющих радиусы К1, Р2, а также межцентровое расстояние р12, выполняется условие
Р12 > К1 + *2, (4)
то данные классы нормально разделимы и, в частности, классификатором будет являться опорная нормальная гиперплоскость Н12( хр, С), у которой свободный коэффициент С0 принимает следующее значение:
Р0 = С1 + С12 • Я1 /( Я1 + Я2), С0 =- ( С12, Р0) = - ( С12, С1 + С12 • Я1 /( Я1 + ад. (5)
Теорема 1 задает простейшее по форме достаточное, но не являющееся необходимым, условие нормальной разделимости классов. Для краткости такой вариант разделимости назовем шаровым. Введя безразмерный параметр, названный степенью разделимости
^=Р12 /( + R2),
условие (4) можно представить в эквивалентной форме как: X > 1.
Для исследования более сложных случаев нормальной разделимости введены вспомогательные понятия. Рассмотрим плоскость л:( Р0, V), проходящую через точку Р0 перпендикулярно вектору V]. Позицией точки х(а1г) из класса А1 с центром С1 относительно плоскости л:( Р0, V) названа величина
р( х(Ы С1, к(_Р0,_Р])) =
р( х(а1г),л;( Ро, Vj))■s[gn(F( х(ац,),я(_Р0, V))) Сья( Р0, V))). _ (6)
Позицией множества А1 с центром С1 относительно плоскости л:( Р0, V) назовем величину р(А1, к( Р0, V)) = шт{ р( х(а^), С1, л:( Р0, V)) }, где аь е А1.
Доказан критерий нормальной разделимости в следующей форме.
Теорема 2. Классы с межцентровым вектором С12 нормально разделимы тогда и только тогда, когда относительно какой-либо опорной нормальной плоскости л:( Р0, С12) для их позиций 51 = р(А]_, л:( Р0, С12)), 52 = р(А2, л:( Р0, С12)) выполняется условие:
51 + 52 > 0. (7)
Поскольку полная нормальная разделимость не всегда возможна, то для обеспечения практического решения задачи разделения пары множеств произвольного вида в дополнение к полному нормальному разделению предложено использовать две дополнительные операции: 1) отсечение (частичное разделение) и 2) бинарную кластеризацию (внутреннее разделение множества).
Рассмотрим практическую реализацию отсечения. Зафиксируем некоторую опорную нормальную плоскость л:( Р0, С12) и рассмотрим крайнюю точку х2кр множества (рисунок 1), в которой достигается минимум позиций всех точек т.е. позиция 52 всего По-
Серия 4. Химическое машиностроение и инженерная экология скольку множества А1 и А2 полностью нормально не разделимы, то из множества А1 выделим только то подмножество точек А\0 аА1, которые отделяются точкой х2кр . По Теореме 2 для всех точек подмножества А\0 должно выполняться условие:
р( х{аъ\ Си тг( Р0, V,)) + 52 > 0.
Рисунок 1
В том числе данное условие выполняется для крайней точки х1кр(0) из подмножества А\0. Ее позицию обозначим как 51о. Она равна минимуму всех позиций точек из подмножества ^1о. По Теореме 2 для того, чтобы промежуток между крайними точками множеств и был разделен пропорционально радиусам множеств, в качестве нормально разделяющей плоскости к'( Р о, С12)) между и примем нормальную плоскость л:12 = #12( х, Со), у которой точка пересечения Р01 сдвинута относительно крайней точки х1кр(0) подмножества по вектору С12 на расстояние 512 : 512 = (51о + 52) Я1/(Я 1+^2).
Данную гиперплоскость назовем отсекающей для множества А1, а подмножество -отсекаемым. Координаты точки пересечения Р01 : Ро1 = Ро + (612-610) • С12/Р12 .
Аналогично по крайней точке х1кр множества А1 можно рассмотреть отсекаемое подмножество точек А2о^А2, для позиций которых относительно л:( Р0, С12) выполняется условие: 51 + р( х(а2г), С1, л:( Ро, V)) > 0.
Затем определяем крайнюю точку х2кр(0) из подмножества ^2о, ее позицию обозначим как 52о (минимум всех позиций точек из А2о). По Теореме 2 в качестве нормально разделяющей должна быть принята нормальная плоскость л21, у которой точка пересечения Р02 сдвинута относительно крайней точки х1кр множества А1 по вектору С12 на расстояние 821: 521 = (51 + 52о) Ъ/(Я 1+^2).
Координаты точки пересечения Р02: Р0 2 = Р0 + (521-51) • С12/р12 .
Знаки коэффициентов в уравнении для плоскости л21 необходимо взять со знаком минус, для того, чтобы на подмножестве А2о оно принимало неотрицательные значения.
Плоскости л1 и к2 при отсутствии полной нормальной разделимости задают частичное разделение множеств А1 и ^2.. Принимая #12( х ) = л12, #21( х ) = л21, получаем выполнение условий их частичного нормального разделения. Часть пространства, лежащая между гиперплоскостями л12 и л21, назовем промежуточным слоем. В нем одновременно выполняется совокупность двух условий: М12( х ) < 0, #21( х ) < 0.
Обозначим совокупность элементов множества А1, входящих в промежуточный слой, через ^1п, а набор элементов множества в промежуточном слое - через ^2п. Назовем их промежуточными подмножествами исходных множеств. Очевидно, для отсекаемых и промежуточных подмножеств выполняются соотношения: А1 = ^ ^1п, = А2о А2п. При этом исследование разделимости исходных множеств А1 и А2 сведено к исследованию разде-
лимости их более простых промежуточных подмножеств А1п и А2п. Обозначим числа точек в отсекаемых множествах А\0 и А2о как n1o и n2o. Отсечение множеств будем называть результативным, если выполняется условие n1o+n2o > 0.
Операция бинарной кластеризации означает такое внутреннее разделение множества точек в пространстве признаков гиперплоскостью, при котором достигается максимум условия оптимальности получаемого разбиения {А1, А2}, которое имеет вид:
X (¿1, А2) = pi2/( Ri + R2) ^ max (4Ь А2). (8)
В общем случае глобальный экстремум задачи (8) может достигаться не на единственной паре возможных подмножеств {А1, ^2}.Точное решение задачи можно найти перебором всех возможных вариантов разбиения множества на пары непустых подмножеств А1, и вычислением для них значения Х(А 1, А2). Однако расчет на вычислительных устройствах средней производительности позволяет практически решать такие задачи размерности не выше 15-18 точек. Разработаны приближенные алгоритмы, позволяющие получать решения, совпадающие либо достаточно близкие к оптимальным, но значительно сокращающие перебор за счет замены требования глобальной оптимальности на локальную [2].
Для того, чтобы общий алгоритм разделения множеств не содержал повторных фрагментов кода, в нем выделен вспомогательный алгоритм BinClast2Set функции кластеризации большего из двух множеств A1T и A2T с записью результатов во все массивы структуры S.
На основе рассмотренных выше трех базовых операций полного и частичного нормального внешнего разделения множеств и их бинарной кластеризации (внутреннего разделения), реализованного в алгоритме BinClast2Set, предложен следующий общий алгоритм разделения двух множеств.
1. Исходные данные:
- n - размерность пространства U,
- n1,n2,nmax - числа точек в исходных множествах А1,А2 и максимум из (n1,n2),
- векторы A1T[n1*n],A2T[n2*n] координат точек исходных множеств А1,А2,
- векторы координат центров тяжести текущих множеств C1N, C2N,
- радиусы текущих множеств R11;R22.
2. Решаемые задачи. Определение:
- общего числа nE узлов в общем дереве Т,
- векторы T1[V*2],T2[V*2], задающие структуру деревьев Т1,Т2 множеств А1,А2,
- векторы TT1[V]; TT2[V], задающие типы узлов в деревьях Т1,Т2,
- итоговые массивов H1[V*(n+1)],H2[V*(n+1)] коэффициентов разделяющих гиперплоскостей для узлов деревьев Т1,Т2.
3. Вспомогательная информация:
- массивы векторов NT 1[V];NT2[V], задающие номера подмножеств А1,А2, соответствующие узлам в общем дереве Т,
- массивы AS1[V*nmax*n]; AS2[V*nmax*n] координат всех подмножеств из А1,А2,
- массивы длин L1[V];L2[V] подмножеств множеств А1,А2,
- массивы координат центров тяжести всех множеств C1[V*n];C2[V*n],
- массивы радиусов всех множеств R1[V];R2[V],
- V - начальная оценка возможного числа узлов общегодерева Т,
- номер nt текущего yзлa Т и текущие номера nA1, nA2 подмножеств из А1,А2.
Общий алгоритм разделения двух множеств Separate2Set.
Шаг 1. Начальные присваивания:
Шаг 1.1. Расчет вспомогательныхвеличин: CR1=0.001*RMIN; CR5=0.5*RMIN; nmax=max(n1;n2); V=2nmax.
Шаг 1.2. Начальные засылки в массивы NT1[0]=0;NT2 и числа подмножеств:
_NT1[0]=0;NT2[0]=0;nA1=1;nA2=1._
Шаг 1.3. Начальные засылки в массивы ASl; AS2: Помещение координат точек множества Al в начало массива ASl; Помещение координат точек множества А2 в начало массива AS2. Шаг 1.4. Расчет параметров новых помножеств A2l[n2l], A22[n22]: CalcParam(2,n,n21,A2l,ClN,RlN); if(RlN<CRl)RlN=CR5; CalcParam(2,n,n22,A22,C2N,R2N); if(R2N<CRl)R2N=CR5. Шаг 1.5. Запись параметров A2l[n2l], A22[n22] в массивы SA2,R2,L2,C2. Шаг 1.б. Запись пустых ссылок в узел О дерева Т, начальных значений числа его узлов, текущего узла и ключа для перебора узлов Т: TCT=-l;T[l]=-l; nE=l; nt=-l; keyw=true. Шаг 2. Цикл while (keyw)no узлам дерева T. Шаг 2.1. Проверка начала обработки: Если (nt=-l), то {nt=0; STnAl=-l; STnA2=-l;}, иначе {если (nt<nE-l), то nt+=l; иначе {keyw=false;continue;};}; Шаг 2.2. Определение длины анализируемых подмножеств:
nl=Ll[NTl[nt]]; n2=L2[NT2[nt]]; Шаг 2.3. Проверка необходимости и изъятие координат и основных параметров очередного подмножества Al[nt] :
Если (NTl[nt]!=STnAl), то {переписывание подмножества с номером NTl[nt] в массив AlT, его центра тяжести в массив ClN, радиуса - в переменную Rll}.
Шаг 2.4. Проверка необходимости и изъятие координат и основных параметров очередного подмножества A2[nt] :
Если (NT2[nt]!=STnA2), то {переписывание подмножества с номером NT2[nt] в массив A2T, его центра тяжести в массив C2N, радиуса - в переменную R22}. Шаг 2.5. Охранение прежних номеров множеств для узлов в Т:
STnAl=NTl[nt]; STnA2=NT2[nt]. Шаг 2.б. Рачет вектора Cl2, расстояния Rl2 и степени разделимости X: RQ=0;for(i=0;j<n;j++){Cd=C2N[i]-ClN[i];Cl2[i]=Cd;RQ=RQ+Cd*Cd;}; Rl2=sqrt(RQ); À=Rl2/(Rll+R22). Шаг 2. J. Обработка вложенных множеств Al и А2: Если (^<О.2),то {
1) применение алгоритма BinClast2Set выборочной бинарной кластеризации для пары множеств AlT,A2T с записью результатов в массивы структуры S;
2) continue; };
Шаг 2.8. Обработка множеств с шаровой разделимостью:
1) применение алгоритма SphereSeparate к паре множеств AlT,A2T с расчетом опорной плоскости CH и ее точки пересечения P0c межцентровым вектором,
2) если (à>1),to {
a)3anncb векторов коэффициентовразделяющих плоскостей в массивы Hl,H2,
b) TTl[nt]=true;TT2[nt]=true;
c) continue; };
Шаг 2.9. Обработка множеств с промежуточным типом разделения:
1) если (О,2<^<1),то проверка нормальной разделимости AlT,A2T при помощи алгоритма NormSeparate с расчетом позиций PSl,PS2 их точек относительно опорной плоскости (key=NormSeparate),
2) если есть нормальная разделимость - запись ее результатов: if(key=true){
a) Запись коэф.разделяющих плоскостей в массивы Hl,H2,
b) TTl[nt]=true;TT2[nt]=true;
c) continue; };
Серия 4. Химическое машиностроение и инженерная экология
3) если нет нормальной разделимости - попытка выполнения отсечения:
a) if(key==false), то (проверка выпронения результативного отсечения подмножеств A1T,A2T при помощи алгоритма SetCut с использованием массивов позиций PS1,PS2 (key1= SetCut),
b) если отсечение A1T,A2T результативно (key1= true), то (
- запись коэф.разделяющих плоскостей в массивы Н1,Н2,
- присваивание: TT1[nt]=true; TT2[nt]=true;
- формирование узлов T, соответствующих промежуточным множествам: T[nt*2+1]=nE; T[nE*2]=-1;T[nE*2+1]=-1;
- если (n1M<n1), то (NT1[nE]=nA1; Запись координат точек промежуточного множества A1M в элемент nA1 массива AS1; расчет основных параметров A1M и запись из на места nA1B массивы структуры S; nA1:= nA1+1};
- если (n1M=n1), то {NT1[nE]=NT1[nt];T[nE*2]=-2;};
- если (n2M<n2), то (NT2[nE]=nA2; Запись координат точек промежуточного множества A2M в элемент nA2 массива AS2; расчет основных параметров A2M и запись их на места nA2B массивы структуры S; nA2:= nA2+1};
- если (n2M=n2), то (NT2[nE]=NT2[nt];T[nE*2]=-3;};
- continue;
};
с) если отсечение A1T,A2T нерезультативно (key1= false), то (
- применение алгоритма BinClast2Set выборочной бинарной кластеризации для пары множеств A1T,A2T с записью результатов в массивы структуры S;
- continue;
};
};//Завершение цикла while (keyw)
Шаг 3. Формирование НК1 и НК2:
Шаг 3.1. Формирование деревьевТ1 и Т2 - запись в цикле по i от 0 до nE-1: (T1[2*i]= T[2*i]; T2[2*i]= T[2*i];
если (T1[2*i]=-2), то (T1[2*i]=0; T2[2*i]=-1;};
T1[2*i+1]= T[2*i+1]; T2[2*i+1]= T[2*i+1];
};
}// Завершение работы алгоритма Separate2Set.
Пример 1. Рассмотрим разделение пары множеств точек в двухмерном пространстве, показанных на рисунке 2 ( щ = 10; щ = 3; ^[10] = {(1,0;1,0), (1,0;2,0), (1,0;3,0), (2,0;1,0), (2,0;4.0), (3,0;1,0), (3,0;4,0), (4,0;1,0), (5,0;2,0), (5,0;3,0)}; Л2[3] = ((2,0;2,0), (3,0;2,0), (2,0;3,0)}). Разделение осложняется тем, что одно множество лежит внутри другого.
я id) лт гж
* Я 1(4)
Рисунок 2
Рисунок 3
Серия 4. Химическое машиностроение и инженерная экология Применение вышеизложенного алгоритма дает в итоге следующие НК1 и НК2: НКх (пЕь Ть ТТи Н 1}: пЕ 1=6,
nt= =0 T1[0;L]= 1;T1[0;R]=2; TT1[0]=1; H1[0]=(16.51; -3.75; -0.75);
nt= = 1 T1[1;L]= 3; T1[1;R]=4; TT1[1]= 1; H1[1]=(10.59; -0.75; -2.75);
nt= =2 T1[2;L]= -1; T1[2;R]=-1 TT1[2]= =1; H1[2]=( -10.884; 2.67; 0.17);
nt= =3 T1[3;L]= -1; T1[3;R]=5; TT1[3]= 1; H1[3]=(2.29;-0.33;-0.83);
nt= =4 T1[4;L]= -1; T1[4;R]=-1 TT1[4]= =1; H1[4]=(-6.39;-0.00;2.00);
nt= =5 T1[5;L] -1; T1[5;R]=-1 TT1[5]= =1; H1[5]=(0.13; -1.50;1.00).
HK2{ nE2,T2, TT2, H2}: nE1=6,
nt= =0 T2[0;L] 1; T2[0;R]=2; TT2[0]= =0; H2[0] = 0;
nt= = 1 T2[1;L]= 3; T2[1;R]=4; TT2[1]= =0; H2[1] = 0;
nt= =2 T2[2;L] -1; T2[2;R]=-1 TT2[2]= =1; H2[2] = (10.884; -2.67; -0.17);
nt= =3 T2[3;L]= -1; T2[3;R]=5; TT2[3]= =1; H2[3] =(-0.08;0.33; 0.83);
nt= =4 T2[4;L] -1; T2[4;R]=-1 TT2[4]= =1; H2[4] = (6.39;0.00;-2.00);
nt= =5 T2[5;L] -1; T2[5;R]=-1 TT2[5] =1; H2[5] = (-0.13;1.50; -1.00).
Положение разделяющих гиперплоскостей (при n =2 - прямых) показано на рисунке 3. Стрелками дополнительно указаны положительные полуплоскости.
Построенный общий алгоритм разделения пары множеств может быть применен к решению задачи классификации произвольного числа множеств, заданных наборами своих характерных объектов - прецедентов. Данный алгоритм не требует выполнения большого числа циклов обучения и эффективно за один проход решает довольно сложные задачи разделения, аналогичные рассмотренному выше примеру.
Созданная библиотека расчетных программ практически позволяет применять разработанный метод классификации к любым множествам точек в многомерных пространствах признаков.
Литература
1. Ясницкий Л.Н. Введение в искусственный интеллект. -1-е. // Издательский центр «Академия», 2005. с. 176.
2. Гданский Н.И., Крашенинников A.M. Бинарная кластеризация объектов в многомерных пространствах признаков. Труды Социологического конгресса. РГСУ, 2012. -7 с.
Использование алгоритма суперпозиционного микроимпульсного освещения при культивировании фототрофных микроорганизмов
д.т.н. проф. Бирюков В.В., в.н.с. Макеев П.П., к.т.н. доц. Мальцевская Н.В.
Университет машиностроения birval@rambler. ru
Аннотация. Проведён анализ источников света и режимов освещение для культивирования фототрофов. Проведены предварительные исследования по применению суперпозиционного режима освещения.
Ключевые слова: фототрофы, прерывистое освещение, энергосбережение Большая часть используемых на практике источников энергии сопровождается выделением углекислого газа. Проблема чрезмерной концентрации CO2 и снижения её уровня в атмосфере привлекает все больше внимания.
Для решения этой проблемы был предложен ряд методов абсорбции углекислого газа из атмосферы, часть проектов была успешно реализована, но поглощение, транспортировка и хранение CO2 оказываются весьма затратными и подрывают всякую рентабельность данных проектов. Привлекательным выглядит метод биологического поглощения CO2 через фотосинтез. Одним из методов утилизационного фотосинтеза для сокращения уровня CO2 являет-