Bagaimana layer embedding dilatih pada layer Keras Embedding? (katakanlah menggunakan tensorflow backend, artinya mirip dengan word2vec, glove atau fasttext)
Anggaplah kita tidak menggunakan penyematan pretrained.
sumber
Bagaimana layer embedding dilatih pada layer Keras Embedding? (katakanlah menggunakan tensorflow backend, artinya mirip dengan word2vec, glove atau fasttext)
Anggaplah kita tidak menggunakan penyematan pretrained.
Kedua jawabannya salah.
Lapisan penyertaan adalah lapisan yang dapat dilatih yang berisi 1 matriks penyertaan, yang merupakan dua dimensi, dalam satu sumbu jumlah nilai unik yang dapat diambil oleh input kategoris (misalnya 26 dalam kasus alfabet huruf kecil) dan pada sumbu lainnya dimensi ruang embedding Anda. Peran lapisan embedding adalah untuk memetakan kategori ke dalam ruang padat dengan cara yang berguna untuk tugas yang dihadapi, setidaknya dalam tugas yang diawasi. Ini biasanya berarti ada beberapa nilai semantik dalam vektor embedding dan kategori yang dekat di ruang ini akan dekat artinya untuk tugas tersebut.
Ini terkait dengan pengkodean satu-panas dalam arti memetakan kategori diskrit ke dalam representasi fitur vektor. Anda masih bisa melakukan ini untuk jaringan saraf tetapi jika Anda menggunakan ini dalam lapisan padat Anda akan membuat sejumlah besar bobot yang sebagian besar dari mereka tidak digunakan secara teratur. Menempatkan lapisan embedding di antara mengurangi jumlah bobot yang bisa dipelajari sebelum memberi mereka untuk berinteraksi dengan bagian lain dari input Anda. Keuntungan lain adalah bahwa matriks embedding pada dasarnya berfungsi sebagai tabel pencarian, sehingga Anda benar-benar dapat menggunakan sparsity dari indeks kategori Anda untuk mencari tahu apa nilai saat ini dari embedding dan ketika menerapkan backpropagating hanya mengadaptasi entri matriks bobot itu. .
http://colah.github.io/posts/2014-07-NLP-RNNs-Representations -> posting blog ini menjelaskan dengan jelas tentang Bagaimana layer embedding dilatih dalam lapisan Keras Embedding. Semoga ini membantu.
Sejauh yang saya mengerti, ini adalah autoencoder sederhana, artinya semua yang dilakukannya adalah mencoba memetakan input ke ruang lain, jadi tidak ada pelatihan mewah, hanya beberapa umpan maju dan backprop. Inilah sebabnya mengapa ini agak cepat untuk dilatih.
Jika Anda ingin menggunakan embeddings yang sudah terlatih, Anda bisa melakukannya dengan cara itu
sumber
Lapisan embedding menggunakan matriks embedding untuk memetakan data dan tidak pernah diperbarui selama pelatihan . Tidak ada parameter trainable di lapisan Keras Embedding. Anda dapat merujuk dokumen layer embedding Keras untuk pemahaman rinci.
sumber