Çapraz entropi nedir? [kapalı]


96

Çapraz entropinin ne olduğuna dair birçok açıklama olduğunu biliyorum, ama yine de kafam karıştı.

Kayıp fonksiyonunu tarif etmek için sadece bir yöntem mi? Kayıp fonksiyonunu kullanarak minimum değeri bulmak için gradyan iniş algoritmasını kullanabilir miyiz?


12
SO için uygun değil. İşte datascience kardeş sitesinde benzer bir soru: datascience.stackexchange.com/questions/9302/…
Metropolis

Yanıtlar:


237

Çapraz entropi genellikle iki olasılık dağılımı arasındaki farkı ölçmek için kullanılır. Genellikle "gerçek" dağıtım (makine öğrenme algoritmanızın eşleştirmeye çalıştığı dağıtım) tek sıcak dağıtım olarak ifade edilir.

Örneğin, belirli bir eğitim örneği için gerçek etiketin B olduğunu (olası etiketler A, B ve C dışında) varsayalım. Bu eğitim örneği için tek sıcak dağıtım bu nedenle:

Pr(Class A)  Pr(Class B)  Pr(Class C)
        0.0          1.0          0.0

Yukarıdaki doğru dağılımı, eğitim örneğinin% 0 A sınıfı,% 100 B sınıfı ve% 0 C sınıfı olma olasılığına sahip olduğu anlamına gelecek şekilde yorumlayabilirsiniz.

Şimdi, makine öğrenimi algoritmanızın aşağıdaki olasılık dağılımını tahmin ettiğini varsayalım:

Pr(Class A)  Pr(Class B)  Pr(Class C)
      0.228        0.619        0.153

Tahmin edilen dağılım, gerçek dağılıma ne kadar yakın? Çapraz entropi kaybının belirlediği şey budur. Bu formülü kullanın:

Çapraz entropi kaybı formülü

p(x)Gerçek olasılık dağılımı ve q(x)tahmin edilen olasılık dağılımı nerede . Toplam, A, B ve C olmak üzere üç sınıfın üzerindedir. Bu durumda kayıp 0,479'dur :

H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479

Tahmininizin gerçek dağılımdan ne kadar "yanlış" veya "uzakta" olduğu budur.

Çapraz entropi, birçok olası kayıp işlevinden biridir (bir diğeri, SVM menteşe kaybıdır). Bu kayıp fonksiyonları tipik olarak J (teta) olarak yazılır ve parametreleri (veya katsayıları) optimum değerlere taşımak için yinelemeli bir algoritma olan gradyan inişi içinde kullanılabilir. Aşağıdaki denklemde, J(theta)ile değiştirirsiniz H(p, q). Ancak H(p, q)önce parametrelere göre türevini hesaplamanız gerektiğini unutmayın .

dereceli alçalma

Dolayısıyla, orijinal sorularınızı doğrudan yanıtlamak için:

Kayıp fonksiyonunu tarif etmek için sadece bir yöntem mi?

Doğru, çapraz entropi, iki olasılık dağılımı arasındaki kaybı tanımlar. Olası kayıp işlevlerinden biridir.

Ardından, minimumu bulmak için örneğin gradyan iniş algoritmasını kullanabiliriz.

Evet, çapraz entropi kaybı işlevi gradyan inişinin bir parçası olarak kullanılabilir.

Daha fazla okuma: TensorFlow ile ilgili diğer cevaplardan biri.


bu nedenle, çapraz entropi her örnek X için olasılık toplamına kaybını tarif
theateist

Öyleyse, hatayı çapraz entropi olarak tanımlamak yerine, hatayı iki vektör arasındaki açı (kosinüs benzerliği / açısal mesafe) olarak tanımlayabilir ve açıyı en aza indirmeye çalışabilir miyiz?
teateist

1
Görünüşe göre bu en iyi çözüm değil, ama teoride, cosine (dis)similarityhatayı açıyla tanımlayıp sonra açıyı en aza indirmeyi deneyip kullanamayacağımızı bilmek istedim .
teateist

2
@Stephen: Verdiğim örneğe bakarsanız p(x), sınıfların her biri için kesinlik olasılıklarının listesi olurdu [0.0, 1.0, 0.0. Aynı şekilde, q(x)sınıfların her biri için tahmin edilen olasılık listesidir [0.228, 0.619, 0.153]. H(p, q)Daha sonra ise - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))0.479 olduğu ortaya geldiği,. np.log()Aslında doğal log olan Python'un işlevini kullanmanın yaygın olduğunu unutmayın ; önemli değil.
stackoverflowuser2010

1
@HAr: Doğru etiketin tek sıcak kodlaması için, önemsediğimiz sıfır olmayan tek bir sınıf var. Ancak, çapraz entropi herhangi iki olasılık dağılımını karşılaştırabilir; bunlardan birinin tek sıcak olasılıklara sahip olması gerekli değildir.
stackoverflowuser2010

3

Kısaca, çapraz entropi (CE), tahmin edilen değerinizin gerçek etiketten ne kadar uzakta olduğunun ölçüsüdür.

Buradaki çarpı, iki veya daha fazla özellik / gerçek etiket (0, 1 gibi) arasındaki entropinin hesaplanmasını ifade eder.

Ve entropi teriminin kendisi rastgeleliğe atıfta bulunur, bu yüzden büyük değeri tahmininizin gerçek etiketlerden uzak olduğu anlamına gelir.

Böylece ağırlıklar CE'yi azaltmak için değiştirilir ve sonuç olarak tahmin ile gerçek etiketler arasındaki farkın azalmasına ve dolayısıyla daha iyi doğruluğa yol açar.


1

Yukarıdaki yazılara ek olarak, çapraz entropi kaybının en basit şekli ikili-çapraz entropi olarak bilinir (ikili sınıflandırma için kayıp fonksiyonu olarak kullanılır, örneğin lojistik regresyon ile), oysa genelleştirilmiş versiyon kategorik-çapraz-entropi (kullanılır çok sınıflı sınıflandırma problemleri için kayıp fonksiyonu olarak, örneğin sinir ağları ile).

Fikir aynı kalıyor:

  1. Modelle hesaplanan (softmax) sınıf olasılığı, bir eğitim örneği için hedef etiket için 1'e yakın olduğunda (örneğin, tek sıcak kodlama ile temsil edilir), karşılık gelen CCE kaybı sıfıra düşer

  2. aksi takdirde hedef sınıfa karşılık gelen tahmin edilen olasılık küçüldükçe artar.

Aşağıdaki şekil kavramı göstermektedir (şekilden BCE'nin hem y hem de p yüksek olduğunda veya her ikisi aynı anda düşük olduğunda, yani bir anlaşma olduğunda düşük olduğuna dikkat edin):

görüntü açıklamasını buraya girin

Çapraz entropi , iki olasılık dağılımı arasındaki mesafeyi hesaplayan göreli entropi veya KL-ıraksaması ile yakından ilgilidir . Örneğin, iki ayrı pmf arasında, aralarındaki ilişki aşağıdaki şekilde gösterilmiştir:

görüntü açıklamasını buraya girin

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.