Del comentario anterior de Emre, la Sección 4.4 de Métodos teóricos grupales en aprendizaje automático de Risi Kondor tiene información detallada y pruebas sobre la creación de métodos de núcleo que tienen simetrías inherentemente. Lo resumiré de una forma esperanzadora e intuitiva (¡soy un físico, no un matemático!).
La mayoría de los algoritmos de ML tienen una matriz de multiplicación como,
syo= ∑jWyo j Xj= ∑jWyo j ( e⃗ j⋅ x⃗ )
con X⃗ como entrada yWyo j como los pesos que deseamos entrenar.
Método Kernel
Ingrese al reino de los métodos del núcleo y deje que el algoritmo maneje la entrada a través de,
syo= ∑jWyo j k ( ej, x )
donde ahora generalizamos ax , ej∈ X .
Considere un grupo sol que actúa sobre X a través de x → Tsol( x ) para sol∈ G . Una manera simple de hacer que nuestro algoritmo sea invariable en este grupo es hacer un núcleo,
ksol( x , y)= 1El | G |∑sol∈ Gk ( x , Tsol( y) )
conk ( x , y) = k ( Tsol( x ) , Tsol( y) ) .
Entonces,
ksol( x , Th( y) )= 1El | G |∑sol∈ Gk ( x , Tsolh(y) )= 1El | G |∑sol∈ Gk ( x , Tsol(y) )= 1El | G |∑sol∈ Gk ( Tsol( X ) , y)
Para k ( x , y) = x ⋅ y que funciona para todas las representaciones unitarias,
ksol( x , Th(y) )= [ 1El | G |∑sol∈ GTsol( x ) ] ⋅ y
Que ofrece una matriz de transformación que puede simimentar la entrada en el algoritmo.
SO (2) Ejemplo
En realidad, solo el grupo que se asigna a π2 rotaciones para simplicidad.
Ejecutemos una regresión lineal en los datos ( x⃗ yo, yyo) ∈ R2× R donde esperamos una simetría rotacional.
Nuestro problema de optimización se convierte,
minWjy~yo∑yo12( yyo- y~yo)2= ∑jWjksol( ej, xyo) + byo
k ( x , y) = ∥ x - y∥2k ( x , y) = k ( Tsol( x ) , Tsol( y) )k ( x , y) = x ⋅ y y una variedad de núcleos.
ksol( ej, xyo)= 14 4∑n = 14 4∥ R ( n π/ 2) e ⃗ j- x⃗ yo∥2= 14 4∑n = 14 4( cos( n π/ 2)- x⃗ yo 1)2+ ( pecado( n π/ 2)- x⃗ yo 2)2= 14 4[ 2 x⃗ 2yo 1+ 2 x⃗ 2yo 2+ ( 1 - x⃗ yo 1)2+ ( 1 - x⃗ yo 2)2+ ( 1 + x⃗ yo 1)2+ ( 1 + x⃗ yo 2)2]= x⃗ 2yo 1+ x⃗ 2yo 2+ 1
Tenga en cuenta que no necesitamos sumar más de jporque es lo mismo para ambos. Entonces nuestro problema se convierte,
minWy~yo∑yo12( yyo- y~yo)2= W[ x⃗ 2yo 1+ x⃗ 2yo 2+ 1 ] + byo
¡Lo que produce la simetría esférica esperada!
Tic-Tac-Toe
El código de ejemplo se puede ver aquí . Muestra cómo podemos crear una matriz que codifique la simetría y usarla. Tenga en cuenta que esto es realmente malo cuando realmente lo ejecuto. Trabajando con otros núcleos en este momento.