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
b. Berechnen Sie das komponentenweise Standard-Skalarprodukt im Raum der Monome zweiter Ordnung zwischen zwei unterschiedlichen zweidimensionalen Eingabevektoren (x1,x2) und (y1,y2).
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]:
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]:
c. Berechnen Sie den homogenen Polynomkern zweiter Ordnung
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]:
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 $$