感知器、logistic與svm 區別與聯絡
轉載自:這位博主
從感知器談起
對於典型的二分類問題,線性分類器的目的就是找一個超平面把正負兩類分開。對於這個超平面,我們可以用下面的式子來表示,
ωTx+b=0ωTx+b=0
感知器是最簡單的一種線性分類器。用f(x)表示分類函式,感知器可以如下來表示。
f(x)=sign(ωTx+b)f(x)=sign(ωTx+b)
感知器相當於一個階躍函式,如下圖所示,在0處有一個突變。
損失函式是分類器優化的目標函式,可以用來衡量分類錯誤的程度,損失函式值越小,代表分類器效能越好。感知器的損失函式為誤分類點的函式間隔之和,函式間隔可以理解為樣本與分類超平面的距離。誤分類點距離分類超平面越遠,則損失函式值越大。只有誤分類的點會影響損失函式的值。
L=−y(wTx+b)L=−y(wTx+b)
從感知器到logistic迴歸
感知器模型簡單直觀,但問題在於這個模型不夠光滑,比如如果對於一個新的樣本點我們計算出ω^T x+b=0.001,只比0大了一點點就會被分為正樣本。同時這個點在0處有一個階躍,導致這一點不連續,在數學上處理起來不方便。
那有沒有辦法讓 ωTx+bωTx+b 到y的對映變得更加光滑呢,人們發現logistic函式有著這樣的特性,輸入範圍是−∞→+∞,而值域光滑地分佈於0和1之間。於是就有了logistic迴歸,正樣本點分類的超平面距離越遠,ωTx+bωTx+b 越大,而logistic函式值則越接近於1。負樣本點分類的超平面距離越遠,ωTx+bωTx+b 越小,而logistic函式值則越接近於0。
Logistic迴歸的損失函式為logistic損失函式,當分類錯誤時,函式間隔越大,則損失函式值越大。當分類正確時,樣本點距離超平面越遠,則損失函式值越小。所有的樣本點分佈情況都會影響損失函式最後的值。
log(1+exp(−y(wTx+b)))log(1+exp(−y(wTx+b)))
從感知器到SVM
在感知器分類選分類超平面時,我們可以選擇很多個平面作為超平面,而選擇哪個超平面最好呢,我們可以選擇距離正樣本和負樣本最遠的超平面作為分類超平面,基於這種想法人們提出了SVM演算法。SVM的損失函式為合頁函式,當分類錯誤時,函式間隔越大,則損失函式值越大。當分類正確且樣本點距離超平面一定距離以上,則損失函式值為0。誤分類的點和與分類超平面距離較近的點會影響損失函式的值。
[1−y(wTx+b)]+[1−y(wTx+b)]+
感知器、logistic與SVM
三者都是線性分類器,而logistic和svm是由感知器發展改善而來的。區別在於三者的損失函式不同,後兩者的損失函式的目的都是增加對分類影響較大的資料點的權重,SVM的處理方法是隻考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性對映,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的資料點的權重。下圖中紅色的曲線代表logistic迴歸的損失函式,綠色的線代表svm的損失函式。
相關文章
- cookie與session的區別與聯絡CookieSession
- Session與Cookie的區別與聯絡SessionCookie
- JRE與JDK的區別與聯絡JDK
- Kafka與ActiveMQ的區別與聯絡詳解KafkaMQ
- 詳解Kafka與ActiveMQ的區別與聯絡!KafkaMQ
- B/S與C/S的聯絡與區別
- jQuery與JavaScript與ajax三者的區別與聯絡jQueryJavaScript
- ipv4與ipv6的聯絡與區別
- HDFS 塊和 Input Splits 的區別與聯絡
- 程式和執行緒的區別與聯絡執行緒
- javaSE中的==和equals的聯絡與區別Java
- 陣列地址與指標之間的區別與聯絡陣列指標
- 簡述Spring容器與SpringMVC的容器的聯絡與區別SpringMVC
- 先驗概率與後驗概率、貝葉斯區別與聯絡
- KPI vs OKR:區別與聯絡的終極指南KPIOKR
- Vue中watch、computed與methods的聯絡和區別Vue
- 單機、分散式、叢集的區別與聯絡分散式
- 一文搞懂灰度釋出與 AB Test 的聯絡與區別
- Python中__new__和__init__的區別與聯絡Python
- 叢集、負載均衡、分散式的區別與聯絡負載分散式
- 淺析HTML、CSS、JavaScript之間的聯絡與區別!HTMLCSSJavaScript
- annotation之context:annotation-config與 context:component-scan的區別與聯絡Context
- 大資料分析與機器學習之間的區別與聯絡大資料機器學習
- ARM晶片、核心、架構、指令集的聯絡與區別晶片架構
- Unicode,UTF-8和UTF-16的區別與聯絡Unicode
- 產品經理和專案經理區別與聯絡
- 資料倉儲、資料湖與湖倉一體的區別與聯絡
- Jtti:伺服器與資料庫有何區別和聯絡?Jtti伺服器資料庫
- 跟你深入剖析可迭代物件和迭代器的區別與聯絡物件
- `std::packaged_task`、`std::thread` 和 `std::async` 的區別與聯絡Packagethread
- 可觀測性與傳統監控的區別和聯絡
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- 一篇讓你明白程式與執行緒之間的區別與聯絡執行緒
- 知識點,JavaScript與Java之間有什麼區別和聯絡?JavaScript
- Linux中程式和執行緒的區別與聯絡,建議收藏!Linux執行緒
- 【科普】等級保護與分級保護的區別和聯絡!
- GoF設計模式中裝飾器、代理與介面卡的區別與聯絡 - MarioGo設計模式
- SCADA和PLC的區別聯絡