Опубликован: 01.03.2007 | Доступ: свободный | Студентов: 1589 / 211 | Оценка: 4.58 / 4.39 | Длительность: 20:15:00
Специальности: Программист
Лекция 2:

Решение задач нейронными сетями

Задача четкого разделения двух классов по обучающей выборке ставится так: имеется два набора векторов x1, ..., xm и y1,...,ym. Заранее известно, что xi относится к первому классу, а yi - ко второму. Требуется построить решающее правило, то есть определить такую функцию f(x), что при f(x)>0 вектор x относится к первому классу, а при f(x)<0 - ко второму.

Координаты классифицируемых векторов представляют собой значения некоторых признаков (свойств) исследуемых объектов.

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

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

  1. искать дополнительные признаки, позволяющие разделить классы;
  2. примириться с неизбежностью ошибок, назначить за каждый тип ошибок свой штраф ( c12 - штраф за то, что объект первого класса отнесен ко второму, c21 - за то, что объект второго класса отнесен к первому) и строить разделяющее правило так, чтобы минимизировать математическое ожидание штрафа;
  3. перейти к нечеткому разделению классов - строить так называемые "функции принадлежности" f1(x) и f2(x) - fi(x) оценивает степень уверенности при отнесении объекта к i -му классу ( i=1,2 ), для одного и того же x может быть так, что и f1(x)>0, и f2(x)>0.

Линейное разделение классов состоит в построении линейного решающего правила - то есть такого вектора \alpha и числа \alpha_0 (называемого порогом), что при {(x, \alpha )} > {\alpha_0 x} относится к первому классу, а при {(x, \alpha )} < {\alpha_0} - ко второму.

Поиск такого решающего правила можно рассматривать как разделение классов в проекции на прямую. Вектор \alpha задает прямую, на которую ортогонально проектируются все точки, а число \alpha_0 - точку на этой прямой, отделяющую первый класс от второго.

Простейший и подчас очень удобный выбор состоит в проектировании на прямую, соединяющую центры масс выборок. Центр масс вычисляется в предположении, что массы всех точек одинаковы и равны 1. Это соответствует заданию \alpha в виде

\alpha = (y^{1} + y^{2} +... +y^{m})/m - (x^{1} + x^{2} +... + x^{n})/n.            (6)

Во многих случаях удобнее иметь дело с векторами единичной длины. Нормируя \alpha, получаем:

\alpha = ((y^{1} + y^{2} +... +y^{m})/m - (x^{1} + x^{2} +... + x^{n})/n)/||
(y^{1} + y^{2} +... +y^{m})/m - (x^{1} + x^{2} +... + x ^{n})/n||.

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

\alpha _{0}=(((y^{1} + y^{2} +... +y^{m})/m,\alpha ) +((x^{1} + x^{2} +... + x ^{n})/n, \alpha ))/2.

Более тонкие способы построения границы раздела классов \alpha_0 учитывают различные вероятности появления объектов разных классов, и оценки плотности распределения точек классов на прямой. Чем меньше вероятность появления данного класса, тем более граница раздела приближается к центру тяжести соответствующей выборки.

Можно для каждого класса построить приближенную плотность вероятностей распределения проекций его точек на прямую (это намного проще, чем для многомерного распределения) и выбирать \alpha_0, минимизируя вероятность ошибки. Пусть решающее правило имеет вид: при (x, \alpha ) > \alpha_0 x относится к первому классу, а при (x, \alpha ) < \alpha_0 - ко второму. В таком случае вероятность ошибки будет равна

P = p_1 \int\limits_{- \infty}^{\alpha_0}{\rho_1 (\chi )} d\chi + p_2 \int\limits_{\alpha_0}^\infty  {\rho_2 (\chi )} d\chi

где p1, p2 - априорные вероятности принадлежности объекта соответствующему классу, \rho_1 (\chi ), \rho_2 (\chi ) - плотности вероятности для распределения проекций \chi точек x в каждом классе.

Приравняв нулю производную вероятности ошибки по \alpha_0, получим: число \alpha_0, доставляющее минимум вероятности ошибки, является корнем уравнения:

{\rm{p}}_1 \rho_1 {\rm{(}}\chi {\rm{) = p}}_2 \rho_2 {\rm{(}}\chi {\rm{)}}{\rm{,}} ( 7)

либо (если у этого уравнения нет решений) оптимальным является правило, относящее все объекты к одному из классов.

Если принять гипотезу о нормальности распределений:

\rho (y) = \frac{1}{{\sqrt {2\pi} \sigma}}e^{- (y - a)^2 /2\sigma^2} 
,

то для определения \alpha_0 получим:

\frac{{p_1}}{{\sqrt {2\pi} \sigma_1}}e^{- (y - a_1 )^2 /2\sigma_1^2} = \frac{{p_2}}{{\sqrt {2\pi} \sigma_2}}e^{- (y - a_2 )^2 /2\sigma_2^2} 
,
\ln (p_1 /p_2 ) - \ln (\sigma_1 /\sigma_2 ) - (y - a_1 )^2 /2\sigma_1^2 + (y - a_2 )^2 /2\sigma_2^2 = 0