Aus Emres obigem Kommentar geht hervor, dass Abschnitt 4.4 der gruppentheoretischen Methoden des maschinellen Lernens von Risi Kondor detaillierte Informationen und Beweise zum Erstellen von Kernelmethoden enthält, die von Natur aus Symmetrien aufweisen. Ich werde es auf hoffentlich intuitive Weise zusammenfassen (ich bin Physiker, kein Mathematiker!).
Die meisten ML-Algorithmen haben eine Matrixmultiplikation wie
sich= ∑jW.i j xj= ∑jW.i j ( e⃗ j⋅ x⃗ )
wobei x⃗ die Eingabe undW.i jdie Gewichte sind, die wir trainieren möchten.
Kernel-Methode
Betreten Sie den Bereich der Kernel-Methoden und lassen Sie den Algorithmus die Eingabe über
sich= ∑jW.i j k ( ej, x )
wobei wir nun aufx , ej∈ X.verallgemeinern.
Betrachten Sie eine Gruppe G , die über x → T g ( x ) für g ∈ G auf X. einwirkt . Eine einfache Möglichkeit, unseren Algorithmus unter dieser Gruppe invariant zu machen, besteht darin, einen Kernel,
k G ( x , y ) , zu erstellen.x → T.G( x )G∈ G.kG( x , y)= 1| G |∑G∈ G.k ( x , T.G( y) )
mitk ( x , y) = k ( T.G( x ) , T.G( y) ).
Also,
kG(x,Th(y))=1|G|∑g∈Gk(x,Tgh(y))=1|G|∑g∈Gk(x,Tg(y))=1|G|∑g∈Gk(Tg(x),y)
Für k(x,y)=x⋅y das für alle einheitlichen Darstellungen gilt,
kG( x , T.h( y) )= [ 1| G |∑G∈ G.T.G(x)]⋅y
Dies bietet eine Transformationsmatrix, die die Eingabe in den Algorithmus symmetrisieren kann.
SO (2) Beispiel
Eigentlich nur die Gruppe, die auf π2 Einfachheit halber 2 Umdrehungen.
Lassen Sie uns eine lineare Regression für Daten (x⃗ i,yi)∈R2×R wobei wir eine Rotationssymmetrie erwarten.
Unser Optimierungsproblem wird
minWjy~i∑i12(yi−y~i)2=∑jWjkG(ej,xi)+bi
Der Kern k(x,y)=∥x−y∥2 erfüllt k(x,y)=k(Tg(x),Tg(y)) . Sie können auch k(x,y)=x⋅y und eine Vielzahl von Kerneln verwenden.
Somit ist
kG(ej,xi)=14∑n=14∥R(nπ/2) e⃗ j−x⃗ i∥2=14∑n=14(cos(nπ/2)−x⃗ i1)2+(sin(nπ/2)−x⃗ i2)2=14[2x⃗ 2i1+2x⃗ 2i2+(1−x⃗ i1)2+(1−x⃗ i2)2+(1+x⃗ i1)2+(1+x⃗ i2)2]=x⃗ 2i1+x⃗ 2i2+1
jminWy~i∑i12(yi−y~i)2=W[x⃗ 2i1+x⃗ 2i2+1]+bi
Was die erwartete sphärische Symmetrie ergibt!
Tic-Tac-Toe
Beispielcode ist hier zu sehen . Es zeigt, wie wir eine Matrix erstellen können, die die Symmetrie codiert und verwendet. Beachten Sie, dass dies wirklich schlecht ist, wenn ich es tatsächlich laufen lasse! Momentan mit anderen Kerneln arbeiten.