Implizite Abbildung durch Kerne

a. Geben Sie eine allgemeine Formel für die Abbildung der Ebene in den Raum der geordneten Monome zweiter Ordnung (d.h. Produkte in unterschiedlicher Reihenfolge bekommen eine eigene Dimension, obwohl das Resultat identisch ist, z.B. x1·x2 und x2·x1 bilden unterschiedliche Einträge im Vektorφ) an.


In [28]:
import scipy as sy
import numpy as np

In [29]:
def monome(x1,x2):
    phi = [x1*x1,x1*x2,x2*x1,x2*x2]
    return phi
$$ \begin{equation} \begin{aligned} \Phi_1 :R^2->R^3 : \Phi_1(x) &= (x_1^2, \sqrt2 x_1 x_2, x_2^2) \\ \\ \Phi_2 :R^2->R^4 : \Phi_2(x) &= (x_1^2, x_1 x_2, x_2 x_1, x_2^2) \\ \end{aligned} \end{equation} $$

b. Berechnen Sie das komponentenweise Standard-Skalarprodukt im Raum der Monome zweiter Ordnung zwischen zwei unterschiedlichen zweidimensionalen Eingabevektoren (x1,x2) und (y1,y2).

$$ x = (x_1,x_2), y = (y_1,y_2): $$$$ f(x)=(x_1^2,x_1x_2,x_2x_1,x_2^2)$$

$$f(y)=(y_1^2,y_1y_2,y_2y_1,y_2^2) $$$$ \\ \begin{equation} \begin{aligned} \langle\Phi(x), \Phi(y)\rangle &= x_1^2 y_1^2 + 2x_1 x_2 y_1 y_2 + x_2^2 y_2^2 \\ %% &= (x_1 y_1 + x_2 y_2)^2 \\ %% &= \langle x, y\rangle^2 \end{aligned} \end{equation} \\ $$

In [37]:
# Eingabevektor erzeugen
def create_vector(x,y):
    vec = [x,y]
    
    return vec

In [38]:
# Beispielvektoren 
x1 = 4
x2 = 1

y1 = 5
y2 = 2

vector1 = create_vector(x1,x2)
vector2 = create_vector(y1,y2)

In [39]:
vector1, vector2


Out[39]:
([4, 1], [5, 2])

In [40]:
def scalar_in_monome(v1,v2):
    x1=v1[0] 
    x2=v1[1]
    y1=v2[0] 
    y2=v2[1]
    mon1 = monome(x1,x2)
    mon2 = monome(y1,y2)
    #Bildung des Skalarprodukts
    scal  = mon1[0]*mon2[0]+mon1[1]*mon2[1]+mon1[2]*mon2[2]+mon1[3]*mon2[3]
    return scal

In [41]:
res = scalar_in_monome(vector1,vector2)
res


Out[41]:
484

c. Berechnen Sie den homogenen Polynomkern zweiter Ordnung

$$ k_\Phi(x,y) = \langle x * y \rangle^2 \\$$
$$ k_\Phi(x,y) = \langle f(x),f(y) \rangle \\ = \langle(x_1^2, 2x_1x_2, x_2^2), (y_1^2, 2y_1y_2, y_2^2) \rangle \\ = x_1^2y_1^2 + 2((x_1x_2) * (y_1y_2)) + x_2^2y_2^2 $$

Daraus folgt:

$$ k_\Phi(x,y) = x_1^2y_1^2 + 2 ((x_1x_2) * (y_1y_2)) + x_2^2y_2^2 \\ = (x_1y_1 + x_2y_2)^2 \\ = \langle x,y \rangle^2 $$

In [46]:
def polynom(v1,v2):    
    poly = np.dot(v1,v2)**2
    return poly

In [47]:
res = polynom(vector1,vector2)
res


Out[47]:
484

d. Geben Sie eine Formel für die Perzeptron-Entscheidungsfunktion im Raum der Monome zweiter Ordnung in ihrer dualen Form an.

Ebenengleichung Perzeptron:

$$ g(x) \rightarrow \langle w , x\rangle + b \\ $$

Gewichtungsvektor w (Anpassungsschritten):

$$ w = w + y_i*x_i $$

Linearkombination:

$$ w = \sum_{j=1}^\ell y_j x_j $$

Raum der Monome 2. Ordnung:

$$ w = \sum_{j=1}^\ell y_j f(x_j) $$

Perzeptron:

$$ g(x) = \langle \sum_{j=1}^\ell y_j f(x_j),f(x) \rangle + b \\ = \sum_{j=1}^\ell y_j k_\Phi(x_j,x) + b \\ = \sum_{j=1}^\ell y_j \langle x_j,x \rangle ^2 + b $$