Anteriormente, te presentamos clasificación binaria modelos que podrían elegir una de dos opciones posibles, por ejemplo:
- Un correo electrónico determinado es spam o no es spam.
- Un tumor determinado es maligno o benigno.
En esta sección, investigaremos clasificación de clases múltiples que pueden elegir entre múltiples posibilidades. Por ejemplo:
- ¿Este perro es un beagle, un basset hound o un sabueso?
- ¿Esta flor es una iris siberiana, una iris holandesa, una iris de bandera azul? o iris barbudo enano?
- ¿Ese avión es un Boeing 747, un Airbus 320, un Boeing 777 o un Embraer 190?
- ¿Esta es la imagen de una manzana, un oso, una golosina, un perro o un huevo?
Algunos problemas de clases múltiples del mundo real implican elegir entre millones de clases separadas. Por ejemplo, considera una clasificación de clases múltiples que puede identificar la imagen de casi cualquier cosa.
En esta sección, se detallan las dos variantes principales de la clasificación de clases múltiples:
- uno frente a todos
- one-vs.-one, que generalmente se conoce como softmax
Uno frente a todos
Uno frente a todos proporciona una forma de usar la clasificación binaria. para una serie de predicciones sí o no en múltiples etiquetas posibles.
Dado un problema de clasificación con n soluciones posibles, la fórmula uno frente a todos contiene N clasificadores binarios independientes, un objeto binario de clasificación para cada resultado posible. Durante el entrenamiento, el modelo se ejecuta a través de una secuencia de clasificadores binarios, el entrenamiento de cada uno para que responda de clasificación.
Por ejemplo, en el caso de la imagen de un trozo de fruta, cuatro se podrían entrenar diferentes reconocedores, cada uno para responder un sí/no diferente pregunta:
- ¿Esta imagen es de una manzana?
- ¿Esta imagen es de color naranja?
- ¿Esta imagen es de una banana?
- ¿Esta imagen es una uva?
En la siguiente imagen, se muestra cómo funciona esto en la práctica.
![Figura 7: Una imagen de una pera que se pasa como entrada en 4 imágenes
de clasificación binaria. El primer modelo predice “manzana” o "no"
manzana' y su predicción es "no manzana". El segundo modelo predice
'naranja' o "no es naranja", y su predicción es "no es naranja". El
el tercer modelo predice la métrica “pera” o “not pear”, y su predicción se
"pera". El cuarto modelo predice la “uva” o 'no uva', y su
que la predicción 'no es uva'.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=8&hl=es)
Este enfoque es bastante razonable cuando la cantidad total de clases es pequeña, pero se vuelve cada vez más ineficiente a medida que la cantidad de clases aumenta.
Podemos crear un modelo de uno frente a todos significativamente más eficiente una red neuronal profunda en la que cada nodo de salida representa un . En la siguiente imagen, se ilustra este enfoque.
![Figura 8: Una red neuronal con la siguiente arquitectura: capa de entrada con
1 nodo, capa oculta con 3 nodos, capa oculta con 4 nodos,
de salida con 4 nodos. Se le alimenta al nodo de entrada la imagen de una pera.
Se aplica una función de activación sigmoidea a la capa de salida. Cada
el nodo de salida representa la probabilidad de que la imagen sea un
de una fruta. El nodo de salida 1 representa “¿Es una manzana?”. y tiene un valor de 0.34.
El nodo de salida 2 representa “¿Es naranja?”. y tiene un valor de 0.18.
El nodo de salida 3 representa “¿Es pera?”. y tiene un valor de 0.84.
El nodo de salida 4 representa “¿Hay uva?”. y tiene un valor de 0.07.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=8&hl=es)
Uno frente a uno (softmax)
Habrás notado que los valores de probabilidad en la capa de salida de la Figura 8 no sumes 1.0 (ni 100%). (De hecho, suman 1.43). En una estrategia de uno frente a todos enfoque, se determina la probabilidad de cada conjunto binario de resultados independientemente de todos los demás conjuntos. Es decir, estamos determinando la probabilidad de “manzana” en comparación con "no es una manzana" sin considerar la probabilidad de que nuestros otros opciones de frutas: “naranja”, “pera” o “uva”.
Pero ¿qué sucede si queremos predecir las probabilidades de cada fruta en relación con los demás? En este caso, en lugar de predecir “manzana” en comparación con "no manzana", queremos predecir "manzana" contra "naranja" versus "pera" en comparación con "uva". Este tipo de clasificación de clases múltiples se denomina clasificación de uno frente a uno.
Podemos implementar una clasificación de uno frente a uno con el mismo tipo de arquitectura de red utilizada para la clasificación de uno frente a todos, con un cambio clave. Debemos aplicar una transformación diferente a la capa de salida.
Para uno frente a todos, aplicamos la función de activación sigmoidea a cada salida independiente, lo que da como resultado un valor de salida entre 0 y 1 para cada nodo, pero no garantizó que estos valores sumaran exactamente 1.
Para uno frente a uno, en cambio, podemos aplicar una función denominada softmax, que asigna probabilidades decimales a cada clase en un problema de clases múltiples, todas las probabilidades suman 1.0. Esta restricción adicional ayuda a que el entrenamiento converja más rápido de lo que lo haría de otro modo.
La siguiente imagen vuelve a implementar nuestra clasificación de clases múltiples de uno frente a todos tarea como una tarea de uno frente a uno. Ten en cuenta que para ejecutar softmax, la función directamente que precede a la capa de salida (llamada capa softmax), debe tener la misma cantidad de nodos que la capa de salida.
![Figura 9: Una red neuronal con la siguiente arquitectura: entrada
capa con 1 nodo, capa oculta con 3 nodos, capa oculta con 4 nodos
de salida con 4 nodos. Se le alimenta al nodo de entrada la imagen de una pera.
Se aplica una función de activación de softmax a la capa de salida. Cada
el nodo de salida representa la probabilidad de que la imagen sea un
de una fruta. El nodo de salida 1 representa “¿Es una manzana?”. y tiene un valor de 0.19.
El nodo de salida 2 representa “¿Es naranja?”. y tiene un valor de 0.12.
El nodo de salida 3 representa “¿Es pera?”. y tiene un valor de 0.63.
El nodo de salida 4 representa “¿Hay uva?”. y tiene un valor de 0.06.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=8&hl=es)
Opciones de softmax
Considera las siguientes variantes de softmax:
Softmax completo es el softmax del que estuvimos hablando. es decir, softmax calcula una probabilidad para cada clase posible.
Muestreo de candidatos significa que softmax calcula una probabilidad para todas las etiquetas positivas, pero solo para una muestra aleatoria de con etiquetas negativas. Por ejemplo, si nos interesa determinar ya sea un beagle o un sabueso, no tenemos que proporcionar probabilidades para cada ejemplo que no sea un perro.
Softmax completo es bastante económico cuando la cantidad de clases es pequeña. pero se vuelve demasiado costoso cuando aumenta la cantidad de clases. El muestreo de candidatos puede mejorar la eficiencia en los problemas que tienen una gran cantidad de clases.
Una etiqueta frente a muchas
Softmax supone que cada ejemplo es miembro de exactamente una clase. Sin embargo, algunos ejemplos pueden ser miembros de varias clases de manera simultánea. Para tales ejemplos:
- No puedes usar softmax.
- Debes usar regresiones logísticas múltiples.
Por ejemplo, el modelo de uno frente a uno en la figura 9 de arriba supone que cada entrada mostrará exactamente un tipo de fruta: una manzana, una naranja, una pera o una uva. Sin embargo, si una imagen de entrada puede contener varios tipos de frutas, tazón de manzanas y naranjas, tendrás que usar varias regresiones.