Modèle prédictif avec TensorFlow

Cette démonstration présente un exemple simplifié d'apprentissage supervisé utilisant TensorFlow et Keras.
L'objectif est d'illustrer la mise en place d'un réseau de neurones capable d'apprendre une relation mathématique à partir de données d'entrée et de produire des prédictions.

Objectif du modèle

Ce prototype illustre les bases de l'apprentissage automatique : le modèle reçoit des exemples d'entrées/sorties, apprend progressivement la relation entre les données, puis tente de généraliser cette logique sur de nouvelles valeurs.

Même simplifié, ce type d'approche constitue le fondement de nombreux systèmes de prédiction modernes.

Extrait de code utilisé :


                from tensorflow import keras
                from tensorflow.keras import layers
                     
                model = keras.Sequential()

                model.add(layers.Dense(units=6, input_shape=[1]))  
                model.add(layers.Dense(units=128))
                model.add(layers.Dense(units=128))
                model.add(layers.Dense(units=1))

                entree = [10, 24, 31, 40, 55]
                sortie = [48, 90, 111, 138, 183]

                model.compile(loss='mean_squared_error',
                             optimizer='Adam')

                model.fit(x=entree, y=sortie, epochs=1000)

                while True:
                    x = int(input('Nombre :'))
                    print(model.predict([x]))

            

Exemple de prédiction

Pour une entrée égale à 75, le modèle prédit :

242.99997

le résultat attendu étant 243, le modèle a correctement appris la relation mathématique.

Sequential()

crée un modèle où les couches s’ajoutent les unes à la suite des autres, comme une chaîne.

layers.Dense()

ajoute une couche de neurones entièrement connectée (chaque neurone est lié à tous ceux de la couche précédente).

input_shape=[1]

indique qu’on donne un seul nombre en entrée.

compile()

prépare le modèle pour l'entraînement (choix de l’algorithme d’apprentissage et de la fonction de mesure d’erreur).

fit()

lance l’apprentissage sur les données fournies.

predict()

permet de faire une prédiction avec une nouvelle valeur.