SVM数学过程
SVM數學過程
- 概念
- 超平面
- 正確分類點
- 輸入空間到輸出空間的映射函數
- 誤分類點
- SVM
- 計算
- Lagrange乘子法
- KKT
概念
超平面
w1x1+w2x2+w3x3+…+wnxn+b=0w_{1}x_{1}+w_{2}x_{2}+w_{3}x_{3}+…+w_{n}x_{n}+b=0w1?x1?+w2?x2?+w3?x3?+…+wn?xn?+b=0
可簡化成: wx+b=0wx+b=0wx+b=0
正確分類點
正例:wx+b>0wx+b>0 wx+b>0
負例:wx+b<0wx+b<0wx+b<0
輸入空間到輸出空間的映射函數
y=sign(wx+b)y=sign(wx+b)y=sign(wx+b)
其中,
sign(x)={+1x<0?1x>0sign(x) = \begin{cases} \ +1 \qquad & x<0 \\ \ -1 \qquad & x >0 \end{cases} sign(x)={?+1??1?x<0x>0?
誤分類點
誤分類點有兩種情況:一種是被本來是正例,但是被分到負例;另一種是本來是正例,也被分到正例了,但是它比支持向量更近于超平面,它卻不是支撐超平面的支持向量,有違支持向量機的定義。
這兩種誤分類情況的映射函數是這樣的,第一種是wx+b>0wx+b>0wx+b>0,卻被認為wx+b<0wx+b<0wx+b<0,所以在映射函數中,被應用于第二種情況,即取-1,故此時y=正數?負數<0y=正數*負數<0y=正數?負數<0,映射函數<0映射函數<0映射函數<0;第二種情況是本來是正例,但是是比支持向量更近于超平面的正例,故y>0,但不滿足yi(wxi+b)>=1y_{i}(wx_{i}+b)>=1yi?(wxi?+b)>=1這樣的條件。這個條件是整個模型中所有樣本點均需滿足的約束條件。我們所定義的支持向量滿足:yi(wxi+b)=1y_{i}(wx_{i}+b)=1yi?(wxi?+b)=1,超平面yi(wxi+b)=0y_{i}(wx_{i}+b)=0yi?(wxi?+b)=0即wx+b=0wx+b=0wx+b=0,故在近于支持向量的樣本點處應有:0<yi(wxi+b)<10<y_{i}(wx_{i}+b)<10<yi?(wxi?+b)<1,通過映射函數,相當于取絕對值,還是它本身,這不滿足yi(wxi+b)>=1y_{i}(wx_{i}+b)>=1yi?(wxi?+b)>=1的條件,所以我們給它一個閾值。之后再談。以上便是兩種誤分類點的映射函數??偨Y:正確分類點滿足映射函數>=1映射函數>=1映射函數>=1;誤分類點映射函數(?∞,0)∪(0,1)映射函數(-∞,0)\cup(0,1)映射函數(?∞,0)∪(0,1)。
SVM
在此基礎上,來談SVM。SVM是通過最優化最大間隔的一種模型。有一個概念:間隔MarginMarginMargin約束條件是所有樣本點映射函數>=1所有樣本點映射函數>=1所有樣本點映射函數>=1,即在我們的理想狀態下,所有樣本點都被我們所找出的超平面正確分類了。
下面是計算過程:于是會用到拉格朗日乘子法:已知目標函數,函數間隔;已知約束條件:所有樣本點映射函數>=1;我們需要最大化函數間隔;后來發現不太行,調整一下,變成KTT。
計算
Lagrange乘子法
如上文,用Lagrange乘子法,是基于有目標函數,有約束條件,且需要求的是目標函數的極值的前提。
這種方式是基于梯度求解,所以只能解決局部最優解問題。
文字表述:
把每個約束條件x1、x2、x3……xn約束條件x_{1}、x_{2}、x_{3}……x_{n}約束條件x1?、x2?、x3?……xn?乘系數a1、a2、a3……an系數a_{1}、a_{2}、a_{3}……a_{n}系數a1?、a2?、a3?……an?,加上原目標函數,得到新的目標函數。假設原目標函數中共有w個變量,則現在一共有w+n個變量,對新目標函數中的w+n個變量分別求導,得到w+n個式子,令其分別為0,其實就是多變量函數求極值問題f‘(x1)=0f‘(x2)=0……f‘(xn)=0f ^ {‘}(x_{1})=0\qquad f^ {‘}(x_{2})=0……\qquad f^ {‘}(x_{n})=0f‘(x1?)=0f‘(x2?)=0……f‘(xn?)=0,則可求出當原w個變量分別為何值時,可得到目標函數的極值。
數學表述:
原目標函數:f(x1、x2、x3……xw)原目標函數:f(x_{1}、x_{2}、x_{3}……x_{w})原目標函數:f(x1?、x2?、x3?……xw?)
約束條件s.t.g(x1、x2、x3……xw)=0有n個等式約束條件s.t.g(x_{1}、x_{2}、x_{3}……x_{w})=0 \qquad 有n個等式約束條件s.t.g(x1?、x2?、x3?……xw?)=0有n個等式
求目標函數極值:min/maxf求目標函數極值:min/max f求目標函數極值:min/maxf
新目標函數:L(x)=f(x)+a1…ang(x)有w+n個變量新目標函數:L(x)=f(x)+a_{1}…a_{n}g(x)\qquad 有w+n個變量新目標函數:L(x)=f(x)+a1?…an?g(x)有w+n個變量
求導L′(x)=0(w個)L′(a)=0(n個)有w+n個等式求導L'(x)=0(w個)\qquad L'(a)=0(n個)\qquad有w+n個等式求導L′(x)=0(w個)L′(a)=0(n個)有w+n個等式
得到取f(x)極值時,x1、x2、x3……xw的值得到取f(x)極值時,x_{1}、x_{2}、x_{3}……x_{w}的值得到取f(x)極值時,x1?、x2?、x3?……xw?的值
思考:
多變量函數求極值問題,為什么分別對變量求導可以求出總體函數的極值?
在該方法中,有w個乘子,對每個約束條件進行乘法運算,那么,是否可以一視同仁,將原目標函數也進行乘法運算,補充w+n個乘子呢?或者沒有必要這樣做。暫時不知道。
KKT
但是,Lagrange乘子法的約束條件須是等式,而我們的約束條件是所有樣本點映射函數>=1,所以不能完全用這種方法。于是,我們可以將不等式轉化為等式,即KKT??山鉀Q等式或不等式約束的一般優化問題。
不等式和等式其實很像,是維度問題;如二維直角坐標系中,等式是一維的x=1一條直線x=1 \qquad一條直線x=1一條直線,不等式是二維的x≥1一個平面x\geq 1\qquad 一個平面x≥1一個平面我們可以把x≥1x\geq 1x≥1看作x=1+tx=1+tx=1+t,把不等式轉化為等式情況,再用Lagrange乘子法,即可。
Lagrange乘子法中,a可被稱作優化變量;KKT中,t可被稱作松弛變量。
文字表述:
對每個不等式約束條件通過加入松弛變量轉化為等式約束條件。如Larange乘子法一樣,分別對原變量,優化變量,松弛變量求導。即可得解。
數學表述:
原目標函數:f(x1、x2、x3……xw)原目標函數:f(x_{1}、x_{2}、x_{3}……x_{w})原目標函數:f(x1?、x2?、x3?……xw?)
約束條件s.t.g(x1、x2、x3……xw)=0有n個等式約束條件s.t.g(x_{1}、x_{2}、x_{3}……x_{w})=0 \qquad 有n個等式約束條件s.t.g(x1?、x2?、x3?……xw?)=0有n個等式
約束條件s.t.h(x1、x2、x3……xw)≥0有m個不等式約束條件s.t.h(x_{1}、x_{2}、x_{3}……x_{w}) \geq 0 \qquad 有m個不等式約束條件s.t.h(x1?、x2?、x3?……xw?)≥0有m個不等式
求目標函數極值:min/maxf求目標函數極值:min/max f求目標函數極值:min/maxf
轉化不等式約束條件:h(x1、x2、x3……xw、t)=0加入m個松弛變量轉化不等式約束條件:h(x_{1}、x_{2}、x_{3}……x_{w}、t)=0 \qquad 加入m個松弛變量轉化不等式約束條件:h(x1?、x2?、x3?……xw?、t)=0加入m個松弛變量
新目標函數:L(x)=f(x)+a1…ang(x)+b1…bmh(x,t)有w+n+m個變量新目標函數:L(x)=f(x)+a_{1}…a_{n}g(x)+b_{1}…b_{m}h(x,t)\qquad 有w+n+m個變量新目標函數:L(x)=f(x)+a1?…an?g(x)+b1?…bm?h(x,t)有w+n+m個變量
求導L′(x)=0(w個)L′(a)=0(n個)L′(t)=0(m個)有w+n+m個等式求導L'(x)=0(w個)\qquad L'(a)=0(n個)\qquad L'(t)=0(m個)\qquad有w+n+m個等式求導L′(x)=0(w個)L′(a)=0(n個)L′(t)=0(m個)有w+n+m個等式
得到取f(x)極值時,x1、x2、x3……xw的值得到取f(x)極值時,x_{1}、x_{2}、x_{3}……x_{w}的值得到取f(x)極值時,x1?、x2?、x3?……xw?的值
綜上,KKT方法可以解決SVM問題。
總結
- 上一篇: 基于SpringBoot和Vue的分布式
- 下一篇: 操作系统课设--NACHOS试验环境准备