WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Conception de filtre d'un réseau d'objets connectés par apprentissage profond


par Sandra Rochelle NYABENG MINEME
SUP'PTIC - Ingénieur de sécurité des réseaux et des systemes 2015
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

4.1.3. Formation du modèle d'apprentissage profond

Nous avons créé deux réseaux de neurones différents pour la détection du trafic malveillant. Un réseau multicouche profond et un réseau récurrent plus spécifiquement un Long Short Term Memory (LSTM). Ils sont écrits sur jupyter.

Nous avons ajouté des couches du réseau avec un certain nombre de paramètres qui vont permettre de l'entraîner et de créer un modèle.

D'abord nous instancions la classe Sequential() grâce à laquelle nous créons le modèle et nous ajoutons les couches LSTM, Dense et Dropout. Nous nous servons de la méthode add() pour LSTM et tf.keras.layers pour MLP pour ajouter de nouvelles couches. Nous y ajoutons des paramètres comme le nombre de neurones de la couche, Nous spécifions qu'on ajoutera plus de couches au modèle avec le paramètre return_sequences (dans le cas du LSTM), la fonction d'activation relu et sur la première couche Nous ajoutons le nombre de pas de temps.

Après chaque nouvelle couche, nous ajoutons une couche de suppression, au modèle LSTM. C'est une couche d'abandon qui permet d'éviter le sur-ajustement qui est un phénomène dans lequel un modèle d'apprentissage automatique fonctionne mieux sur les données d'entraînement que sur les données de test. Nous nous sommes servis de la méthode Dropout().

Pour rendre notre modèle plus robuste, nous ajoutons une couche Dense() à la fin du modèle. Le nombre de neurones dans la couche dense sera fixé à 6 car nous voulons prédire 6 classes dans la sortie. Nous ajouterons aussi la fonction d'activation softmax pour obtenir les sorties sous formes de probabilités, c'est-à-dire que la somme des résultats en sortie doit donner 1.

Le travail suivant consiste à compiler le réseau de couches que nous venons de créer avant de pouvoir l'entraîner sur les données d'entraînement. Nous utilisons l'erreur quadratique moyenne comme fonction de perte afin de réduire la perte et pour optimiser l'algorithme, nous utilisons l'optimiseur adam et sgd. Nous ajoutons aussi la précision comme métrique, la perte étant ajoutée par défaut.

Figure 25 : Architecture réseau LSTM

Notre réseau de neurones LSTM est donc constitué de deux couches intermédiaires, de 18 neurones à l'entrée et à 5 neurones à la couche de sortie. Nous avons aussi ajouté deux couches dropout pour la régularisation.

Figure 26 : Architecture réseau MLP

Le réseau MLP est similaire mais sans couches de régularisation.

Nous pouvons maintenant former le modèle que nous avons défini. Nous utilisons la méthode fit() sur le modèle en transmettant les données d'entraînement, le nombre d' « epoch » et la taille de chaque batch. Nous ajoutons aussi les données de validation qui nous permettra ainsi d'obtenir la précision de validation et la perte de validation.

En ce qui concerne le second modèle, il s'agit plutôt d'un algorithme écrit en python (sans jupyter). A chaque objet type nous avons un classifieur. Donc une empreinte doit être traitée par les différents classifieurs de type d'objets pour trouver celui auquel il correspond. Donc à chaque fois qu'une nouvelle empreinte d'un nouvel appareil est capturée, un nouveau classifieur est entraîné sans modification aucune aux classifieurs existants. Ceci évite un coût de réapprentissage. Cette approche permet la découverte de nouveaux appareils et ne force aucune empreinte à correspondre à une classe donnée.

NB : On parle de nouvelle empreinte lorsque celle-ci ne correspond à aucun classifieur.

Toutefois une même empreinte peut correspondre à différents types d'objets d'après les résultats du classifieur. Une seconde étape consiste donc à calculer la distance entre les différents types d'objets trouvés. Mais dans notre travail nous n'avons pas pris en compte cette seconde étape et nous avons plutôt pris la probabilité la plus élevé !

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Tu supportes des injustices; Consoles-toi, le vrai malheur est d'en faire"   Démocrite