"Deep Noether's Theorem": Costruire nei vincoli di simmetria


9

Se ho un problema di apprendimento che dovrebbe avere una simmetria intrinseca, c'è un modo per sottoporre il mio problema di apprendimento a un vincolo di simmetria per migliorare l'apprendimento?

Ad esempio, se sto facendo il riconoscimento delle immagini, potrei desiderare la simmetria rotazionale 2D. Ciò significa che la versione ruotata di un'immagine dovrebbe ottenere lo stesso risultato dell'originale.

O se sto imparando a giocare a tic-tac-toe, la rotazione di 90 gradi dovrebbe produrre lo stesso gioco.

Qualche ricerca è stata fatta su questo?



@Emre Thanks! Conosci qualche lavoro fuori dalla CNN?
aidan.plenert.macdonald

No, ho solo una conoscenza superficiale di questa nicchia. Tuttavia, le CNN sembrano un ambiente naturale ...
Emre,

3
Vorrei anche menzionare la tesi di dottorato di Risi Kondor, Metodi teorici di gruppo nell'apprendimento automatico (pdf)
Emre,

Risposte:


8

Dal commento di Emre sopra, la Sezione 4.4 dei metodi teorici di Gruppo nell'apprendimento automatico di Risi Kondor contiene informazioni dettagliate e prove sulla creazione di metodi del kernel che hanno intrinsecamente simmetrie. Lo riassumerò in un modo speranzosamente intuitivo (sono un fisico, non un matematico!).

La maggior parte degli algoritmi ML ha una moltiplicazione matriciale come,

si=jWij xj=jWij (ejx)
con x essendo l'input e Wij essendo i pesi che desideriamo allenare.

Metodo del kernel

Inserisci il regno dei metodi del kernel e lascia che l'algoritmo gestisca l'input tramite,

si=jWij k(ej, x)
dove ora generalizziamo x,ejX.

Prendi in considerazione un gruppo G che agisce X attraverso xTg(x) per gG. Un modo semplice per rendere invariante il nostro algoritmo in questo gruppo è creare un kernel,

kG(x,y)=1|G|gGk(x,Tg(y))
con k(x,y)=k(Tg(x),Tg(y)).

Così,

kG(x,Th(y))=1|G|gGk(x,Tgh(y))=1|G|gGk(x,Tg(y))=1|G|gGk(Tg(x),y)

Per k(x,y)=xy che funziona per tutte le rappresentazioni unitarie,

kG(x,Th(y))=[1|G|gGTg(x)]y

Che offre una matrice di trasformazione che può simmetrizzare l'input nell'algoritmo.

SO (2) Esempio

In realtà solo il gruppo a cui è associato π2 rotazioni per semplicità.

Eseguiamo la regressione lineare sui dati (xi,yi)R2×R dove ci aspettiamo una simmetria rotazionale.

Il nostro problema di ottimizzazione diventa,

minWji12(yiy~i)2y~i=jWjkG(ej,xi)+bi

Il nocciolo k(x,y)=xy2soddisfa . Puoi anche usare e una varietà di kernel.k(x,y)=k(Tg(x),Tg(y))k(x,y)=xy

Pertanto,

kG(ej,xi)=14n=14R(nπ/2) ejxi2=14n=14(cos(nπ/2)xi1)2+(sin(nπ/2)xi2)2=14[2xi12+2xi22+(1xi1)2+(1xi2)2+(1+xi1)2+(1+xi2)2]=xi12+xi22+1

Nota che non è necessario riassumere perché è lo stesso per entrambi. Quindi il nostro problema diventa, j

minWi12(yiy~i)2y~i=W[xi12+xi22+1]+bi

Il che produce la simmetria sferica attesa!

Tic-Tac-Toe

Codice di esempio può essere visto qui . Mostra come possiamo creare una matrice che codifichi la simmetria e la utilizzi. Nota che questo è davvero un male quando lo eseguo davvero! Lavorare con altri kernel al momento.


Bel lavoro, Aidan! Se hai tempo, puoi scrivere un post sul blog più dettagliato. La comunità sarà più interessata.
Emre,

1
Non sono sicuro di quale comunità ti riferisca, ma ho iniziato a scrivere di più. Volevo trovare un modo per stimare il kernel ottimale dato un set di dati. Così ho ottimizzato l'entropia nello spazio del kernel per ottenere in modo intuitivo un nuovo set di funzionalità che sono simmetricamente vincolate e anche al massimo entropiche (cioè informative). Ora che sia l'approccio giusto. Non posso dire. Solo un avvertimento, la matematica è un po 'un lavoro di hacking in questo momento e un po' uscito da Stat Mech. overleaf.com/read/kdfzdbyhpbbq
aidan.plenert.macdonald

Esiste un approccio significativo quando il gruppo di simmetria non è noto?
Leitasat,

@leitasat Come fai a sapere che è simmetrico se non conosci il gruppo?
aidan.plenert.macdonald,

@ aidan.plenert.macdonald dai dati. Diciamo che abbiamo 1000 serie da 100 immagini ciascuna, e all'interno di ogni serie ci sono immagini di un oggetto da diversi punti di vista. Può un algoritmo "imparare l'idea" della simmetria SO (3) e usarla su oggetti mai visti prima?
Leitasat,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.