Kapalı formlu bir matematik çözümü olduğunda doğrusal regresyon için neden gradyan inişini kullanmalısınız?


73

Makine Öğrenimi derslerini çevrimiçi olarak alıyorum ve hipotezdeki en uygun değerleri hesaplamak için Gradient Descent'i öğrendim.

h(x) = B0 + B1X

değerleri aşağıdaki formüle göre kolayca bulabiliyorsak neden Gradient Descent kullanmamız gerekiyor? Bu da ileri ve kolay görünüyor. ancak GD'nin değeri elde etmek için çoklu yinelemeye ihtiyacı var.

B1 = Correlation * (Std. Dev. of y/ Std. Dev. of x)

B0 = Mean(Y) – B1 * Mean(X)

NOT: https://www.dezyre.com/data-science-in-r-programming-tutorial/linear-regression-tutorial adresinde olduğu gibi alınmıştır.

Aşağıdaki soruları kontrol ettim ve benim için anladığım belli değildi.

Degrade inişi neden gerekli?

Optimizasyon neden analitik bir çözümden çok gradyan inişle çözülüyor?

Yukarıdaki cevaplar, türevlerin kullanılması ile GD'yi karşılaştırmaktadır.


5
Doğrusal regresyon katsayılarını tahmin etmek için gradyan inişine ihtiyacınız yoktur.
Sycorax

8
@Sycorax "Gerek yok" güçlü bir ifadedir. Yinelemeli yöntem çok büyük veriler için faydalı olabilir. Diyelim ki veri matrisi hafızaya sığamayan çok büyük.
Haitao Du

8
@ hxd1011 Soruna bu pratik boyutu açıkladığınız için teşekkür ederiz. Sadece matematiksel terimlerle düşünüyordum.
Sycorax

Yanıtlar:


89

Degrade inişinin doğrusal regresyon için kullanılmasının ana nedeni, hesaplama karmaşıklığıdır: Bazı durumlarda degrade inişini kullanarak çözümü bulmak için hesaplama daha ucuzdur (daha hızlı).

Yazdığınız formül çok basit, hatta hesaplama gibi görünüyor, çünkü yalnızca tek değişkenli bir durumda, yani yalnızca bir değişkeniniz olduğunda çalışır. Çok değişkenli durumda fazla değişken olduğunda, formülleri kağıtta biraz daha karmaşıktır ve gerektirir kadar sen bunu yazılımla zaman daha hesaplamaları: Burada, sizi matrisini hesaplamanız gerekiyor, sonra ters çevirin (aşağıdaki nota bakınız). Bu pahalı bir hesaplama. Başvuru için, (tasarım) matrisinde X, K'nin kestirici sayısı ve N gözlem sırası sayısı olduğu K + 1 sütunlarına sahiptir. Bir makine öğrenme algoritmasında K> 1000 ve N> 1.000.000 ile sonuçlanabilir. matris kendisi o zaman çevirmek zorunda hesaplamak için biraz zaman alırX X X X K × K

β=(XX)1XY
XXXXK×K matrisi - bu pahalıdır.

Böylece, gradyan iniş hesaplamaları çok zaman kazandırır. Dahası, yapılma şekli önemsiz bir paralelleştirmeye izin verir, yani hesaplamaları çoklu işlemciler veya makineler arasında dağıtma. Doğrusal cebir çözümü de paralelleştirilebilir, ancak daha karmaşık ve hala pahalıdır.

Ek olarak, verilerinizin yalnızca bir kısmını bellekte tuttuğunuzda, bilgisayar belleği gereksinimlerini azaltan degrade iniş sürümleri vardır. Genel olarak, ekstra büyük problemler için doğrusal cebir çözümünden daha verimlidir.

Makine öğreniminde olduğu gibi binlerce değişkeniniz olduğunda, boyutluluk arttıkça bu daha da önemli hale gelir.

Açıklama . Ng'in derslerinde gradyan inişine ne kadar dikkat edildiğine şaşırdım. Bu konuda konuşmadan önemsiz miktarda zaman harcıyor, belki de dersin% 20'sini. Bana göre bu sadece bir uygulama detayı, tam olarak nasıl bir optimum bulduğunuzdur. Anahtar, optimizasyon problemini formüle etmektir ve onu tam olarak ne kadar önemli bulduğunuzda. Bunun için fazla endişelenmem. Bilgisayar bilimleri insanlarına bırakın ve istatistikçi olarak sizin için neyin önemli olduğuna odaklanın.

Ben aynen öyle diyerek nitelemek gerekir Bunu söyledikten anlamak önemlidir hesaplama karmaşıklığı ve sayısal istikrarı çözüm algoritmalarının. Hala algoritmaların uygulama ve kodlarının detaylarını bilmek zorunda olduğunu sanmıyorum. Genellikle zamanınızı istatistikçi olarak kullanmak en iyi yol değildir.

Not 1 . Matrisi didaktik amaçlar için tersine çevirmeniz gerektiğini yazdım ve bu denklemi genellikle çözme şekliniz değil. Uygulamada, lineer cebir problemleri, QR gibi bir tür faktoringi kullanarak çözülür, burada matrisi doğrudan ters çevirmez, fakat cevap almak için diğer bazı matematiksel olarak eşdeğer manipülasyonları yaparsınız. Bunu yaparsınız, çünkü matris inversiyonu birçok durumda pahalı ve sayısal olarak dengesiz bir işlemdir.

Bu, gradyan iniş algoritmasının bir başka küçük avantajını da bir yan etki olarak ortaya koyuyor: tasarım matrisi, eşliklilik sorunları olduğunda bile işe yarıyor. Her zamanki gibi lineer cebir yolu patlardı ve gradyan iniş collinear prediktörler için bile devam eder.


17
Ama Ng olan bir bilgisayar bilimleri kişi.
amip

21
Notunuzla ilgili olarak: Bir matematikçi olarak eskiden aynı fikirdeyim. Fakat şimdi anladığım kadarıyla modern makine öğreniminde, optimizasyon yönteminin doğal olarak optimize edilmiş olan hedefle bağdaştırıldığıdır. Bırakma gibi bazı düzenlileştirme biçimleri, amaç yerine algoritma açısından daha net ifade edilir. Kısacası: derin bir ağ kullanıyorsanız, nesnel işlevi koruyun, ancak optimizasyon yöntemini değiştirin, çok farklı performans elde edebilirsiniz. Aslında, bazen daha iyi bir optimize edici pratikte daha kötü sonuçlar verir ...
A. Rex

14
Küçük nitpick: kesinlikle ters ; bunun yerine ediyorum çözmek lineer denklemler sistemi için . Özet olarak, aynı, ancak sayısal olarak, çok daha istikrarlı ve potansiyel olarak daha ucuz. X X β = X y βXXXXβ=Xyβ
Stephan Kolassa

3
Öte yandan, QR faktoringine sahip AnderBiguri Çözümü geriye dönük olarak kararlıdır, bu nedenle girdi verilerindeki belirsizlik göz önüne alındığında mümkün olduğu kadar doğru olan bir çözüm sunar.
Federico Poloni

7
Bence hepimiz yazmayı bırakmalı ve her zaman sadece yazmalıyız . x t x β = X t yβ=(XtX)1XtyXtXβ=Xty
Matthew Drury

21

İlk olarak, aşağıdaki iki yazıyı okumanızı şiddetle tavsiye ederim (eğer kopyalanmıyorsa)

Lütfen JM’nin cevabını kontrol edin.

Doğrusal regresyonda hangi algoritma kullanılır?

Lütfen Mark'ın cevabını kontrol edin (sayısal denge açısından)

Doğrusal bir regresyon modelinin katsayılarını bulmak için gradyan inişine ihtiyacımız var mı?


Kısacası, biz kare kaybı ile lineer regresyon sorunu çözmek istediğinizi varsayalım Biz türevi ayarlayabilirsiniz için ve çözme doğrusal sistem

minimize Axb2
2AT(Axb)0
ATAx=ATb

Yüksek seviyede, doğrusal bir sistemi çözmenin iki yolu vardır. Direct yöntemi ve yinelemeli yöntem. Doğrudan yöntemin çözdüğünü ve degrade inişini (bir örnek yinelemeli yöntem) doğrudan çözdüğünü unutmayın .ATAx=ATbminimize Axb2

Direkt yöntemlerle karşılaştırılması (Say QR / LU Decomposition). Yinelemeli yöntemler, büyük miktarda veriye sahip olduğumuzda bazı avantajlara sahiptir veya veriler çok seyrek.

Öte yandan, Andrew Ng'nin bunun vurgulamasının nedenlerinden birinin jenerik bir yöntem (makine öğrenmesinde en yaygın kullanılan yöntem) olduğu ve lojistik regresyon veya sinir ağı gibi diğer modellerde kullanılabileceğine inanıyorum.


Kesinlikle haklısın. SGD, büyük miktarda veri işlerken çok yararlıdır. Prof Ng'un gösterdiği yöntem en klasik ve saf olanıdır. Açık bir fikir sahibi olmak için o noktadan başlamak gerekir. Biri bunun sloganını anlayabiliyorsa, o zaman bütün lineer tahmin ona göre açık olacaktır.
Sandipan Karmakar

1
Veri maxtrix'in büyüklüğü aslında bir sorun değildir, ; Bir seferde ve bir gözlem hesaplayabilirsiniz . Aslında bu, bilgisayar hafızasının bugünden çok daha sınırlı olduğu günlerde SAS'ta yapıldı. sütun sayısı , sınırlayıcı faktördür. XTX=xixiTXTXXTyX
jbowman

6

Sycorax, doğrusal regresyon tahmin ederken gradyan inişine gerek duymamanız konusunda doğrudur. Kursunuz size daha karmaşık sürümleri ön plana çıkarmak için degrade inişini öğretmek için basit bir örnek kullanıyor olabilir.

Yine de eklemek istediğim güzel bir şey, şu anda bir modelin aşırı yüklenmesini önlemek için erken degrade inişini sonlandırmayı içeren küçük bir araştırma alanı olmasıdır .


2
Overfitting ifadesi için bağlantıyı verebilir misiniz? Düzenleme terimini yinelemelerin sayısını sınırlamaktan daha iyi eklemek?
Haitao Du

Sinir ağlarında fazla uyuşmayı önlemek için erken durmayı söyleyen Goodfellow ve ark.
Batman

2
Erken durma ile düzenli olma, hiçbir şekilde yeni bir teknik değildir; Landweber yinelemesinde iyi bilinen bir teknik: en.wikipedia.org/wiki/Landweber_iteration
cfh

3

Yanılmıyorsam, sanırım Prof Andrew Ng tarafından sunulan MOOC'ye yöneliyorsunuz. Optimum regresyon katsayılarını bulmak için, genel olarak iki yöntem mevcuttur. Bunlardan biri Normal Denklemleri kullanarak yani basitçe ve ikincisi en aza indirmektir. Aldığın hipotezden elde edilen kareler kriteri . Bu arada, birinci yöntem yani Normal denklemler, ikinci yöntemin bir ürünüdür, yani optimizasyon yöntemidir.(XTX)1XTy

Bahsettiğiniz yöntem, yani korelasyon kullanarak, yalnızca bir kestirici ve bir kesişme miktarı için geçerlidir. Sadece formu fark et. Peki, tahmincilerin sayısı sayıca birden fazla olduğunda, bunun yolu nedir? Daha sonra, diğer yöntemlere, yani normal denklem veya optimizasyona başvurmak gerekir.

Şimdi neden doğrudan normal denklem olsa da optimizasyon (burada Gradient İniş). Normal denklemde birinin bir matrisi tersine çevirmesi gerektiğine dikkat edin. Şimdi bir matris maliyeti tersine çevrilmesi burada hesaplama için satır sayısı matris yani gözlemler. Dahası, eğer şartlandırılmış ise, tahminde hesaplama hataları oluşturacaktır. Demek ki, bizi bu tür problemlerden kurtarabilen Gradient Descent türündeki optimizasyon algoritması. Diğer bir sorun ise, regresyon katsayılarının tahmininde fazla ve yetersiz olmaktır.O(N3)NXX

Sana önerim, sadece bir problem çözmediğin için geçerli değil. Teorisi anlamaya çalışın. Prof Ng, MOOC'da Makine Öğrenmeyi nazikçe öğreten bu dünyanın en iyi Profesörlerinden biridir. Dolayısıyla, bu şekilde talimat verirken, bazı gizli niyetleri olmalıdır. Umarım sözlerime aldırış edemezsin.

Herşey gönlünce olsun.


5
"Bir matrisin ters çevrilmesi" şiddetle tavsiye edilmez. QR doğrusal bir sistemi çözmek için sayısal olarak daha kararlıdır.
Haitao Du

1
Hesaplamalı argümana katılıyorum. Bununla birlikte, aşırı veya eksik teçhizatın GD'ye karşı Normal denklemle ilgisi yoktur, aksine (regresyon) modelinin karmaşıklığı vardır. Her iki yöntem de (düzgün çalışıyorsa GD) aynı en küçük kareler çözümünü bulur (varsa) ve bu nedenle verileri aynı miktarda aşırı veya az sığdırır.
Ruben van Bergen

2

İlk olarak, evet, asıl sebep Tim Atreides'in vermiş olduğu şeydir; bu bir pedagojik egzersizdir.

Bununla birlikte, muhtemel olmasa da, bir ağ soketinden birkaç trilyon veri noktası üzerinde doğrusal bir regresyon yapmak istemek mümkündür. Bu durumda, analitik çözeltinin saf değerlendirmesi mümkün olmazken, bazı stokastik / adaptif gradyan iniş varyantları minimum bellek yükü ile doğru çözüme yakınlaşacaktır.

(Biri doğrusal regresyon için, analitik çözümü bir nüks sistemi olarak yeniden düzenleyebilir, ancak bu genel bir teknik değildir.)


2

Diğer bir neden degrade inişinin daha genel bir yöntem olmasıdır. Birçok makine öğrenme problemi için maliyet fonksiyonu dışbükey değildir (örneğin, matris faktörizasyonu, sinir ağları), bu nedenle kapalı bir form çözümü kullanamazsınız. Bu durumlarda, bazı iyi yerel optimum noktaları bulmak için gradyan inişi kullanılır. Veya bir çevrimiçi sürümü tekrar tekrar uygulamak istiyorsanız degrade iniş tabanlı bir algoritma kullanmanız gerekir.

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.