Bir seq2seq RNN modelini puanlamak için hangi kayıp fonksiyonunu kullanmalıyım?


10

Ben seq2seq modelleme için kodlayıcı-kod çözücü mimarisini tanıttı Cho 2014 kağıt üzerinde çalışıyorum .

Bu makalede, uzunluğundaki bir giriş ve uzunluğundaki çıkışı için kayıp fonksiyonu olarak girdi verilen çıkışın (ya da negatif log olabilirliği) olasılığını kullanıyor görünmektedir :M y NxMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

Ancak, bunu bir kayıp işlevi olarak kullanma ile ilgili çeşitli sorunlar gördüğümü düşünüyorum:

  1. Eğitim sırasında öğretmen zorlamasını varsayar (yani, bir sonraki yinelemenin girişi olarak kod çözücünün tahminini bir konum için kullanmak yerine, bilinen jetonu kullanır.
  2. Uzun dizileri cezalandırmaz. Olasılık çıkışın ila arasında olduğundan, kod çözücü daha uzun bir sekans oluşturduysa, ilk sonraki her şey kaybı hesaba katmaz.N N1NN
  3. Model erken bir String Sonu belirteci öngörüyorsa, kayıp işlevi hala adımı gerektirir - bu da modellerin eğitimsiz bir "manifolduna" dayalı çıktılar ürettiğimiz anlamına gelir. Bu özensiz görünüyor.N

Bu endişelerden herhangi biri geçerli mi? Öyleyse, daha gelişmiş bir kayıp fonksiyonunda ilerleme oldu mu?

Yanıtlar:


1

Eğitim sırasında öğretmen zorlamasını varsayar (yani, bir sonraki yinelemenin girişi olarak kod çözücünün tahminini bir konum için kullanmak yerine, bilinen jetonu kullanır.

"Öğretmen zorlama" terimi beni biraz rahatsız ediyor, çünkü bir çeşit fikri kaçırıyor: Bilinen bir sonraki RNN modeline beslemenin yanlış ya da garip bir yanı yok - kelimenin tam anlamıyla . Diziler üzerinde bir dağıtımı , yaygın olarak yapıldığı gibi olarak otomatik olarak , her koşullu terimin bir RNN ile modellenmiş olması durumunda, "öğretmen zorlaması" tek doğrudur günlük olasılığını en üst düzeye çıkaran yordam. ( Yukarıdaki koşullandırma dizisini yazmayı ihmal ediyorum çünkü hiçbir şeyi değiştirmiyor.)logP(y1,,yN)P(y)=iP(yi|y<i)x

MLE'nin yaygınlığı ve iyi alternatiflerin eksikliği göz önüne alındığında, "öğretmen zorlamasının" sakıncalı olduğunu düşünmüyorum.

Bununla birlikte, kuşkusuz bununla ilgili sorunlar vardır - yani, model tüm veri noktalarına yüksek olasılık atar, ancak modelden örneklerin gerçek veri dağıtımında (muhtemelen "düşük kaliteli" örneklerle sonuçlanır) olması muhtemel değildir. Bunu, MLE'den vazgeçmeden bir çekişmeli eğitim prosedürü ile hafifleten "Profesör Zorlama" (Lamb ve ark.) İle ilgilenebilirsiniz.

Uzun dizileri cezalandırmaz. Olasılık çıkışın 1 ila N'si arasında olduğundan, kod çözücü daha uzun bir sekans oluşturduysa, ilk N'den sonraki her şey kaybı hesaba katmaz.

ve

Model erken bir String Sonu belirteci öngörüyorsa, kayıp işlevi hala N adımı gerektirir - bu da modellerin eğitimsiz bir "manifolduna" dayalı çıktılar ürettiğimiz anlamına gelir. Bu özensiz görünüyor.

Bunların hiçbiri eğitim sırasında ortaya çıkan problemler değildir. Bir otoregresif dizi modelini bir tahminde bulunmak için bir prosedür olarak düşünmek yerine, belirli bir dizinin ne kadar olası olduğunu hesaplamanın bir yolu olarak düşünün. Model hiçbir şeyi tahmin etmez - bir dağıtımdan bir dizi veya jeton örnekleyebilir veya bir sonraki tokenin en olası ne olduğunu sorabilirsiniz - ancak bunlar bir tahminden çok farklıdır (ve eğitim sırasında örneklemezsiniz) ya da).

Öyleyse, daha gelişmiş bir kayıp fonksiyonunda ilerleme oldu mu?

Farklı modelleme görevleri için duruma göre özel olarak tasarlanmış hedefler olabilir. Bununla birlikte, MLE'nin hâlâ baskın olduğunu söyleyebilirim - geniş bir doğal dil modelleme ve anlama görevleri yelpazesinde en son performansı sağlayan GPT2 modeli bununla eğitildi.

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.