Gürültü Karşıtlığı Tahmini (NCE) kaybının sezgisel açıklaması?


32

Bu iki kaynaktan NCE'yi (bir aday örnekleme şekli) okudum:

Tensorflow yazımı

Orjinal kağıt

Birisi bana şu konuda yardımcı olabilir:

  1. NCE'nin nasıl çalıştığının basit bir açıklaması (Yukarıdakileri ayrıştırmanın ve anlamanın zor olduğunu gördüm, bu yüzden orada sunulan matematiğe yol açan sezgisel bir şey harika olurdu)
  2. Yukarıdaki 1. maddeden sonra, bunun Negatif Örneklemeden ne kadar farklı olduğuna dair doğal olarak sezgisel bir açıklama. Formülde küçük bir değişiklik olduğunu ancak matematiği anlayamadığımı görebiliyorum. Bağlamsal negatif örneklemenin sezgisel bir anlayışı var word2vec- bağlamda bazı örnekleri rastgele seçiyoruz Vve sadece |V|büyük olanları güncelledik çünkü bu büyük ve bu bir hızlandırma sunuyor. Lütfen yanlışsa düzeltin.
  3. Hangisini ne zaman kullanmalı ve buna nasıl karar verilmiştir? Örnekler ekleyebilirseniz (uygulamaların anlaşılması kolay olabilir) çok iyi olurdu.
  4. NCE, Negatif Örneklemeden daha mı iyidir? Hangi şekilde daha iyi?

Teşekkür ederim.


Yazım olabilir yardımcı olabilir. nanjiang.quora.com/Noise-contrastive- gantub.com/jiangnanHugo/language_modeling adresinde kestirim ve sonra theano ile yapılan deneyler bulunabilir. Umarım anlayışım doğrudur.
jiangnan hugo

Yanıtlar:


27

Bu yazıdan alınmıştır: https://stats.stackexchange.com/a/245452/154812

Sorun

"Standart" bir sinir ağı kullanarak kelime vektörlerini öğrenmede bazı sorunlar vardır. Bu şekilde, ağlar bir sözcükler penceresi (ağın girişi) verilen bir sonraki sözcüğü tahmin etmeyi öğrenirken vektörler kelimesi öğrenilir.

Bir sonraki sözcüğü tahmin etmek, sınıfı öngörmek gibidir. Yani, böyle bir ağ sadece bir "standart" multinomial (multi-class) sınıflandırıcıdır. Ve bu ağ, sınıflar kadar çok çıkış nöronuna sahip olmalı. Sınıflar gerçek kelimeler olduğunda, nöronların sayısı büyüktür.

Bir "standart" sinir ağı genellikle çıkış nöronlarının olasılıkları temsil etmesini gerektiren çapraz entropi maliyet fonksiyonu ile eğitilir - bu, her sınıf için ağ tarafından hesaplanan çıkış "puanlarının" normalize edilmesi, dönüştürülmesi gerektiği anlamına gelir. Her sınıf için gerçek olasılıklar. Bu normalizasyon adımı softmax işlevi ile gerçekleştirilir. Softmax, büyük bir çıktı katmanına uygulandığında çok maliyetlidir.

(A) çözümü

Bu meseleyle başa çıkmak için, yani, softmax'ın pahalı hesaplanması, Word2Vec, gürültüye zıtlık tahmini olarak adlandırılan bir teknik kullanır. Bu teknik [A] tarafından tanıtıldı ([B] tarafından yeniden formüle edildi), daha sonra [C], [D], [E] etiketlerinde etiketsiz doğal dil metninden kelime gömme işlemlerini öğrenmek için kullanıldı.

Temel fikir, çok uluslu bir sınıflandırma problemini (bir sonraki kelimeyi öngörme problemi olduğu gibi) ikili sınıflandırma problemine dönüştürmektir. Bu, çıktı sözcüğünün gerçek bir olasılık dağılımını tahmin etmek için softmax kullanmak yerine, bunun yerine ikili bir lojistik regresyon (ikili sınıflandırma) kullanılır.

Her eğitim numunesi için, geliştirilmiş (optimize edilmiş) sınıflandırıcı, gerçek bir çift (bir merkez kelime ve içeriğinde görünen başka bir kelime) ve bir dizi kk rasgele bozuk çift (bir merkez kelime ve rastgele seçilen bir kelime içeren) beslenir. kelime). Sınıflayıcı, gerçek çiftleri bozuk olanlardan ayırt etmeyi öğrenerek sonuçta vektör sözcüklerini öğrenir.

Bu önemlidir: bir sonraki kelimeyi ("standart" eğitim tekniği) tahmin etmek yerine, optimize edilmiş sınıflandırıcı basitçe bir kelimenin bir çiftinin iyi veya kötü olup olmadığını tahmin eder.

Word2Vec işlemi biraz özelleştiriyor ve negatif örnekleme olarak adlandırıyor. Word2Vec'te, negatif örnekler için olan kelimeler (bozuk çiftler için kullanılır), daha sık çizilmesi gereken kelimelerin daha az sıklıkta kullanılmasını sağlayan özel olarak tasarlanmış bir dağıtımdan çekilir.

Referanslar

[A] (2005) - Kontrastlı tahmin: Etiketlenmemiş veriler üzerinde log log lineer modeller eğitimi

[B] (2010) - Gürültü kontrastlı tahmin: Normalleştirilmemiş istatistiksel modeller için yeni bir tahmin prensibi

[C] (2008) - Doğal dil işleme için birleşik bir mimari: Çoklu görev öğrenmeye sahip derin sinir ağları

[D] (2012) - Sinirsel olasılıksal dil modellerinin eğitimi için hızlı ve basit bir algoritma .

[E] (2013) - Gürültü kontrastlı tahmin ile kelime gömme işlemlerini etkin bir şekilde öğrenme .


3

Açıkçası NCE kaybının neden matematiğini anlamadan işe yarayacağını anlamanın sezgisel bir yolu yoktur. Matematiği anlamak için orijinal makaleyi okumalısınız.

NCE maksimum olabilirlik tahmini (MLE) gerçek veri gürültü oranına yaklaşan çünkü NCE kaybı çalışacak nedeni budur artar.k

TensorFlow uygulaması pratikte çalışır. Temel olarak, her veri için , , verilerden etiketli sınıftır, TensorFlow NCE kaybı örnekleri , gürültü dağılımlarından sınıflarıdır. Denklem kullanarak , sınıfların her biri için basamakların özel bir versiyonunu hesapladık (1'den veri + gürültü dağılımına kadar)(x,y)ykk

Δsθ0(w,h)=sθ0(w,h)-günlükkPn(w)

Burada gürültü dağılımıdır. Hesaplanan her sınıfın haneleriyle, TensorFlow, sınıfların her biri için ikili sınıflandırma için softmax kaybını (lojistik regresyonda log kaybı) hesaplamak için rakamları kullanır ve bu kayıpları nihai NCE kaybı olarak birleştirir.Pn(w)

Gerçek veri gürültü oranı nedeniyle Ancak uygulamalar kavramsal yanlıştır sınıfların sayısına farklıdır gürültü dağıtımlarından örneklenmiş. TensorFlow NCE, gürültü / veri oranı için bir değişken sağlamaz ve dolaylı olarak olduğunu ve bunun kavramsal olarak yanlış olduğunu düşünüyorum.knn=k

Orijinal NCE raporları ispatın türevlerini çok fazla atladı, böylece NCE'yi anlamak gerçekten zordu. NCE hakkındaki matematiği daha kolay anlamak için, NCE dergilerinden matematiği açıklayan bir blog yazısı var:

https://leimao.github.io/article/Noise-Contrastive-Estimation/ .

Üniversite ikinci sınıf öğrencisi veya üstü bunu anlayabilmelidir.


1

Temel olarak, bu gerçek sınıftan ve diğer bazı gürültülü sınıf etiketlerinden oluşan gerçek dağıtımdan bir örnek seçmektir. Sonra softmax'ı ele geçir.

Bu, gerçek dağıtım ve gürültü dağılımından gelen kelimeleri örneklemeye dayanır.

Buradaki temel fikir, gerçek dağılımdan elde edilen örnekleri ve gürültü dağılımından elde edilen numuneleri ayırabilecek lojistik regresyon sınıflandırıcısını yetiştirmektir. Unutma Gerçek dağıtımdan elde edilen örnekler hakkında konuşurken, model dağılımından elde edilen gerçek sınıf olan sadece bir örnek hakkında konuşuyoruz.

Burada NCE kaybını ve bunun NCE kaybından nasıl farklı olduğunu açıkladım.

Gürültü Kontrast Tahmini: Pahalı Softmax için çözüm.


1
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir.
tuomastik

0

Basit bir deyişle, NCE sadece 1 pozitif etiket ve k negatif olanlar ile sadece çoklu etiketli bir sınıflandırma kaybı işlevidir.

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.