Funzioni di costo
Una funzione di costo, a volte indicata come funzione di perdita o funzione obiettivo, è una misura della differenza tra i risultati reali e previsti di un esempio di formazione. L'obiettivo dell'addestramento del modello è ridurre il valore medio della funzione di perdita in tutti i casi di addestramento.
Le tipiche funzioni di perdita per i problemi di regressione includono l'errore quadratico medio (MSE), l'entropia incrociata binaria per problemi di classificazione binaria e l'entropia incrociata categoriale per problemi di classificazione multiclasse. Il tipo di output prodotto dal modello e la natura del problema influenzeranno la selezione della funzione di perdita. Nell'articolo sulla regressione lineare in dettaglio, abbiamo elencato diverse funzioni di costo che vengono utilizzate nella regressione lineare e sono simili alla suddetta funzione di costo MSE. Si prega di controllare il riferimento su quell'articolo per saperne di più sulle funzioni di costo.
Regressione lineare in profonditàInoltre, l'entropia incrociata binaria per il problema della classificazione binaria è stata spiegata in dettaglio nell'articolo Logistic Regression in Depth. Puoi controllare quella funzione di costo in questo riferimento.
Regressione logistica in profonditàIn questo articolo esamineremo l'entropia incrociata categoriale (CCE) e discuteremo le basi della funzione di costo. Inoltre, parleremo di Kullback-Leibler (KL) Divergence o Hinge Loss.
Entropia incrociata categoriale (CCE)
Nei problemi di classificazione multiclasse, in cui l'obiettivo è prevedere una delle diverse classi, l'entropia incrociata categoriale (CCE) è una funzione di perdita frequentemente utilizzata. Il CCE calcola la discrepanza media tra le etichette di classe effettive e la distribuzione di probabilità prevista in tutte le classi. Dato un insieme di probabilità di classe previste y_pred e etichette di classe vere y_true, la perdita di entropia incrociata categoriale è definita come:
Dove:
- Il vettore y_i è una rappresentazione codificata one-hot della vera etichetta di classe. Con un valore di 1 per la vera classe e 0 per tutte le altre classi,
- yhat_i vector è la probabilità di classe prevista emessa dal modello,
- e J è una funzione obiettivo che cerchiamo di minimizzare o massimizzare .
Massimizzare la probabilità delle vere etichette di classe alla luce delle probabilità di classe previste è paragonabile a minimizzare la perdita di entropia incrociata categoriale. Ciò lo rende un'opzione adatta per l'addestramento di modelli di classificazione come la regressione softmax e le reti neurali con un'attivazione softmax che prevede le probabilità di classe.
È fondamentale ricordare che la perdita di entropia incrociata categoriale è appropriata solo per problemi che coinvolgono molte classi di classificazione, in cui ogni campione può essere assegnato solo a una classe. Una diversa funzione di perdita, come l'entropia incrociata binaria, è più adatta per problemi di classificazione multietichetta quando un campione può appartenere a numerose classi.
Kullback-Leibler (KL)
L'entropia relativa, a volte indicata come divergenza di Kullback-Leibler (KL), è una metrica per confrontare due distribuzioni di probabilità. Nell'apprendimento automatico, viene spesso utilizzato come funzione di perdita, in particolare nei modelli generativi come gli autocodificatori variazionali (VAE) e le reti generative avversarie (GAN).
Date due distribuzioni di probabilità p e q, la divergenza KL tra p e q è definita come:
Dove:
- dove i è l'indice di un campione,
- La divergenza KL misura il valore atteso della differenza logaritmica tra la distribuzione vera p e la distribuzione approssimata q .
Perdita della cerniera
Applicato durante lo sviluppo di classificatori lineari con Support Vector Machines (SVM). Viene impiegato per la classificazione del margine massimo e penalizza il modello quando prevede la classe sbagliata, con la gravità della penalità inversamente correlata con il divario tra la classe prevista e quella vera. Tuttavia, a causa di un diverso argomento sui modelli SVM, questa funzione di perdita sarà trattata in un articolo separato (da pubblicare).
La maggior parte dei modelli di machine learning viene addestrata utilizzando l'ottimizzazione basata sul gradiente , in cui i parametri del modello vengono aggiornati in modo da ridurre al minimo la perdita in base ai gradienti della funzione di perdita rispetto a tali parametri. La procedura di ottimizzazione sarà stabile ed efficace se si seleziona una funzione di perdita che è differenziabile e ha un gradiente che si comporta correttamente. Pertanto, è fondamentale testare varie funzioni di perdita e selezionare quella che funziona meglio sul set di convalida poiché la funzione di perdita scelta può avere un impatto sul comportamento del modello. Questa procedura, nota come ottimizzazione degli iperparametri , può essere cruciale per massimizzare le prestazioni di un modello. Pertanto, se vuoi saperne di più sulle tecniche di ottimizzazione basate sul gradiente, dai un'occhiata a questo articolo.
Diverse funzioni di perdita rispondono ai valori anomali in modo diverso. Ad esempio, l'errore quadratico medio (MSE) è più suscettibile ai valori anomali rispetto all'errore assoluto medio (MAE). Per evitare che il modello sia influenzato in modo sproporzionato da pochi esempi estremi, può essere necessario impiegare una funzione di perdita meno sensibile ai valori anomali, a seconda della natura del problema. In alcuni casi, può essere necessario aggiungere un termine di regolarizzazione alla funzione di perdita per prevenire l'overfitting. Questo può essere fatto aggiungendo un termine di penalità che scoraggi il modello dall'avere troppi parametri o troppa complessità. Le tecniche di regolarizzazione comuni includono la regolarizzazione L1 e L2, l'abbandono e l'arresto anticipato. Oppure, in alcuni casi, la distribuzione delle classi nel training set potrebbeessere sbilanciato , nel senso che una classe ha molti più esempi di un'altra. Ciò può causare problemi per alcune funzioni di perdita, poiché possono essere dominate dalla classe maggioritaria e ignorare la classe minoritaria. Per risolvere questo problema, potrebbe essere necessario utilizzare una funzione di perdita che dia più peso alla classe di minoranza o sovracampionare o sottocampionare l'insieme di addestramento per bilanciare la distribuzione della classe.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































