Anda di halaman 1dari 10

9/13/2019 Kernel

Kernel
Amri Muhaimin
9/11/2019

Definisi Kernel
Kernel Methods adalah algoritma salah satu algoritma yang digunakan untuk pattern analysis atau pattern recognition, salah satu yang paling
popular adalah Support Vector Machine (SVM). Tujuan dari pattern analysis atau pattern recognition ialah mendapatkan dan mempelajari suatu
pola dari data seperti teks, gambar, dan sejenisnya sehingga didapatkan hasil berupa klaster/kelompok. Karakteristik utama dari Metode Kernel
berada pada pendekatan yang digunakan. Dalam penyelesaiannya, Metode Kernel memetakan data kedalam high dimensional space, tujuannya
agar pmetaan yang dilakukan lebih mudah. Fungsi pemetaan tersebut bernama Kernel Trick.

Dasar Kernel
Dasar dari kernel adalah penggunaan dari kernel trick. Dalam machine learning, definisi dari Kernel Trick adalah metode yang menggunakan
klasifikasi linear untuk menyelesaikan permasalahan non-linear. Kernel Trick mempunyai sebuah fungsi yang disebut dengan fungsi kernel.

K (x, y) =< f (x), f (y) >, x, y ∈ χ

Persamaan tersebut merupakan perhitungan normed, dengan x dan y adalah input berdimensi n. f (x) dan f (y) memetakan n dimensi kedalam
m dimensi. Dimensi m mempunyai dimensi yang lebih tinggi dibandingkan n. Sedangkan < x, y > adalah inner product yang dapat dilakukan
dengan menghitung f(x) dan f(y) terlebih dahulu lalu menerapkan operasi dot produk. Perhitungan yang dilakukan sama halnya menghitung satu
jarak atau koordinat cartesius antar 2 titik/observasi yang berbeda. Hasil yang akan didapatkan berupa matriks simetris yang bisa juga disebut
dengan gram matrix.

Sifat Kernel
Beberapa sifat-sifat kernel yang harus dipenuhi yaitu:

1. Fungsi kernel harus kontinu.

2. Fungsi kernel harus simetris, dalam artian matriks gram yang terbentuk harus memiliki anggota yang simetris.

3. Yang paling utama adalah merupakan (semi)-positif definit. Hal tersebut dibutuhkan karena dari matriks yang positif definit akan
menghasilkan eigen-values yang positif. Sehingga optimasi permasalahannya akan menghasilkan solusi yang unik.

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 1/10
9/13/2019 Kernel

Jenis Kernel
Beberapa jenis kernel yang populer diantaranya linear, gassian yang merupakan salah satu contoh radial basis function, polynomial, dan sigmoidal
kernel.

1. Linear Kernel, fungsi kernel ini merupakan fungsi yang sederhana dibandingkan fungsi lainnya. Perhitungan hanya menggunakan inner
produk < x, y > ditambah dengan c yang merupakan suatu bilangan constant atau biasa disebut dengan cost. Gambar 1 menunjukkan
fungsi kernel linear pada SVM. Penggunaan kernel linear pada SVM adalah untuk mendapatkan titik margin pemisah (garis putus-putus)
atau dapat disebut dengan soft margin dengan koordinat awal adalah garis hitam. Observasi yang bersinggungan dengan soft margin
adalah support vector.
t
k(x, y) = x y + c

set.seed(23)
require('kernlab')

## Loading required package: kernlab

x <- cbind(rnorm(20),(rnorm(20)))
y <- c(rep(-1,10),rep(1,10))
x[y==1,]<-abs(x[y==1,])+2 #to create the data well separated
kernelfunc <- function(linear=0)
{
k <- function(x,y)
{
linear*sum((x)*(y))
}
class(k)<- 'kernel'
k
}
sv <- ksvm(x,y,type="C-svc",C=1,kernel=kernelfunc(1),scaled=c())
maty <- ymatrix(sv)
w <- colSums(coef(sv)[[1]] * x[SVindex(sv),])
b <- b(sv)

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 2/10
9/13/2019 Kernel

Gambar 1. Linear Kernel

2. Polynomial Kernel, merupakan fungsi kernel yang tidak stasioner. Fungsi kernel polynomial ini sesuai dengan data yang telah di
normalisasi. Parameter yang dapat diubah adalah α , konstan c dan derajat polinomialnya d. Kernel akan membentuk kernel quadratic jika
derajat sama dengan 2.
t d
k(x, y) = (αx y + c)

x <- rnorm(10000)
alfa <- 0.1
c <- 0.01
d <- 3
fx <- (alfa*x+c)^d
plot(x,fx,lty=1,xlab='x',ylab='K(x)')

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 3/10
9/13/2019 Kernel

Gambar 2. Bentuk Polynomial Kernel

#Implementasi
require(e1071)

## Loading required package: e1071

data("iris")
svm.model <- svm(Species ~ Sepal.Length + Sepal.Width, data = iris, kernel = 'polynomial', degree=3, gamma=0.1)
plot(svm.model, iris, Sepal.Width ~ Sepal.Length,
slice = list(Sepal.Width = 1, Sepal.Length = 2))

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 4/10
9/13/2019 Kernel

Gambar 3. Polynomial Kernel

3. Gaussian/RBF Kernel, kernel ini merupakan salah satu contoh radial basis function kernel. Parameter yang paling berpengaruh adalah
parameter sigma atau varians.
2
||x−y||
k(x, y) = exp(− )
2

x <- seq(-2,2,0.01)
sigma <- var(x)
fx <- exp(-(x^2/(2*sigma)))
plot(x,fx,lty=1,xlab='x',ylab='K(x)',main='Gauss Kernel')

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 5/10
9/13/2019 Kernel

Gambar 4. Bentuk Gaussian Kernel

#implementasi
require(e1071)
require(ElemStatLearn)

## Loading required package: ElemStatLearn

attach(mixture.example)

## The following objects are masked _by_ .GlobalEnv:


##
## x, y

names(mixture.example)

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 6/10
9/13/2019 Kernel

## [1] "x" "y" "xnew" "prob" "marginal" "px1"


## [7] "px2" "means"

data<-data.frame(y=factor(mixture.example$y),mixture.example$x)
Radialsvm=svm(factor(y) ~.,data=data,kernel="radial",scale=F)
xgrid=expand.grid(X1=px1,X2=px2)
ygrid=predict(Radialsvm,newdata = xgrid)
func = predict(Radialsvm,xgrid,decision.values = TRUE)
func=attributes(func)$decision
plot(xgrid,col=as.numeric(ygrid),pch=20,cex=0.3)
points(x,col=y+1,pch=19)
contour(px1,px2,matrix(func,69,99),level=0,add=TRUE,lwd=3)
contour(px1,px2,matrix(prob,69,99),level=0.5,add=T,col="blue",lwd=3)

Gambar 5. RBF Kernel

4. Sigmodial Kernel, fungsi kernel ini mempunyai nama lain hyperbolic tangent kernel atau multilayer perceptron (MLP) kernel. Sigmoid kernel
berasal dari neural network, pada neural network fungsi ini disebut sebagai activation function.
file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 7/10
9/13/2019 Kernel
1
f (x) = −x
1+exp

Dalam penggunaannya di support vector machine, sigmodial kernel merupakan fungsi neural network dengan 2 layer. Terdapat 2 parameter,
yaitu parameter slope (α ) dan interset konstan. Nilai yang umum untuk paramater α adalah 1/N, dengan N adalah dimensi dari data.
t
k(x, y) = tanh(αx y + c)

x <- seq(-20,20,0.01)
fx <- tanh(0.1*x+0.1)
plot(x,fx,lty=1,xlab='x',ylab='K(x)')

Gambar 6. Bentuk Simodial Kernel

#implementasi
require(e1071)
require(ElemStatLearn)
attach(mixture.example)

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 8/10
9/13/2019 Kernel

## The following objects are masked _by_ .GlobalEnv:


##
## x, y

## The following objects are masked from mixture.example (pos = 3):


##
## marginal, means, prob, px1, px2, x, xnew, y

names(mixture.example)

## [1] "x" "y" "xnew" "prob" "marginal" "px1"


## [7] "px2" "means"

data<-data.frame(y=factor(mixture.example$y),mixture.example$x)
Sigmoidsvm=svm(factor(y) ~.,data=data,kernel="sigmoid",scale=F)
xgrid=expand.grid(X1=px1,X2=px2)
ygrid=predict(Sigmoidsvm,newdata = xgrid)
func = predict(Sigmoidsvm,xgrid,decision.values = TRUE)
func=attributes(func)$decision
plot(xgrid,col=as.numeric(ygrid),pch=20,cex=0.3)
points(x,col=y+1,pch=19)
contour(px1,px2,matrix(func,69,99),level=0,add=TRUE,lwd=3)
contour(px1,px2,matrix(prob,69,99),level=0.5,add=T,col="blue",lwd=3)

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 9/10
9/13/2019 Kernel

Gambar 7. Simodial Kernel

Jenis Kernel Lain

Kernel K (x, y)

Eksponensial exp(−
||x−y||
)
σ

Laplacian exp(−
||x−y||
)
2

n
ANOVA ∑
k=1
exp(−σ(x
k
− y
k 2
) )
d

Cauchy 1

||x−y||2
1+
σ2

Chi-Square n (x i −y )
i
1 − ∑
i=1 2
0.5(x i +y )
i

- -

file:///C:/Users/user/Documents/Tugas-SML-Kernel.html 10/10

Anda mungkin juga menyukai