Main Content

regressionLayer

(No recomendado) Capa de salida de regresión

No se recomienda el uso de regressionLayer. En su lugar, utilice la función trainnet y establezca la función de pérdida en "mse". Para obtener más información, consulte Historial de versiones.

Descripción

Una capa de regresión calcula la pérdida del error cuadrático medio dividido de las tareas de regresión.

layer = regressionLayer devuelve una capa de salida de regresión de una red neuronal como un objeto RegressionOutputLayer.

ejemplo

layer = regressionLayer(Name,Value) establece las propiedades opcionales Name y ResponseNames usando pares nombre-valor. Por ejemplo, regressionLayer('Name','output') crea una capa de regresión con el nombre 'output'. Encierre el nombre de cada propiedad entre comillas simples.

Ejemplos

contraer todo

Cree una capa de salida de regresión.

Cree una capa de salida de regresión con el nombre 'routput'.

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

             Name: 'routput'
    ResponseNames: {}

   Hyperparameters
     LossFunction: 'mean-squared-error'

La función de pérdida predeterminada de la regresión es el error cuadrático medio.

Incluya una capa de salida de regresión en un arreglo de capas.

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

Argumentos de entrada

contraer todo

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

En las versiones anteriores a la R2021a, use comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: regressionLayer('Name','output') crea una capa de regresión con el nombre 'output'

Nombre de la capa, especificado como un vector de caracteres o un escalar de cadena. Para entradas en forma de arreglo Layer, la función trainNetwork asigna automáticamente nombres a las capas con el nombre "".

El objeto RegressionOutputLayer almacena esta propiedad como un vector de caracteres.

Tipos de datos: char | string

Nombres de las respuestas, especificados como un arreglo de celdas de vectores de caracteres o como un arreglo de cadena. En el momento del entrenamiento, el software establece automáticamente los nombres de respuestas de acuerdo con los datos del entrenamiento. El valor predeterminado es {}.

Tipos de datos: cell

Argumentos de salida

contraer todo

Capa de salida de regresión, devuelta como un objeto RegressionOutputLayer.

Más acerca de

contraer todo

Capa de salida de regresión

Una capa de regresión calcula la pérdida del error cuadrático medio dividido de las tareas de regresión. En problemas típicos de regresión, la capa de regresión debe ir detrás de la capa totalmente conectada final.

Para una sola observación, el error cuadrático medio se proporciona de esta manera:

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

donde R es el número de respuestas, ti corresponde a la salida objetivo y yi es la predicción de la red de la respuesta i.

En las redes de regresión de imagen y secuencia a uno, la función de pérdida de la capa de regresión es el error cuadrático medio dividido de las respuestas de la predicción, sin que R aplique la normalización:

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

En las redes de regresión de imagen a imagen, la función de pérdida de la capa de regresión es el error cuadrático medio dividido de las respuestas de la predicción de cada píxel, sin que R aplique la normalización:

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

donde H, W y C determinan la altura, anchura y el número de canales de la salida (respectivamente), y p indexa en cada elemento (píxel) de t e y de forma lineal.

En las redes de regresión de secuencia a secuencia, la función de pérdida de la capa de regresión es el error cuadrático medio dividido de las respuestas de la predicción de cada unidad de tiempo, sin que R aplique la normalización:

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

donde S corresponde a la longitud de la secuencia.

Durante el entrenamiento, el software calcula la pérdida media a lo largo de las observaciones del minilote.

Capacidades ampliadas

Historial de versiones

Introducido en R2017a

contraer todo

R2024a: No recomendado

A partir de la versión R2024a, los objetos RegressionOutputLayer no están recomendados. En su lugar, utilice trainnet y establezca la función de pérdida en "mse".

No está previsto eliminar el soporte para los objetos RegressionOutputLayer. Sin embargo, en su lugar se recomienda la función trainnet, que tiene estas ventajas:

  • trainnet admite los objetos dlnetwork, que admiten una gama más amplia de arquitecturas de red que puede crear o importar desde plataformas externas.

  • trainnet le permite especificar fácilmente funciones de pérdida. Puede seleccionar entre funciones de pérdida integradas o especificar una función de pérdida personalizada.

  • trainnet produce como salida un objeto dlnetwork, que es un tipo de datos unificado que admite la creación de redes, la predicción, el entrenamiento integrado, la visualización, la compresión, la verificación y los bucles de entrenamiento personalizados.

  • trainnet suele ser más rápido que trainNetwork.

Esta tabla muestra algunos usos habituales de la función trainNetwork con los objetos RegressionOutputLayer y cómo actualizar el código para usar la función trainnet en su lugar.

No recomendadoRecomendado
net = trainNetwork(X,T,layers,options), donde layers contiene un objeto RegressionOutputLayer.

net = trainnet(X,T,layers,"mse",options);
En este ejemplo, layers especifica la misma red sin un objeto RegressionOutputLayer.

net = trainNetwork(data,layers,options), donde layers contiene un objeto RegressionOutputLayer.

net = trainnet(data,layers,"mse",options);
En este ejemplo, layers especifica la misma red sin un objeto RegressionOutputLayer.