Como a camada de incorporação é treinada na camada de incorporação Keras? (digamos, usando back-end tensorflow, o que significa que é semelhante ao word2vec, glove ou fasttext)
Suponha que não usamos uma incorporação pré-treinada.
fonte
Como a camada de incorporação é treinada na camada de incorporação Keras? (digamos, usando back-end tensorflow, o que significa que é semelhante ao word2vec, glove ou fasttext)
Suponha que não usamos uma incorporação pré-treinada.
Ambas as respostas estão erradas.
Uma camada de incorporação é uma camada treinável que contém 1 matriz de incorporação, que é bidimensional, em um eixo o número de valores exclusivos que a entrada categórica pode receber (por exemplo, 26 no caso de alfabeto minúsculo) e, no outro eixo, a dimensionalidade do seu espaço de incorporação. O papel da camada de incorporação é mapear uma categoria em um espaço denso, de maneira que seja útil para a tarefa em questão, pelo menos em uma tarefa supervisionada. Isso geralmente significa que há algum valor semântico nos vetores de incorporação e as categorias próximas nesse espaço terão um significado próximo para a tarefa.
Isso está relacionado à codificação one-hot, no sentido em que mapeia uma categoria discreta em uma representação de recurso vetorial. Você ainda pode fazer isso para uma rede neural, mas se você usar isso em uma camada densa, criará uma enorme quantidade de pesos, dos quais a maioria deles não é usada regularmente. Colocar uma camada de incorporação no meio reduz a quantidade de pesos aprendíveis antes de alimentá-los para interagir com outras partes da sua entrada. Outra vantagem é que a matriz de incorporação basicamente funciona como uma tabela de pesquisa, para que você possa realmente usar a escassez do índice de sua categoria para procurar qual é o valor atual da incorporação e ao aplicar a retropropagação apenas adaptando essa entrada da matriz de peso .
http://colah.github.io/posts/2014-07-NLP-RNNs-Representations -> esta postagem do blog explica claramente sobre como a camada de incorporação é treinada na camada de incorporação da Keras. Espero que isto ajude.
Tanto quanto eu entendo, é um auto-codificador simples, o que significa que tudo o que faz é tentar mapear a entrada em outro espaço, para que não haja treinamento sofisticado, apenas um feed-forward e backprop simples. É por isso que é bastante rápido treinar.
Se você deseja usar casamentos pré-treinados, pode fazê-lo dessa maneira
fonte
A camada de incorporação usa a matriz de incorporação para mapear dados e nunca é atualizada durante o treinamento . Não há parâmetros treináveis na camada Keras Embedding. Você pode consultar os documentos da camada de incorporação do Keras para obter um entendimento detalhado.
fonte