Winnow (algoritmo)
L' algoritmo Winnow [1] è una procedura di apprendimento automatico per l'apprendimento di un classificatore lineare da esempi etichettati. È molto simile all'algoritmo del percettrone, ma mentre questo utilizza uno schema di aggiornamento dei pesi, mentre Winnow utilizza uno schema moltiplicativo che gli consente di funzionare molto meglio quando molte dimensioni (feature) non sono rilevanti (da cui il nome, che significa setaccio). L'algoritmo è semplice e si adatta bene a dati ad alta dimensionalità. Durante l'addestramento, a Winnow viene mostrata una sequenza di esempi positivi e negativi. Da questi esso apprende un iperpiano di decisione che può quindi essere utilizzato per etichettare nuovi esempi come positivi o negativi. L'algoritmo può essere utilizzato anche in contesti di apprendimento online, dove la fase di apprendimento e quella di classificazione non sono chiaramente separate.
Algoritmo
L'algoritmo di base, Winnow1, funziona come segue. Lo spazio delle istanze è , ovvero ogni istanza è descritta come un insieme di caratteristiche a valori booleani. L'algoritmo mantiene pesi non negativi per , uno per caratteristica, inizialmente impostati a 1. Quando al modello viene fornito un esempio , si applica la tipica regola di predizione per i classificatori lineari:
- se , allora si predice 1
- altrimenti si predice 0
ove è un numero reale che fa da soglia. Insieme ai pesi, la soglia definisce un iperpiano separatore nello spazio delle istanze. Si ottengono buoni limiti se (vedi sotto).
Per ogni esempio presentato, si applica la seguente regola di aggiornamento:
- Se l'esempio è classificato correttamente, non fare nulla.
- Se l'esempio è classificato in modo errato e il risultato corretto è 0, per ogni caratteristica tale che , il peso corrispondente va impostato a 0 (passo di retrocessione).
- Se l'esempio è classificato in modo errato e il risultato corretto è 1, per ogni caratteristica , il peso corrispondente va moltiplicato per α (passo di promozione).
Tipicamente si fissa α = 2.
Esistono molte varianti di questo approccio di base.
- Winnow2 [1] è simile, tranne per il fatto che nella fase di declassamento i pesi vengono divisi per α invece di essere impostati a 0.
- Balanced Winnow lavora con due insiemi di pesi e quindi due iperpiani. Questo può quindi essere generalizzato per classificazione multi-etichetta.
Limiti di errore
In determinate circostanze, si può dimostrare che il numero di errori commessi da Winnow durante l'apprendimento ha un limite superiore che non dipende dal numero di istanze in ingresso. Se l'algoritmo Winnow1 utilizza e su una funzione target che è una disgiunzione monotona di -letterali data da , allora per qualsiasi sequenza di istanze il numero totale di errori è limitato da: [2]
Note
- ^ a b (EN) Nick Littlestone, Learning Quickly When Irrelevant Attributes Abound: A New Linear-Threshold Algorithm, in Machine Learning, vol. 2, n. 4, 1º aprile 1988, pp. 285–318, DOI:10.1023/A:1022869011914. URL consultato il 20 agosto 2025.
- ^ Nick Littlestone (1989). "Mistake bounds and logarithmic linear-threshold learning algorithms". Technical report UCSC-CRL-89-11, University of California, Santa Cruz.