Contenuto principale

Questa pagina è stata tradotta con la traduzione automatica. Fai clic qui per vedere l’originale in inglese.

Creare e addestrare una rete neurale feedforward

Questo esempio mostra come addestrare una rete neurale feedforward per prevedere la temperatura.

Leggi i dati dal canale ThingSpeak della stazione meteorologica

Il canale 12397 di ThingSpeak ™ contiene dati provenienti dalla stazione meteorologica MathWorks ®, situata a Natick, Massachusetts. I dati vengono raccolti una volta al minuto. I campi 2, 3, 4 e 6 contengono rispettivamente i dati relativi alla velocità del vento (mph), all'umidità relativa, alla temperatura (F) e alla pressione atmosferica (inHg). Leggere i dati dal canale 12397 utilizzando la funzione thingSpeakRead.

data = thingSpeakRead(12397,'Fields',[2 3 4 6],'DateRange',[datetime('January 7, 2018'),datetime('January 9, 2018')],...
    'outputFormat','table');

Assegna variabili di input e valori di destinazione

Assegnare variabili di input e calcolare il punto di rugiada dalla temperatura e dall'umidità relativa da utilizzare come target. Convertire la temperatura da Fahrenheit a Celsius e specificare le costanti per il vapore acqueo (b) e la pressione barometrica (c). Calcolare il valore intermedio 'gamma' e assegnare i valori target per la rete.

inputs = [data.Humidity'; data.TemperatureF'; data.PressureHg'; data.WindSpeedmph'];
tempC = (5/9)*(data.TemperatureF-32);
b = 17.62;
c = 243.5;
gamma = log(data.Humidity/100) + b*tempC ./ (c+tempC);
dewPointC = c*gamma ./ (b-gamma);
dewPointF = (dewPointC*1.8) + 32;
targets = dewPointF';

Creare e addestrare la rete feedforward a due livelli

Utilizzare la funzione feedforwardnet per creare una rete feedforward a due livelli. La rete ha uno strato nascosto con 10 neuroni e uno strato di output. Utilizzare la funzione train per addestrare la rete feedforward utilizzando gli input.

net = feedforwardnet(10);
net.trainParam.showWindow = false; % Turn off display progress dialog.
[net,tr] = train(net,inputs,targets);

Utilizzare il modello addestrato per prevedere i dati

Dopo aver addestrato e convalidato la rete, è possibile utilizzare l'oggetto di rete per calcolare la risposta della rete a qualsiasi input, in questo caso il punto di rugiada per il quinto punto dati di input.

output = net(inputs(:,5))
output =

  -15.6383

Vedi anche

Funzioni