Come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras? (ad esempio usando tensorflow backend, il che significa che è simile a word2vec, glove o fasttext)
Supponiamo di non utilizzare un incorporamento predefinito.
Come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras? (ad esempio usando tensorflow backend, il che significa che è simile a word2vec, glove o fasttext)
Supponiamo di non utilizzare un incorporamento predefinito.
Risposte:
Entrambe le risposte sono sbagliate.
Un livello di incorporamento è un livello trainabile che contiene 1 matrice di incorporamento, che è bidimensionale, in un asse il numero di valori univoci che l'input categorico può assumere (ad esempio 26 nel caso dell'alfabeto minuscolo) e nell'altro asse la dimensionalità del tuo spazio di incorporamento. Il ruolo del livello di incorporamento è mappare una categoria in uno spazio denso in un modo utile per l'attività in corso, almeno in un'attività supervisionata. Questo di solito significa che c'è un valore semantico nei vettori di incorporamento e le categorie vicine in questo spazio avranno un significato vicino all'attività.
Ciò è correlato alla codifica one-hot, nel senso che mappa una categoria discreta in una rappresentazione di caratteristiche vettoriali. Potresti ancora farlo per una rete neurale ma se lo usi in uno strato denso creeresti un'enorme quantità di pesi di cui la maggior parte non viene utilizzata regolarmente. Mettere un livello di incorporamento tra riduce la quantità di pesi apprendibili prima di alimentarli per interagire con altre parti dell'input. Un altro vantaggio è che la matrice di incorporamento funziona fondamentalmente come una tabella di ricerca, quindi puoi davvero usare la scarsità dell'indice della tua categoria per cercare quale sia il valore corrente dell'incorporamento e quando applichi la backpropagating adattando solo quella voce della matrice di peso .
http://colah.github.io/posts/2014-07-NLP-RNNs-Representations -> questo post del blog spiega chiaramente come viene addestrato il livello di incorporamento nel livello Incorporamento di Keras. Spero che sia di aiuto.
Per quanto ho capito, è un semplice auto-codificatore, il che significa che tutto ciò che fa è cercare di mappare l'input in un altro spazio, quindi nessun allenamento di fantasia, solo un semplice feed-forward e backprop. Questo è il motivo per cui è piuttosto veloce allenarsi.
Se si desidera utilizzare incorporamenti pre-addestrati, è possibile farlo in questo modo
Il livello di incorporamento utilizza la matrice di incorporamento per mappare i dati e non viene mai aggiornato durante l'allenamento . Non ci sono parametri allenabili nel livello Incorporamento di Keras. Puoi fare riferimento ai documenti del livello di incorporamento di Keras per una comprensione dettagliata.