Impulso (aprendizaje automático)
En el aprendizaje automático, impulsar es un meta-algoritmo de conjunto para reducir principalmente el sesgo y también la variación en el aprendizaje supervisado, y una familia de algoritmos de aprendizaje automático que convierten a los estudiantes débiles en buenos. El impulso se basa en la pregunta planteada por Kearns y Valiant (1988, 1989): "¿Puede un conjunto de alumnos débiles crear un solo alumno fuerte?" Un alumno débil se define como un clasificador que solo está ligeramente correlacionado con la clasificación real (puede etiquetar ejemplos mejor que adivinar al azar). En contraste, un aprendiz fuerte es un clasificador que está arbitrariamente bien correlacionado con la verdadera clasificación.
La respuesta afirmativa de Robert Schapire en un artículo de 1990 a la pregunta de Kearns y Valiant ha tenido ramificaciones significativas en el aprendizaje automático y las estadísticas, lo que más ha llevado al desarrollo de la potenciación.
Cuando se presentó por primera vez, el problema de refuerzo de hipótesis simplemente se refería al proceso de convertir a un alumno débil en un alumno fuerte. "Informalmente, el problema [de impulso de hipótesis] pregunta si un algoritmo de aprendizaje eficiente […] que genera una hipótesis cuyo rendimiento es solo ligeramente mejor que las conjeturas aleatorias [es decir, un aprendiz débil] implica la existencia de un algoritmo eficiente que genera una hipótesis de precisión arbitraria [es decir, un estudiante fuerte]." Los algoritmos que logran impulsar hipótesis rápidamente se conocieron simplemente como 'impulsar'. El arco de Freund y Schapire (Adapt[at]ive Resampling and Combining), como técnica general, es más o menos sinónimo de refuerzo.
Algoritmos de refuerzo
Si bien la potenciación no está restringida algorítmicamente, la mayoría de los algoritmos de potenciación consisten en aprender iterativamente clasificadores débiles con respecto a una distribución y agregarlos a un clasificador fuerte final. Cuando se agregan, se ponderan de una manera que se relaciona con los puntos débiles de los alumnos. exactitud. Después de agregar un alumno débil, se reajustan las ponderaciones de los datos, lo que se conoce como "re-ponderación". Los datos de entrada clasificados incorrectamente ganan mayor peso y los ejemplos clasificados correctamente pierden peso. Por lo tanto, los futuros alumnos débiles se centran más en los ejemplos que los alumnos débiles anteriores clasificaron mal.
Hay muchos algoritmos de impulso. Los originales, propuestos por Robert Schapire (una formulación recursiva de puerta mayoritaria) y Yoav Freund (impulso por mayoría), no eran adaptativos y no podían aprovechar al máximo a los alumnos débiles. Schapire y Freund luego desarrollaron AdaBoost, un algoritmo de impulso adaptativo que ganó el prestigioso Premio Gödel.
Solo los algoritmos que son algoritmos de refuerzo demostrables en la formulación de aprendizaje probablemente aproximadamente correcta pueden llamarse con precisión algoritmos de refuerzo. Otros algoritmos que son similares en espíritu a los algoritmos de impulso a veces se denominan "algoritmos de aprovechamiento", aunque a veces también se les llama incorrectamente algoritmos de impulso.
La principal variación entre muchos algoritmos de impulso es su método de ponderar los puntos de datos de entrenamiento y las hipótesis. AdaBoost es muy popular y el más significativo históricamente, ya que fue el primer algoritmo que pudo adaptarse a los estudiantes débiles. A menudo, es la base de la cobertura introductoria de impulso en los cursos universitarios de aprendizaje automático. Hay muchos algoritmos más recientes, como LPBoost, TotalBoost, BrownBoost, xgboost, MadaBoost, LogitBoost y otros. Muchos algoritmos de impulso se ajustan al marco de AnyBoost, que muestra que el impulso realiza un descenso de gradiente en un espacio funcional mediante una función de costo convexa.
Categorización de objetos en visión artificial
Dadas las imágenes que contienen varios objetos conocidos en el mundo, se puede aprender un clasificador de ellas para clasificar automáticamente los objetos en imágenes futuras. Los clasificadores simples creados en función de alguna característica de la imagen del objeto tienden a ser débiles en el rendimiento de la categorización. El uso de métodos de refuerzo para la categorización de objetos es una forma de unificar los clasificadores débiles de una manera especial para aumentar la capacidad general de categorización.
Problema de categorización de objetos
La categorización de objetos es una tarea típica de la visión artificial que consiste en determinar si una imagen contiene o no alguna categoría específica de objeto. La idea está estrechamente relacionada con el reconocimiento, la identificación y la detección. La categorización de objetos basada en la apariencia normalmente contiene la extracción de características, el aprendizaje de un clasificador y la aplicación del clasificador a nuevos ejemplos. Hay muchas formas de representar una categoría de objetos, p. desde análisis de forma, modelos de bolsa de palabras o descriptores locales como SIFT, etc. Ejemplos de clasificadores supervisados son clasificadores Naive Bayes, máquinas de vectores de soporte, mezclas de gaussianas y redes neuronales. Sin embargo, la investigación ha demostrado que las categorías de objetos y sus ubicaciones en las imágenes también se pueden descubrir sin supervisión.
Statu quo para la categorización de objetos
El reconocimiento de categorías de objetos en imágenes es un problema desafiante en la visión por computadora, especialmente cuando la cantidad de categorías es grande. Esto se debe a la alta variabilidad intraclase y la necesidad de generalización a través de variaciones de objetos dentro de la misma categoría. Los objetos dentro de una categoría pueden verse bastante diferentes. Incluso el mismo objeto puede parecer diferente bajo diferentes puntos de vista, escala e iluminación. El desorden de fondo y la oclusión parcial también añaden dificultades al reconocimiento. Los humanos pueden reconocer miles de tipos de objetos, mientras que la mayoría de los sistemas de reconocimiento de objetos existentes están capacitados para reconocer solo unos pocos, p. rostros humanos, autos, objetos simples, etc. La investigación ha sido muy activa en tratar con más categorías y permitir adiciones incrementales de nuevas categorías, y aunque el problema general sigue sin resolverse, varios detectores de objetos de múltiples categorías (hasta cientos o miles de categorías) han sido desarrollados. Un medio es compartir funciones y aumentarlas.
Impulso para la categorización binaria
AdaBoost se puede utilizar para la detección de rostros como un ejemplo de categorización binaria. Las dos categorías son caras versus fondo. El algoritmo general es el siguiente:
- Forma un gran conjunto de características simples
- Iniciar pesos para imágenes de entrenamiento
- Para rondas T
- Normalizar los pesos
- Para las características disponibles del conjunto, entrena un clasificador usando una sola función y evalúa el error de entrenamiento
- Elija el clasificador con el error más bajo
- Actualizar los pesos de las imágenes de entrenamiento: aumentar si clasificado incorrectamente por este clasificador, disminuir si correctamente
- Forma el clasificador fuerte final como la combinación lineal de los clasificadores T (coeficiente más grande si el error de entrenamiento es pequeño)
Después de aumentar, un clasificador construido a partir de 200 características podría producir una tasa de detección del 95% bajo un falso índice positivo.
Otra aplicación de impulso para la categorización binaria es un sistema que detecta peatones utilizando patrones de movimiento y apariencia. Este trabajo es el primero en combinar información de movimiento e información de apariencia como características para detectar a una persona caminando. Adopta un enfoque similar al marco de detección de objetos de Viola-Jones.
Impulso para la categorización multiclase
En comparación con la categorización binaria, la categorización multiclase busca características comunes que se pueden compartir entre las categorías al mismo tiempo. Se vuelven más genéricas como características de borde. Durante el aprendizaje, los detectores de cada categoría se pueden entrenar de forma conjunta. En comparación con el entrenamiento por separado, generaliza mejor, necesita menos datos de entrenamiento y requiere menos funciones para lograr el mismo rendimiento.
El flujo principal del algoritmo es similar al caso binario. Lo que es diferente es que se debe definir de antemano una medida del error de entrenamiento conjunto. Durante cada iteración, el algoritmo elige un clasificador de una sola característica (se fomentarán las características que pueden ser compartidas por más categorías). Esto se puede hacer convirtiendo la clasificación multiclase en una binaria (un conjunto de categorías versus el resto), o introduciendo un error de penalización de las categorías que no tienen la característica del clasificador.
En el artículo "Compartir características visuales para la detección de objetos multiclase y vista múltiple", A. Torralba et al. usó GentleBoost para potenciar y demostró que cuando los datos de entrenamiento son limitados, el aprendizaje a través de funciones para compartir funciona mucho mejor que no compartir, con las mismas rondas de potenciación. Además, para un nivel de rendimiento dado, se observa que el número total de características necesarias (y, por lo tanto, el costo del tiempo de ejecución del clasificador) para los detectores de características compartidas escala aproximadamente logarítmicamente con el número de clases, es decir, más lento que el crecimiento lineal en el caso de no compartir. Resultados similares se muestran en el artículo "Aprendizaje incremental de detectores de objetos usando un alfabeto de formas visuales", sin embargo, los autores usaron AdaBoost para potenciar.
Algoritmos de refuerzo convexos y no convexos
Los algoritmos de refuerzo se pueden basar en algoritmos de optimización convexos o no convexos. Los algoritmos convexos, como AdaBoost y LogitBoost, se pueden "derrotar" por ruido aleatorio tal que no pueden aprender combinaciones básicas y aprendibles de hipótesis débiles. Esta limitación fue señalada por Long & Servedio en 2008. Sin embargo, en 2009, varios autores demostraron que impulsar algoritmos basados en optimización no convexa, como BrownBoost, puede aprender de conjuntos de datos ruidosos y puede aprender específicamente el clasificador subyacente del conjunto de datos Long-Servedio.
Implementaciones
- scikit-learn, una biblioteca de aprendizaje automático de código abierto para Python
- Orange, una suite de software de minería de datos gratis, módulo Orange. ensemble
- Weka es un conjunto de herramientas de aprendizaje automático que ofrece implementaciones variadas de algoritmos de impulso como AdaBoost y LogitBoost
- El paquete R GBM (Modelos Generalizados de regresión Boosted) implementa extensiones al algoritmo AdaBoost de Freund y Schapire y la máquina de potenciación gradiente de Friedman.
- jboost; AdaBoost, LogitBoost, RobustBoost, Boostexter y otros árboles de decisión
- R paquete adabag: Applies Multiclass AdaBoost.M1, AdaBoost-SAMME y Bagging
- R paquete xgboost: Aplicación de gradiente impulso para modelos lineales y basados en árboles.
Contenido relacionado
Sistema abierto (informática)
Androide (robot)
Alexander Graham Bell