Gömme katmanı Keras Gömme katmanında nasıl eğitilir


14

Gömme katmanı Keras Gömme katmanında nasıl eğitilir? (tensorflow arka ucunu kullandığınızı, yani word2vec, eldiven veya hızlı metne benzediğini söyleyin)

Varsayalım.


colah.github.io/posts/2014-07-NLP-RNNs-Representations -> Bu blog yazısı , katıştırma katmanının Keras Katıştırma katmanında nasıl eğitildiği hakkında net bir şekilde açıklar . Bu yardımcı olur umarım.
Akshay U Prabhu

Yanıtlar:


25

Keras'a katmanları gömme, ağ mimarinizdeki diğer tüm katmanlar gibi eğitilir: seçilen optimizasyon yöntemini kullanarak kayıp işlevini en aza indirecek şekilde ayarlanırlar. Diğer katmanlar arasındaki en büyük fark, çıktılarının girdinin matematiksel bir işlevi olmamasıdır. Bunun yerine, katmanın girdisi bir tabloyu gömme vektörleri ile indekslemek için kullanılır [1]. Bununla birlikte, alttaki otomatik farklılaştırma motorunun, kayıp fonksiyonunu en aza indirmek için bu vektörleri optimize etmekte bir problemi yoktur ...

Dolayısıyla, Keras'taki Gömme katmanının word2vec [2] ile aynı işi yaptığını söyleyemezsiniz. Word2vec'in kelimelerin anlambilimini yakalayan bir gömme öğrenmeye çalışan çok özel bir ağ kurulumunu ifade ettiğini unutmayın. Keras'ın gömme katmanıyla, sadece kayıp işlevini en aza indirmeye çalışıyorsunuz, bu yüzden örneğin bir duygu sınıflandırma problemiyle çalışıyorsanız, öğrenilen gömme muhtemelen tam kelime semantiği değil, sadece duygusal kutuplarını yakalayacaktır ...

Örneğin, [3] 'ten alınan aşağıdaki görüntü, tıklama cümlesi başlıklarını (solda) ve önceden eğitilmiş word2vec düğünlerini (sağda) algılamak için tasarlanmış denetlenen bir ağın parçası olarak sıfırdan eğitilmiş bir Keras Gömme katmanıyla üç cümlenin gömülmesini gösterir . Gördüğünüz gibi, word2vec düğünleri b) ve c) cümleleri arasındaki anlamsal benzerliği yansıtmaktadır. Tersine, Keras'ın Gömme katmanı tarafından üretilen düğünler sınıflandırma için yararlı olabilir, ancak b) ve c) 'nin anlamsal benzerliğini yakalamaz.

resim açıklamasını buraya girin

Bu, sınırlı sayıda eğitim örneğiniz olduğunda, Gömme katmanınızı word2vec ağırlıklarıyla başlatmak için iyi bir fikir olabileceğini açıklar , bu nedenle en azından modeliniz "Alpler" ve "Himalaya" nın benzer şeyler olduğunu kabul eder, her ikisi de eğitim veri kümenizin cümlelerinde meydana gelmez.

[1] Keras 'Gömme' katmanı nasıl çalışır?

[2] https://www.tensorflow.org/tutorials/word2vec

[3] https://link.springer.com/article/10.1007/s10489-017-1109-7

NOT: Aslında görüntü, Gömme katmanından sonra katmanın aktivasyonlarını gösterir, ancak bu örneğin amacı önemli değildir ... [3] 'te daha fazla ayrıntı görün


2
Bu tam olarak aradığım açıklama! Bu cümlenin kalın olması gerektiğini düşünüyorum: "word2vec'in kelimelerin anlambilimini yakalayan bir gömme öğrenmeye çalışan çok özel bir ağ kurulumunu ifade ettiğini unutmayın."
Kevin

0

Gömme tabakası, sadece kesikli ve seyrek 1-sıcak-vektörden sürekli ve yoğun bir latent uzaya bir izdüşümdür. (N, m) 'nin bir matrisidir; burada n, kelime bilginizdir ve n, istediğiniz gizli alan boyutudur. Sadece pratikte, matris çarpımını gerçekten yapmaya gerek yoktur ve bunun yerine dizini kullanarak hesaplamadan tasarruf edebilirsiniz. Yani pratikte, pozitif tam sayıları (kelimelere karşılık gelen indeksler) sabit boyutlu yoğun vektörlere (gömme vektörleri) eşleyen bir katmandır.

Skip-Gram veya CBOW kullanarak bir Word2Vec gömme oluşturmak için eğitebilirsiniz. Ya da elinizdeki özel göreve uygun bir gömme elde etmek için bunu özel probleminiz üzerinde eğitebilirsiniz. Ayrıca önceden eğitilmiş düğünleri (Word2Vec, GloVe vb.) Yükleyebilir ve daha sonra özel probleminiz (bir tür transfer öğrenimi) üzerinde eğitime devam edebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.