Winnow (algoritmo): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica |
m Bot: attivo categorie e rimuovo template bozza |
||
(5 versioni intermedie di 4 utenti non mostrate) | |||
Riga 1:
L'algoritmo '''Winnow''' <ref name=":0">{{Cita pubblicazione|nome=Nick|cognome=Littlestone|data=1988-04-01|titolo=Learning Quickly When Irrelevant Attributes Abound: A New Linear-Threshold Algorithm|rivista=Machine Learning|volume=2|numero=4|pp=285–318|lingua=en|accesso=2025-08-20|doi=10.1023/A:1022869011914|url=https://doi.org/10.1023/A:1022869011914}}</ref> è un metodo di [[apprendimento automatico]] utile a definire un [[classificatore lineare]] a partire da esempi etichettati. Si tratta di un algoritmo molto simile al [[percettrone]], con la differenza che questo adotta uno schema di aggiornamento dei pesi additivo, mentre Winnow utilizza uno schema moltiplicativo che gli consente di funzionare molto meglio in presenza di molte dimensioni (''feature'') non rilevanti (da cui il nome, ="[[Crivello|setaccio]]"). L'algoritmo è semplice e si adatta bene a dati ad alta dimensionalità. Durante l'addestramento, a Winnow viene fornita una sequenza di esempi positivi e negativi. Da questa
▲L'algoritmo '''Winnow''' <ref name=":0">{{Cita pubblicazione|nome=Nick|cognome=Littlestone|data=1988-04-01|titolo=Learning Quickly When Irrelevant Attributes Abound: A New Linear-Threshold Algorithm|rivista=Machine Learning|volume=2|numero=4|pp=285–318|lingua=en|accesso=2025-08-20|doi=10.1023/A:1022869011914|url=https://doi.org/10.1023/A:1022869011914}}</ref> è un metodo di [[apprendimento automatico]] utile a definire un [[classificatore lineare]] a partire da esempi etichettati. Si tratta di un algoritmo molto simile al [[percettrone]], con la differenza che questo adotta uno schema di aggiornamento dei pesi additivo, mentre Winnow utilizza uno schema moltiplicativo che gli consente di funzionare molto meglio in presenza di molte dimensioni (''feature'') non rilevanti (da cui il nome, ="[[Crivello|setaccio]]"). L'algoritmo è semplice e si adatta bene a dati ad alta dimensionalità. Durante l'addestramento, a Winnow viene fornita una sequenza di esempi positivi e negativi. Da questa esso apprende un [[iperpiano]] di decisione che può poi essere utilizzato per etichettare nuovi esempi come positivi o negativi. L'algoritmo può essere utilizzato anche in contesti di apprendimento ''online'', nei quali la fase di apprendimento e quella di classificazione non sono nettamente separate.
== Algoritmo ==
L'algoritmo di base, ''Winnow1'', funziona come segue. Lo spazio delle istanze è <math>X=\{0,1\}^n</math>, ovvero ogni istanza viene descritta da un insieme di [[Caratteristica (apprendimento automatico)|caratteristiche]] a valori [[Booleano (informatica)|booleani]]. L'algoritmo gestisce un vettore di pesi non negativi <math>w_i</math> per <math>i\in \{1,\ldots,n\}</math>, uno per ogni caratteristica, inizialmente impostati a 1. Quando
* '''se''' <math>\sum_{i=1}^n w_i x_i > \Theta </math>, '''allora''' si predice 1
* '''altrimenti''' si predice 0
dove <math>\Theta</math> è un numero reale che fa da ''soglia''. Insieme ai pesi, la soglia definisce un iperpiano separatore nello spazio delle istanze. Si ottengono buone limitazioni all'errore se <math>\Theta=n/2</math> (cfr.
In fase di addestramento, per ogni esempio fornito, si applica la seguente ''regola di aggiornamento'':
|