Quale funzione di perdita dovrei usare per segnare un modello seq2seq RNN?


10

Sto lavorando al documento Cho 2014 che ha introdotto l'architettura encoder-decoder per la modellazione seq2seq.

Nel documento, sembrano usare la probabilità dell'input dato input (o è la probabilità di log negativo) come funzione di perdita per un input di lunghezza M e output y di lunghezza N :XMyN

P(y1,...,yN|X1,...,XM)=P(y1|X1,...,Xm)P(y2|y1,X1,...,Xm)...P(yN|y1,...,yN-1,X1,...,Xm)

Tuttavia, penso di vedere diversi problemi con l'utilizzo di questo come una funzione di perdita:

  1. Sembra presupporre la forzatura dell'insegnante durante l'allenamento (ovvero, invece di utilizzare la congettura del decodificatore per una posizione come input per la successiva iterazione, utilizza il token noto.
  2. Non penalizzerebbe lunghe sequenze. Poiché la probabilità è compresa tra e N dell'uscita, se il decodificatore generasse una sequenza più lunga tutto dopo il primo N non determinerebbe la perdita.1NN
  3. Se il modello prevede un token di fine stringa precoce, la funzione di perdita richiede ancora passaggi, il che significa che stiamo generando output basati su un "collettore" non addestrato dei modelli. Sembra sciatto.N

Qualcuno di questi dubbi è valido? In tal caso, ci sono stati progressi in una funzione di perdita più avanzata?

Risposte:


1

Sembra presupporre la forzatura dell'insegnante durante l'allenamento (ovvero, invece di utilizzare la congettura del decodificatore per una posizione come input per la successiva iterazione, utilizza il token noto.

logP(y1,...,yN)P(y)=ΠioP(yio|y<io)X

Data l'ubiquità dell'MLE e la mancanza di buone alternative, non credo che assumere "l'insegnamento forzato" sia discutibile.

Ciononostante ci sono certamente problemi con esso - vale a dire, il modello assegna un'alta probabilità a tutti i punti di dati, ma i campioni del modello non sono necessariamente probabili nella vera distribuzione dei dati (che si traduce in campioni di "bassa qualità"). Potresti essere interessato a "Professor Forcing" (Lamb et al.) Che lo mitiga attraverso una procedura di addestramento contraddittoria senza rinunciare a MLE.

Non penalizzerebbe lunghe sequenze. Poiché la probabilità è compresa tra 1 e N dell'uscita, se il decodificatore generasse una sequenza più lunga tutto dopo il primo N non determinerebbe la perdita.

e

Se il modello prevede un token di fine stringa precoce, la funzione di perdita richiede ancora N passaggi, il che significa che stiamo generando output basati su un "collettore" non addestrato dei modelli. Sembra sciatto.

Nessuno di questi sono problemi che si verificano durante l'allenamento. Invece di pensare a un modello di sequenza autoregressiva come una procedura per generare una previsione, pensalo come un modo per calcolare quanto è probabile una determinata sequenza. Il modello non prevede mai nulla - puoi campionare una sequenza o un token da una distribuzione, oppure puoi chiedergli quale sia il token successivo più probabile - ma questi sono sostanzialmente diversi da una previsione (e non esegui il campionamento durante l'allenamento o).

In tal caso, ci sono stati progressi in una funzione di perdita più avanzata?

Potrebbero esserci degli obiettivi specificamente progettati caso per caso per diverse attività di modellizzazione. Tuttavia, direi che MLE è ancora dominante: il recente modello GPT2 che ha ottenuto prestazioni all'avanguardia su un ampio spettro di attività di modellizzazione e comprensione del linguaggio naturale è stato addestrato con esso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.