SVM演算法的另外一種理解

2022-05-14 23:41:15 字數 581 閱讀 1463

解決乙個機器學習問題的一般套路是先構建乙個目標函式,然後解決乙個優化問題。目標函式通常由損失函式和正則項組成。常見的損失函式log-loss,square-loss,cross-entropy-loss等,常見的正則化方法有l1正則、l2正則等,常見的優化方法有梯度下降、隨機梯度下降等。svm也可以按照這種模式來重新定義。

首先,損失函式

\( l(y_i,y_i') = max(0,1-y_iy_i') \),稱之為hinge-loss. 實際值y的取值為-1和1,容易看出,只要實際值和**值不同,損失函式就會大於0,當實際值和**值相同的時候,**值的絕對值越大越好

然後,構建目標函式

obj(w,b) = \(\sum_^max(0,1-y_i(w \dot x_i+b)) + c||w||^2\)

可以證明

上述目標函式和上篇文章中得到的優化目標

\(min_\frac||w||^2+c\sum_^\xi_i\)

s.t \(y_i(w\cdot x_i+b)>=1-\xi_i, i=1,2,...n\)

\(\xi_i>=0,i=1,2,3...n\)

等價參考:李航《統計學習方法》

tomcat另外一種部署方式

方式一,步驟如下 2 將解壓後的檔案放到想要放的其它目錄,然後在tomcat的conf server.xml檔案中節點中新增如下節點,metada docbase d tomcattest metada reloadable false privileged true debug 0 3 重啟tom...

反射的另外一種方法

t instance default t type type typeof t system.reflection.constructorinfo constructorinfoarray type.getconstructors system.reflection.bindingflags.ins...

解決Gradle Build很慢的另外一種思路

關於加快gradle的構建速度,網上已經有很多帖子了,那是通常的乙個思路,我試過了,對我來說並沒有明顯的作用。這裡我要說的是另外一種思路,就是根據不同的執行環境,使用gradle.startparameter.tasknames 我們可以選擇性的新增應用外掛程式了。其中這個的作用只是在正式環境下打正...