20.12. Créer des réseaux de neurones avec Keras et TensorFlow

Les réseaux de neurones constituent un pilier fondamental dans le domaine du machine learning et du deep learning. Ils s’inspirent du fonctionnement du cerveau humain et ont la capacité d’apprendre des modèles complexes à partir de grands volumes de données. Keras, une API de haut niveau, et TensorFlow, une bibliothèque open source, sont deux outils puissants qui facilitent la création et la mise en œuvre de réseaux de neurones pour les tâches de classification et de régression. Dans ce chapitre, nous explorerons comment utiliser ces outils pour créer des réseaux de neurones efficaces.

Présentation de Keras et TensorFlow

TensorFlow, développé par l'équipe Google Brain, est une bibliothèque open source pour le calcul numérique et l'apprentissage automatique. Keras, quant à lui, est une API de haut niveau qui peut s'exécuter sur TensorFlow, permettant un prototypage rapide et une expérimentation plus facile avec les réseaux de neurones. Keras a été conçu pour être intuitif et flexible, facilitant ainsi le travail des développeurs et des chercheurs.

Réseaux de neurones pour la classification

Les tâches de classification impliquent de prédire des catégories discrètes à partir des données d'entrée. Par exemple, identifier si un e-mail est du spam ou non est une tâche de classification. Pour créer un réseau neuronal pour la classification à l'aide de Keras et TensorFlow, vous devez suivre les étapes de base suivantes :

  1. Importer les bibliothèques requises : vous commencerez par importer TensorFlow et Keras, ainsi que d'autres bibliothèques qui pourraient être utiles.
  2. Préparer les données : avant d'introduire des données dans un réseau neuronal, celles-ci doivent être correctement formatées et normalisées. Cela peut impliquer l'encodage de catégories (encodage à chaud), la normalisation des caractéristiques numériques et la division des données en ensembles d'entraînement et de test.
  3. Créer le modèle : avec Keras, vous pouvez créer un réseau neuronal de manière séquentielle en ajoutant des couches les unes après les autres. Pour la classification, vous terminerez généralement le réseau avec une couche softmax, qui convient à la classification multi-classe.
  4. Compilez le modèle : après avoir construit le modèle, vous devez le compiler en définissant la fonction de perte (comme l'entropie croisée catégorielle pour la classification multi-classe), l'optimiseur (comme Adam ou SGD). et des mesures de performances (telles que la précision).
  5. Entraîner le modèle : le modèle est entraîné à l'aide des données d'entraînement, la validation étant effectuée à l'aide d'un ensemble de données de validation distinct. Pendant l'entraînement, les pondérations du réseau sont ajustées pour minimiser la fonction de perte.
  6. Évaluer le modèle : après l'entraînement, le modèle est évalué à l'aide de l'ensemble de données de test pour vérifier ses performances globales.

Réseaux de neurones pour la régression

Contrairement à la classification, les tâches de régression impliquent la prédiction de valeurs continues. Un exemple classique consiste à prédire le prix d’une maison en fonction de ses caractéristiques. La construction d'un réseau neuronal pour la régression est similaire à celle pour la classification, mais avec quelques différences clés :

  1. La couche de sortie ne comporte généralement qu'un seul neurone puisque nous prédisons une seule valeur continue.
  2. La fonction d'activation dans la couche de sortie est souvent la fonction linéaire, car nous ne sommes pas limités aux valeurs comprises entre 0 et 1.
  3. La fonction de perte utilisée est différente ; La perte quadratique moyenne (MSE) est un choix courant pour les problèmes de régression.

Mise en œuvre pratique

Prenons un exemple pratique de mise en œuvre d'un réseau neuronal simple pour la classification avec Keras et TensorFlow. Supposons que nous disposions d'un ensemble de données d'images de chiffres manuscrits et que nous souhaitions classer chaque image en un chiffre de 0 à 9.

importer tensorflow en tant que tf
à partir de tensorflow.keras.models, importation séquentielle
à partir de tensorflow.keras.layers importer Dense, Flatten, Softmax

# Charger l'ensemble de données
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0

# Construire le modèle séquentiel
modèle = Séquentiel([
    Aplatir(input_shape=(28, 28)),
    Dense(128, activation='relu'),
    Dense(10)
])

# Ajouter un calque Softmax
modèle.ajouter(Softmax())

# Compiler le modèle
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              métriques=['précision'])

# Former le modèle
model.fit (x_train, y_train, époques = 5)

# Évaluer le modèle
modèle.evaluate(x_test, y_test)

Dans cet exemple, nous chargeons d'abord l'ensemble de données MNIST et normalisons les images. Nous construisons ensuite un modèle séquentiel avec un calque Flatten pour transformer la matrice 2D de chaque image en un vecteur 1D,suivie d'une couche dense (Dense) avec activation ReLU et d'une autre couche dense qui produira les logits pour chacune des 10 classes. La couche Softmax est ajoutée pour convertir les logits en probabilités. Enfin, nous compilons le modèle avec l'optimiseur Adam, la perte d'entropie croisée catégorielle et la métrique de précision, entraînons le modèle sur les données d'entraînement et évaluons sa précision sur les données de test.

Considérations finales

La création de réseaux neuronaux avec Keras et TensorFlow est un processus itératif et expérimental. Il est souvent nécessaire d'ajuster l'architecture du réseau, les fonctions d'activation, les fonctions de perte, les optimiseurs et les hyperparamètres pour obtenir les meilleures performances. De plus, il est important d'utiliser des techniques telles que la validation croisée et l'ajustement fin pour garantir que le modèle est robuste et se généralise bien aux données invisibles.

Avec la pratique, vous deviendrez plus à l'aise dans la création et l'optimisation de réseaux de neurones pour différents types de tâches d'apprentissage automatique. Keras et TensorFlow fournissent les outils dont vous avez besoin pour que vous puissiez vous concentrer sur ce qui compte le plus : résoudre des problèmes complexes grâce au machine learning.

Répondez maintenant à l’exercice sur le contenu :

Parmi les affirmations suivantes concernant la création de réseaux de neurones à l'aide de Keras et TensorFlow, laquelle est correcte ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Construire des réseaux de neurones avec Keras et TensorFlow : applications dans le traitement du langage naturel et la vision par ordinateur

Page suivante de lebook gratuit :

80Construire des réseaux de neurones avec Keras et TensorFlow : applications dans le traitement du langage naturel et la vision par ordinateur

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte