Dada una red neuronal que toma como entrada puntos de datos: . Decimos que es permutación invariante si
para cualquier permutación .
¿Podría alguien recomendar un punto de partida (artículo, ejemplo u otro documento) para redes neuronales invariantes de permutación?
neural-networks
machine-learning
reference-request
Josef Ondrej
fuente
fuente
Respuestas:
Hasta donde yo sé, nadie ha intentado esto, debido a la forma en que está estructurada la red. Cada entrada tiene un conjunto de pesos, que están conectados a más entradas. Si las entradas cambian, la salida también lo hará .
Sin embargo, puede construir una red que se acerque a este comportamiento. En su conjunto de entrenamiento, use el aprendizaje por lotes y, para cada muestra de entrenamiento, proporcione todas las permutaciones posibles a la red de modo que aprenda a ser invariante de permutación. Esto nunca será exactamente invariante, solo podría estar cerca .
Otra forma de hacerlo es replicar los pesos para todas las entradas. Por ejemplo, supongamos que tiene 3 entradas (i0, i1, i2), y la siguiente capa oculta tiene 2 nodos (hl0, hl1) y la función de activación F. Suponiendo una capa completamente conectada, tiene 2 pesos w0 y w1. Los nodos de la capa oculta hl0 y hl1 están dados, respectivamente, por
hl0 = F (i0w0 + i1w0 + i2w0)
hl1 = F (i0w1 + i1w1 + i2w1)
Por lo tanto, le da una capa oculta cuyos valores son permutación invariante de la entrada. A partir de ahora, puede aprender y construir el resto de la red como mejor le parezca. Este es un enfoque derivado de capas convolucionales.
Fuera de tema, esto parece un proyecto genial. Si desea cooperar en algún proyecto de investigación, contácteme (consulte mi perfil)
fuente
Aquí hay algunos que podrían ser lo que estás buscando:
fuente
He implementado la capa permutacional aquí usando Keras: https://github.com/off99555/superkeras/blob/master/permutational_layer.py
Puede llamar a la
PermutationalModule
función para usarla.Implementado siguiendo este documento: https://arxiv.org/pdf/1612.04530.pdf
La idea es comparar todos los pares de N ^ 2 pares de N entradas, usar el modelo con pesos compartidos, luego usar la función de agrupación N veces en N entradas. El resultado puede volver a usar la agrupación, pero en el documento, no mencionan otra agrupación.
fuente