Jeśli mam problem z uczeniem się, który powinien mieć nieodłączną symetrię, czy istnieje sposób na poddanie mojego problemu uczenia się ograniczeniu symetrii w celu usprawnienia uczenia się?
Na przykład, jeśli wykonuję rozpoznawanie obrazu, może potrzebuję symetrii obrotowej 2D. Oznacza to, że obrócona wersja obrazu powinna uzyskać taki sam wynik jak oryginał.
Lub jeśli uczę się grać w kółko i krzyżyk, wówczas obracanie o 90 stopni powinno dać tę samą grę.
Czy przeprowadzono na ten temat jakieś badania?
machine-learning
aidan.plenert.macdonald
źródło
źródło
Odpowiedzi:
Z powyższego komentarza Emre, sekcja 4.4 grupowych metod teoretycznych w uczeniu maszynowym autorstwa Risi Kondor zawiera szczegółowe informacje i dowody na temat tworzenia metod jądra, które z natury mają symetrię. Podsumuję to w miejmy nadzieję intuicyjny sposób (jestem fizykiem, a nie matematykiem!).
Większość algorytmów ML ma mnożenie macierzy, takie jak,si=∑jWij xj=∑jWij (e⃗ j⋅x⃗ )
z x⃗ będąc wkładem i Wij jako ciężary, które chcemy trenować.
Metoda jądra
Wejdź do dziedziny metod jądra i pozwól algorytmowi przetwarzać dane wejściowe za pośrednictwem,si=∑jWij k(ej, x)
gdzie teraz uogólniamy x,ej∈X .
Rozważ grupęG to działa na X przez x→Tg(x) dla g∈G . Prostym sposobem na uczynienie naszego algorytmu niezmiennym w tej grupie jest utworzenie jądra,
kG(x,y)=1|G|∑g∈Gk(x,Tg(y))
z k(x,y)=k(Tg(x),Tg(y)) .
Więc,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)
Dlak(x,y)=x⋅y który działa dla wszystkich reprezentacji jednolitych,
Który oferuje macierz transformacji, która może symetrycznie wprowadzać dane do algorytmu.
SO (2) Przykład
Właściwie tylko grupa, na którą mapuje sięπ2 rotacje dla uproszczenia.
Uruchommy regresję liniową danych(x⃗ i,yi)∈R2×R gdzie oczekujemy symetrii obrotowej.
Nasz problem optymalizacji staje sięminWjy~i∑i12(yi−y~i)2=∑jWjkG(ej,xi)+bi
Jądro spełnia . Możesz także użyć i różnych jąder.k(x,y)=∥x−y∥2 k(x,y)=k(Tg(x),Tg(y)) k(x,y)=x⋅y
Tak więckG(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
Zauważ, że nie musimy sumować przez ponieważ jest to to samo dla obu. Tak więc naszym problemem staje się:j minWy~i∑i12(yi−y~i)2=W[x⃗ 2i1+x⃗ 2i2+1]+bi
Co daje oczekiwaną sferyczną symetrię!
Kółko i krzyżyk
Przykładowy kod można zobaczyć tutaj . Pokazuje, jak możemy stworzyć macierz, która koduje symetrię i z niej korzystać. Zauważ, że to naprawdę źle, kiedy faktycznie go uruchamiam! Praca z innymi jądrami w tej chwili.
źródło
Okazuje się, że to tylko studium teorii niezmienników zastosowanej do uczenia maszynowego
źródło