ClassificationOutputLayer
(No recomendado) Capa de clasificación de salida
Se recomiendan los objetos ClassificationOutputLayer
. En su lugar, utilice la función trainnet
y establezca la función de pérdida en "crossentropy"
. Para obtener más información, consulte Historial de versiones.
Descripción
Una capa de clasificación calcula la pérdida de entropía cruzada de las tareas de clasificación y clasificación ponderada con clases mutuamente excluyentes.
Creación
Cree una capa de clasificación con classificationLayer
.
Propiedades
Clasificación de salida
Pesos de clase de la pérdida de entropía cruzada ponderada, especificados como un vector de números positivos o 'none'
.
Cada elemento de los pesos de clase del vector representa el peso de la clase correspondiente en la propiedad Classes
. Para especificar un vector de pesos de clase, debe especificar también las clases con la opción Classes
.
Si la propiedad ClassWeights
es 'none'
, la capa aplica la pérdida de entropía cruzada no ponderada.
Clases de la capa de salida, especificadas como un vector categórico, un arreglo de cadenas, un arreglo de celdas de vectores de caracteres o "auto"
. Si Classes
es "auto"
, el software establece automáticamente las clases en el momento del entrenamiento. Si especifica el arreglo de cadenas o el arreglo de celdas de vectores de caracteres str
, el software establece las clases de la capa de salida en categorical(str,str)
.
Tipos de datos: char
| categorical
| string
| cell
Esta propiedad o parámetro es de solo lectura.
Tamaño de la salida, especificado como entero positivo. Este valor es el número de etiquetas en los datos. Antes del entrenamiento, el tamaño de la salida se establece en 'auto'
.
Esta propiedad o parámetro es de solo lectura.
Función de pérdida para el entrenamiento, especificada como 'crossentropyex'
, que significa función de entropía cruzada para k clases mutuamente excluyentes.
Capa
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 ClassificationOutputLayer
almacena esta propiedad como un vector de caracteres.
Tipos de datos: char
| string
Número de entradas a la capa, devuelto como 1
. Esta capa solo admite una entrada.
Tipos de datos: double
Nombres de entrada, devueltos como {'in'}
. Esta capa solo admite una entrada.
Tipos de datos: cell
Número de salidas de la capa, devuelto como 0
. Esta capa no tiene salidas.
Tipos de datos: double
Nombres de las salidas de la capa, devuelto como {}
. Esta capa no tiene salidas.
Tipos de datos: cell
Ejemplos
Cree una capa de clasificación.
Cree una capa de clasificación con el nombre 'output'
.
layer = classificationLayer('Name','output')
layer = ClassificationOutputLayer with properties: Name: 'output' Classes: 'auto' ClassWeights: 'none' OutputSize: 'auto' Hyperparameters LossFunction: 'crossentropyex'
Incluya una capa de clasificación de salida en un arreglo Layer
.
layers = [ ... imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(10) softmaxLayer classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax 7 '' Classification Output crossentropyex
Más acerca de
Una capa de clasificación calcula la pérdida de entropía cruzada de las tareas de clasificación y clasificación ponderada con clases mutuamente excluyentes.
Normalmente, la capa de clasificación suele ir precedida de una capa softmax en las redes de clasificación. En la capa de clasificación, trainNetwork
toma los valores de la función softmax y asigna cada entrada a una de las clases mutuamente excluyentes K usando la función de entropía cruzada para un esquema de codificación de 1 de K [1]:
donde N es el número de muestras, K es el número de clases, wi es el peso de la clase i, tni es el indicador de que la muestra n pertenece a la clase i, e yni es la salida de la muestra n para la clase i, que en este caso es el valor de la función softmax. En otras palabras, yni es la probabilidad de que la red asocie la observación n a la clase i.
Referencias
[1] Bishop, C. M. Pattern Recognition and Machine Learning. Springer, New York, NY, 2006.
Historial de versiones
Introducido en R2016aA partir de la versión R2024a, los objetos ClassificationOutputLayer
no están recomendados. En su lugar, utilice trainnet
y establezca la función de pérdida en "crossentropy"
.
No está previsto eliminar el soporte para los objetos ClassificationOutputLayer
. Sin embargo, en su lugar se recomienda la función trainnet
, que tiene estas ventajas:
trainnet
admite los objetosdlnetwork
, 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 objetodlnetwork
, 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ápida quetrainNetwork
.
Esta tabla muestra algunos usos habituales de la función trainNetwork
con los objetos ClassificationOutputLayer
y cómo actualizar el código para usar la función trainnet
en su lugar.
No recomendado | Recomendado |
---|---|
net = trainNetwork(data,layers,options) , donde layers contiene un objeto ClassificationOutputLayer . | net = trainnet(data,layers,"crossentropy",options); layers especifica la misma red sin un objeto ClassificationOutputLayer . |
net = trainNetwork(data,layers,options) , donde layers contiene un objeto ClassificationOutputLayer con ClassWeights establecido como un vector numérico. | lossFcn = @(Y,T) crossentropy(Y,T,Weights=weights);
net = trainnet(data,layers,"crossentropy",options); weights especifica los pesos de clase y layers especifica la misma red sin un objeto ClassificationOutputLayer . |
ClassNames
se eliminará. En su lugar, use Classes
. Para actualizar el código, reemplace todas las instancias de ClassNames
con Classes
. Hay algunas diferencias entre las propiedades que requieren actualizaciones adicionales en el código.
La propiedad ClassNames
de la capa de salida es un arreglo de celdas de vectores de caracteres. La propiedad Classes
es un arreglo categórico. Para usar el valor de Classes
con funciones que requieren la entrada de un arreglo de celdas, convierta las clases con la función cellstr
.
Consulte también
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)