this dir | view | cards | source | edit | dark top

svm

svm
Kernelové metody

chtěli bychom mít model s polynomiálními features 0. až 3. řádu → měl by O(D3)O(D^3) vah

pro jednoduchost uvažujeme situaci, kdy x1x2x_1x_2x2x1x_2x_1 jsou dvě různé features

Kernelové metody

váhy jsou ale lineárními kombinacemi trénovacích dat

Kernelové metody

při trénování spolu musíme často násobit φ(xi)Tφ(xj)\varphi(x_i)^T\varphi(x_j) pro dvojice řádků trénovacích dat, takže si tyto hodnoty předpočítáme do matice KK

φ\varphi je zobrazení, které řádku dat přiřazuje polynomiální features

Kernelové metody

při predikci musíme predikovaný řádek zz pronásobit s NN řádky trénovacích dat (jeden z nich označíme jako xx)

Kernelové metody

součinu těch features se říká kernel – je to funkce, které dám dva vektory a ona mi vyrobí součin features těch vektorů: K(x,z)=φ(x)Tφ(z)K(x,z)=\varphi(x)^T\varphi(z)

už jsme si ukázali kernel pro kubické features

Kernelové metody

kernely

SVM

chceme maximalizovat šířku marginu (= minimalizovat velikost vah) za podmínky, že každý prvek je na správné straně

abychom mohli jednoduše minimalizovat velikost vah, použili jsme trik, že pro body nejbližší k decision boundary bude platit tiy(xi)=1t_iy(x_i)=1 (škálování je totiž na nás)

SVM

díky KKT podmínkám víme, že nás při maximalizaci lagrangiánu zajímají jenom některá trénovací data – ta, která leží na okraji (support vektory)

SVM

pro lineárně neseparabilní data potřebujeme soft-margin SVM

SVM

k trénování se používá sequential minimal optimization

bereme řádky po jednom, k tomu aia_i, náhodně aja_j a taky bias, postupně zlepšujeme lagrangián

SVM

klasifikace do více tříd

Hurá, máš hotovo! 🎉
Pokud ti moje kartičky pomohly, můžeš mi koupit pivo.