Exemple 1 Modèle


Mélanger les données

Mélangez toujours les données avant l'entraînement.

Lorsqu'un modèle est formé, les données sont divisées en petits ensembles (lots). Chaque lot est ensuite introduit dans le modèle. Le brassage est important pour éviter que le modèle ne récupère les mêmes données. Si vous utilisez deux fois les mêmes données, le modèle ne pourra pas généraliser les données et donner le bon résultat. Le brassage donne une meilleure variété de données dans chaque lot.

Exemple

tf.util.shuffle(data);

Tenseurs TensorFlow

Pour utiliser TensorFlow, les données d'entrée doivent être converties en données Tensor :

// Map x values to Tensor inputs
const inputs = values.map(obj => obj.x);
// Map y values to Tensor labels
const labels = values.map(obj => obj.y);

// Convert inputs and labels to 2d tensors
const inputTensor = tf.tensor2d(inputs, [inputs.length, 1]);
const labelTensor = tf.tensor2d(labels, [labels.length, 1]);

Normalisation des données

Les données doivent être normalisées avant d'être utilisées dans un réseau de neurones.

Une plage de 0 à 1 utilisant min-max est souvent préférable pour les données numériques :

const inputMin = inputTensor.min();
const inputMax = inputTensor.max();
const labelMin = labelTensor.min();
const labelMax = labelTensor.max();
const nmInputs = inputTensor.sub(inputMin).div(inputMax.sub(inputMin));
const nmLabels = labelTensor.sub(labelMin).div(labelMax.sub(labelMin));

Modèle Tensorflow

Un modèle d'apprentissage automatique est un algorithme qui produit une sortie à partir d'une entrée.

Cet exemple utilise 3 lignes pour définir un modèle ML :

const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [1], units: 1, useBias: true}));
model.add(tf.layers.dense({units: 1, useBias: true}));

Modèle de ML séquentiel

modèle const = tf.sequential(); crée un modèle de ML séquentiel .

Dans un modèle séquentiel, l'entrée passe directement à la sortie. D'autres modèles peuvent avoir plusieurs entrées et plusieurs sorties. Sequential est le modèle ML le plus simple. Il permet de construire un modèle couche par couche, avec des poids qui correspondent à la couche suivante.

Couches TensorFlow

model.add() est utilisé pour ajouter deux couches au modèle.

tf.layer.dense est un type de calque qui fonctionne dans la plupart des cas. Il multiplie ses entrées par une matrice de poids et ajoute un nombre (biais) au résultat.

Formes et unités

inputShape : [1] parce que nous avons 1 entrée (x = puissance).

unités : 1 définit la taille de la matrice de poids : 1 poids pour chaque entrée (valeur x).


Compilation d'un modèle

Compilez le modèle avec un optimiseur et une fonction de perte spécifiés :

model.compile({loss: 'meanSquaredError', optimizer:'sgd'});

Le compilateur est configuré pour utiliser l' optimiseur sgd . Il est simple à utiliser et assez efficace.

meanSquaredError est la fonction que nous voulons utiliser pour comparer les prédictions du modèle et les vraies valeurs.