0

How to adapt the Gaussian Kernel to discontinuous spaces,such as that of strings over a finite alphabet,for which we already have a kernel (say K(s, t)) defined ?

The Gaussian Kernel can be stated by :

G(x, y) = e^(−(||x−y||^2)/σ^2)

Monolith
  • 31
  • 5

1 Answers1

0

If you want to build a Gaussian kernel on top of the Hilbert vector space induced by your Kernel K you could put something like

G_K(x, y) = e^(−(K(x, x)-2K(x, y)+K(y,y))/σ^2)

why is it ok?

G(x, y) = e^(−(||x−y||^2)/σ^2) = G(x, y) 
        = e^(−(<x-y, x-y>)/σ^2)
        = e^(−(<x, x>-<x, y>-<y,x>+<y,y>)/σ^2)
        = e^(−(<x, x>-2<x, y>+<y,y>)/σ^2)

thus given a kernel K which is a dot product in some space, meaning that K(x,y) = <phi(x), phi(y)> you get

G(phi(x), phi(y) = e^(−(<phi(x), phi(x)>-2<phi(x), phi(y)>+<phi(y),phi(y)>)/σ^2)
                 = e^(−(K(x, x)-2K(x, y)+K(y,y))/σ^2)

consequently as G is a valid kernel, also G_K(x,y) is (as it is just a scalar product over a transformation through both gaussian projection and the kernel induced one).

lejlot
  • 64,777
  • 8
  • 131
  • 164
  • Is it similar for all discontinuous spaces? – Monolith Dec 18 '15 at 20:43
  • This is true for any kernel K, it does not matter if the space is continuous or not. Gaussian kernel is simply defined on top of any vector space with dot product. Once you got your kernel - it defined its own Hilbert vector space, thus by using the above - you are exploiting existance of this particular one. – lejlot Dec 18 '15 at 20:44
  • Thnx :) will look into this further. – Monolith Dec 18 '15 at 20:50