Comment la couche d'intégration est formée dans la couche d'intégration Keras

8

Comment la couche d'intégration est-elle formée dans la couche d'intégration Keras? (par exemple, utiliser le backend tensorflow, ce qui signifie qu'il est similaire à word2vec, glove ou fasttext)

Supposons que nous n'utilisions pas une intégration préentraînée.

william007
la source

Réponses:

6

Les deux réponses sont fausses.

Un calque d'intégration est un calque formable qui contient 1 matrice d'intégration, qui est bidimensionnelle, sur un axe le nombre de valeurs uniques que l'entrée catégorielle peut prendre (par exemple 26 dans le cas de l'alphabet en minuscules) et sur l'autre axe la dimensionnalité de votre espace d'intégration. Le rôle de la couche d'intégration est de mapper une catégorie dans un espace dense d'une manière utile pour la tâche à accomplir, au moins dans une tâche supervisée. Cela signifie généralement qu'il existe une valeur sémantique dans les vecteurs d'intégration et que les catégories proches dans cet espace auront une signification proche pour la tâche.

Ceci est lié au codage à chaud dans le sens où il mappe une catégorie discrète en une représentation d'entités vectorielles. Vous pouvez toujours le faire pour un réseau de neurones, mais si vous l'utilisez dans une couche dense, vous créeriez une énorme quantité de poids dont la plupart ne sont pas utilisés régulièrement. Mettre une couche d'intégration entre les deux réduit la quantité de poids apprenables avant de les alimenter pour interagir avec d'autres parties de votre entrée. Un autre avantage est que la matrice d'intégration fonctionne essentiellement comme une table de recherche, vous pouvez donc vraiment utiliser la rareté de l'index de votre catégorie pour rechercher la valeur actuelle de l'intégration et lorsque vous appliquez une rétropropagation en adaptant uniquement cette entrée de la matrice de poids .

http://colah.github.io/posts/2014-07-NLP-RNNs-Representations -> ce billet de blog explique clairement comment la couche d'intégration est entraînée dans la couche d'intégration Keras. J'espère que cela t'aides.

Jan van der Vegt
la source
Enfin une bonne réponse, merci. Nous pourrions ajouter que Word2Vec est formé en tant qu'objectif de modélisation de langage, ce qui le rend différent des incorporations formées pour une tâche spécifique, comme vous l'avez dit.
Elliot
0

Pour autant que je sache, il s'agit d'un simple encodeur automatique, ce qui signifie qu'il ne fait que mapper l'entrée dans un autre espace, donc pas de formation de fantaisie, juste un feed-forward et un backprop simples. C'est pourquoi il est plutôt rapide de s'entraîner.

Si vous souhaitez utiliser des intégrations pré-formées, vous pouvez le faire de cette façon

Valentin Calomme
la source
Un autoencodeur est un modèle qui se prédit. C'est ce que vous vouliez dire?
kbrose
En effet, vous pouvez donc le voir comme un réseau neuronal avec une seule couche cachée, et où l'entrée et la sortie sont identiques, je ne suis pas certain que c'est ce que Keras utilise, mais étant donné la vitesse et la documentation, j'aurais tendance à penser que façon
Valentin Calomme
La couche d'intégration elle-même ne fait pas cela. Il affecte uniquement un vecteur à chaque entrée entière unique. Vous pouvez créer un modèle d'auto-encodage autour de celui-ci pour entraîner les plongements, mais il ne fait pas partie de la couche d'intégration.
kbrose
J'étais confus parce que votre réponse correspond à ma compréhension de ce que fait la couche d'intégration en plus de l'appeler un "autoencoder".
kbrose
0

La couche d'intégration utilise une matrice d'intégration pour cartographier les données et n'est jamais mise à jour pendant la formation . Il n'y a pas de paramètres entraînables dans la couche Keras Embedding. Vous pouvez consulter les documents de couche d'intégration Keras pour une compréhension détaillée.

thanatoz
la source