RbmSpinSym (a.k.a. a convolutional Rbm defined on a arbitrary graph with symmetries) is currently implemented only in numpy. This is an issue since we plan to remove numpy support very soon.
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
@VolodyaCO you mentioned that your are playing with convnet models in jax? If you have time, it wouldn't be a bad idea to see if one can implement RbmSpinSym in there (which, essentially, is a convolutional network) or (easier) just write a pre-cooked convnet that takes one of our 1d or 2d graphs and uses one of the basic convnets in jax?
Mmm sure. I'll have to read the previous implementation in numpy because
I've never implemented rbms with symmetries before. But I have the time.
Maybe next week I'll give it a try.
@VolodyaCO https://github.com/VolodyaCO you mentioned that your are
playing with convnet models in jax? If you have time, it wouldn't be a bad
idea to see if one can implement RbmSpinSym in there (which, essentially,
is a convolutional network) or (easier) just write a pre-cooked convnet
that takes one of our 1d or 2d graphs and uses one of the basic convnets in
jax?
--
Aviso legal: El contenido de este mensaje y los archivos adjuntos son
confidenciales y de uso exclusivo de la Universidad Nacional de Colombia.
Se encuentran dirigidos sólo para el uso del destinatario al cual van
enviados. La reproducción, lectura y/o copia se encuentran prohibidas a
cualquier persona diferente a este y puede ser ilegal. Si usted lo ha
recibido por error, infórmenos y elimínelo de su correo. Los Datos
Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra
Política de Datos Personales que podrá consultar en la página web
www.unal.edu.cohttp://www.unal.edu.co/.* *Las opiniones, informaciones,
conclusiones y cualquier otro tipo de dato contenido en este correo
electrónico, no relacionados con la actividad de la Universidad Nacional de
Colombia, se entenderá como personales y de ninguna manera son avaladas por
la Universidad.
@gcarleo I am looking at the implementation in numpy. I see that an original RBM with all its connections is rewritten to account for all permutations that satisfy a given imposed symmetry. When the symmetries are imposed, many parameters are redundant, creating a "new RBM" with less parameters, which are a combination of the previous parameters. This process results from taking the wavefunction psi(x, theta) to sum_P psi(P(x), theta), where P denotes the permutations (I think).
However, I do not see the immediate relation with a convolutional network for a general set of permutations. In the case of translational invariance of a 1D (or even a 2D) lattice, I understand that for this case the architecture would be: input -> convolutional layer (with periodic padding, the filter size is analogous to the number of hidden units of the RBM) -> logcosh application to the resulting computation -> sumlayer.
This would result, in an RBM with translational symmetry. Right?
I sincerely don't see how the conv nets can be used for a general case with arbitrary permutations in the symmetry list. I could write the RbmSpinSym in jax, just by "translating" what's already done in numpy, if you want me to.