El algoritmo winnow [1] es una técnica de aprendizaje automático para aprender un clasificador lineal a partir de ejemplos etiquetados. Es muy similar al algoritmo del perceptrón . Sin embargo, el algoritmo del perceptrón utiliza un esquema aditivo de actualización de peso, mientras que Winnow utiliza un esquema multiplicativo que le permite funcionar mucho mejor cuando muchas dimensiones son irrelevantes (de ahí su nombre winnow ). Es un algoritmo simple que escala bien a datos de alta dimensión. Durante el entrenamiento, a Winnow se le muestra una secuencia de ejemplos positivos y negativos. A partir de estos, aprende un hiperplano de decisión que luego puede usarse para etiquetar ejemplos nuevos como positivos o negativos. El algoritmo también se puede utilizar en el entorno de aprendizaje en línea , donde la fase de aprendizaje y la de clasificación no están claramente separadas.
El algoritmo básico, Winnow1, es el siguiente. El espacio de instancias es , es decir, cada instancia se describe como un conjunto de características con valores booleanos . El algoritmo mantiene pesos no negativos para , que inicialmente se establecen en 1, un peso para cada característica. Cuando se le da al alumno un ejemplo , aplica la regla de predicción típica para clasificadores lineales:
Aquí hay un número real que se llama umbral . Junto con los pesos, el umbral define un hiperplano divisor en el espacio de instancia. Se obtienen buenos límites si (ver a continuación).
Para cada ejemplo que se le presenta, el alumno aplica la siguiente regla de actualización:
Un valor típico para α es 2.
Existen muchas variaciones de este enfoque básico. Winnow2 [1] es similar, excepto que en el paso de degradación los pesos se dividen por α en lugar de establecerse en 0. Winnow equilibrado mantiene dos conjuntos de pesos y, por lo tanto, dos hiperplanos. Esto se puede generalizar para la clasificación de múltiples etiquetas .
En determinadas circunstancias, se puede demostrar que el número de errores que Winnow comete a medida que aprende tiene un límite superior que es independiente del número de instancias que se le presentan. Si el algoritmo Winnow1 utiliza y en una función de destino que es una disyunción monótona -literal dada por , entonces para cualquier secuencia de instancias el número total de errores está limitado por: . [2]