Perché la cross-entropia è una buona funzione di perdita per il pre-addestramento del linguaggio? avvertenza: tutto ciò è noto, tra l'altro; curiosamente, anche se ci sono molti punti di vista e intuizioni su "perché x-ent", tutti possono essere raggiunti a partire da un unico punto di partenza. Ecco una semplice derivazione dai primi principi che non assume nulla sulla distribuzione dei dati. Deriva da un requisito operativo molto ragionevole :) "Voglio che il mio modello suoni intelligente" ma non possiamo misurarlo, quindi chiediamo "Voglio che il mio modello suoni come un umano" Anche se abbiamo accesso a tutti i testi mai scritti, non possiamo misurarlo nemmeno, quindi chiediamo invece "Voglio che il mio modello sia il più probabile possibile per generare uno dei testi mai scritti" O più brutalmente: "Voglio che il mio modello memorizzi i dati di addestramento." Considera questo esperimento mentale: Data un dataset S di tutto il testo mai scritto dagli esseri umani, eseguiamo prove indipendenti per ogni "testo" in S: Campiona: "testo campione" dal nostro modello Pr( ;W) Controlla: il "testo campione" corrisponde esattamente all'originale? Nota: non ci conditioniamo su nulla! chiediamo solo, di tutte le cose che il modello potrebbe generare, abbiamo ottenuto "testo". Definisci il successo come l'evento E = "tutti i controlli per campione hanno successo" La probabilità di E è, il prodotto delle probabilità assegnate alla verità di base corretta dal tuo modello W Pr(E) = Π_{testo in S} Pr(testo; W) Massimizzare log Pr(E) su W ti dà l'obiettivo della cross-entropia. Come ottimizzi questo con SGD? testo campione dal corpus calcola grad log Pr(token|prefix) per ogni prefisso di testo aggiorna il modello Ciò che è elegante è che questo stesso simultaneamente: 1) Minimizza la lunghezza della descrizione dei dati sotto il modello P( ;W) (prospettiva di compressione) 2) Minimizza la divergenza KL dalla vera distribuzione—se esiste (anche se non abbiamo mai assunto che esista) 3) Implementa la stima della massima verosimiglianza La derivazione è diretta e ben nota, ma evidenzia qualcosa di importante: la cross-entropia emerge naturalmente dal desiderio di riproduzione esatta dei dati di addestramento. P.S. avresti potuto invece chiedere di massimizzare Pr(testo generato dal modello è nella verità di base) curiosamente, ottimizzare questo può portare al collasso della modalità, poiché una soluzione ottimale è prevedere sempre un singolo pezzo di testo dal corpus. Eppure i gradienti sembrano di nuovo come x-ent ma con un fattore moltiplicativo i.e., Pr(testo;W) grad log Pr(testo;W)
57,78K