Si j'ai un problème d'apprentissage qui devrait avoir une symétrie inhérente, existe-t-il un moyen de soumettre mon problème d'apprentissage à une contrainte de symétrie pour améliorer l'apprentissage?
Par exemple, si je fais une reconnaissance d'image, je pourrais vouloir une symétrie de rotation 2D. Cela signifie que la version pivotée d'une image devrait obtenir le même résultat que l'original.
Ou si j'apprends à jouer au tic-tac-toe, une rotation de 90 degrés devrait donner le même jeu.
Des recherches ont-elles été effectuées à ce sujet?
machine-learning
aidan.plenert.macdonald
la source
la source
Réponses:
D'après le commentaire d'Emre ci-dessus, la section 4.4 des méthodes théoriques de groupe en apprentissage automatique par Risi Kondor contient des informations détaillées et des preuves sur la création de méthodes de noyau qui ont intrinsèquement des symétries. Je vais le résumer d'une manière, je l'espère, intuitive (je suis un physicien et non un mathématicien!).
La plupart des algorithmes ML ont une multiplication matricielle comme,si=∑jWij xj=∑jWij (e⃗ j⋅x⃗ )
avec x⃗ étant l'entrée etWij étant les poids que nous souhaitons entraîner.
Méthode du noyau
Entrez dans le domaine des méthodes du noyau et laissez l'algorithme gérer l'entrée via,si=∑jWij k(ej, x)
où maintenant on généralise àx , ej∈ X .
Considérons un groupeg qui agit sur X par x → Tg( x ) pour g∈ G . Un moyen simple de rendre notre algorithme invariant sous ce groupe est de faire un noyau,
kg( x , y)= 1| G |∑g∈ Gk ( x , Tg( y) )
aveck ( x , y) = k ( Tg( x ) , Tg( y) ) .
Donc,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)
Pourk ( x , y) = x ⋅ y qui fonctionne pour toutes les représentations unitaires,
Ce qui offre une matrice de transformation qui peut symétriser l'entrée dans l'algorithme.
SO (2) Exemple
En fait, juste le groupe qui correspond àπ2 rotations pour plus de simplicité.
Exécutons une régression linéaire sur les données(x⃗ i,yi)∈R2×R où nous nous attendons à une symétrie de rotation.
Notre problème d'optimisation devient,minWjy~i∑i12(yi−y~i)2=∑jWjkG(ej,xi)+bi
Ainsi,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
Notez que nous n'avons pas besoin de faire la somme de car c'est la même chose pour les deux. Donc, notre problème devient,j minWy~i∑i12(yi−y~i)2=W[x⃗ 2i1+x⃗ 2i2+1]+bi
Ce qui donne la symétrie sphérique attendue!
Tic-Tac-Toe
Un exemple de code peut être vu ici . Il montre comment nous pouvons créer une matrice qui code la symétrie et l'utiliser. Notez que c'est vraiment mauvais quand je le lance! Travailler avec d'autres noyaux en ce moment.
la source
Il s'avère que ce n'est que l'étude de la théorie invariante appliquée à l'apprentissage automatique
la source