La cascada es un caso particular de aprendizaje por conjuntos basado en la concatenación de varios clasificadores , utilizando toda la información recopilada de la salida de un clasificador dado como información adicional para el siguiente clasificador en la cascada. A diferencia de los conjuntos de votación o apilamiento, que son sistemas multiexpertos, la cascada es de varias etapas.
Los clasificadores en cascada se entrenan con varios cientos de vistas de muestra "positivas" de un objeto particular e imágenes "negativas" arbitrarias del mismo tamaño. Una vez entrenado el clasificador, se puede aplicar a una región de una imagen y detectar el objeto en cuestión. Para buscar el objeto en todo el marco, la ventana de búsqueda se puede mover a través de la imagen y verificar cada ubicación para el clasificador. Este proceso se utiliza con mayor frecuencia en el procesamiento de imágenes para la detección y el seguimiento de objetos, principalmente la detección y el reconocimiento facial .
El primer clasificador en cascada fue el detector de rostros de Viola y Jones (2001) . El requisito de este clasificador era ser rápido para poder implementarse en CPU de bajo consumo , como cámaras y teléfonos.
Propiedades del algoritmo
Escalado y rotaciones
Se puede ver en esta descripción que el clasificador no aceptará caras que estén al revés (las cejas no están en la posición correcta) o al costado de la cara (la nariz ya no está en el centro y las sombras en el costado de puede faltar la nariz). Se deben entrenar clasificadores en cascada separados para cada rotación que no esté en el plano de la imagen (lado de la cara) y tendrán que volver a entrenarse o ejecutar en entidades giradas para cada rotación que esté en el plano de la imagen (boca abajo o inclinada hacia la lado). La escala no es un problema, ya que las características se pueden escalar (el píxel central, los píxeles izquierdos y los píxeles derechos tienen una dimensión solo relativa al rectángulo examinado). En cascadas recientes, el valor de píxel de alguna parte de un rectángulo en comparación con otro ha sido reemplazado por ondas de Haar .
Propiedades del escenario
Para tener un buen desempeño general, se deben cumplir los siguientes criterios:
- Cada etapa debe validar todas las caras y puede producir muchos falsos positivos. Por ejemplo, si la etapa 1 marcara como 'no contiene una cara' el 20% de los rectángulos que contienen una cara (tasa de falsos negativos = 20%), entonces el rendimiento total de la cadena no puede ser superior al 80% de verdaderos positivos, sea cual sea las siguientes etapas son, ya que el 20% de las caras ya han sido rechazadas.
- Esto sugiere que una buena etapa debe tener un 100% de verdaderos positivos y, por ejemplo, un 40% de falsos positivos, es decir, aceptar todos los rectángulos que contienen caras y marcar erróneamente muchos rectángulos como que potencialmente contienen una cara, para ser eliminados en etapas posteriores. Para una primera etapa, el 100% de verdaderos positivos y el 40% de falsos positivos todavía da muchos falsos negativos, si solo 1 de cada 1000 rectángulos en una imagen contiene una cara, todavía habrá 400 a 1 caras falsas posibles después de la primera etapa .
- Si la primera etapa es muy rápida (algunas operaciones), hemos eliminado el 60% de los rectángulos que no contienen una cara muy rápidamente.
Por lo tanto, el procedimiento de capacitación para una etapa es tener muchos estudiantes débiles (operadores simples de diferencia de píxeles), capacitarlos como grupo (aumentar su peso si dan el resultado correcto), pero tener en cuenta que solo hay unos pocos estudiantes débiles activos para que el cálculo el tiempo sigue siendo bajo.
El primer detector de Viola & Jones tenía 38 etapas, con 1 característica en la primera etapa, luego 10, 25, 25, 50 en las siguientes cinco etapas, para un total de 6000 características. Las primeras etapas eliminan rápidamente los rectángulos no deseados para evitar pagar los costos computacionales de las etapas siguientes, de modo que el tiempo computacional se dedica a analizar en profundidad la parte de la imagen que tiene una alta probabilidad de contener el objeto.
Entrenamiento en cascada
Las cascadas generalmente se realizan a través de ADAboost consciente de los costos. El umbral de sensibilidad (0,8 en nuestro ejemplo) se puede ajustar para que haya cerca del 100% de verdaderos positivos y algunos falsos positivos. A continuación, se puede iniciar de nuevo el procedimiento para la etapa 2, hasta que se alcance la precisión / tiempo de cálculo deseados.
Después del algoritmo inicial, se entendió que el entrenamiento de la cascada en su conjunto se puede optimizar para lograr una tasa de detección real deseada con una complejidad mínima. Ejemplos de tales algoritmos son RCBoost, ECBoost o RCECBoost. En sus versiones más básicas, se puede entender que eligen, en cada paso, entre agregar una etapa o agregar un alumno débil a una etapa anterior, lo que sea menos costoso, hasta que se haya alcanzado la precisión deseada. Cada etapa del clasificador no puede tener una tasa de detección (sensibilidad) por debajo de la tasa deseada, por lo que este es un problema de optimización restringido . Para ser precisos, la sensibilidad total será el producto de las sensibilidades escénicas.
Los clasificadores en cascada están disponibles en OpenCV , con cascadas pre-entrenadas para caras frontales y parte superior del cuerpo. También es posible entrenar una nueva cascada en OpenCV con los métodos haar_training o train_cascades. Esto se puede usar para la detección rápida de objetos de objetivos más específicos, incluidos objetos no humanos con características similares a las de Haar . El proceso requiere dos conjuntos de muestras: negativa y positiva, donde las muestras negativas corresponden a imágenes arbitrarias sin objeto. La limitación de tiempo en el entrenamiento de un clasificador en cascada se puede eludir utilizando métodos de computación en la nube .
Clasificadores en cascada en estadísticas
El término también se utiliza en estadísticas para describir un modelo que se realiza por etapas. Por ejemplo, un clasificador (por ejemplo, k- medias), toma un vector de características (variables de decisión) y genera para cada resultado de clasificación posible la probabilidad de que el vector pertenezca a la clase. Esto generalmente se usa para tomar una decisión (clasificar en la clase con mayor probabilidad), pero los clasificadores en cascada usan esta salida como entrada a otro modelo (otra etapa). Esto es particularmente útil para modelos que tienen reglas altamente combinatorias o de conteo (por ejemplo, clase1 si exactamente dos características son negativas, clase2 en caso contrario), que no se pueden ajustar sin tener en cuenta todos los términos de interacción. Tener clasificadores en cascada permite a la etapa sucesiva aproximarse gradualmente a la naturaleza combinatoria de la clasificación, o agregar términos de interacción en algoritmos de clasificación que no pueden expresarlos en una etapa.
Como ejemplo simple, si intentamos igualar la regla (clase1 si exactamente 2 de cada 3 características son negativas, clase2 en caso contrario), un árbol de decisión sería:
- característica 1 negativo
- característica 2 negativa
- característica 3 negativa -> clase2
- característica 3 positiva -> clase1
- característica 2 positiva
- característica 3 negativa -> clase1
- característica 3 positiva -> clase2
- característica 2 negativa
- característica 1 positiva
- característica 2 negativa
- característica 3 negativa -> clase1
- característica 3 positiva -> clase2
- característica 2 positiva
- característica 3 negativa -> clase2
- característica 3 positiva -> clase2
- característica 2 negativa
El árbol tiene todas las combinaciones de hojas posibles para expresar el conjunto de reglas completo, mientras que (característica1 positiva, característica2 negativa) y (característica1 negativa, característica2 positiva) deberían unirse a la misma regla. Esto conduce a un árbol con muy pocas muestras en las hojas. Un algoritmo de dos etapas puede fusionar eficazmente estos dos casos dando una probabilidad media-alta a class1 si feature1 o feature2 (exclusivo) es negativo. El segundo clasificador puede tomar esta probabilidad más alta y tomar una decisión sobre el signo de feature3.
En una descomposición de sesgo-varianza , los modelos en cascada generalmente se consideran como una reducción del sesgo mientras que aumenta la varianza.
Ver también
Referencias
Fuentes
- Gama, J .; Brazdil, P. (2000). "Generalización en cascada". Aprendizaje automático . 41 (3): 315–343. CiteSeerX 10.1.1.46.635 . doi : 10.1023 / a: 1007652114878 .
- Minguillón, J. (2002). Sobre pequeños árboles de decisión en cascada (tesis doctoral). Universitat Autònoma de Barcelona.
- Zhao, H .; Ram, S. (2004). "Generalización en cascada restringida de árboles de decisión". Transacciones IEEE sobre conocimiento e ingeniería de datos . 16 (6): 727–739. CiteSeerX 10.1.1.199.2077 . doi : 10.1109 / tkde.2004.3 .