Neden olasılık yerine maksimum log olasılığını optimize etmek


66

En üst düzeye çıkması gereken bazı olasılıkları formüle edebileceğiniz çoğu makine öğrenme görevinde , bazı parametreler için olasılık yerine günlük olasılık optimize ederiz . Örneğin, en yüksek olabilirlik eğitiminde, genellikle günlük olabilir. Bunu bazı gradyan yöntemleriyle yaparken, bu bir faktör içerir:plogpθ

logpθ=1ppθ

Bazı örnekler için buraya veya buraya bakın .

Tabii ki, optimizasyon eşdeğerdir, ancak gradyan farklı olacaktır, bu nedenle herhangi bir gradyan tabanlı yöntem farklı davranacaktır (özellikle stokastik gradyan yöntemleri). Herhangi bir gerekçe olduğunu var mı degrade daha iyi çalışır gradyan?logpp


3
türev kullanma olasılığını en üst düzeye çıkardığımızı fark etmeniz gerekir. Öte yandan, birçok durumda bağımsızlık koşulu uygulanır, yani Olabilirliğin bazı kimliği olasılık yoğunluk fonksiyonlarının ürünüdür. Ayrıca, birçok küçük değerin ürünü ([0,1] aralıklarla) çok küçük bir değere yol açar. Bu hesaplama zorluğuna neden olur.
TPArrow 28:15

Benim kontrol @AlejandroRodriguez cevabı daha fazla ayrıntı için buraya.
Paul,

Yanıtlar:


65

Gradyan yöntemler genel olarak daha iyi optimize çalışır göre gradyanı, çünkü genellikle daha edilir iyi ölçekli . Yani, objektif fonksiyonun geometrisini tutarlı ve yararlı bir şekilde yansıtan bir boyuta sahiptir, uygun bir adım boyutu seçmeyi ve daha az adımda optimum hale getirmeyi kolaylaştırır.p ( x ) log p ( x )logp(x)p(x)logp(x)

Ne demek istediğimi görmek için, ve için degrade optimizasyon işlemini karşılaştırın . Herhangi bir noktada , gradyanı iseBunu çarparsak , başlangıçtaki küresel optimuma ulaşmak için gereken tam adım boyutunu elde ederiz, ne olursa olsunf ( x ) = log p ( x ) = - x 2 x f ( x ) fp(x)=exp(x2)f(x)=logp(x)=x2xf(x)1 / 2 x x f ( x ) f ( x ) x

f(x)=2x.
1/2xdır-dir. Bu, iyi bir adım büyüklüğü (veya ML jargonunda "öğrenme oranı") elde etmek için çok çalışmak zorunda olmadığımız anlamına gelir. İlk noktamız nerede olursa olsun, adımımızı sadece degradenin yarısına ayarladık ve tek adımda başlangıç ​​noktasında olacağız. Ve tam olarak gereken faktörü bilmiyorsak, sadece 1 civarında bir adım boyutu seçebiliriz, biraz satır araştırması yapabiliriz ve nerede olursa olsun iyi sonuç veren, çok hızlı bir şekilde harika bir adım boyutu bulacağız. . Bu özellik, çevrilmesi ve ölçeklendirilmesi için sağlamdır . ölçeklendirmesi, optimal adım ölçeklendirmesinin 1/2 den farklı olmasına neden olurken , en azından adım ölçekleme, ne olduğu fark etmeksizin aynı olacaktır , bu nedenle verimli bir gradyan tabanlı optimizasyon elde etmek için sadece bir parametre bulmamız gerekir. düzeni.xf(x)f(x)x

Buna karşılık, gradyanı optimizasyon için çok zayıf global özelliklere sahiptir. BizBu, mükemmel, iyi davranışlı gradyan , arttıkça üssel olarak azalan (daha hızlı bir faktör ile . En , zaten var böylece gradyan vektör boyunca adım ilgili, süreleri çok az. Optimum seviyeye doğru makul bir adım büyüklüğü elde etmek için, gradyanı bunun karşılığını, muazzam bir sabit ile ölçeklendirmeliyiz.p(x)

p(x)=f(x)p(x)=2xexp(x2).
2xexp(x2)xx=5exp(x2)=1.4101110111011. Böyle kötü bir şekilde ölçeklendirilmiş bir gradyan, optimizasyon amaçları için işe yaramaz olandan daha kötü - bir üniteyi yokuş yukarı yönde denemekten, adımımızı göre ölçekleyerek ayarlamaktan daha iyidir ! (Pek çok değişkende biraz daha kullanışlı olur, çünkü en azından gradyandan yön bilgisi alıyoruz, ancak ölçekleme sorunu devam ediyor.)p(x)p(x)

Genel olarak, özellikle birden fazla değişkenimiz olduğunda, bu oyuncak örneğinde olduğu gibi mükemmel degrade ölçeklendirme özelliklerine sahip olacağının garantisi yoktur . Bununla birlikte, hemen hemen hiç önemsiz bir sorun için, , den daha iyi bir yol olacak . Bunun nedeni, olasılığın bir sürü terimde büyük bir ürün olması ve kayıt kütüğünün diğer birçok cevabında da belirtildiği gibi bir toplama dönmesidir. Olasılıktaki terimlerin bir optimizasyon bakış açısından iyi davranılması koşuluyla, günlükleri genellikle iyi davranılmakta ve iyi davranılmış işlevlerin toplamı iyi davranılmaktadır. Tarafından uslu Yanilog p ( x ) p ( x ) f ( x )logp(x)logp(x)p(x)f(x)çok fazla veya çok hızlı bir şekilde değişmez ve gradyan yöntemleriyle optimize edilmesi kolay neredeyse ikinci dereceden bir işleve yol açar. Bir türevin toplamı, türevin emri ne olursa olsun, bu, büyük toplam terimler kümesinin çok makul bir ikinci türev olmasını sağlamaya yardımcı olur!


4
+1 Bu cevap, konunun özüne çıkan noktaları ortaya çıkarıp vurgular.
whuber

47

Boşalma

Bilgisayar, kesirlerin sınırlı bir basamaklı kayan nokta gösterimini kullanır, bu kadar çok olasılığı çarparak sıfıra çok yakın olması garanti edilir.

ile bu konuda bir sorunumuz yok.log


3
Sayısal stabilite için +1 - Bu ve Yuril'in cevabı bir olmalı!
Alec Teal

1
Ürünü log-space'de hesaplayabilirsiniz, böylece bir toplam olur ve sonra geri aktarın. Veya eşittir . Yani, sayısal kararlılık sorun değil. plogpθppθ
Albert

1
Unutmayın Bahsettiğiniz, numunedeki bütün olayların olasılıklarının çoğalmasıdır ve Yetersizlik için eleman tabidir. ppp
Uri Goren

5
@Filip Bu konudaki terminoloji biraz kötü tavsiye edilir. Olasılık yoğunluklarını tartışıyoruz, olasılıkları değil. Yoğunluklar keyfidir: ölçüm birimlerine bağlıdırlar. Ayrıca, yeterli numune boyutları için, parametrik bir modelden basit bir numunenin olasılık yoğunluğu, sonunda den daha az olacaktır . Büyük problemlerde (milyonlarca veri ile), olasılık yoğunlukları rutin olarak veya daha küçüktür. Standart Normal dağılımdan bir örnek bile , olasılıkları den daha düşük bir olasılık yoğunluğuna sahip olduğu neredeyse kesindir . 2 - 1000000 80 2 - 127212721000000802127
whuber

4
@FilipHaglund: whuber doğrudur, ancak yoğunlukları olduğu gerçeği buradaki önemli gözlem değildir. Ayrık bir süreci tartışıp, gerçek olasılıklardan bahsedebiliriz (ve aslında, OP bu davayı dışlayan hiçbir şey söylemedi). Ancak çok özel sonuçlar için olasılıklardan bahsediyoruz (örneğin, belirli bir yöne giden bir milyon gözlem). Tek bir kesin sonuç muhtemel değildir, ancak Bayesian'deki çıkarımlarda olasılık oranları önemlidir, bu yüzden diğerinden küçük bir olasılık ne kadar büyük olduğunu bilmemiz gerekir.
Meni Rosenfeld

34
  1. Çoklu ortak olasılık olasılığının logaritması, bireysel olasılıkların logaritmalarının toplamını kolaylaştırır (ve toplam kuralı, farklılaşma için ürün kuralından daha kolaydır)

    log(iP(xi))=ilog(P(xi))

  2. Üstel olasılık dağılımları ailesinin bir üyesinin logaritması ( her yerde normal olanı içerir) parametrelerde polinomdur (yani , normal dağılım için maksimum olasılık, en küçük karelere indirgenir )

    log(exp(12x2))=12x2

  3. İkinci form, daha Sayısal olarak kararlı ve sembolik olarak eski daha ayırt etmek kolay olur.

  4. Son fakat en az değil, logaritma, ekstremin yerlerini koruyan monotonik bir dönüşümdür (özellikle, maksimum olasılıktaki tahmini parametreler, orijinal ve log-dönüştürülmüş formülasyon için aynıdır)


5
Sebep 2 yeterince gergin olamaz. Gauss gürültüsü olan lineer bir model için log olasılığını en üst düzeye çıkarmak için, doğrusal bir denklem sistemini çözme anlamına gelen en küçük kareler problemini çözmeniz yeterlidir.
Paul,

Sebep 1 ve 3 sadece nasıl hesaplanacağını açıklar. Bu şekilde hesaplayabilir ve sonra tekrar geri dönüştürebilirsiniz ( çarpın ) . Sayısal kararlılık için log-alanda hesaplama yapmak oldukça yaygındır. Ancak bu neden bu degradeyi kullandığınızı açıklamıyor. Sebep 4, degradesinin daha iyi olmasının bir nedeni değildir . Bunu birçok başka dönüşümle de yapabilirsiniz. Sebep 2 ilginç ama hala bir polinomun gradyanının neden başka bir fonksiyonun gradyanından daha iyi olduğundan emin değilim. pp logppθlogp
Albert

@Albert, bir polinomun türevi bir derece düşük polinomdur (özellikle kuadratik doğrusaldır), üsteller basitçe farklılaşma altında değildir
TemplateRex

@TemplateRex: Evet, açık. Fakat stokastik gradyan yönteminde yakınsaklık özelliklerini soruyorum.
Albert

25

Logaritma toplamı türevini almak, yani 100 çarpanı içeren bir ürünün türevini almaktan çok daha kolaydır.


10
Ayrıca, terimler çok küçük veya büyük olduğunda potansiyel sayısal problemleri azaltırsınız.
Björn

8
Aksine, OP dolaylı olarak olumsuz olmayan fonksiyonların herhangi bir ürününün türevini hesaplamak için mükemmel bir yol sağlar: logların türevlerinin toplamını ürünün kendisi ile çarpın. (Bu çarpma en iyisi @ Björn'in yorumunda da belirtilen sayısal problemleri ortadan kaldıran logaritmalar şeklinde gerçekleştirilir.) Bu nedenle, "kolaylık" gerçek bir açıklayıcı güç sunmaz ve gradyanları karşılaştırmayla ilgili daha anlamlı bir soruya yönelmez. .
whuber

10

Genel bir kural olarak, en temel ve kolay optimizasyon problemi ikinci dereceden bir işlevi optimize etmektir. Nereden başlarsanız başlayın, böyle bir fonksiyonun optimumunu kolayca bulabilirsiniz. Bunun tezahürü, belirli bir yönteme bağlıdır, ancak işleviniz ikinci dereceye ne kadar yakınsa o kadar iyidir.

TemplateRex'in belirttiği gibi, çok çeşitli problemlerde, olasılık fonksiyonunu hesaplamaya giren olasılıklar normal dağılımdan gelir veya buna yaklaşır. Eğer kütük üzerinde çalışırsanız, iyi bir ikinci dereceden işlev görürsünüz. Oysa eğer olasılıklar üzerinde çalışırsan, şu fonksiyonun

  1. Dışbükey değil (her yerde optimizasyon algoritmalarının esası)
  2. Çok sayıda teraziyi hızlı bir şekilde geçer ve bu nedenle, işlev değerlerinin aramanızı nereye yönlendireceğinizin göstergesi olduğu çok dar bir aralığa sahiptir.

Bunun yerine, optimize hangi işlevi bu ya bu ?

(Bu aslında kolay bir şeydi; pratik uygulamalarda, aradığınız değer, sayısal olarak hesaplayabilseniz bile, fonksiyon değerleri ve degradeler 0'dan ayırt edilemez olacak ve optimizasyon amaçları için kullanılamaz hale gelecektir. fakat ikinci dereceden bir işleve dönüştürmek bunu bir parça kek yapar.)

Bunun, daha önce bahsedilen sayısal stabilite sorunları ile tamamen tutarlı olduğuna dikkat edin. Günlük ölçeğinin bu işlevle çalışması için gerekenin nedeni, günlük olasılığının orijinalden çok daha iyi davranılmasının (optimizasyon ve diğer amaçlar için) aynı nedenidir.

Buna başka bir yoldan da yaklaşabilirsiniz. Kütükten hiçbir avantajı olmasa bile (ki var olan) - türetme ve hesaplama için kütük ölçeğini yine de kullanacağız, öyleyse exp dönüşümünü sadece gradyanı hesaplamak için uygulamak için sebep ne olabilir? Günlükle de uyumlu kalabiliriz.


@TemplateRex: (Aşağı doğru) dışbükey pozitif işlevinin günlüğü dışbükeydir, ancak sohbet doğru değildir. Olasılıklar dışbükey değildir, dolayısıyla korunacak hiçbir şeyleri yoktur, ancak kütük dışbükeydir. Bağladığım grafiklere bakın - exp (-10x ^ 2) kesinlikle dışbükey değil ama -10x ^ 2.
Meni Rosenfeld

4

kullanarak optimizasyon algoritmasının dinamik aralığını arttırırız. Uygulamalardaki genellikle fonksiyonların bir ürünüdür. Örneğin, en yüksek olabilirlik tahmininde , burada Yoğunluk işlevidir. 1'den büyük veya daha az, btw.lnppL(x|θ)=Πi=1nf(xi|θ)f(.)

Bu nedenle, çok büyük, yani büyük örneklem olduğunda, olasılık fonksiyonunuz Genellikle 1'den çok uzaktır: ya çok küçük ya da çok büyüktür, çünkü güç fonksiyonu .nL(.)Lf(.)n

Günlük alarak, aynı şekilde son derece büyük veya küçük değerlerle çalışmasına izin vererek, herhangi bir optimizasyon algoritmasının dinamik aralığını geliştiririz.


0

Bazı güzel cevaplar çoktan verildi. Ancak son zamanlarda yeni bir taneyle karşılaştım:

Genellikle, kümesine çok büyük bir eğitim verisi verilir ve bazı olasılıksal model tanımlarsınız ve olasılığını en üst düzeye çıkarmak istersiniz . Bağımsız oldukları varsayılır, yani Şimdi, sık sık her adımda yani stokastik (mini toplu) gradyan tabanlı eğitim, çeşit yapın kaybı için , optimize için , yani Xp(x|θ)xX

p(X|θ)=xXp(x|θ).
LL(X|θ)XX
θ:=θxXL(x|θ)θ.
Şimdi, bu stokastik adımlar ek olarak toplanmıştır. Bu nedenle, genel olarak özelliğini istiyorsunuz Bu,
L(X|θ)=xXL(x|θ).
L(x|θ)=logp(x|θ).

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.