Newton'un yöntemi neden makine öğrenmesinde yaygın olarak kullanılmıyor?


132

Bu bir süredir beni rahatsız eden bir şey ve çevrimiçi olarak tatmin edici bir cevap bulamadım, işte burada:

Dışbükey optimizasyon üzerine bir dizi dersi inceledikten sonra, Newton'un metodu global olarak en uygun çözümleri bulmak için gradyan inişinden çok daha üstün bir algoritma gibi görünmektedir, çünkü Newton'un metodu çözümü için bir garanti sunabilmektedir, değişkendir çok daha az adım. Neden Newton'un yöntemi gibi ikinci dereceden optimizasyon algoritmaları makine öğrenme problemlerinde stokastik gradyan inişi kadar yaygın olarak kullanılmıyor?


24
Yapay sinir ağları için deeplearningbook.org "8.6 Yaklaşık İkinci Sipariş Yöntemleri" Bölümü güzel bir genel bakış sunmaktadır. Özet olarak "Eyer noktaları gibi nesnel fonksiyonun belirli özelliklerinin yarattığı zorlukların ötesinde, Newton'un büyük sinir ağlarını eğitmek için kullandığı yöntemin uygulanması, getirdiği önemli hesaplama yüküyle sınırlıdır." Hesaplamalı engelleri aşırken, Newton'un yönteminin bazı avantajlarını kazanmaya çalışan alternatifler var, ancak kendi sorunları var.
Franck Dernoncourt

1
Bu konuyla ilgili soru ve yorumlara bakın, istatistik.stackexchange.com/questions/232305/…
Haitao Du

1
Diğer yorumların sadece "derin öğrenmenin" ötesine geçmesi için makine öğrenmesi için daha geniş bir uygulanabilirliğe sahip olduğuna dikkat edin. Bununla birlikte, tüm ML problemleri "büyük veri" olma eğiliminde olsa da, tüm ML problemleri zorunlu olarak "büyük özellikler" değildir (yani, ayarlanması gereken birçok parametre), her ne kadar derinlemesine öğrenme zor olsa da.
GeoMatt22

1
Bu makinede derin öğrenme dışında öğrenme fazlalaştı, L-BFGS (kabaca söylemek gerekirse, Newton metodu yaklaşır) olan oldukça yaygın optimizasyon algoritması.
Dougal

2
Newton'un metodu dışbükeylik olduğunu varsayar, modern ML problemlerinin (nötr ağları) dışbükeylerin yakınında hiçbir yerde muhtemel olmadığını, bununla birlikte açık bir araştırma alanı olduğunu varsaymaktadır. Bu nedenle Newton'un metodu muhtemelen hesaplama noktası yakınında herhangi bir yerde doğrusal olduğu kadar kötü bir tahmin edicidir. Muhtemelen hesaplamada ikinci dereceden bir artış için çok az kazanacaksınız. Bununla birlikte, Berkeley’de yapılan son bir konferansta, 2. dereceden yöntemleri kullanmada ilerleme göstermeye devam eden bir sunum yapıldığı için hiçbir şekilde ölmedi.
David Parks,

Yanıtlar:


95

Gradyan iniş türevi hakkında bilgi kullanarak bir işlevi en üst düzeye çıkarır. Kök bulma algoritması olan Newton'un yöntemi, ikinci türevinin bilgisini kullanarak bir işlevi en üst düzeye çıkarır. İkinci türev bilindiğinde ve hesaplanması kolay olduğunda bu daha hızlı olabilir (Newton-Raphson algoritması lojistik regresyonda kullanılır). Bununla birlikte, ikinci türev için analitik ifade genellikle çok fazla hesaplama gerektiren karmaşık veya zorlayıcıdır. İkinci türevi hesaplamak için sayısal yöntemler de çok fazla hesaplama gerektirir - ilk türevi hesaplamak için değerleri gerekiyorsa, ikinci türev için gerekir.N 2NN2


5
Gauss-Newton yönteminin (dayanarak yapılan şeyler) muhtemelen daha yaygın olduğuna dikkat çekmek gerekir . Bu, Newton'un doğrusal olmayan en küçük kareler için bir uzmanlığıdır.
GeoMatt22

4
Gauss-Newton'u, doğrusal olmayan en küçük kareler için Newton'un bir uzmanlığı olarak adlandırmam. Daha yanlış bir Hessian yaklaşımı kullanan, lineer olmayan en küçük kareler için Newton'un bastarize bir yaklaşımı olarak adlandırılır, takılı denklemlerde kalanlar büyür ve buna göre argüman iyimserlikten ileri gelir.
Mark L. Stone,

1
@ MarkL.Stone fuarında tekniklere girmemeye çalışıyordum :) Gauss-Newton tarzı yöntemlerin sadece 1. dereceden oluşan bilgiyle 2. dereceden "sahte" olmaya çalıştıkları doğru. Şahsen ben optimizasyon için Newton metotlarını hiç kullanmadım, sadece Gauss-Newton (veya LM veya ~ benzer UKF) veya DFO-SQP metotlarını (örn. BOBYQA ) kullanmadım. "Optimallik", ML sorunu için, mühendislik tasarım optimizasyonu problemi olarak söyleyeceğim gibi "zorlu bir sorundur" deyince "yerel bir Hessian" ın güvenilirliği / bilgilendiriciliği şüpheli olabilir. Belki de yerel olmayan DFO-SQP ~ "stokastik Newton" dür? (örneğin, "çevrimiçi")
GeoMatt22 5

1
İkinci düşüncede, DFO-SQP yaklaşımları , veri kümeleri yerine parametre alanında yerel olma eğilimindedir . UKF (örneğin Gauss yakl.) Sınırlı bellek w / online olarak "stokastik Newton" lezzet en yakın olabilir ... ama etkili bir şekilde pozitif tanımlı bir Hessian varsayar.
GeoMatt22

1
Aslında bu yanıltıcı bir sebeptir, çünkü CG gibi hessian'ın hesaplanmasını gerektirmeyen ikinci dereceden yöntemler vardır. kG tekrarlamaları sadece kN'ye mal olacak. CG'nin teorik olarak Newton ile yalnızca k = N'de eşleşeceği doğrudur, ancak gerçekten çok fazla yinelemeye ihtiyacınız yoktur.
kullanıcı25322

40

Daha çok insan olmalıdır * makine öğrenme Newton yöntemini kullanıyor. Bunu, son birkaç yıl boyunca makine öğrenmesini engelleyen, sayısal optimizasyon konusunda geçmişi olan biri olarak söylüyorum.

Newton'un yöntemini doğru kullanırsanız, buradaki yanıtlardaki (ve hatta literatürdeki) dezavantajları sorun değil. Dahası, önemli olan dezavantajlar ayrıca gradyanı yavaşlatır, aynı miktarda veya daha fazla, ancak daha az belirgin mekanizmalar yoluyla iner.

  • Wolfe koşullarında doğru arama yapmak veya bölgeleri kullanmak veya güven bölgelerini kullanmak, eyer noktalarına yakınlaşmayı önler. Düzgün bir degrade iniş uygulaması da bunu yapmalı. Kağıt başvurulan Cam.Davidson.Pilon cevabı eyer noktaları huzurunda "Newton'un yöntemi" ile ilgili sorunları işaret, ancak savunan düzeltme de Newton yöntemidir.

  • Newton'un yöntemini kullanmak bütün (yoğun) Hessian'ın oluşturulmasını gerektirmez; Hessian'ın tersini, yalnızca matris-vektör ürünlerini kullanan (örneğin, eşlenik gradyan gibi Krylov yöntemleri) yinelemeli yöntemlerle bir vektöre uygulayabilirsiniz. Örneğin, CG-Steihaug güven bölgesi yöntemine bakınız.

  • Hessian matris-vektör ürünlerini verimli bir şekilde, degradeyi hesaplamak için halihazırda gradyanı hesaplamak için kullanılan birleşik denklemle aynı formdaki iki yüksek dereceli birleşik denklem çözerek (örneğin, sinir ağları eğitiminde iki geri yayılım adımının çalışması).

  • Kötü şartlandırma, yinelemeli doğrusal çözücülerin yakınsamasını yavaşlatır, ancak aynı zamanda gradyan inişini eşit veya daha kötü bir şekilde yavaşlatır. Gradyan iniş yerine Newton'un yöntemini kullanmak, zorluğu doğrusal olmayan optimizasyon aşamasından (durumu iyileştirmek için çok fazla yapılmayan) doğrusal cebir aşamasına (sayısal doğrusal cebir önkoşullama tekniklerinin tamamı cephaneliğine saldırabileceğimiz) kaydırır.

  • Ayrıca, hesaplama "birçok ucuz adımdan" "birkaç pahalı adıma" kaydırılır ve alt adım (doğrusal cebir) seviyesinde paralellik için daha fazla fırsat açılır.

Bu kavramlar hakkında temel bilgiler için, Nocedal ve Wright tarafından "Sayısal Optimizasyon" kitabını öneriyorum .

* Tabii ki, Newton'un yöntemi, L1 ya da ceza işlevini teşvik eden benzeri sıkıştırılmış algılama / sparitite konusunda size yardımcı olmayacaktır, çünkü gerekli düzgünlüğü yoktur.


2
Bence birbirimizle şiddet içindeyiz, herkesle değil.
Mark L. Stone,

1
Bu, İngiltere ya da ABD’nin 26 yaşındaki uyuşturucu bağımlısı lise okulu terklerinin matematiksel yeteneklerini karşılaştırarak, her ülkenin en iyi okullarından çıkan matematik lisansüstü öğrencilerinin en üst düzeyini karşılaştırmak yerine daha iyi araştırma matematiği üretip üretmediğini karşılaştırmak gibidir. Kağıt kimse imzalanmamış, mühürlenmemiş ve teslim edilmemiştir ve ben hiç kimsenin değiştirmeyeceği ya da şimdi geri çekeceği anlamına gelmez. Incroyable.
Mark L. Stone,

3
@ MarkL.Stone Burada bir sohbet oldu ve ben yokken silindi. Her neyse, bence birbirimizle ve başka kimseyle aynı fikirde değiliz. Sanırım bu, buradaki diğer insanlarla karşılaştırıldığında bizim geçmişimize dayanarak bekleniyor. Muhtemelen beklediğiniz gibi bağlantılı kağıtların pek olduğunu sanmıyorum. Öte yandan, Riemannian'ın , Newton'un bir arama yönündeki jeodezik bir yörüngeyi çektiği bir yöntem olan Newton'un manifoldunu çok zor problemler için vaat ettiği bir teknik olduğunu düşünüyorum.
Nick Alger,

2
Büyük bir eğitim seti ile nasıl başa çıkardın? Örneğin 1 milyon eğitim örneğiniz varsa, mevcut optimizasyon hedefini değerlendirmek sadece 1 milyon örneğin test edilmesini gerektirir. Ve bir satır araması sırasında bunu birden çok kez yapmanız gerekir. Yani 1 Newton adımı attığınız zaman, Stochastic Gradient Descent birkaç milyon güncelleme yapmış olacak.
nikie

2
Nick ve @ MarkL.Stone: Esasen bu yaklaşımdan mı bahsediyorsunuz ? Bu, özellikle tekrarlayan ağlar için derin öğrenmede kısaca popüler olan bir şeydir, ancak o zamandan beri kabul ediyorum, çünkü deneysel olarak adaptif gradyan yöntemlerinden çok daha iyi çalışmadı. Sadece yanlış bir şey yapıyorlarsa ve ne olduğunu düzeltirseniz ve genel standart SGD varyantı Adam'dan daha iyi performans gösterdiğini gösterirseniz, büyük bir etki yaratabilirsiniz: Adam gazetesinin iki yılda 1345 atıfta bulunmuş olması ....
Dougal

33

Bunu son zamanlarda kendim öğrendim - sorun, Newton yöntemlerinin birleşmek istediği yüksek boyutlu uzayda eyer noktalarının çoğalması. Bu makaleye bakın: Yüksek boyutlu dışbükey olmayan optimizasyonda eyer noktası problemini belirleme ve saldırı .

Nitekim, eyer noktalarının sayısının yerel minimaya oranı N boyutsallığı ile üssel olarak artmaktadır.

Degrade iniş dinamikleri, negatif eğrilik yönlerini izleyerek bir eyer noktasından daha düşük hataya itilirken, ... ... Newton metodu, eyer noktalarını uygun şekilde ele almaz; Aşağıda tartışıldığı gibi, eyer noktaları, Newton dinamikleri altında cazip hale geliyor.


3
Bunun neden böyle olduğuna bir açıklama ekler misiniz? Teorik olarak, Newton'un metodu, her bir özvektör için "optimal" ağırlıklara sahip ağırlıklı bir gradyan inişini oluşturur.
nbubis

4
Bu makalenin Newton yöntemleri hakkında "eyer noktalarına yakınlaşmak" istediği şeyler yalnızca Newton'un yönteminin çöp uygulamaları için geçerlidir.
Mark L. Stone,

Kağıt, özdeğerler ve özvektörler açısından problemi yeniden tanımlıyor ve gradyan inişinin bir eyer noktasından uzağa doğru hareket ettiğini göstermek için kullanıyor: negatif e-vektörler yönünde eyer noktasına doğru hareket ediyor, ancak pozitif e-vektörler, sonuçta eyer noktasını terk eder. Öte yandan, Newton'un böyle bir garantisi yoktur.
Elizabeth Santorella

Bu yazıda savundukları yeni algoritma, Newton'un metodudur. Temel olarak Newton'un pozitif eğrilik yönleri için yöntemi ve negatif Newton'un negatif eğrilik yönleri için yöntemidir.
Nick Alger

26

İki nedenin bir birleşimi:

  • Newton metodu eyer puanlarına dikkat çekiyor;
  • eyer noktaları , makine öğrenmede ya da aslında çok değişkenli herhangi bir optimizasyonda yaygındır.

fonksiyonuna bakın

f=x2y2
görüntü tanımını buraya girin

xn+1=xn[Hf(xn)]1f(xn)

H=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2].

H=[2002]

[Hf]1=[1/2001/2]

f=[2x2y]

[xy]n+1=[xy]n[1/2001/2][2xn2yn]=[xy]n[xy]n=[00]

x=0,y=0

Buna karşılık, gradyan iniş yöntemi eyer noktasına götürmez. Degrade eyer noktasında sıfırdır, ancak küçük bir adım atmak yukarıdaki gradyandan görebileceğiniz gibi optimizasyonu çeker - y değişkenindeki gradyanı negatiftir.


1
Senin sayende aslında bu yöntemin A'dan Z'ye nasıl çalıştığını anladım, bu yüzden bu açık örnek için çok teşekkür ederim!
greenoldman

Buradaki favori nokta ne olurdu?
Ben

14

İki soru sordunuz: Neden daha fazla insan Newton'un yöntemini kullanmıyor ve neden bu kadar çok insan stokastik degrade iniş kullanıyor? Bu soruların farklı cevapları vardır, çünkü Newton'un yönteminin hesaplama yükünü azaltan ancak çoğu zaman SGD'den daha iyi çalışan birçok algoritma vardır.

HO(N2)NgO(N)H1gO(N3)hesaplamak. Bu yüzden Hessian'ı hesaplamak pahalı olsa da, tersine çevirmek veya en küçük kareleri çözmek genellikle daha da kötü. (Seyrek özelliklere sahipseniz, asimptotik daha iyi görünür, ancak diğer yöntemler de daha iyi performans gösterir, bu nedenle sparite Newton'u nispeten daha çekici yapmaz .)

İkincisi, yalnızca gradyan iniş değil birçok yöntem Newton'dan daha sık kullanılır; Onlar genellikle Newton'un yönteminin nakavtlarıdır, bir adımda daha düşük bir hesaplama maliyetinde bir Newton basamağına yaklaşıyorlar, ancak bir araya gelmek için daha fazla yineleme yapıyorlar. Bazı örnekler:

  • H1

  • O(N2)

  • Yaklaşan ikinci türevlerle hiç uğraşmak istemiyorsanız, gradyan inişi caziptir çünkü sadece birinci dereceden bilgi kullanır. Degrade iniş, ters Hessian'a dolaylı olarak yaklaşıyor, öğrenme hızı kimlik matrisinin katıdır. Ben, şahsen, nadiren gradyan iniş kullanıyorum: L-BFGS uygulaması, yalnızca nesnel işlev ve gradyanı belirtmeyi gerektirdiği için uygulanması kadar kolaydır; Gradyan inişinden daha iyi bir Hessian yaklaşımı vardır; ve çünkü gradyan iniş öğrenme oranını ayarlamayı gerektirir.

  • Bazen çok fazla sayıda gözleminiz (veri noktaları) vardır, ancak neredeyse daha az sayıda gözlemden de öğrenebilirsiniz. Bu durumda, gözlemlerin altkümelerini kullanarak dolaşan Stokastik gradyan inişi gibi "toplu yöntemler" kullanabilirsiniz.


(+1) L-BFGS'nin, parametre sayısı bakımından gradyan iniş ile aynı karmaşıklık düzeninde olduğuna dikkat etmek önemlidir. BFGS için durum böyle değil. Bu yüzden L-BFGS'nin sadece onu çekici kılan sınırlı hafıza kısmı değil.
Cliff AB

12

Degrade iniş yönünün hesaplanması ve bu yönde bir çizgi araması yapılması daha ucuzdur, optimum olarak daha güvenilir, sabit bir ilerleme kaynağıdır. Kısacası, degrade iniş nispeten güvenilirdir.

Newton'un yöntemi, ilk yinelemede Hessian'ı hesaplamanız gerektiği için nispeten pahalıdır. Ardından, sonraki her bir yinelemede, Hessian'ı (Newton'un yönteminde olduğu gibi) tamamen yeniden hesaplayabilir veya yalnızca daha ucuz ancak daha az sağlam olan önceki yinelemenin Hessian'ını (yarı-Newton yöntemlerinde) "güncelleyebilirsin".

Çok iyi davranılmış bir fonksiyonun, özellikle de mükemmel bir kuadratik fonksiyonun aşırı durumunda, Newton'un metodu en açık kazanandır. Tamamen kareselse, Newton'un yöntemi tek bir yinelemede birleşir.

Oldukça zayıf davranan bir işlevin karşı aşırı durumunda, gradyan iniş kazanma eğiliminde olacaktır. Bir arama yönü seçer, o yönü arar ve nihayetinde küçük ama üretken bir adım atar. Buna karşılık, Newton'un yöntemi bu durumlarda, özellikle de yarı-Newton yaklaşımlarını kullanmaya çalışırsanız, başarısız olma eğilimindedir.

Degrade iniş ve Newton'un yöntemi arasında Levenberg-Marquardt algoritması (LMA) gibi yöntemler var, ancak isimlerinin biraz karıştığını gördüm. Temel amaç, işler karmakarışık ve kafa karıştırıcı olduğunda daha fazla iniş-bilgili arama kullanmak, daha sonra işler daha doğrusal ve güvenilir hale geldiğinde daha Newton-yöntem-bilgili bir araştırmaya geçmek.


3
Evlat, Newton ve Quasi-Newton'un korkunç uygulamalarını kullanmalısın. Olumlu olmayan bir Hessian ile ya kullanıyorsanız, ya güven bölgelerini kullanın ya da negatif eğrilik yönleri boyunca çizgi araması yapın. Eğer öyleyse, en dik inişten daha güvenlidirler (yani, hat arama veya güven bölgesi ile degrade iniş). Kısacası, gradyan iniş, uygun bir şekilde uygulanan Newton yönteminden daha az güvenilir olan, doğru bir şekilde uygulanmış Quasi-Newton yönteminden çok daha az güvenilirdir. Ancak yineleme başına hesaplama süresi ve bellek gereksinimleri farklı bir konudur.
Mark L. Stone,

4
Bence mükemmel bir ikinci dereceden işlev demek istiyorsun. Başka bir deyişle, Newton'un yöntemi, tek bir yinelemede, doğrusal bir degradeye sahip ikinci dereceden bir nesnel işleviyle birleşir.
Elizabeth Santorella

1
@ElizabethSantorella: Evet, haklısın! Cevabı güncelledim.
Nat

2
1/2xTx

1
Davamı yaptım. en dik iniş düşünmek istiyorsanız, gradyan iniş harika, özellikle kötü davranışlı fonksiyonlarda, sizin işiniz. Kendini nakavt et.
Mark L. Stone,

7

Hd=g

Newton'un metodu bir çözüme yakın olduğunda veya Hessian yavaşça değişkenlik gösteriyorsa iyi çalışır, ancak yakınsaklık ve kesinlik eksikliği ile başa çıkmak için bazı püf noktaları gerekir.

Genellikle kesin bir çözümden ziyade bir gelişme istenir, bu durumda Newton veya Newton benzeri yöntemlerin ekstra maliyeti haklı çıkmaz.

Değişken metrik veya güven bölgesi yöntemleri gibi yukarıdakilerin iyileştirilmesinin çeşitli yolları vardır.

Bir yan not olarak, birçok problemde kilit bir konu ölçeklendirmedir ve Hessian bir ücret karşılığında olsa da mükemmel ölçeklendirme bilgisi sağlar. Eğer biri Hessian'a yaklaştırabilirse, performansı önemli ölçüde artırabilir. Bir dereceye kadar, Newton'un metodu, değişken olmayan afin olduğu için 'en iyi' ölçeklendirmeyi sağlar.


0

Newton'ın SGD için yönteminin kullanımıyla ilgili birçok zorluk var, özellikle:

  • Hessian matrisine ihtiyacı var - örneğin makul bir maliyetle yeterli hassasiyetle gürültülü gradyanlardan nasıl tahmin edilir?

  • tam Hessian çok maliyetlidir - kısıtlamalara ihtiyacımız var, örneğin bir alt alana (hangi alt alana?),

  • H1λ=0

  • Newton'un metodu, genellikle burada bir eyer olan sıfır gradyanıyla doğrudan ... yakın bir noktaya çekiyor. Bunun yerine onları geri püskürtmek nasıl? Örneğin, eyersiz serbest Newton negatif eğrilik yönlerini tersine çevirir, ancak özdeğerlerin işaretlerini kontrol etmeyi gerektirir,

  • çevrimiçi ortamda yapmak iyi olur - tek bir noktada çok fazla hesaplama yapmak yerine, daha fazla yerel bilgiyi kullanarak çok küçük adımlara ayırmaya çalışın.

Küçük adımlarla 1. dereceden 2. dereceye geçebiliriz, örneğin momentum yöntemine sadece 3 ortalama güncellemesi ekleyerek MSE'yi eşzamanlı olarak daha küçük adım boyutu seçimi için parabolüne uyabiliriz ... Kalan koordinatları aynı anda gradyan iniş için kullanabilirsiniz.

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.