梯度垂直于等高線,指向函數(shù)變化最快的方向,指向極大值點(diǎn)方向

約束條件為等式求極值
先來看個(gè)簡單求極值例子
h(x,y) = x+y-1=0,f(x,y) = (x-2)**2+(y-2)**2
先看下圖形z=f(x,y)等高線,以點(diǎn)(2,2)為圓形的同心圓
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
def f(X, Y):
return (X-2)**2 + (Y-2)**2
x = np.arange(-5, 10, 0.1)
y = np.arange(-5, 10, 0.1)
# 可以使坐標(biāo)軸等比例figsize=6,6
plt.figure(figsize=(6,6))
# 生成網(wǎng)格數(shù)據(jù)
X, Y = np.meshgrid(x, y)
# 填充等高線的顏色, 40是等高線分為幾部分
plt.contourf(X, Y, f(X, Y), 40, alpha = 0.8, cmap = plt.cm.RdBu)
# 繪制等高線
#C = plt.contour(X, Y, f(X, Y),15, colors = 'black', linewidth = 0.5)
# 繪制等高線數(shù)據(jù)
plt.clabel(C, inline = True, fontsize = 10)
plt.plot(x, 1-x)
plt.ylim(-5,10)
plt.xlim(-5,10)
plt.show()

從圖形的含義來說,f(x,y)表示的是點(diǎn)(2,2)點(diǎn)到可行域點(diǎn){(x,y)|h(x,y)=0}的距離,可以看出最大值是無窮大,最小值就是點(diǎn)(2,2)到直線h(x,y)=0的垂直距離
從另一方面來說,極值點(diǎn)(x,y),存在\lambda滿足

可以從上式求的極小值點(diǎn),可以通過判斷二階偏導(dǎo)數(shù)矩陣局部正定性,判斷是極大值極小值。
對于多個(gè)約束條件,一般有拉格朗日定理

下面看看不等式約束,求極值,可行域變大了
1、邊界上求的極值
-
2、可行域內(nèi)部求的極值
看一個(gè)簡單的例子f(x,y)=(x-2)**2+(y-2)**2,g(x,y)=x**2+y**2<=1
最小值點(diǎn)f的梯度等于0,從圖中可以看出在可行域,梯度反向時(shí)取的最小值,梯度同向取的最大值,存在\lambda,使得


注意\lambda*g=0,還有個(gè)情況是f梯度等于0點(diǎn)在可行域范圍內(nèi)\lambda=0,\Delta(f)=0取得最小值,
更一般關(guān)系關(guān)系f,hi(x)=0,gj(x)<=0,就是一個(gè)線性組合

推導(dǎo)svm
SVM(Support Vector Machine)指的是支持向量機(jī),是常見的一種判別方法。在機(jī)器學(xué)習(xí)領(lǐng)域,是一個(gè)有監(jiān)督的學(xué)習(xí)模型,通常用來進(jìn)行模式識別、分類以及回歸分析。

從圖中可以看出滿足分類要求分界線很多(高維數(shù)叫超平面),比如H1、H2,顯然H1要比H2要好,H1最大化兩個(gè)類別的距離,影響H1只是邊界點(diǎn),而之前線性分類器受整個(gè)數(shù)據(jù)影響.
假設(shè)H1是分界線,距離兩個(gè)類別距離相同,邊界上點(diǎn)滿足

實(shí)際來說邊界上點(diǎn)不一定正好等與1或者-1,這里可以將等式右邊化為1,例如邊界點(diǎn)wx+b=c,
兩邊同時(shí)除以c,w/cX+b/c=1,邊界變?yōu)閣/cX+b/c=0,這樣處理會使我們方便很多
兩個(gè)邊界線距離

要求距離最大值,轉(zhuǎn)化為求||W||最小值,等價(jià)于求||W||最小值,看看有哪些約束條件

即

問題演變?yōu)?/p>

可以利用前面討論不等式求極值

(W,0)0是對b求偏導(dǎo)數(shù),可以通過SMO算法求解,就出lambda大于0的,對應(yīng)的X就是邊界點(diǎn),
利用上面等式就可求出

還有一個(gè)非常美的性質(zhì)

下面看一個(gè)簡單的例子

適合紅綠兩個(gè)類分類直線很多,但是只有圖中直線能都將兩類之間距離達(dá)到最大,很明顯直線方程為
x-y=0

可以解出
