Couches d’embedding (Embedding)

Fonctions :

  • Embedding()

    La couche Embedding sert à transformer des entiers représentant des mots (ou autres indices catégoriels) en vecteurs denses à dimension fixe. Elle est très utilisée en traitement du langage naturel pour représenter des mots sous forme de vecteurs numériques appris, facilitant ainsi la compréhension par les modèles de deep learning.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Embedding, Flatten, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    input_dim int Nombre total de mots (taille du vocabulaire).
    output_dim int Dimension des vecteurs de sortie (taille de l’embedding).
    input_length int Longueur des séquences d'entrée (nombre de mots par séquence). None
    mask_zero bool Si True, ignore l’index 0 dans les séquences (utile pour le padding). False
    embeddings_initializer str / callable Initialiseur des poids de l’embedding. 'uniform'

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Embedding, Flatten, Dense
    import numpy as np
    
    # Données simulées : 4 séquences de 5 mots, mots encodés par des entiers entre 0 et 99
    X = np.array([
        [1, 5, 10, 4, 2],
        [3, 7, 8, 1, 9],
        [5, 6, 7, 8, 9],
        [1, 3, 2, 4, 5]
    ])
    
    y = np.array([0, 1, 0, 1])
    
    # Modèle avec couche Embedding
    model = Sequential()
    model.add(Embedding(input_dim=100, output_dim=8, input_length=5))
    model.add(Flatten())  # Aplatit la sortie 2D en vecteur 1D
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()

    Explication du code :

    Importation des bibliothèques
    On importe les couches nécessaires depuis Keras pour construire un modèle séquentiel simple.
    Création des données
    Les données d’entrée sont 4 séquences contenant chacune 5 entiers, représentant des mots encodés.
    Définition du modèle
    La couche `Embedding` convertit chaque entier en un vecteur dense de dimension 8. La sortie (matrice 5×8 par séquence) est aplatie en un vecteur 1D avant d’être passée à une couche dense pour la classification binaire.
    Compilation
    Le modèle est compilé avec l’optimiseur Adam et la perte binaire, prêt à être entraîné.