Linear Discriminat Analysis

Линейный дискриминантный анализ Фишера

Метод главных компонент (Principal Component Analysis - PCA) находит самое точное отображение данных в пространстве меньшей размерности, линейный дискриминантный анализ Фишера (Fisher Linear Discriminat Analysis- LDA) в своей идее имеет иной характер.
Различные инструменты для классификации данных можно найти на веб-сайте Science Hunter.
Главная идея состоит в нахождении гиперплоскости, проекция на которую позволяет наиболее точно разделить классы данных.
Плохое разделение классов точек. Хорошее разделение классов точек.
Пусть имеем точки \(x_1,x_2,...,x_n\) из двух классов в пространстве \(d\)- измерений, из которых \(n_1\) точек принадлежит одному классу и \(n_2\)- второму. Для единичного вектора \(\vec{\nu}\) построим проекции этих точек на направление данного вектора.

Тогда скалярное произведение \(\vec{\nu}^Tx_i\) совпадает с расстоянием от начала координат до проекции точки \(x_i\) на направление вектора \(\vec{\nu}\), другими словами, \(\vec{\nu}^Tx_i\) есть проекция \(x_i\) на пространство меньшей размерности.
Оценим степень разделения проекций различных классов. Пусть \(\mu_1\) и \(\mu_2\) средние значения первого и второго классов, а \(\tilde{\mu}_1\) и \(\tilde{\mu}_2\) средние значения проекций первого и второго классов, тогда \[ \tilde{\mu}_1=\frac{1}{n_1}\sum\left\{\left.\vec{\nu}^Tx_i\right|x_i\in c_1\right\}= \vec{\nu}^T\left(\frac{1}{n_1}\sum\left\{\left.x_i\right|x_i\in c_1\right\}\right)=\vec{\nu}^T\mu_1. \] и, соответственно, \(\tilde{\mu}_2=\vec{\nu}^T\mu_2\).
Величина \(|\tilde{\mu}_1-\tilde{\mu}_2|\) может быть хорошей мерой для разделения классов.

Для данного изображения горизонтальная ось лучше разделяет классы и, соответственно, \[ |\tilde{\mu}_1-\tilde{\mu}_2|>|\breve{\mu}_1-\breve{\mu}_2|.\] С другой стороны, эта характеристика разделяет только центры классов, что не всегда соответствует хорошему разделению самих классов.
Нам необходимо нормализовать \(|\tilde{\mu}_1-\tilde{\mu}_2|\) на коэффициент, который пропорционален разбросу данных класса (дисперсии).
Итак, пусть имеются данные \(z_1,z_2,...,z_n\). Их среднее значение \(\mu_z=\frac{1}{n}\sum_{i=1}^nz_i\) и дисперсия \(s=\sum_{i=1}^n(z_i-\mu_z)^2\).
Таким образом, разброс просто равен произведению дисперсии на \(n\), то есть, разброс от дисперсии отличается только масштабом.
Фишер предложил следующее решение – нормализация \(|\tilde{\mu}_1-\tilde{\mu}_2|\) по разбросу данных.
Пусть \(y_i=\vec{\nu}^Tx_i\) - проекция точки \(x_i\) на направление вектора \(\vec{\nu}\).
Тогда разброс проекций первого класса равен \(\tilde{s}^2_1=\sum\left\{\left. (y_i-\tilde{\mu}_1)^2\right|x_i\in c_1\right\}\) и второго \(\tilde{s}^2_2=\sum\left\{\left. (y_i-\tilde{\mu}_2)^2\right|x_i\in c_2\right\}\).
Проведем совместную нормализацию для обоих классов. Тогда линейным дискриминантом Фишера будет гиперплоскость, направление которой \(\vec{\nu}\) максимизирует величину \[J(\nu)=\frac{|\tilde{\mu}_1-\tilde{\mu}_2|}{\tilde{s}^2_1+\tilde{s}^2_2}.\] Все, что нам нужно сделать сейчас, чтобы выразить \(J\) явным образом как функцию \(\vec{\nu}\) и максимизировать его величину.

Рассмотрим пример.

Пусть есть классы \(c_1=\)[(1,2),(2,3),(3,3),(4,5),(5,5)] и \(c_2=\)[(1,0),(2,1),(3,1),(5,3),(6,5)]
PCA позволяет получить направление с наибольшим разбросом данных, что не позволяет разделить классы.
Вначале найдем средние значения \(\mu_1=\)[3, 3.6] и \(\mu_2=\)[3, 3.2]. Найдем матрицы разброса
S1=
10 8.0
8.0 7.2
S2=
17.7 16.0
16.0 16.0
И для обоих классов
SW=S1+S2=
27.3 14.0
24.0 23.2
Матрица обратима и
\(S^{-1}_W=\)
0.39 -0.41
-0.41 0.47
и вектор, определяющий оптимальное направление \(\vec{\nu}\)
\(\vec{\nu}=S^{-1}_W(\mu_1-\mu_2)=\)
-0.79
0.89
Последним шагом будет вычисление вектора \(y\), и, соответственно, разделение классов

\(Y_1=\vec{\nu}^Tc^{T}_1=\)
-0.67 0.73
1 2 3 4 5
2 3 3 5 5
=
0.81 ... 0.4
\(Y_2=\vec{\nu}^Tc^{T}_2=\)
-0.67 0.73
1 2 3 4 5 6
0 1 1 2 3 5
=
-0.65 ... -0.25

Многомерный дискриминантный анализ- Multiple Discriminant Analysis (MDA)

Можно обобщить ЛДА для случая нескольких классов. В этом случае для \(с\) классов, можно уменьшить размерность до \(1,2,3,…,с-1\). Рассмотрим проекцию \(x_i\) на линейное подпространство \(y_i=V^Tx_i\), \(V\) называют проекционной матрицей.
Пусть \(n_i\) число элементов \(i\)-го класса, \(\mu_i\) -среднее значение этого класса и \(\mu\)-среднее значение всех элементов \[ \mu_i=\frac{1}{n_i}\sum\{x|x\in c_i\}, \mu=\frac{1}{n}\sum_{i=1}^nx_i. \] Выпишем функцию цели \[ J(\nu)=\frac{det(V^TS_BV)}{det(V^TS_WV)}. \] Матрица разброса будет \[ S_W=\sum_{i=1}^cS_i=\sum_{i=1}^c\sum{\left\{\left.(x_k-\mu_i)(x_k-\mu_i)^T\right|x_k\in c_i\right\}}. \] Матрица рассеивания между классами будет \[ S_B=\sum_{i=1}^cn_i(\mu_i-\mu)(\mu_i-\mu)^T. \] Пусть матрица имеет максимальный \(rank=c-1\), тогда решение сводится к решению задачи на собственные числа \[ S_BV=\lambda S_WV. \] Тогда оптимальная проекция будет на вектор, который соответствует максимальному собственному числу.

Параметрические методы и дискриминантные функции

Использование параметрических методов предполагает наличие информации о плотности распределения классов по известным \(p_1(x|\theta_1),p_2(x|\theta_2),\ldots \) с оцениванием параметров \(\theta_1,\theta_2,\ldots\) и последующим применением байесовского классификатора.
Использование линейных дискриминантных функций \(\ell(\theta_1),\ell(\theta_2),\ldots\) с параметрами \(\theta_1,\theta_2,\ldots\) также позволяет разделить классы.
Чисто теоретически, классификатор Байеса минимизирует риски, но на практике у нас нет информации о функции плотности и, по-большому счету, это для разделения классов не так уже и важно. Да и точное определение параметров функций плотности намного сложнее, чем оценка дискриминантных функций.
Поэтому достаточно часто возникает такая ситуация, что оценку плотностей нужно пропустить. Естественно, что дискриминантные функции совсем не обязательно могут быть линейными, но линейные методы достаточно популярны и их следует рассмотреть, хотя бы по той причине, что линейные дискриминантные функции оптимальны для Гауссовских распределений с равной ковариацией.
Дискриминантная функция \(g(x)\) называется линейной, если \(g(x)=w^Tx+w_0\), где \(w\) весовой вектор и \(w_0\) смещение или сдвиг. При этом

Здесь \(w\) определяет ориентацию разделяющей гиперплоскости, а \(w_0\) –место расположения поверхности решения.
Для случая нескольких классов ситуация аналогичная. Определим \(m\) линейных дискриминантных функций \(g_i(x)=w^T_ix+w_{i,0}, i=1,2,\ldots,m\). Элемент \(x\) принадлежит классу \(c_i\), если \(g_i(x)\ge g_j(x),\forall j\ne i.\) Такой классификатор называется линейной машиной. Линейная машина разбивает пространство на \(k\)-классов, причем для элементов \(i\)-го класса наибольшее значение среди всех дискриминантных функций будет у \(g_i(x)\).
Для двух классов \(c_i,c_j\) граница, разделяющая эти множество будет гиперплоскостью \(h_{i,j}\), определяемой соотношением \[ g_i(x)=g_j(x)\Leftrightarrow w_i^Tx+w_{i,0}=w_j^Tx+w_{j,0}\Leftrightarrow (w_i-w_j)^Tx+(w_{i,0}-w_{j,0})=0. \] Таким образом, \(w_i-w_j\) будет нормалью \(h_{i,j}\) и расстояние от \(x\) до \(h_{i,j}\) будет равно \[ d(x,h_{i,j})=\frac{g_i(x)-g_j(x)}{\|w_i-w_j\|}. \] Кроме того, линейная машина дает разбиение на выпуклые множества \[ x,y\in c_i\Rightarrow \alpha x+(1-\alpha)y\in c_i \] Так как \[ \forall j\ne i\hbox{ } g_i(x)\ge g_j(x), g_i(y)\ge g_j(y) \Rightarrow \forall j\ne i\hbox{ } g_i(\alpha x+(1-\alpha)y)\ge g_j(\alpha x+(1-\alpha)y), \] то результатом работы линейной машины будут односвязные области, поэтому применимость линейной машины по большей части ограничено унимодальностью условной плотности \(p(x|\theta)\). Для множеств приведенных на иллюстрации

линейная машина заведомо не может отработать хорошо. Для решения этой проблемы перепишем линейную дискриминантную функцию \(g(x)=w^T+w_0\) в виде \[ g(x)=\left[w_0,w^T\right]\left[\begin{array}{c}1\\x\end{array}\right]=a^Ty=g(y), \hbox{ где } a=[w_0,w^T] \hbox{ и } y=[1, x]^T. \] Тогда если \(g(x)=w^T+w_0\), то для вектора \([x_1,...,x_d]^T\) эквивалентная задача будет иметь вид \(g(y)=a^Ty\), для вектора \([1,x_1,...,x_d]^T\) и условие разделения классов будет иметь вид \[ \left\{ \begin{array}{ll} a^Ty_i\gt 0, & \forall y_i\in c_1 \\ a^Ty_i\lt 0, & \forall y_i\in c_2 \end{array} \right. \hbox{ или, что то же } \left\{ \begin{array}{ll} a^Ty_i\gt 0, & \forall y_i\in c_1 \\ a^T(-y_i)\gt 0, & \forall y_i\in c_2 \end{array} \right. \] Таким образом нужно найти такой вектор \(a\), чтобы для всех элементов \(y_i(i=1,2,...,n)\) одного класса выполнялось неравенство \[ a^Ty_i=\sum_{k=0}^da_ky_i^{(k)}>0. \] Таких решений может быть достаточно много, поэтому нужен критерий наилучшего отбора.
Так или иначе каким бы не был критерий отбора нужно искать его экстремум, скажем – минимум. Приведем один достаточно общий алгоритм поиска экстремума – метод градиентного спуска.
Пусть нужно найти минимум функции нескольких переменных \(J(X)=J(x_1,x_2,...,x_d)\). Как известно, для поиска экстремума нужно найти производную и приравнять ее нулю, в данном случае найти градиент и приравнять нулю \[ \left[\frac{\partial}{\partial x_1}J(X),\ldots,\frac{\partial}{\partial x_d}J(X)\right]^T=\nabla J(X)=0. \] Как известно, градиент это вектор, идущий в направлении наибольшего изменения функции, соответственно, \(-\nabla J(X)\)- в направлении наибольшего убывания. Таким образом, для того, чтобы из точки \(x^{(k)}\) перейти в точку, где значение функции цели меньше, нужно сдвинуться на вектор градиента, пока выполняется условие \(\eta^{(k)}\left|\nabla J\left(x^{(k)}\right)\right|\gt \varepsilon\), где \(\eta^{(k)}\) некоторый шаг, регулирующий скорость и точность работы алгоритма, то есть \[ x^{(k+1)}=x^{(k)}-\eta^{(k)}\nabla J_p(a). \] К сожалению, градиентный спуск может найти локальный экстремум и не найти глобальный.

Принцип персептрона.

Пусть \(Y_M(a)=\{y_i:a^Ty_i\lt 0\}\) - множество неправильно классифицированных элементов для классификатора с вектором \(a\). Тогда минимизация этой величины может быть критерием качества классификатора.
Возьмем функцию цели \(J_p(a)=\sum\left\{\left.\left(-a^Ty\right)\right|y\in Y_M\right\}\), тогда при неправильной классификации будет выполняться условие \(a^Ty\lt 0\), то есть \(J_p(a)\ge 0\) и \(J_p(a)\) есть \(\|a\|\) раз взятая сумма расстояний неправильно классифицированных элементов до границы
\(J_p(a)\) является кусочно-линейной функцией, к которой применим метод градиентного спуска, тогда \[ \nabla J_p(a)=\sum\left\{(-y)|y\in Y_M\right\}. \] Сделаем шаг в направлении градиента \[ x^{(k+1)}=x^{(k)}-\eta^{(k)}\nabla J_p(a). \] И вычислим новое значение вектора в этой точке \[ a^{(k+1)}=a^{(k)}+\eta^{(k)}\sum\left\{y|y\in Y_M\right\}. \] А для каждого конкретного неправильно классифицированного элемента получаем \[ a^{(k+1)}=a^{(k)}+\eta^{(k)}y_M. \] Геометрическая интерпретация состоит в следующем: \(\left(a^{(k)}\right)^Ty_M\le 0\) говорит о том, что элемент \(y_M\) лежит не с той стороны разделяющей гиперплоскости, а прибавление \(\eta^{(k)}y_M\) к \(a\) двигает разделяющую гиперплоскость в нужном направлении относительно элемента \(y_M\).

Рассмотрим пример.

ИмяПосещениеАктивностьНа занятиях спитНа занятиях жует жвачкуКласс
Петя1 (true) 1(true)-1(false)-1(false)A
Вова1 111F
Ваня-1 -1-11F
Дина1 -1 -1 1A

Построим линейную дискриминантную функцию, разделяющую эти классы.
Вначале конвертируем \(x_1,\ldots,x_n\) в \(y_1,\ldots,y_n\), \(y_i\to -y_i\) \(\forall y_i\in c_2\) расширив пространство на одно измерение

ИмяДоп.ПосещениеАктивностьНа занятиях спитНа занятиях жует жвачкуКласс
Петя1 1 (true) 1(true) -1(false) -1(false) A
Вова-1 -1 -1 -1 -1 F
Ваня-1 1 1 1 -1 F
Дина1 1 -1 -1 1 A

Полагая \(\eta^{(k)}=1\), получим \(a^{(k+1)}=a^{(k)}+y_M.\) Выберем в качестве стартового вектора \(a^{(1)}=\left[0.25,0.25,0.25,0.25\right]\) и проверим полученный классификатор

Имя\(a^Ty\)Неверно классифицированный?
Петя0.25*1+0.25*1+0.25*1+0.25*(-1)+0.25*(-1)>0false
Вова0.25*(-1)+0.25*(-1)+0.25*(-1)+0.25*(-1)+ 0.25*(-1)<0true

Так как у нас есть неправильно классифицированный элемент, подправим вектор разделяющей гиперплоскости \(a^{(k+1)}=a^{(k)}+y_M.\).

a(2)=a(1)+yM=[0.25,0.25,0.25,0.25,0.25]+[-1,-1,-1,-1,-1]=[-0.75,-0.75,-0.75,-0.75,-0.75],

и продолжим проверку

Имя\(a^Ty\)Неверно классифицированный?
Ваня -0.75*(-1) -0.75*1 -0.75*1 -0.75*1 -0.75*(-1)<0 true

Еще подправим

a(3)=a(2)+yM=[-0.75,-0.75,-0.75,-0.75,-0.75]+[-1,1,1,1,-1]=[-1.75,0.25,0.25,0.25,-1.75].

Осталось проверить последнего

Имя\(a^Ty\)Неверно классифицированный?
Дина-1.75*1 +0.25*1 +0.25*(-1) +0.25*(-1) -0.75*1<0true

a(4)=a(3)+yM=[-1.75,0.25,0.25,0.25,-1.75]+[1,1,-1,-1,1]=[-0.75,1.25,-0.75,-0.75,-0.75].

Проверим качество полученного классификатора

Имя\(a^Ty\)Неверно классифицированный?
Петя-0.75*1+1.25*1-0.75*1-0.75*(-1)-0.75*(-1)>0 false
Вова-0.75*(-1)+1.25*(-1)-0.75*(-1)-0.75*(-1)-0.75*(-1)>0 false
Ваня-0.75*(-1)+1.25*1-0.75*1-0.75*1-0.75*(-1)>0 false
Дина-0.75*1+1.25*1-0.75*(-1)-0.75*(-1)-0.75*1>0 false

Таким образом дискриминантная функция имеет вид

g(y)=-0.75y(0)+1.25y(1)-0.75y(2)-0.75y(3)-0.75y(4)

и, возвращаясь к оригинальным обозначениям,

g(x)=1.25x(1)-0.75x(2)-0.75x(3)-0.75x(4)-0.75.

Элемент лежит в классе А, если

g(x)=1.25x(1)-0.75x(2)-0.75x(3)-0.75x(4)>0.75.

и в классе F

g(x)=1.25x(1)-0.75x(2)-0.75x(3)-0.75x(4)<0.75.

К сожалению, условие линейного разделения множеств далеко не всегда выполняется.

Рассмотрим пример.

Есть два класса Class[1]: [2,1],[4,3],[3,5] и Class[2]:[1,3],[5,6].

По аналогии с предыдущим примером, перейдем к новым переменным с расширением размерности пространства

y1=[1,2,1]T, y2=[1,4,3]T, y3=[1,3,5]T, y4=[-1,-1,-3]T, y5=[-1,-5,-6]T.

Следуя алгоритму персептрона, выберем инициализующий вектор a(1)=[1,1,1], и, соответственно, разделяющую гиперплоскость \(x^{(1)}+x^{(2)}+1=0\).
Зафиксируем шаг \(\eta=1\) и получим итерационное решение \(a^{(k+1)}=a^{(k)}+y_M\). Проверим условие выполнения разделимости классов \[ y^T_1a^{(1)}=[1,1,1]\times [1,2,1]^T>0-true, \] \[ y^T_2a^{(1)}=[1,1,1]\times [1,4,3]^T>0-true, \] \[ y^T_3a^{(1)}=[1,1,1]\times [1,3,5]^T>0-true, \] \[ y^T_4a^{(1)}=[1,1,1]\times [-1,-2,-3]^T=-5 \lt 0-false. \] Пересчитаем нормаль разделяющей гиперплоскости \[ a^{(2)}=a^{(1)}+y_M=[1,1,1]+[-1,-1,-3]=[0,0,-2]. \] Тогда \[ y^T_5a^{(2)}=[0,0,-2]\times [-1,-5,-5]^T=12 \gt 0-true. \] Теперь все с начала \[ y^T_1a^{(2)}=[0,0,-2]\times [1,2,1]^T \lt 0-false. \] Пересчитаем вектор \[ a^{(3)}=a^{(2)}+y_M=[0,0,-2]+[1,2,1]=[1,2,-1]. \] И так далее по кругу. Ясно, что алгоритм не сойдется.
Можно изменять шаг обучения персептрона \(\eta^{(k)}=\eta^{(1)}/k\), что позволит найти решение более точно (если оно существует). Но оно может и не существовать.

Использование метода наименьших квадратов

Один из подходов состоит в использовании метода наименьших квадратов, основная идея которого состоит в заменен системы неравенств на систему уравнений.
Если \(\|a\|=1\), то \(a^Ty_i=b_i\) есть расстояние от точки \(y_i\) до гиперплоскости с нормалью \(a\), тогда для всех точек наших классов имеем систему \[ \left\{ \begin{array}{l} a^Ty_1=b_1 \\ \vdots \\ a^Ty_n=b_n \end{array} \right. \Rightarrow \left[ \begin{array}{cccc} y_1^{(0)} & y_1^{(1)}&\cdots & y_1^{(d)} \\ y_2^{(0)} & y_2^{(1)}&\cdots & y_2^{(d)} \\ \vdots & \vdots & \ddots & \vdots \\ y_n^{(0)} & y_n^{(1)}&\cdots & y_n^{(d)} \end{array} \right] \left[ \begin{array}{c} a_0 \\ a_1 \\ \vdots \\ a_d \end{array} \right]= \left[ \begin{array}{c} b_0 \\ b_1 \\ \vdots \\ b_d \end{array} \right] \Leftrightarrow Ya=b. \] Если \(Y\) невырождена, то \(a=Y^{-1}b\), а если нет, что тогда? Ну хотя бы найти какое-то приближение.
Пусть \(\varepsilon=Ya-b\), выпишем функцию цели \[ J(a)=\|Ya-b\|^2=\sum_{i=1}^n\left(a^Ty_i-b_i\right)^2, \] тогда \[ \nabla J(a)=\left[\frac{\partial}{\partial a_1}J(a),\ldots,\frac{\partial}{\partial a_d}J(a)\right]^T=\frac{d J(a)}{d a}= \sum_{i=1}^n\frac{d}{d a}\left(a^Ty_i-b_i\right)^2= \sum_{i=1}^n2\left(a^Ty_i-b_i\right)\frac{d}{d a}\left(a^Ty_i-b_i\right)= \sum_{i=1}^n2\left(a^Ty_i-b_i\right)y_i=2Y^T(Ya-b)=0\Rightarrow Y^TYa=Y^Tb. \] Матрица \(Y^TY\) невырожденная, и, тогда, \(a=(Y^TY)^{-1}Y^Tb\).
Процедура МНК эквивалента нахождению гиперплоскости, наилучшим образом соответствующей имеющейся выборке (как правило, называемую обучающей выборкой). Но при этом можно гарантировать нахождение решения только в том случае, если \(Ya>0\), то есть, все координаты вектора \(Ya=\left[a^Ty_1,\ldots,a^Ty_n\right]^T\) положительны, но реально \(Ya\approx b\) и \(Ya=\left[b_1+\varepsilon_1,\ldots,b_n+\varepsilon_n\right]^T\), где не обязательно, что все значения \(\varepsilon_i\) положительны, причем, если \(b_i+\varepsilon_i\gt 0\), то получим разделение множеств, а если – нет (что возможно для элементов , лежащим близко к разделяющей гиперплоскости), то ответ будет неверен.
Таким образом, для случая линейно неразделимых классов МНК не даст разделяющую гиперплоскость. Может появиться искушение так провести гиперплоскость, чтобы расстояние от элемента до разделяющей гиперплоскости удовлетворяло условию \(Ya\approx b>0\), но это все равно не приведет к желаемому результату, так, если мы вместо \(b\) используем \(\beta b\), то если \(a^*\) решение МНК \(Ya=b\), то для \(Ya=\beta b\) метод наименьших квадратов даст \[ \arg\min_a\|Ya-\beta b\|^2=\arg\min_a\beta^2\left\|Y\left(\frac{a}{\beta}\right)- b\right\|^2= \arg\min_a\left\|Y\left(\frac{a}{\beta}\right)- b\right\|^2=\beta a^*. \] Так для любого элемента \(Ya\), который меньше нуля \(y_i^Ta\lt 0\), получаем \(y_i^T(\beta a)\lt 0\).
Если положить \(b_1=b_2=\ldots =b_n=1\), то МНК приведет к линейному дискриминанту Фишера, при выборке, стремящейся к бесконечности, получим метод Байеса \[ g_B(x)=P(c_1|x)-P(c_2|x). \] Чтобы оценить плюсы и минусы МНК, рассмотрим несколько примеров.

Пример.

Class[1]:(6,9),(5,7); Class[2]: (5,9),(0,4).

Проведем «нормализацию», добавив одно измерение \[ y_1=[1,6,9]^T, y_2=[1,5,7]^T, y_3=[-1,-5,-9]^T, y_4=[-1,0,-4]^T, \] и, соответственно, получаем матрицу \[ \left[ \begin{array}{rrr} 1 & 6 & 9 \\ 1 & 5 & 7 \\ -1 & -5 & -9 \\ -1 & 0 & -4 \end{array} \right] \hbox{ выберем } b=\left[ \begin{array}{r} 1 \\ 1 \\ 1 \\ 1 \end{array} \right] \hbox{ и, применяя МНК, получим } a=[2.7,1.0,-0.9]^T. \] Отсюда получаем \(Ya=[0.4,1.3,0.6,1.1]^T\ne [1,1,1,1]^T\) и \(Ya\gt 0\), что дает разделяющую гиперплоскость

Пример.

Class[1]:(6,9),(5,7); Class[2]: (5,9),(0,10).

Проведем «нормализацию», добавив одно измерение \[ y_1=[1,6,9]^T, y_2=[1,5,7]^T, y_3=[-1,-5,-9]^T, y_4=[-1,0,-10]^T, \] и, соответственно, получаем матрицу \[ \left[ \begin{array}{rrr} 1 & 6 & 9 \\ 1 & 5 & 7 \\ -1 & -5 & -9 \\ -1 & 0 & -10 \end{array} \right] \hbox{ выберем } b=\left[ \begin{array}{r} 1 \\ 1 \\ 1 \\ 1 \end{array} \right] \hbox{ и, применяя МНК, получим } a=[3.2,0.2,-0.4]^T. \] Отсюда получаем \(Ya=[0.2,0.9,-0.04,1.16]^T\ne [1,1,1,1]^T\) и \(Ya\lt 0\), что НЕ дает разделяющую гиперплоскость

За счет чего получается такой парадоксальный ответ? МНК тянет ко всем значениям выборки, минимизируем общее расстояние, что делает его чувствительным к «выбросам» и «шуму». Но, используя весовые коэффициенты, то есть, придавая разным элементам разную «важность» для их классификации, можно подправить результат, получив приемлемое решение, так придав элементам, далеко лежащим от разделяющей гиперплоскости больший вес, получим следующее:
Выберем \(b=[1,1,1,10]^T\) и, применяя МНК, получим \(a=[-1.1,1.7,-0.9]^T\) отсюда получаем \(Ya=[0.9,1.0,0.8,10.0]^T\ne [1,1,1,10]^T\) но \(Ya\gt 0\),

Заметим что для большой размерности найти решение системы уравнений может быть затруднительно, особенно в условиях, когда значение дискриминанта матрицы близко к нулю. В этом случае достаточно использовать поиск приближенного решения, применяя, тот же метод градиентного спуска. Итак, есть функция цели \(J(a)=\|Ya-b\|^2=\sum_{i=1}^n\left(a^Ty_i-b_i\right)^2\), ее градиент равен \(\nabla J(a)=2Y^T(Ya-b)\) и, следуя спуску по градиенту, получаем каждый последующий шаг определения весового вектора \(a^{(k+1)}=a^{(k)}-\eta^{(k)}\nabla J(a)=a^{(k)}-\eta^{(k)}Y^T(Ya-b)\). Если \(\eta^{(k)}=\eta^{(1)}/k\), то для получения точного решения метода наименьших квадратов нужно добиться выполнения условия \(Y^T(Ya-b)=0\). Алгоритм спуска всегда дает решение, не зависимо от того, вырождена матрица или нет.

Процедура Widrow-Hoff.

Процедура Уидроу-Хоффа разработана применительно к «чёрному ящику», в котором между входами и выходами существуют только линейные связи. Процедура обучения основывается на минимизации ошибки обучения в процессе подачи на вход сети входных образов, путем использования градиентного спуска по настраиваемым параметрам нейронной сети.
В нашем случае \(a^{(k+1)}=a^{(k)}-\eta^{(k)}y_i(y_i^Ta^{(k)}-b_i)\), то есть, правило Видроу-Хоффа обеспечивает коррекцию вектора \(a\) в том случае, когда \(y_i^Ta^{(k)}\) не равно \(b_i\).

Процедура Ho-Kashyap.

Рассмотренные методы позволяют найти весовой вектор для линейно разделимых классов, и если вектор допуска \(b\) выбран произвольно, то результатом метода наименьших квадратов будет минимизация выражения \(\|Ya-b\|^2\), при этом если классы разделимы, то существуют такие \(a\) и \(b\), что \(Ya=b\gt 0\). Проблема в том, что \(b\) заранее не известно. Процедура Хо-Кашьпа предполагает одновременное нахождение как разделяющего вектора \(a\), так и вектора допуска \(b\). Идея состоит в том, что если выборки (классы) разделимы, то минимальное значение \(J(a)=\|Ya-b\|^2\) равно нулю, а вектор \(a\), при котором это значение достигается, будет разделяющим вектором.
Из необходимого условия экстремума функции двух переменных получаем \[ \left\{ \begin{array}{l} \nabla_a J(a,b)=2Y^T(Ya-b)=0, \\ \nabla_b J(a,b)=-2(Ya-b)=0. \end{array} \right. \] Процедура Хо-Кашьпа предлагает для решения этой задачи использовать двушаговый алгоритм.
  1. Для любого фиксированного \(b\) из первого уравнения находим \(a\).
  2. После этого фиксируем \(a\) и из второго уравнения находим \(b\).
Первый шаг предполагает использование псевдо-обратной матрицы, то есть из условия \(2Y^T(Ya-b)=0\) получаем \(a=(Y^TY)^{-1}Y^Tb\).
Второй шаг предполагает для фиксированного \(a\), получить решение \(b\), которое вроде бы как равно \(b=Ya\), но \(b\) должны быть положительными, в чем мы не можем быть уверены, поэтому для поиска \(b\) используем метод градиентного спуска \[ b^{(k+1)}=b^{(k)}-\eta^{(k)}\nabla_bJ(a^{(k)},b^{(k)}). \] Но при малых значениях \(b\) и большом значении градиента можем опять таки получить отрицательные значения \(b\). Для того, чтобы решить эту проблему, можно в случае положительного значения градиента взять ноль. \[ b^{(k+1)}=b^{(k)}-\eta \frac{1}{2}\left(\nabla_bJ(a^{(k)},b^{(k)})-\left|\nabla_bJ(a^{(k)},b^{(k)})\right|\right). \] Пусть \(\varepsilon^{(k)}=Ya^{(k)}-b^{(k)}=-\frac{1}{2}\nabla_bJ(a^{(k)},b^{(k)})\) значение ошибки, тогда \[ b^{(k+1)}=b^{(k)}-\eta \frac{1}{2}\left(-2\varepsilon^{(k)}-\left|2\varepsilon^{(k)}\right|\right)= b^{(k)}+\eta \left(\varepsilon^{(k)}+\left|\varepsilon^{(k)}\right|\right). \] Формализуем процедуру Хо-Кашьпа. Пусть, вначале, \(k=1\) для любых стартовых значений \(a^{(k)},b^{(k)}\) выполним следующие шаги
  1. \(\varepsilon^{(k)}=Ya^{(k)}-b^{(k)}\)
  2. \(b^{(k+1)}=b^{(k)}+\eta \left(\varepsilon^{(k)}+\left|\varepsilon^{(k)}\right|\right)\)
  3. \(a^{(k+1)}=(Y^TY)^{-1}Y^Tb^{(k+1)}\)
  4. \(k=k+1\) пока не выполнится условие останова, которым может быть, например, ограничение числа шагов \(k\), стабилизация вектора \(b\) или значения ошибки \(\varepsilon\).

Квадратичный дискриминантный анализ

Пусть даны классы \(c_i (i = 1,2,...,k)\), функция \(g_i (x)\), такая, что если \[ g_i (x) > g_j (x) \quad \forall i \ne j,\mbox{ то } \quad x \in c_i , \] то такая функция называется дискриминантной или разделяющей классы.
В качестве дискриминантной функции совершенно естественно использовать априорную вероятность попадания в класс \(c_{i}\) при выпадении события \(x\) \[ g_i \left( x \right) = P\left( {c_i \vert x} \right). \] Тогда в соответствии с теоремой Байеса \[ g_i \left( x \right) = \frac{P\left( {x\vert c_i } \right)P\left( {c_i } \right)}{P\left( x \right)}, \] так как \(P(x)\) не зависит от классов, то в качестве дискриминантной функции можно взять \[ g_i \left( x \right) = P\left( {x\vert c_i } \right)P\left( {c_i } \right). \] В силу монотонности логарифмической функции, можно в качестве дискриминантной функции использовать эквивалентную \[ g_i \left( x \right) = \ln P\left( {x\vert c_i } \right) + \ln P\left( {c_i} \right). \] Тогда, если данные класса \(c_{i }\) распределены по нормальному закону \(N\left({\mu _i ,\Sigma _i } \right)\) \[ p\left( {x\vert c_i } \right) = \frac{1}{\left( {2\pi } \right)^{n / 2}\left| {\Sigma _i^{ - 1} } \right|^{1 / 2}}\exp \left( { - \frac{1}{2}\left( {x - \mu _i } \right)^T\Sigma _i^{ - 1} \left( {x - \mu _i } \right)} \right), \] то \[ g_i \left( x \right) = - \frac{1}{2}\left( {x - \mu _i } \right)^T\Sigma _i^{ - 1} \left( {x - \mu _i } \right) - \frac{n}{2}\ln \left( {2\pi } \right) - \frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right| + \ln P(c_i ). \] Так как \(\frac{n}{2}\ln \left( {2\pi } \right)\) постоянная, то дискриминантную функцию можно записать в эквивалентном виде \begin{equation} \label{eq5.7} g_i \left( x \right) = - \frac{1}{2}\left( {x - \mu _i } \right)^T\Sigma _i^{ - 1} \left( {x - \mu _i } \right) - \frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right| + \ln P(c_i ). \end{equation} Отсюда, перемножая, получаем \[ g_i \left( x \right) = - \frac{1}{2}\left( {x^T\Sigma _i^{ - 1} x - 2\mu _i^T \Sigma _i^{ - 1} x + \mu _i^T \Sigma _i^{ - 1} \mu _i } \right) - \frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right| + \ln P(c_i ) = \] \begin{equation} \label{eq5.8} = x^T\left( { - \frac{1}{2}\Sigma _i^{ - 1} } \right)x + \mu _i^T \Sigma _i^{ - 1} x + \left( { - \frac{1}{2}\mu _i^T \Sigma _i^{ - 1} \mu _i - \frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right| + \ln P(c_i )} \right). \end{equation} Замечая, что \[ x^TWx = \sum_{i = 1}^n {\sum_{j = 1}^n {w_{i,j} x_i x_j } } , \] получаем квадратичную функцию \[ g_i (x) = x^TA_i x + B_i x + D_i , \] где \[ A = - \frac{1}{2}\Sigma _i^{ - 1} ,B_i = \mu _i^T \Sigma _i^{ - 1} ,D_i = - \frac{1}{2}\mu _i^T \Sigma _i^{ - 1} \mu _i - \frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right| + \ln P(c_i ). \] Таким образом, дискриминантная функция будет состоять из дуг кривых второго порядка (эллипсов, парабол и пр.).
Приведем важный частный случай построения дискриминантной функции.
Пусть \[ \Sigma _i = \sigma ^2I = \left( {{\begin{array}{*{20}c} {\sigma ^2} \hfill & 0 \hfill & \cdots \hfill & 0 \hfill \\ 0 \hfill & {\sigma ^2} \hfill & \cdots \hfill & 0 \hfill \\ \vdots \hfill & \vdots \hfill & \ddots \hfill & \vdots \hfill \\ 0 \hfill & 0 \hfill & \cdots \hfill & {\sigma ^2} \hfill \\ \end{array} }} \right) \quad (i = 1,...,k), \] то есть случайные величины \(\left( {X_1 ,X_2 ,...,X_n } \right)\) независимы с разным математическим ожиданием, но с одной и той же дисперсией. В этом случае \[ \Sigma _i^{ - 1} = \frac{1}{\sigma ^2}I = \left( {{\begin{array}{*{20}c} {\frac{1}{\sigma ^2}} \hfill & 0 \hfill & \cdots \hfill & 0 \hfill \\ 0 \hfill & {\frac{1}{\sigma ^2}} \hfill & \cdots \hfill & 0 \hfill \\ \vdots \hfill & \vdots \hfill & \ddots \hfill & \vdots \hfill \\ 0 \hfill & 0 \hfill & \cdots \hfill & {\frac{1}{\sigma ^2}} \hfill \\ \end{array} }} \right)\mbox{ и } \quad \left| {\Sigma _i } \right| = \sigma ^{2n}. \] Замечая, что при этом \(\frac{1}{2}\ln \left| {\Sigma _i^{ - 1} } \right|\) является постоянной, то из (\ref{eq5.7}) получаем следующую дискриминантную функцию \[ g_i \left( x \right) = - \frac{1}{2\sigma ^2}\left( {x - \mu _i } \right)^T\left( {x - \mu _i } \right) + \ln P(c_i ) =\] \[= - \frac{1}{2\sigma ^2}\left( {x^Tx - \mu _i^T x - x^T\mu _i + \mu _i^T \mu _i } \right) + \ln P(c_i ), \] а так как \(x^Tx\) не зависит от классов, то получаем \begin{equation} \label{eq5.9} g_i \left( x \right) = - \frac{1}{2\sigma ^2}\left( { - 2\mu _i^T x + \mu _i^T \mu _i } \right) + \ln P(c_i ) = a_i x + b_i , \end{equation} где \[ a_i = \frac{\mu _i^T }{\sigma ^2}\mbox{ и } \quad b_i = \ln P(c_i ) - \frac{\mu _i^T \mu _i }{2\sigma ^2}. \] Таким образом, в этом случае дискриминантная функция является линейной, то есть, для двух переменных это прямая, для трех - плоскость, а в общем случае -гиперплоскость.
Заметим, что если при этом все \(P(c_i ) = \frac{1}{k},i = 1,2,...,k\), то линейные дискриминантные функции приводят к разбиению Вороного.

Полезная литература. Книги.

  1. An Introduction to Statistical Learning with Applications in R / G.James, D.Witten, T.Hastie, R.Tibshirani .— New York Heidelberg Dordrecht London: Springer, 2013 .— 418 p.
  2. Christopher M. Bishop Pattern Recognition and Machine Learning / M.B.Christopher .— Springer, 2006 .— 758 p.
  3. Clarke B. Principles and Theory for Data Mining and Machine Learning / B.Clarke, E.Fokoue, H.Zhang .— Dordrecht Heidelberg London New York: Springer, 2009 .— 793 с.
  4. Goodfellow I. Deep Learning / I.Goodfellow, Y.Bengio, A.Courville .— MIT: MIT Press, 2016 .— 800 с.
  5. Hastie T. The Elements of Statistical Learning Data Mining, Inference, and Prediction / T.Hastie, R.Tibshirani, J.Friedman; Second Edition .— Springer, 2017 .— 764 p.
  6. Lausen B. Data Science, Learning by Latent Structures, and Knowledge Discovery / B.Lausen, S.Krolak-Schwerdt, M.Böhmer .— Berlin Heidelberg: Springer, 2015 .— 552 с.
  7. Nisbet R. Handbook of statistical analysys and data mining applications / R.Nisbet, J.Elder, G.Miner .— San Diego: Elsevier Inc., 2009 .— 860 с.
  8. Pattern Recognition and Machine Intelligence / Sergei O. Kuznetsov Deba P. Mandal Malay K. Kundu Sankar K. Pal (Eds.); 4th International Conference, PReMI 2011 Moscow, Russia, June 27 – July 1, 2011 Proceedings .— Springer, 2011 .— 495 p.
  9. Sammut C. Encyclopedia of Machine Learning / C.Sammut, G.Webb .— NY: Springer Science+Business Media, 2010 .— 1059 p.
  10. Shalev-Shwartz S. Understanding Machine Learning: From Theory to Algorithms / S.Shalev-Shwartz, S.Ben-David .— Cambridge: Cambridge University Press., 2014 .— 449 с.
  11. Wang J. Encyclopedia of Data Warehousing and Mining / J.Wang; Second Edition .— Hershey: Information Science Reference, 2009 .— 2227 p.
  12. Zaki M.J. Data Mining and Analysis: Fundamental Concepts and Algorithms / M.J.Zaki, W.Meira .— New York: Cambridge University Press, 2014 .— 660 p.
  13. Прикладная статистика. Классификация и снижение размерности. / С.А.Айвазян, В.М.Бухштабер, И.С.Енюков, Л.Д.Мешалкин .— М.: Финансы и статистика, 1989 .— 607 с.
  14. Шумейко А.А., Сотник С.Л. Интеллектуальный анализ данных (Введение в Data Mining).-Днепропетровск:Белая Е.А., 2012.- 212 с.
  15. Эсбенсен К. Анализ многомерных данных / К.Эсбенсен .— Черноголовка: ИПХФ РАН, 2005 .— 160 с.

Полезная литература. Статьи.

  1. Application of Fisher Linear Discriminant Analysis to Speech/Music Classification / E.Alexandre, M.Rosa, L.Cuadra, R.Gil-Pita // AES 120th Convention .— Paris, France, 2006 May 20–23 .— C.1-6.
  2. Li C. Fisher Linear Discriminant Analysis [Електронний ресурс] /C.Li, B.Wang .— 2014 .— Режим доступу: https://pdfs.semanticscholar.org/1ab8/ea71fbef3b55b69e142897fadf43b3269463.pdf
  3. Okwonu F. A Model Classification Technique for Linear Discriminant Analysis for Two Groups / F.Okwonu, A.Othman // IJCSI International Journal of Computer Science Issues .— 2012 .— №Vol. 9, Issue 3, No 2 .— C.125-128.
  4. Raschka S. Linear Discriminant Analysis [Електронний ресурс] /S.Raschka .— 2014 .— Режим доступу: http://sebastianraschka.com/Articles/2014_python_lda.html
  5. Xiang C. Face recognition using recursive Fisher linear discriminant with Gabor wavelet coding / C.Xiang, X.A.Fan, T.Lee // IEEE .— 2004 .— №4 .— C.79-82.
  6. Xiang C. Face Recognition Using Recursive Fisher Linear Discriminant / C.Xiang, X.A.Fan, T.Lee // IEEE TRANSACTIONS ON IMAGE PROCESSING .— 2006 .— №Vol. 15, N 8 .— C.2097-2105.
  7. Witten D.M. Penalized classification using Fisher’s linear discriminant / D.M.Witten // J. R. Statist. Soc. B .— 2011 .— №73(5) .— C.753-772.

Вопрос-ответ.

Задать вопрос: