Se eu tiver um problema de aprendizado que deva ter uma simetria inerente, existe uma maneira de sujeitar meu problema de aprendizado a uma restrição de simetria para aprimorar o aprendizado?
Por exemplo, se estou fazendo reconhecimento de imagem, talvez queira simetria rotacional 2D. Significa que a versão girada de uma imagem deve obter o mesmo resultado que o original.
Ou, se estou aprendendo a jogar o jogo da velha, girar 90 graus deve render o mesmo jogo.
Alguma pesquisa foi feita sobre isso?
machine-learning
aidan.plenert.macdonald
fonte
fonte
Respostas:
A partir do comentário de Emre acima, a Seção 4.4 dos métodos teóricos de grupo em aprendizado de máquina de Risi Kondor tem informações detalhadas e provas sobre a criação de métodos de kernel que inerentemente possuem simetrias. Vou resumir isso de uma maneira esperançosamente intuitiva (eu sou um físico, não um matemático!).
A maioria dos algoritmos de ML tem uma multiplicação de matrizes como,si=∑jWij xj=∑jWij (e⃗ j⋅x⃗ )
com x⃗ sendo a entrada eWij sendo os pesos que desejam comboio.
Método do Kernel
Digite o domínio dos métodos do kernel e deixe o algoritmo manipular a entrada via,si=∑jWij k(ej, x)
onde agora se generalizar parax,ej∈X .
Considere-se um grupoG que actua em X através x→Tg(x) para o g∈G . Uma maneira simples de tornar nosso algoritmo invariável nesse grupo é criar um kernel,
kG(x,y)=1|G|∑g∈Gk(x,Tg(y))
comk(x,y)=k(Tg(x),Tg(y)) .
Então,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)
Parak(x,y)=x⋅y que funciona para todas as representações unitárias,
Que oferece uma matriz de transformação que pode simetrizar a entrada no algoritmo.
Exemplo SO (2)
Na verdade, apenas o grupo que mapeia paraπ2 rotações para simplificar.
Vamos executar a regressão linear nos dados(x⃗ i,yi)∈R2×R onde esperamos uma simetria rotacional.
Nosso problema de otimização se torna,minWjy~i∑i12(yi−y~i)2=∑jWjkG(ej,xi)+bi
O núcleok(x,y)=∥x−y∥2 satisfaz k(x,y)=k(Tg(x),Tg(y)) . Você também pode usar k(x,y)=x⋅y e uma variedade de núcleos.
Assim,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
Which yields the expected spherical symmetry!
Tic-Tac-Toe
Example code can be seen here. It shows how we can create a matrix that encodes the symmetry and use it. Note that this is really bad when I actually run it! Working with other kernels at the moment.
fonte
Turns out this is just the study of Invariant Theory applied to Machine Learning
fonte