Заметки о машинном обучении Python (6): проблема преобразования машин опорных векторов

алгоритм

Это второй день моего участия в августовском испытании обновлений, подробности о мероприятии:Испытание августовского обновления

6.1 Первичные и двойственные проблемы

6.1.1 Двойственная проблема

Давайте временно отложим проблему svm и посмотрим, как решить проблему максимального значения обычных ограничений неравенства, Предположим, проблема выглядит следующим образом:

{minwf(w)s.t.gi(w)0i=1...ks.t.hj(w)=0j=1...m(2)\begin{cases} min_w f(w)\\ s.t.{\quad}g_i(w) \le0 {\quad}i=1...k\\ s.t. {\quad}h_j(w) =0{\quad}j=1...m\\ \end{cases} \tag2

Это максимальная задача с ограничениями равенства и неравенства, мы сначала определяем две функции:

L(w,α,β)=f(w)+i=1kαgi(w)+j=1mβhj(w)θ(α,β)=minwL(w,α,β)(3)\begin{aligned} L(w,\alpha,\beta) &= f(w) + \sum^{k}_{i =1}{\alpha g_i(w)}+\sum^{m}_{j=1}{\beta h_j(w)}\\ \theta(\alpha,\beta) &= min_{w}L(w,\alpha,\beta) \end{aligned} \tag3

Затем определим двойственную задачу исходной задачи (2) как:

{maxα,βθ(α,β)s.t.αi0i=1...k(4)\begin{cases} max_{\alpha,\beta}\theta(\alpha,\beta)\\ s.t.{\quad}\alpha_i \ge 0{\quad}i=1...k \end{cases} \tag4

Отсюда делаем первый вывод: еслиw*w^*есть решение исходной задачи (α*,β*\alpha^*,\beta^*) является решением двойственной задачи, тоf(w*)θ(α*,β*)f(w^*) \ge\theta(\alpha^*,\beta^*).

Доказательство следующее:

θ(α*,β*)=minwL(w,α*,β*)L(w*,α*,β*)=f(w*)+i=1kα*gi(w*)+j=1mβ*hj(w*)\begin{aligned} \theta(\alpha^*,\beta^*)&=min_wL(w,\alpha^*,\beta^*)\\ &\le L(w^*,\alpha^*,\beta^*)\\ &=f(w^*) + \sum^{k}_{i =1}{\alpha^* g_i(w^*)}+\sum^{m}_{j =1}{\beta^* h_j(w^*)} \end{aligned}

так какw*w^*есть решение исходной задачи, удовлетворяющее ограничениям исходной задачи:gi(w*)0,hi(w*)=0g_i(w^*) \le 0, h_i(w^*)=0,αi\alpha_iявляется решением двойственной задачи, удовлетворяющим ограничениям двойственной задачиαi*0\alpha_i^*\ge 0, поэтому мы можем получить:

i=1kα*gi(w*)0j=1mβ*hj(w*)=0\begin{aligned} \sum^{k}_{i =1}{\alpha^* g_i(w^*)} & \le 0\\ \sum^{m}_{j =1}{\beta^* h_j(w^*)} & =0 \end{aligned}

завершитьf(w*)θ(α*,β*)f(w^*) \ge\theta(\alpha^*,\beta^*).

6.1.2 Сильная теорема двойственности

Мы видим, что основная задача и двойственная задача не всегда равны, и когда соблюдается знак равенства, это называетсясильная двойственность(strong duality), когда устанавливается знак равенства? Затем нам нужно ввести сильную теорему двойственности:

какg(w)=Aw+b,h(w)=cw+d,иf(w)— выпуклая функция, то имеемf(w*)=θ(α*,β*)Если g(w)=Aw+b, h(w) = cw+d и f(w) — выпуклая функция, то f(w^*) =\theta(\alpha^*,\beta^*)

Проще говоря, если исходная проблемавыпуклая функция, а ограниченияЛинейная функция, решение исходной задачиf(w*)f(w^*)равно решению двойственной функцииθ(α*,β*)\theta(\alpha^*,\beta^*), из-за ограниченных возможностей здесь невозможно привести подробное доказательство, если вы хотите узнать больше, вы можете обратиться к МООККурс машинного обучения профессора Ху Хаоджи из Чжэцзянского университета.

А по сильной теореме двойственности можно доказать, что для любогоii= 1 к k имеютαigi(w)=0\alpha_ig_i(w)=0(т.е. состояние ККТ). Доказательство следующее:

f(w*)=θ(α*,β*)=minwL(w,α*,β*)L(w*,α*,β*)=f(w*)+i=1kαi*gi(w*)+j=1mβj*hj(w*)\begin{aligned} f(w^*)&=\theta(\alpha^*,\beta^*)\\ &=min_wL(w,\alpha^*,\beta^*)\\ &\le L(w^*,\alpha^*,\beta^*)\\ &=f(w^*) + \sum^{k}_{i =1}{\alpha_i^* g_i(w^*)}+\sum^{m}_{j =1}{\beta_j^* h_j(w^*)} \end{aligned}

так какw*w^*есть решение исходной задачи, удовлетворяющее ограничениям исходной задачи:gi(w*)0,hi(w*)=0g_i(w^*) \le 0,h_i(w^*)=0,αi\alpha_iявляется решением двойственной задачи, удовлетворяющим ограничениям двойственной задачиαi*0\alpha_i^*\ge 0, поэтому мы можем получить:αigi(w)=0\alpha_ig_i(w)=0

6.1.3 Резюме

Комбинируя вышеизложенное, мы получаем основную проблему и двойную проблему:

Оригинальный вопрос:

{minwf(w)s.t.gi(w)0i=1...ks.t.hj(w)=0j=1...m\begin{cases} min_w f(w)\\ s.t.{\quad}g_i(w) \le0 {\quad}i=1...k\\ s.t. {\quad}h_j(w) =0{\quad}j=1...m\\ \end{cases}

Двойная проблема:

{maxα,βθ(α,β)s.t.αi0i=1...k\begin{cases} max_{\alpha,\beta}\theta(\alpha,\beta)\\ s.t.{\quad}\alpha_i \ge 0{\quad}i=1...k \end{cases}

в

θ(α,β)=minwL(w,α,β)L(w,α,β)=f(w)+i=1kαigi(w)+j=1mβjhj(w)\begin{aligned} \theta(\alpha,\beta) &= min_{w}L(w,\alpha,\beta)\\ L(w,\alpha,\beta) &= f(w) + \sum^{k}_{i =1}{\alpha_i g_i(w)}+\sum^{m}_{j=1}{\beta_j h_j(w)}\\ \end{aligned}

Оптимальное решение прямой задачи, удовлетворяющее сильной теореме двойственности, совпадает с оптимальным решением двойственной задачи и имеетαigi(w)=0\alpha_ig_i(w) = 0.

Далее мы расскажем, как преобразовать svm в соответствующее решение двойной задачи.

6.2 Преобразование SVM в двойные задачи

Сначала мы деформируем задачу SVM, полученную в предыдущем разделе, чтобы привести ее в соответствие с формой исходной задачи (2).

{minw,bw22s.t.1yi(wTx+b)0\begin{cases} min_{w,b} \frac {||w||^2}{2}\\ s.t.{\quad} 1-y_i(w^Tx+b) \le 0 \end{cases}

Обратите внимание, что исходная задача svm имеет две переменныеwwиbb, хотя выражение имеет толькоww,ноbbНеявно ограничено ограничениямиww, так что здесь две переменные, а не одна.

По формуле (3) запишем соответствующую функцию от svm:

L(w,b,α)=w22+i=1mαi(1yi(wTx+b))θ(α)=minw,bL(w,b,α)(5)\begin{aligned} L(w,b,\alpha) &= \frac {||w||^2}{2} + \sum^{m}_{i =1}{\alpha_i (1-y_i(w^Tx+b))} \\ \theta(\alpha) &= min_{w,b}L(w,b,\alpha) \end{aligned} \tag5

Обратите внимание на разницу между (3) и (5).Поскольку исходная задача svm не имеет ограничений равенства, нетh(w)h(w)иβ\beta, наша исходная задача имеет две переменныеwwиbb,wwвектор,bbявляется скаляром. Двойная проблема, которую мы, наконец, задаем:

{maxαθ(α)s.t.αi0i=1...m\begin{cases} max_{\alpha}\theta(\alpha)\\ s.t.{\quad}\alpha_i \ge 0{\quad}i=1...m \end{cases}

Мы видим, что последняя проблема неwwиbb, поэтому сначала ставимθ(α)\theta(\alpha)выпишите выражение. Видно, что это всего лишь задача нахождения максимального значения, которая обычно решается с помощью производной, равной 0:

Lw=wi=1mαiyixi=0Lb=i=1mαiyi=0\begin{aligned} \frac{\partial L}{\partial w}&=w-\sum^{m}_{i =1}\alpha_iy_ix_i=0\\ \frac{\partial L}{\partial b}&=-\sum^{m}_{i =1}\alpha_iy_i=0 \end{aligned}

После сортировки получаем:

i=1mαiyixi=wi=1mαiyi=0(6)\begin{aligned} \sum^{m}_{i =1}\alpha_iy_ix_i&=w\\ \sum^{m}_{i =1}\alpha_iy_i&=0 \end{aligned} \tag6

Приведение (6) к (5) дает:

θ(α)=i=1mαi12i=1mj=1mαiαjyiyjxiTxj(7)\theta(\alpha) = \sum^{m}_{i =1}\alpha_i - \frac{1}{2}\sum^{m}_{i =1}\sum^{m}_{j =1}\alpha_i\alpha_jy_iy_jx_i^Tx_j \tag7

Подробный процесс подробно не объясняется, обратите вниманиеw2=wTw||w||^2 = w^Tw. В дополнение к полученным ранее ограничениям и условию ККТ окончательная форма двойственной задачи может быть получена как:

{maxα(i=1mαi12i=1mj=1mαiαjyiyjxiTxj)s.t.i=1mαiyi=0s.t.αi(yi(wTxi+b)1)=0s.t.yi(wTxi+b)0s.t.αi0(8)\begin{cases} max_\alpha (\sum^{m}_{i =1}\alpha_i - \frac{1}{2}\sum^{m}_{i =1}\sum^{m}_{j =1}\alpha_i\alpha_jy_iy_jx_i^Tx_j)\\ s.t.{\quad}\sum^{m}_{i =1}\alpha_iy_i=0\\ s.t.{\quad}\alpha_i(y_i(w^Tx_i+b)-1)=0\\ s.t.{\quad}y_i(w^Tx_i+b) \ge 0\\ s.t.{\quad} \alpha_i \ge 0 \end{cases} \tag8

Зависит отαi(yi(wTx+b)1)=0\alpha_i(y_i(w^Tx+b)-1)=0Это одно условие, которое мы знаем, что либоαi=0\alpha_i = 0из-за либо(yi(wTx+b)1)=0(y_i(w^Tx+b)-1)=0.

когдаαi=0\alpha_i = 0когда, поi=1mαiyixi=w\sum^{m}_{i =1}\alpha_iy_ix_i=wзнатьαi\alpha_iсоответствующий образецxix_iправильноwwценностьнет эффекта.

когдаyi(wTxi+b)1=0y_i(w^Tx_i+b)-1=0время представляет образецxix_iзаопорный вектор.

Из приведенных выше двух пунктов видно, что после завершения обучения большую часть обучающих выборок сохранять не нужно, а конечная модель связана только с опорным вектором, поэтому метод и называется опорным вектором. машина.

(8) является квадратичной задачей программирования, то есть целевая функция является квадратичной функцией, а ограничение является линейной функцией.Такая задача либо имеет единственное решение, либо не имеет решения.Для этой задачи она может быть решена квадратичным Алгоритм программирования Эффективные решения, такие как последовательная минимальная оптимизация (SMO), также могут быть разработаны в соответствии с характеристиками самой проблемы.

найти решение двойной проблемыα*\alpha^*После этого мы можем пройтиi=1mαiyixi=w\sum^{m}_{i =1}\alpha_iy_ix_i=wполучитьww, а поскольку опорный векторxix_iудовлетворитьyi(wTxi+b)=1y_i(w^Tx_i+b)=1доступныйbb.

Таким образом, мы получаем классификационную гиперплоскость, когда выборки линейно разделимы:

f(x)=wTx+bf(x) = w^Tx +b

Позже мы обсудим, как использовать svm для классификации в случае линейной неразделимости.

использованная литература

«Машинное обучение», Чжоу Чжихуа, издательство Университета Цинхуа

«Подробное объяснение формул машинного обучения», авторы Се Вэньруй, Цинь Чжоу, издательство People's Posts and Tele Communications Publishing House

Курс машинного обучения преподавателя Ху Хаоджи из Чжэцзянского университета в МООК