Main Content

regressionLayer

Livello di output della regressione (non consigliato)

regressionLayer non è consigliata. Utilizzare la funzione trainnet e impostare invece la funzione di perdita su "mse". Per ulteriori informazioni, vedere Cronologia della versione.

Descrizione

Un livello di regressione calcola la perdita dell'errore quadratico semi-mediano per le attività di regressione.

layer = regressionLayer restituisce il livello di output della regressione per una rete neurale come un oggetto RegressionOutputLayer.

esempio

layer = regressionLayer(Name,Value) imposta le proprietà opzionali Name and ResponseNames utilizzando le coppie nome-valore. Ad esempio, regressionLayer('Name','output') crea un livello di regressione con il nome 'output'. Racchiudere ciascun nome della proprietà tra virgolette singole.

Esempi

comprimi tutto

Creare un livello di output della regressione.

Creare un livello di output della regressione con il nome 'routput'.

layer = regressionLayer('Name','routput')
layer = 
  RegressionOutputLayer with properties:

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

La funzione di perdita predefinita per la regressione è l'errore quadratico medio.

Includere un livello di output della regressione in un array di livelli.

layers = [ ...
    imageInputLayer([28 28 1])
    convolution2dLayer(12,25)
    reluLayer
    fullyConnectedLayer(1)
    regressionLayer]
layers = 
  5x1 Layer array with layers:

     1   ''   Image Input         28x28x1 images with 'zerocenter' normalization
     2   ''   2-D Convolution     25 12x12 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                ReLU
     4   ''   Fully Connected     1 fully connected layer
     5   ''   Regression Output   mean-squared-error

Argomenti di input

comprimi tutto

Argomenti nome-valore

Specificare coppie opzionali di argomenti come Name1=Value1,...,NameN=ValueN, dove Name è il nome dell’argomento e Value è il valore corrispondente. Gli argomenti nome-valore devono comparire dopo gli altri argomenti, ma l'ordine delle coppie non ha importanza.

Prima della R2021a, utilizzare le virgole per separare ogni nome e valore e racchiudere Name tra virgolette.

Esempio regressionLayer('Name','output') crea un livello di regressione con il nome 'output'

Nome del livello, specificato come un vettore di carattere o uno scalare di stringa. Per l'input dell'array di Layer, la funzione trainNetwork assegna automaticamente i nomi ai livelli con il nome "".

L'oggetto RegressionOutputLayer memorizza questa proprietà come vettore di carattere.

Tipi di dati: char | string

Nomi delle risposte, specificati come un array di celle di vettori di carattere o un array di stringhe. Al momento dell'addestramento, il software imposta automaticamente i nomi delle risposte in base ai dati di addestramento. Per impostazione predefinita è {}.

Tipi di dati: cell

Argomenti di output

comprimi tutto

Livello di output della regressione, restituito come un oggetto RegressionOutputLayer.

Ulteriori informazioni

comprimi tutto

Livello di output della regressione

Un livello di regressione calcola la perdita dell'errore quadratico semi-mediano per le attività di regressione. Per i tipici problemi di regressione, un livello di regressione deve seguire il livello finale completamente connesso.

Per una singola osservazione, l'errore quadratico medio è dato da:

MSE=i=1R(tiyi)2R,

dove R è il numero delle risposte, ti è l’output target e yi è la previsione della rete per la risposta i.

Per le reti di regressione dell’immagine e da sequenza-a-uno, la funzione di perdita del livello di regressione è l’errore quadratico semi-mediano delle risposte previste, non normalizzate da R:

loss=12i=1R(tiyi)2.

Per le reti di regressione da immagine-a-immagine, la funzione di perdita del livello di regressione è l’errore quadratico semi-mediano delle risposte previste per ciascun pixel, non normalizzate da R:

loss=12p=1HWC(tpyp)2,

dove H, W e C indicano rispettivamente l’altezza, la larghezza e il numero di canali dell’output e p indicizza linearmente ciascun elemento (pixel) di t e y.

Per le reti di regressione da sequenza-a-sequenza, la funzione di perdita del livello di regressione è l’errore quadratico semi-mediano delle risposte previste per ciascuna fase temporale, non normalizzate da R:

loss=12Si=1Sj=1R(tijyij)2,

dove S è la lunghezza della sequenza.

Durante l'addestramento, il software calcola la perdita media sulle osservazioni nel mini-batch.

Funzionalità estese

Cronologia versioni

Introdotto in R2017a

comprimi tutto

R2024a: Non consigliato

A partire dalla release R2024a, non è più consigliato utilizzare gli oggetti RegressionOutputLayer, utilizzare trainnet e impostare invece la funzione di perdita su "mse".

Non è prevista la sospensione dell'assistenza per gli oggetti RegressionOutputLayer. Comunque, la funzione trainnet presenta invece questi vantaggi, ed è quindi consigliata:

  • trainnet supporta gli oggetti dlnetwork, che supportano una gamma più ampia di architetture di rete che è possibile creare o importare da piattaforme esterne.

  • trainnet consente di specificare le funzioni di perdita con facilità. È possibile scegliere tra le funzioni di perdita integrate o specificare una funzione di perdita personalizzata.

  • trainnet restituisce un oggetto dlnetwork, che è un tipo di dati unificato che supporta la costruzione di reti, la predizione, l'addestramento integrato, la visualizzazione, la compressione, la verifica e i loop di addestramento personalizzati.

  • trainnet è generalmente più veloce di trainNetwork.

Questa tabella mostra alcuni usi tipici della funzione trainNetwork con gli oggetti RegressionOutputLayer e come aggiornare il codice per utilizzare invece la funzione trainnet.

Non consigliatoConsigliato
net = trainNetwork(X,T,layers,options), dove layers contiene un oggetto RegressionOutputLayer.

net = trainnet(X,T,layers,"mse",options);
In questo esempio, layers specifica la stessa rete senza un oggetto RegressionOutputLayer.

net = trainNetwork(data,layers,options), dove layers contiene un oggetto RegressionOutputLayer.

net = trainnet(data,layers,"mse",options);
In questo esempio, layers specifica la stessa rete senza un oggetto RegressionOutputLayer.