Voorbeeld 2 Model


Gegevens in willekeurige volgorde

Schud gegevens altijd voordat u gaat trainen.

Wanneer een model wordt getraind, worden de gegevens opgedeeld in kleine sets (batches). Elke batch wordt vervolgens aan het model toegevoerd. Shuffelen is belangrijk om te voorkomen dat het model dezelfde gegevens opnieuw krijgt. Als dezelfde gegevens twee keer worden gebruikt, kan het model de gegevens niet generaliseren en de juiste uitvoer geven. Shuffelen geeft een betere variëteit aan gegevens in elke batch.

Voorbeeld

tf.util.shuffle(data);

TensorFlow Tensors

Om TensorFlow te gebruiken, moeten invoergegevens worden geconverteerd naar tensorgegevens:

// 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]);

Gegevens normalisatie

Gegevens moeten worden genormaliseerd voordat ze in een neuraal netwerk worden gebruikt.

Een bereik van 0 - 1 met min-max is vaak het beste voor numerieke gegevens:

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));

Tensorflow-model

Een Machine Learning Model is een algoritme dat output produceert uit input.

In dit voorbeeld worden 3 regels gebruikt om een ML-model te definiëren :

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

Sequentieel ML-model

const-model = tf.sequentiële(); maakt een sequentieel ML-model aan .

In een sequentieel model stroomt de input direct naar de output. Andere modellen kunnen meerdere ingangen en meerdere uitgangen hebben. Sequential is het gemakkelijkste ML-model. Hiermee kunt u laag voor laag een model bouwen, met gewichten die overeenkomen met de volgende laag.

TensorFlow-lagen

model.add() wordt gebruikt om twee lagen aan het model toe te voegen.

tf.layer.dense is een laagtype dat in de meeste gevallen werkt. Het vermenigvuldigt zijn invoer met een gewichtsmatrix en voegt een getal (bias) toe aan het resultaat.

Vormen en eenheden

inputShape: [1] omdat we 1 input hebben (x = kamers).

eenheden: 1 definieert de grootte van de gewichtsmatrix: 1 gewicht voor elke invoer (x-waarde).


Een model samenstellen

Compileer het model met een gespecificeerde optimalisatie- en verliesfunctie :

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

De compiler is ingesteld om de sgd- optimizer te gebruiken. Het is eenvoudig te gebruiken en behoorlijk effectief.

meanSquaredError is de functie die we willen gebruiken om modelvoorspellingen en ware waarden te vergelijken.