日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第三课 SVM

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三课 SVM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本系列是七月算法機器學習課程筆記

文章目錄

  • 1 問題
  • 2 key idea 1
  • 3 key idea 2
  • 4 key idea 3
  • 5 key idea4
  • 6 拉格朗日乘子求解
  • 7 核函數的發現

學習SVM不要先看數學公式,這樣把SVM的精華都丟掉了。學習SVM學習作者是如何構建出這樣一個算法的過程。

1 問題

無論線性分類、邏輯回歸、決策樹都是要找到一個決策邊界。但是這個決策邊界什么時候最好呢?

就像圖中這樣,答案應該是線條3最好,它的泛化能力更強。那怎么找到這樣的一條線呢?

2 key idea 1

目標是要找到最寬的那條街道(widest street way)。

假設這條線已經存在,可以做這條線的法向量w?\vec{w}w,那么對于需要預測的一個點,記作向量ux?\vec{u_x}ux??,那么ux?\vec{u_x}ux??在法向量上的投影和截距b有這樣一個關系:如果ux?w?+b>=0\vec{u_x}\vec{w}+b>=0ux??w+b>=0,則是屬于正分類。否則屬于負分類。u是屬于任意一個樣本。

3 key idea 2

根據上面的式子,我們可以要求如下:
對于訓練集中的正樣本x+?w?+b>=1\vec{x_+}\vec{w}+b>=1x+??w+b>=1
對于訓練集中的負樣本x??w?+b<=?1\vec{x_-}\vec{w}+b<=-1x???w+b<=?1
對于訓練集中的站在街邊的點取到等于號。

yiy_iyi?乘以上面的式子會發現兩個條件變成一個條件了。
先看正樣本,yi=1y_i=1yi?=1yi?(xi?w?+b)>=1?1y_i*(\vec{x_i}\vec{w}+b)>=1*1yi??(xi??w+b)>=1?1 得到 xi?w?+b>=1\vec{x_i}\vec{w}+b>=1xi??w+b>=1

再看負樣本,yi=?1y_i=-1yi?=?1yi?(xi?w?+b)>=?1?(?1)y_i*(\vec{x_i}\vec{w}+b)>=-1*(-1)yi??xi??w+b)>=?1?(?1),得到yi(xi?w?)+b>=1y_i(\vec{x_i}\vec{w})+b>=1yi?(xi??w)+b>=1

所以對于訓練集中的每一個樣本有這樣一個約束:yi(xi?w?+b)>=1y_i(\vec{x_i}\vec{w}+b)>=1yi?(xi??w+b)>=1
站在街邊的樣本取到等于號。

4 key idea 3

取訓練集中站在街邊的一個正樣本x+?\vec{x_+}x+??,一個負樣本x??\vec{x_-}x???,可以得到一個x+??x??\vec{x_+}-\vec{x_-}x+???x???(圖中紅色的向量)

這條街的寬度就是紅色向量在法向量上的投影。

width=(x+??x??)w?∣w?∣width=(\vec{x_+}-\vec{x_-})\dfrac{\vec{w}}{|\vec{w}|}width=(x+???x???)ww?
對于站點街上的正樣本,因為yi(x+?w?+b)=1y_i(\vec{x_+}\vec{w}+b)=1yi?(x+??w+b)=1,得到x+?w?=1?b\vec{x_+}\vec{w}=1-bx+??w=1?b

對于站點街上的負樣本,因為yi(x??w?+b)=1y_i(\vec{x_-}\vec{w}+b)=1yi?(x???w+b)=1,得到x??w?=?1+b\vec{x_-}\vec{w}=-1+bx???w=?1+b

代入上面的式子
width=(x+??x??)w?∣w?∣=2∣w?∣width=(\vec{x_+}-\vec{x_-})\dfrac{\vec{w}}{|\vec{w}|}=\dfrac{2}{|\vec{w}|}width=(x+???x???)ww?=w2?

推到到這里,發現這個寬度和數據集沒有關系。

要想width最大,那就應該2∣w?∣\dfrac{2}{|\vec{w}|}w2?最大,那么就∣w?∣|\vec{w}|w最小,那就12∣w?∣2\dfrac{1}{2}|\vec{w}|^221?w2最小。

到現在的結論是:min(12∣w?∣2)min(\dfrac{1}{2}|\vec{w}|^2)min(21?w2),約束條件是:yi(xi?w?+b)?1=0y_i(\vec{x_i}\vec{w}+b)-1=0yi?(xi??w+b)?1=0

5 key idea4

現在我們知道目標是要找到最小的(12∣w?∣2)(\dfrac{1}{2}|\vec{w}|^2)(21?w2),在約束條件下:yi(xi?w?+b)?1=0y_i(\vec{x_i}\vec{w}+b)-1=0yi?(xi??w+b)?1=0

使用拉格朗日解決:L=12∣w?∣2?∑λi[yi(xi?w?+b)?1]L=\dfrac{1}{2}|\vec{w}|^2-\sum\lambda_i[y_i(\vec{x_i}\vec{w}+b)-1]L=21?w2?λi?[yi?(xi??w+b)?1]

在這個式子中,假設拉格朗日因子λ\lambdaλ已知,w和b是未知數。
首先對w求導取到極值點:w??∑λiyixi?=0\vec{w}-\sum\lambda_iy_i\vec{x_i}=0w?λi?yi?xi??=0,得到w?=∑λiyixi?\vec{w}=\sum\lambda_iy_i\vec{x_i}w=λi?yi?xi??

其次對b求導取到極值點:∑λiyi=0\sum\lambda_iy_i=0λi?yi?=0

將剛剛求得的兩個式子帶回到拉格朗日式子:
L=12∣w?∣2?∑λi[yi(xi?w?+b)?1]L=\dfrac{1}{2}|\vec{w}|^2-\sum\lambda_i[y_i(\vec{x_i}\vec{w}+b)-1]L=21?w2?λi?[yi?(xi??w+b)?1]

=12∑λiyixi?∑λjyjxj??∑λiyixi?∑λjyjxj??∑λiyib+∑λi=\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_ib+\sum\lambda_i=21?λi?yi?xi??λj?yj?xj???λi?yi?xi??λj?yj?xj???λi?yi?b+λi?

=12∑λiyixi?∑λjyjxj??∑λiyixi?∑λjyjxj?+∑λi=\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}-\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}+\sum\lambda_i=21?λi?yi?xi??λj?yj?xj???λi?yi?xi??λj?yj?xj??+λi?

=∑λi?12∑λiyixi?∑λjyjxj?=\sum\lambda_i-\dfrac{1}{2}\sum\lambda_iy_i\vec{x_i}\sum\lambda_jy_j\vec{x_j}=λi??21?λi?yi?xi??λj?yj?xj??

=∑λi?12∑∑λiλjyiyj(xi?xj?)=\sum\lambda_i-\dfrac{1}{2}\sum\sum\lambda_i\lambda_jy_iy_j(\vec{x_i}\vec{x_j})=λi??21?λi?λj?yi?yj?(xi??xj??)

可以看到L取決于兩個樣本的乘積:xi?xj?\vec{x_i}\vec{x_j}xi??xj??

6 拉格朗日乘子求解

拉格朗日乘子:λi\lambda_iλi?可以使用SMO、KTT、QP來求解。在求解過程中每次以其中兩個數λi\lambda_iλi?λj\lambda_jλj?為未知數進行求導,求得下一輪的值。因為如果只以一個為未知數:λi\lambda_iλi?那么會存在另外一個λj\lambda_jλj?和它是線性關系,不能求解。

7 核函數的發現

用來預測的函數:如果w?u?+b>=0\vec{w}\vec{u}+b>=0wu+b>=0,則是屬于正分類。
∑λiyixi?u?+b>=0\sum\lambda_iy_i\vec{x_i}\vec{u}+b>=0λi?yi?xi??u+b>=0

∑λiyi(xi?u?)+b>=0\sum\lambda_iy_i(\vec{x_i}\vec{u})+b>=0λi?yi?(xi??u)+b>=0

xi?u?\vec{x_i}\vec{u}xi??u是向量的點乘,表示一個線性關系。如果樣本線性不可分,怎么辦?一種方法是將每個點升級到高維空間。讓它們在高維空間線性可分。發現找不到這樣的線性函數。上面的式子告訴我們,不用找到每個點的高維空間,只要找到兩個點點乘的高維空間即可。也就是說K(xi,xj)=Θ(xi)Θ(xj)K(x_i,x_j)=\varTheta(x_i)\varTheta(x_j)K(xi?,xj?)=Θ(xi?)Θ(xj?)

常用的核函數有:
線性核函數:K(xi,xj)=xiTxjK(x_i,x_j)=x_i^Tx_jK(xi?,xj?)=xiT?xj?
多項式核函數:K(xi,xj)=(λxiTxj+r)dK(x_i,x_j)=(\lambda x_i^Tx_j+r)^dK(xi?,xj?)=(λxiT?xj?+r)d
RBF:K(xi,xj)=e1λ∣xi?xj∣2K(x_i,x_j)=e^{\dfrac{1}{\lambda|x_i-x_j|^2}}K(xi?,xj?)=eλxi??xj?21?

sigmoid函數:K(xi,xj)=tanh(λxiTxj+r)K(x_i,x_j)=tanh(\lambda x_i^Tx_j+r)K(xi?,xj?)=tanh(λxiT?xj?+r)

總結

以上是生活随笔為你收集整理的第三课 SVM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。