吳恩達機器學習(第十三章)---支援向量機SVM
一、優化目標
邏輯迴歸中的代價函式:
畫出兩種情況下的函式影象可得:
y=1: 我們找一條折線來近似表示這個函式影象
y=0:
我們用這兩條折線來近似表示原來的曲線函式可得新的代價函式(假設-log(h(x))為,-log(1-h(x))為):
(θ從第二個開始算起)在svm中的表示會與邏輯迴歸中有些差別
即:(去掉1/m,C扮演這1/λ的作用但是不等於1/λ)
二、大間隔理解
1.svm與邏輯迴歸的差異
邏輯迴歸 | svm | |
y=0 | 小於等於-1 | 小於0 |
y=1 | 大於等於1 | 大於等於0 |
2.直觀影象
由>=1(y=1), <=-1(y=0) 最後優化得到的影象為下圖的黑線:
如果我們用正常的邏輯迴歸,可能會得到綠線,紅線等其他可能的線,但他們到藍線即邊界的距離都沒有黑線大,黑線所表示的函式是到邊界距離最大的函式。所以稱為大間距分類器。
3.C的大小與異常點
正常資料的情況下我們會得到上面的決策邊界。但是如果存在異常點如下圖:
如果C很大,那麼svm會盡量將所有點都去分開, 所以黑色的決策邊界就會變成紅色的,所以當出現這種情況的時候,我們需要把C的值調小一些。
三、核函式
當遇到一些複雜的非線性決策邊界的時候,我們決策邊界的函式就會比較複雜(eg:)
這是我們採用另一種方式來替換特徵,修改為 ,即用f1來代替x1,f2代替x2^2等等。
那麼如何得到這些f特徵呢?
我們可以選取一些近似於的點然後用函式來求出各個f的值,這個函式就是核函式,通常我們可以使用高斯函式
=(f_0=1)
當x與l很接近時,f就會接近1;當x與l差的很遠時,f就會接近0
通常初始化L的時候把x的對應的值賦給l,l1=x1,l2=x2等等
求x_i的特徵向量f:
......別忘了在f向量中加上f_0哦
對於每個x^i可以求出一個f^i
當>0時,y=1,反之y=0,帶入代價函式可得
(在這裡n=m)
四、邏輯迴歸與svm的選擇
假設特徵數為n,訓練樣本為m
1)n相對於m很大的時候,用邏輯迴歸或者svm(核函式為線性函式/無核函式)(n=10000,m=10,100...)
2)n比較小,m大小適中用svm(核函式為高斯函式)(n=1-1000,m=10-10000)
3)n比較小,m比較大則新增特徵項,然後用邏輯迴歸或者svm(核函式為線性函式/無核函式)
五、偏差與方差
1.C比較大或者σ的平方比較小的時候偏差小,方差大
2.C比較小或者σ的平方比較大的是偶偏差大,方差小