Basit bir algılayıcı nasıl çekirdeklendirilir?


10

Doğrusal olmayan sınırlarla sınıflandırma problemleri basit bir algılayıcıyla çözülemez . Aşağıdaki R kodu açıklama amaçlıdır ve Python'daki bu örneğe dayanmaktadır ):

nonlin <- function(x, deriv = F) {
  if (deriv) x*(1-x)
  else 1/(1+exp(-x))
}

X <- matrix(c(-3,1,
              -2,1,
              -1,1,
               0,1,
               1,1,
               2,1,
               3,1), ncol=2, byrow=T)

y <- c(0,0,1,1,1,0,0)

syn0 <- runif(2,-1,1)

for (iter in 1:100000) {
  l1 <- nonlin(X %*% syn0)
  l1_error <- y - l1
  l1_delta <- l1_error * nonlin(l1,T)
  syn0 <- syn0 + t(X) %*% l1_delta
}

print("Output After Training:")
## [1] "Output After Training:"
round(l1,3)
##       [,1]
## [1,] 0.488
## [2,] 0.468
## [3,] 0.449
## [4,] 0.429
## [5,] 0.410
## [6,] 0.391
## [7,] 0.373

Şimdi bir çekirdek ve sözde çekirdek hilesi fikri , girdi alanını daha yüksek boyutlu bir alana yansıtmaktır (resim kaynakları ):

resim açıklamasını buraya girin resim açıklamasını buraya girin

Benim sorum Verilen sınıflandırma problemini çözebilen
bir çekirdek algısı elde edebilmek için çekirdek hilesinden nasıl yararlanabilirim (örneğin basit bir kuadratik çekirdekli) ? Lütfen dikkat: Bu temel olarak kavramsal bir sorudur, ancak gerekli kod değişikliğini de yapabiliyorsanız, bu harika olurdu

Şimdiye kadar ne denedim
iyi çalışır aşağıdaki denedim ama bu gerçek anlaşma olmadığını düşünüyorum çünkü daha karmaşık sorunlar için hesaplama çok pahalı hale gelir ("çekirdek hüner" arkasındaki "hile" sadece bir fikir değil çekirdeğin kendisi, ancak tüm örnekler için projeksiyonu hesaplamanıza gerek yoktur):

X <- matrix(c(-3,9,1,
              -2,4,1,
              -1,1,1,
               0,0,1,
               1,1,1,
               2,4,1,
               3,9,1), ncol=3, byrow=T)

y <- c(0,0,1,1,1,0,0)

syn0 <- runif(3,-1,1)

Tam Açıklama
Bu soruyu bir hafta önce SO'ya gönderdim ancak çok fazla ilgi görmedi. Burada daha iyi bir yer olduğundan şüpheleniyorum çünkü bu bir programlama sorusundan daha kavramsal bir soru.

Yanıtlar:


2

Standart algılayıcıyı alıp iç ürününü ("çekirdek-hile" nedeniyle) K (X) eşdeğeriyle değiştirerek bir "çekirdek algılayıcı" oluşturabiliriz X,). Bu, iç ürünün olduğu için çalışır. çekirdek işlevi . Ortak Gauss radyal temel işlev çekirdeğinde (RBF) olduğu gibi : XX=X,X<,>:Rp×RpRk:Rp×RpR

K(xi,xj)=exp(||xixj||22σ2)

Çekirdek algısı üzerindeki Wikipedia sayfasında belirtildiği gibi , girdilerin boyutunda bir alt kümeyi seçiyor ve çıktılarımızı üretmek için bunların doğrusal bir kombinasyonunu kullanıyoruz, M

f(x)=iMαiyiK(x,xi)

Destek vektör makinesini ( SVM ) gördüyseniz , aynı ikiliyi fark edeceksiniz. Kullanılacak boyutu alt kümesini seçmek için , örneğinin bir destek / temel vektörü olup olmadığını temsil eden optimize ediyoruz. Optimizasyonu ise biz ağırlıklar şunlardır özgün algılayıcı optimizasyonu.Mαiiαiωi

Yansıtmayı hesaplamak zorunda kalmama sorusuna gelince, doğru, giriş veri matrisi hala 2 boyutlu. Çıktı hesaplanırken, bir nokta ürününü çekirdek işleviyle değiştirdik ve bu , özellik alanındaki 'örtük' hesaplamanın gerçekleştiği yerdir.X



Teşekkür ederim - Yukarıdaki koddaki hangi satırların hangi şekilde değiştirilmesi gerektiğini belirtmeniz açısından belki cevabınızı daha somut hale getirebilir misiniz? R'yi bilmiyorsanız, değişiklikler elbette sözde kodda belirtilebilir. Cevabınızı memnuniyetle kabul ediyorum :-)
vonjd

Kodunuzu dayandırdığınız bağlantı, bence, kesinlikle aldatıcı olsa da, algılayıcıların ve geri yayılımın zayıf bir sunumudur. Geri yayılımın nasıl çalıştığını ve genel algılayıcı teorisini biliyor musunuz?
Kellan Fluette

Bir noktaya kadar, umarım. Tam olarak ne alıyorsun? Karesel hileyi kuadratik bir çekirdekle kullanmak için yukarıdaki kodu nasıl değiştirirsiniz?
vonjd

Algı ölçütünün Lagrangian ikili bölümünde $ \ vec {x} ^ \ intercal \ vec {x) $ yok mu? Bu, özellikle iç ürünü çekirdek işlevi değerlendirmesi ile değiştirdiğiniz yerdir.
Kellan Fluette
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.