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
train(Deep Learning Toolbox) |feedforwardnet(Deep Learning Toolbox) |thingSpeakRead