El método de actualización de pesos multiplicativos es una técnica algorítmica más comúnmente utilizada para la toma de decisiones y la predicción, y también ampliamente implementada en la teoría de juegos y el diseño de algoritmos. El caso de uso más simple es el problema de la predicción a partir del asesoramiento de expertos, en el que un tomador de decisiones necesita decidir iterativamente sobre un experto cuyo consejo seguir. El método asigna pesos iniciales a los expertos (generalmente pesos iniciales idénticos) y actualiza estos pesos de manera multiplicativa e iterativa de acuerdo con la retroalimentación de qué tan bien se desempeñó un experto: reduciéndolo en caso de un desempeño deficiente y aumentándolo en caso contrario. [1] Se descubrió repetidamente en campos muy diversos, como el aprendizaje automático ( AdaBoost , Winnow , Hedge), la optimización (resolución de programas lineales ), la informática teórica (diseño de algoritmos rápidos para LP y SDP ) y la teoría de juegos .
"Pesos multiplicativos" implica la regla iterativa utilizada en algoritmos derivados del método de actualización de pesos multiplicativos. [2] Se le da con diferentes nombres en los diferentes campos donde fue descubierto o redescubierto.
La primera versión conocida de esta técnica fue en un algoritmo llamado " juego ficticio " que se propuso en la teoría de juegos a principios de la década de 1950. Grigoriadis y Khachiyan [3] aplicaron una variante aleatoria de "juego ficticio" para resolver juegos de suma cero de dos jugadores de manera eficiente utilizando el algoritmo de pesos multiplicativos. En este caso, el jugador asigna mayor peso a las acciones que tuvieron un mejor resultado y elige su estrategia basándose en estos pesos. En el aprendizaje automático , Littlestone aplicó la forma más temprana de la regla de actualización de pesos multiplicativos en su famoso algoritmo winnow , que es similar al algoritmo de aprendizaje de perceptrón anterior de Minsky y Papert . Más tarde, generalizó el algoritmo winnow al algoritmo de mayoría ponderada. Freund y Schapire siguieron sus pasos y generalizaron el algoritmo winnow en forma de algoritmo de cobertura.
El algoritmo de pesos multiplicativos también se aplica ampliamente en geometría computacional , como el algoritmo de Kenneth Clarkson para programación lineal (LP) con un número acotado de variables en tiempo lineal. [4] [5] Más tarde, Bronnimann y Goodrich emplearon métodos análogos para encontrar cubiertas de conjuntos para hipergrafos con pequeña dimensión VC . [6]
En el campo de la investigación de operaciones y de los problemas de toma de decisiones estadísticas en línea, se han encontrado de forma independiente el algoritmo de mayoría ponderada y sus versiones más complicadas.
En el campo de la informática, algunos investigadores han observado previamente las estrechas relaciones entre los algoritmos de actualización multiplicativa utilizados en diferentes contextos. Young descubrió las similitudes entre los algoritmos de LP rápidos y el método de estimadores pesimistas de Raghavan para la desaleatorización de algoritmos de redondeo aleatorios; Klivans y Servedio vincularon los algoritmos de refuerzo en la teoría del aprendizaje con las pruebas del lema XOR de Yao; Garg y Khandekar definieron un marco común para los problemas de optimización convexa que contiene a Garg-Konemann y Plotkin-Shmoys-Tardos como subcasos. [1]
El algoritmo Hedge es un caso especial de descenso de espejo .
Se debe tomar una decisión binaria en función de las opiniones de n expertos para obtener un resultado asociado. En la primera ronda, las opiniones de todos los expertos tienen el mismo peso. El responsable de la toma de decisiones tomará la primera decisión basándose en la predicción de la mayoría de los expertos. Luego, en cada ronda sucesiva, actualizará repetidamente el peso de la opinión de cada experto en función de la exactitud de sus predicciones anteriores. Algunos ejemplos de la vida real incluyen predecir si lloverá mañana o si el mercado de valores subirá o bajará.
Dado un juego secuencial jugado entre un adversario y un agregador que es asesorado por N expertos, el objetivo es que el agregador cometa la menor cantidad de errores posible. Supongamos que hay un experto entre los N expertos que siempre da la predicción correcta. En el algoritmo de reducción a la mitad, solo se conservan los expertos consistentes. Los expertos que cometen errores serán descartados. Para cada decisión, el agregador decide tomando una votación mayoritaria entre los expertos restantes. Por lo tanto, cada vez que el agregador comete un error, al menos la mitad de los expertos restantes son descartados. El agregador comete como máximo log 2 ( N ) errores. [2]
A diferencia del algoritmo de reducción a la mitad, que descarta a los expertos que han cometido errores, el algoritmo de mayoría ponderada descarta su asesoramiento. Dada la misma configuración de "asesoramiento de expertos", supongamos que tenemos n decisiones y necesitamos seleccionar una decisión para cada bucle. En cada bucle, cada decisión implica un costo. Todos los costos se revelarán después de tomar la decisión. El costo es 0 si el experto está en lo correcto y 1 en caso contrario. El objetivo de este algoritmo es limitar sus pérdidas acumuladas a aproximadamente lo mismo que el mejor de los expertos. El primer algoritmo que toma decisiones basadas en el voto de la mayoría en cada iteración no funciona, ya que la mayoría de los expertos pueden equivocarse constantemente cada vez. El algoritmo de mayoría ponderada corrige el algoritmo trivial anterior manteniendo un peso de expertos en lugar de fijar el costo en 1 o 0. [1] Esto cometería menos errores en comparación con el algoritmo de reducción a la mitad.
Inicialización : Fijar un . Para cada experto, asociar el peso ≔1. Para = , ,..., 1 . Realizar la predicción dada por la mayoría ponderada de las predicciones de los expertos en función de sus pesos . Es decir, elegir 0 o 1 dependiendo de qué predicción tenga un mayor peso total de expertos que la asesoran (deshaciendo los empates arbitrariamente). 2 . Para cada experto i que haya predicho incorrectamente, disminuir su peso para la siguiente ronda multiplicándolo por un factor de (1-η): = (regla de actualización)
Si , el peso del consejo del experto permanecerá igual. Cuando aumenta , el peso del consejo del experto disminuirá. Tenga en cuenta que algunos investigadores lo fijan en el algoritmo de mayoría ponderada.
Después de los pasos, sea el número de errores del experto i y sea el número de errores que ha cometido nuestro algoritmo. Entonces tenemos el siguiente límite para cada :
.
En particular, esto es válido para i, que es el mejor experto. Dado que el mejor experto tendrá el menor , dará el mejor límite para la cantidad de errores cometidos por el algoritmo en su conjunto.
Este algoritmo puede entenderse de la siguiente manera: [2] [8]
Dada la misma configuración con N expertos, considere la situación especial en la que las proporciones de expertos que predicen resultados positivos y negativos, contando los pesos, son cercanas al 50 %. En ese caso, podría haber un empate. Siguiendo la regla de actualización de pesos del algoritmo de mayoría ponderada, las predicciones realizadas por el algoritmo serían aleatorias. El algoritmo calcula las probabilidades de que los expertos predigan resultados positivos o negativos y luego toma una decisión aleatoria en función de la fracción calculada: [ se necesita más explicación ]
predecir
dónde
.
El número de errores cometidos por el algoritmo de mayoría ponderada aleatoria está limitado como sigue:
donde y .
Tenga en cuenta que solo el algoritmo de aprendizaje es aleatorio. La suposición subyacente es que los ejemplos y las predicciones de los expertos no son aleatorios. La única aleatoriedad es la aleatoriedad en la que el alumno hace su propia predicción. En este algoritmo aleatorio, si . En comparación con el algoritmo ponderado, esta aleatoriedad redujo a la mitad la cantidad de errores que cometerá el algoritmo. [9] Sin embargo, es importante señalar que en algunas investigaciones, las personas definen en el algoritmo de mayoría ponderada y permiten en el algoritmo de mayoría ponderada aleatorio . [2]
El método de pesos multiplicativos se utiliza habitualmente para resolver un problema de optimización con restricciones. Sea cada experto la restricción del problema y los eventos representen los puntos en el área de interés. El castigo del experto corresponde a qué tan bien se satisface su restricción correspondiente en el punto representado por un evento. [1]
Supongamos que nos dieran la distribución de expertos. Sea = matriz de pagos de un juego finito de suma cero para dos jugadores, con filas.
Cuando el jugador de la fila usa plan y el jugador de la columna usa plan , la ganancia del jugador es ≔ , asumiendo .
Si el jugador elige una acción de una distribución sobre las filas, entonces el resultado esperado para el jugador que selecciona la acción es .
Para maximizar , el jugador debe elegir el plan . De manera similar, el beneficio esperado para el jugador es . Elegir el plan minimizaría este beneficio. Por el teorema de mínimos y máximos de John Von Neumann, obtenemos:
donde P e i cambian en las distribuciones sobre filas, Q y j cambian en las columnas.
Entonces, denotemos el valor común de las cantidades anteriores, también llamado "valor del juego". Sea un parámetro de error. Para resolver el juego de suma cero limitado por el error aditivo de ,
Por lo tanto, existe un algoritmo que resuelve un juego de suma cero hasta un factor aditivo de δ utilizando O( log 2 ( n ) / ) llamadas a ORACLE, con un tiempo de procesamiento adicional de O(n) por llamada [9]
Bailey y Piliouras demostraron que, si bien el comportamiento promedio en el tiempo de la actualización de pesos multiplicativos converge a los equilibrios de Nash en juegos de suma cero, el comportamiento diario (última iteración) se aleja de él. [10]
En el aprendizaje automático, Littlestone y Warmuth generalizaron el algoritmo Winnow al algoritmo de mayoría ponderada. [11] Más tarde, Freund y Schapire lo generalizaron en forma de algoritmo de cobertura. [12] El algoritmo AdaBoost formulado por Yoav Freund y Robert Schapire también empleó el método de actualización de peso multiplicativo. [1]
Basándose en los conocimientos actuales en algoritmos, el método de actualización de peso multiplicativo se utilizó por primera vez en el algoritmo winnow de Littlestone. [1] Se utiliza en el aprendizaje automático para resolver un programa lineal.
Se dan ejemplos etiquetados donde son vectores de características y son sus etiquetas.
El objetivo es encontrar pesos no negativos de modo que, para todos los ejemplos, el signo de la combinación ponderada de las características coincida con sus etiquetas. Es decir, se requiere que para todos los . Sin pérdida de generalidad, supongamos que el peso total es 1, de modo que forman una distribución. Por lo tanto, por conveniencia de notación, redefinimos como , el problema se reduce a encontrar una solución para el siguiente PL:
, , .
Esta es la forma general de LP.
El algoritmo de cobertura es similar al algoritmo de mayoría ponderada. Sin embargo, sus reglas de actualización exponencial son diferentes. [2] Generalmente se utiliza para resolver el problema de asignación binaria en el que necesitamos asignar diferentes porciones de recursos en N opciones diferentes. La pérdida con cada opción está disponible al final de cada iteración. El objetivo es reducir la pérdida total sufrida por una asignación particular. Luego, se revisa la asignación para la siguiente iteración, en función de la pérdida total sufrida en la iteración actual, utilizando una actualización multiplicativa. [13]
Supongamos que la tasa de aprendizaje y para , es elegida por Hedge. Entonces, para todos los expertos ,
Inicialización : Fijar un . Para cada experto, asociar el peso ≔1 Para t=1,2,...,T:
1. Elija la distribución donde . 2. Observar el coste de la decisión . 3. Establecer ).
Este algoritmo [12] mantiene un conjunto de pesos sobre los ejemplos de entrenamiento. En cada iteración , se calcula una distribución normalizando estos pesos. Esta distribución se envía al aprendiz débil WeakLearn, que genera una hipótesis que (con suerte) tiene un pequeño error con respecto a la distribución. Utilizando la nueva hipótesis , AdaBoost genera el siguiente vector de pesos . El proceso se repite. Después de T iteraciones, la hipótesis final es el resultado. La hipótesis combina los resultados de las T hipótesis débiles utilizando un voto de mayoría ponderada. [12]
Aporte : Secuencia de ejemplos etiquetados ( , ),...,( , ) Distribución sobre los ejemplos Algoritmo de aprendizaje débil "WeakLearn" Entero que especifica el número de iteraciones Inicialice el vector de peso: for . Haga for 1 . Establezca . 2 . Llame a WeakLearn , proporcionándole la distribución ; obtenga una hipótesis [0,1]. 3 . Calcule el error de . 4 . Establezca . 5 . Establezca el nuevo vector de peso en . Formular la hipótesis:
Dada una matriz y , ¿existe una tal que ?
(1)
Usando el algoritmo de Oracle para resolver un problema de suma cero, con un parámetro de error , la salida sería un punto tal que o una prueba de que no existe, es decir, no hay solución para este sistema lineal de desigualdades.
Dado el vector , resuelve el siguiente problema relajado
(2)
Si existe ax que satisface (1), entonces x satisface (2) para todo . La contrapositiva de esta afirmación también es verdadera. Supongamos que si el oráculo devuelve una solución factible para a , la solución que devuelve tiene un ancho acotado de . Por lo tanto, si hay una solución para (1), entonces hay un algoritmo que su salida x satisface el sistema (2) hasta un error aditivo de . El algoritmo realiza como máximo llamadas a un oráculo acotado en ancho para el problema (2). La contrapositiva también es verdadera. Las actualizaciones multiplicativas se aplican en el algoritmo en este caso.