Overfitting: complessità del modello

La sezione precedente ha introdotto il seguente modello, che ha classificato erroneamente molti alberi nel set di test:

Figura 16. La stessa immagine della Figura 13. Si tratta di una forma complessa che
            classifica erroneamente molti alberi.
Figura 16. Il modello complesso con problemi della precedente unità.

Il modello precedente contiene molte forme complesse. Un modello più semplice gestirebbe meglio i nuovi dati? Supponiamo di sostituire il modello complesso con un modello incredibilmente semplice: una linea retta.

Figura 17. Un modello a linea retta che separa in modo eccellente gli alberi malati da quelli sani.
Figura 17. Un modello molto più semplice.

Il modello semplice generalizza meglio del modello complesso sui nuovi dati. In altre parole, il modello semplice ha fatto previsioni migliori sul set di test rispetto al modello complesso.

La semplicità batte la complessità da molto tempo. In effetti, la preferenza per la semplicità risale all'antica Grecia. Secoli dopo, un frate del XIV secolo di nome Guglielmo di Occam formalizzò la preferenza per la semplicità in una filosofia nota come rasoio di Occam. Questa filosofia rimane un principio di base essenziale di molte scienze, incluso il machine learning.

Esercizi: verifica la comprensione

Stai sviluppando un'equazione fisica. Quale delle seguenti formule è più conforme al rasoio di Occam?
Una formula con tre variabili.
Tre variabili sono più compatibili con il principio di Occam rispetto a dodici variabili.
Una formula con dodici variabili.
Dodici variabili sembrano eccessivamente complicate, non è vero? Le due formule di fisica più famose di tutti i tempi (F=ma ed E=mc2) coinvolgono ciascuna solo tre variabili.
Stai lavorando a un nuovo progetto di machine learning e stai per selezionare le tue prime funzionalità. Quante funzionalità dovresti scegliere?
Scegli 1-3 caratteristiche che sembrano avere una forte capacità predittiva.
È preferibile iniziare la pipeline di raccolta dei dati con una o due funzionalità. In questo modo, potrai verificare che il modello di ML funzioni come previsto. Inoltre, quando crei un riferimento da un paio di funzionalità, avrai la sensazione di fare progressi.
Scegli 4-6 caratteristiche che sembrano avere una forte capacità predittiva.
Potresti eventualmente utilizzare tutte queste funzionalità, ma è comunque meglio iniziare con meno. Un minor numero di funzionalità in genere significa meno complicazioni inutili.
Scegli quante più funzionalità possibili per iniziare a osservare quelle con la maggiore capacità predittiva.
Inizia in piccolo. Ogni nuova funzionalità aggiunge una nuova dimensione al set di dati di addestramento. Quando la dimensionalità aumenta, il volume dello spazio aumenta così rapidamente che i dati di addestramento disponibili diventano sparsi. Quanto più i dati sono scarsi, più è difficile per un modello apprendere la relazione tra le caratteristiche che contano davvero e l'etichetta. Questo fenomeno è chiamato "maledizione della dimensionalità".

Regolarizzazione

I modelli di machine learning devono soddisfare contemporaneamente due obiettivi in conflitto:

  • Adattarsi bene ai dati.
  • Adatta i dati nel modo più semplice possibile.

Un approccio per mantenere un modello semplice è penalizzare i modelli complessi, ovvero costringere il modello a diventare più semplice durante l'addestramento. L'applicazione di una penalità ai modelli complessi è una forma di regolarizzazione.

Perdita e complessità

Finora, questo corso ha suggerito che l'unico obiettivo dell'addestramento fosse minimizzare la perdita, ovvero:

$$\text{minimize(loss)}$$

Come hai visto, i modelli incentrati esclusivamente sulla minimizzazione della perdita tendono a presentare overfitting. Un algoritmo di ottimizzazione dell'addestramento migliore riduce al minimo una combinazione di perdita e complessità:

$$\text{minimize(loss + complexity)}$$

Purtroppo, perdita e complessità sono in genere inversamente proporzionali. Man mano che la complessità aumenta, la perdita diminuisce. Man mano che la complessità diminuisce, la perdita aumenta. Dovresti trovare una via di mezzo ragionevole in cui il modello effettui buone predizioni sia sui dati di addestramento sia su quelli reali. In altre parole, il modello deve trovare un compromesso ragionevole tra perdita e complessità.

Che cos'è la complessità?

Hai già visto alcuni modi diversi per quantificare la perdita. Come quantificheresti la complessità? Inizia l'esplorazione con il seguente esercizio:

Esercizio: controlla il tuo intuito

Finora abbiamo parlato in modo piuttosto vago di cosa sia effettivamente la complessità. Quale delle seguenti idee ritieni possa essere una metrica di complessità ragionevole?
La complessità è una funzione dei pesi del modello.
Sì, questo è uno dei modi per misurare la complessità di alcuni modelli. Questa metrica è chiamata regolarizzazione L1.
La complessità è una funzione del quadrato dei pesi del modello.
Sì, puoi misurare la complessità di alcuni modelli in questo modo. Questa metrica è chiamata regolarizzazione L2.
La complessità è una funzione dei bias di tutte le caratteristiche del modello.
Il bias non misura la complessità.