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


31

Coursera materyalini kullanarak makine öğrenmeyi öğrenmeye çalışıyordum . Bu derste Andrew Ng, hata fonksiyonunu (maliyet fonksiyonu) en aza indirecek doğrusal regresyon modelinin katsayılarını bulmak için gradyan iniş algoritması kullanır.

Doğrusal regresyon için degrade inişe ihtiyacımız var mı? Görünüşe göre hata fonksiyonunu analitik olarak farklılaştırabilir ve katsayıları çözmek için sıfıra ayarlayabilirim; bu doğru mu?


3
Doğrusal modeller, 1700'lerden bu yana oldukça iyi işlenmiştir. Bunlarla başa çıkmak için degrade iniş (GD) gerektirmeyen birçok yol vardır. Bu yöntemlerin çoğunun yüzlerinde düz durduğu doğrusal olmayan modeller var. Andrew sizi basit bir soruna karşı tanıdık olmayan ama çok kullanışlı bir yöntemle kullanıyor, böylece yaklaşımınızı hata ayıklayabilirsiniz. Metod konusunda iyiyseniz, sonuçları almak için GD'nin şaşırtıcı olduğu lineer olmayan problemlere uygulayabilirsiniz.
EngrStudent

10
Hayır, degrade iniş gibi yaklaşımlar kullanmak zorunda değilsiniz (bu her durumda tek optimizasyon yöntemi değil). Gerektiği gibi, analitik olarak çözebilirsiniz; her parametreye göre farklılaşırsınız, böylece parametre başına bir denklem elde edersiniz. Ancak başka yollarla yapılabilecek basit problemleri çözmek de faydalıdır; Cevabı zaten biliyorsan, degrade iniş ile doğru cevabı aldığınızdan emin olabilirsiniz.
Glen_b -Reinstate Monica

Maliyet fonksiyonu normal kuadratik ('mesafe') ceza ise, kapalı bir form çözümü vardır. Ancak, gradyan inişi genellikle çok daha hızlıdır, bu yüzden tipik olarak kullanılır.
aginensky

Ek olarak, gradyan iniş analitik olarak etkilenemeyen problemlere sayısal çözümler bulmak için kullanılabilir. Buna alışmak için erken degrade iniş kullandığından şüpheleniyorum. Daha sonra sinir ağları ile degrade iniş kullandığını düşünüyorum. Söylemeye gerek yok, sinirsel net durum daha karmaşık. Pedagojik bir durumdan, onları daha önce gördükten sonra, doğrusal modellerde, sinir ağları ile kullanım için gradyan inişinin daha makul göründüğünü düşünüyorum.
aginensky

3
Birkaç tane izledim Andre Ng videoları için thet link gönderdiğiniz için teşekkür ederiz. Bunu zaten bu uç nokta için olmasa da biliyordum, ancak insanların "öğrenme" optimizasyonunun ne kadarının öğrendiğini görmek korkutucu, en azından bir kısmının istatistiksel hesaplama hakkında ne öğrendiklerini söylemekten korkuyor. Onun Stanford Bilgisayar Bilimi Bölümü The şimdi öğretilen ediliyor ne bilse Gen Golub, bilgi işlem ve SVD kullanmada öncü, onun mezar içinde üzerinde haddeleme olurdu "komik' video youtube.com/watch?v=B3vseKmgi8E , hangi En küçük kareler için 2 WORST algoritmasını önerir ve karşılaştırır
Mark L. Stone

Yanıtlar:


43

Lineer En Küçük kareler ile çözülebilir.

0) Sınırlandırılmamış doğrusal en küçük kareler için aşağıda açıklandığı gibi, SVD veya QR'ye dayanan yüksek kalitede doğrusal en küçük kareler çözücüsünün kullanılması veya aşağıda açıklandığı gibi, bağlı veya doğrusal olarak sınırlandırılmış en küçük kareler için bir Kuadratik Programlama veya Konik Optimizasyon sürümüne dayanarak. Böyle bir çözücü önceden konserve edilir, yoğun bir şekilde test edilir ve kullanıma hazırdır.

1) En güvenilir ve sayısal olarak doğru yöntem olan SVD, alternatiflerden daha fazla hesaplama gerektirir. MATLAB'da, sınırlandırılmamış doğrusal en küçük kareler probleminin SVD çözümü A * X = b, pinv (A) * b'dir, bu çok kesin ve güvenilirdir.

2) QR, oldukça güvenilir ve sayısal olarak doğru, ancak SVD kadar değil ve SVD'den daha hızlı. MATLAB'da, sınırlandırılmamış doğrusal en küçük kareler probleminin QR çözümü A * X = b, A koşullu sayıya sahip olmadıkça, oldukça kesin ve güvenilir olan A \ b'dir. A \ b, hesaplamak için pinv (A) * b'den daha hızlıdır, ancak güvenilir ya da doğru değildir.

3) Normal denklemleri oluşturmak (güvenilirlik ve sayısal doğruluk açısından KORKUNÇ, çünkü yapılması gereken çok kötü bir durum sayısını kareler) ve

3a) Cholesky Factorization ile çözme (iyi değil)

3b) açıkça ters matris (HORRIBLE)

4) Kuadratik Programlama problemi veya İkinci derece koni problemi olarak çözme

4a) Yüksek kaliteli Kuadratik Programlama yazılımı kullanarak çözün. Bu güvenilir ve sayısal olarak doğrudur, ancak SVD veya QR'den daha uzun sürer. Ancak, nesnel işlevine bağlı veya genel doğrusal kısıtlamalar veya doğrusal veya ikinci dereceden (iki norm) ceza veya düzenlileştirme şartları eklemek kolaydır ve Kuadratik Programlama yazılımı kullanarak sorunu hala çözmek mümkündür.

4b) Yüksek kalite Conic Optimizasyon yazılımı kullanarak İkinci Dereceden Koni problemini çözün. Açıklamalar, Kuadratik Programlama yazılımıyla aynıdır, ancak ayrıca çeşitli normlarda ceza veya düzenlileştirme şartları gibi sınırlanmış veya genel doğrusal kısıtlamalar ve diğer konik kısıtlamalar veya objektif fonksiyon terimleri de ekleyebilirsiniz.

5) Yüksek kaliteli genel amaçlı doğrusal olmayan optimizasyon yazılımı kullanarak çözün. Bu hala işe yarayabilir, ancak genel olarak Kuadratik Programlama veya Konik Optimizasyon yazılımından daha yavaş olacak ve belki de bu kadar güvenilir olmayabilir. Bununla birlikte, yalnızca sınırlı ve genel doğrusal kısıtlamaları değil, aynı zamanda doğrusal olmayan kısıtlamaları da en küçük kareler optimizasyonuna dahil etmek mümkün olabilir. Ayrıca, doğrusal olmayan en küçük kareler için ve diğer doğrusal olmayan terimler amaç işlevine eklenirse kullanılabilir.

6) Berbat genel amaçlı doğrusal olmayan optimizasyon algoritmaları kullanarak çözün -> BU YAPMAYIN.

7) WORST OLASI genel amaçlı doğrusal olmayan optimizasyon algoritması kullanarak çözün, yani gradyan inişi var. Bunu, yalnızca bir çözüm yönteminin ne kadar kötü ve güvenilmez olduğunu görmek istiyorsanız kullanın. Eğer biri size doğrusal en küçük kareler problemlerini çözmek için degrade iniş kullanmasını söylerse

7 i) Bu konuda bir şeyler bilen birinden istatistiksel hesaplama hakkında bilgi edinin.

7 ii) Bu konuda bir şeyler bilen birinden optimizasyonu öğrenin.


Güzel yazı, neden sisteminiz PD olsa da , Cholesky'nin iyi olmadığını düşünüyorsunuz ? (ve saçma bir durum numarasıyla değil) BTW, “SVD” ya da “açıkça tersine çevirme” noktasında genelleştirilmiş ters (çoğunlukla eğitim amaçlı kullanılır) kavramını söylemek istediğinizi (veya eklediğinizi) düşünüyorum.
usεr11852 diyor Reinstate Monic,

2
BTW, çok yüksek durum sayılarına sahip matrislerin, özellikle yıkanmamış kütlelerle (yani, erişimde demokratikleşme göz önüne alındığında, doğrusal en küçük kareler kullanan insanların çoğunluğu), sıklıkla buna uyulmadığı zaman gülünçtür.
Mark L. Stone,

1
mldivide, yani. ters eğik çizgi, yani \, yukarıdaki paragrafın (2) 2. cümlesinde belirtildiği gibi m ~ = n (en küçük kareler) olduğunda QR kullanır. Yine de MATLAB'da ne kadar saçma olduğuna şaşıracaksınız - yalnızca bazıları kesinlikle korkunç olan araç kutularında değil, aynı zamanda bazı çekirdek fonksiyonlarında da daha az bir ölçüde.
Mark L. Stone,

1
@ MarkL.Stone, harika cevap! Lütfen en az kareyi çözmek için Gradient iniş kullanmanın neden tavsiye edilmediğini biraz daha açıklayabilir misiniz? (benim düşünceme göre, yukarıda bahsettiğiniz diğerlerine göre sadece yönelimli bir yaklaşım (yön çözüm yaklaşımları). Dahası, sorun hakkında yorumda bulunabilir misiniz: "eğer bir sorun için n> = 30.000 özellik varsa, n * n matrisini tersine çevirmenin korkunç olacağı için Normal denklem yöntemi çok yavaş olacaktır. Öte yandan GD bu konuda çalışacaktır. SVD ve QR'nin nasıl bir performans göstereceğine dair herhangi bir fikriniz varsa ". herhangi bir öneri yardımcı olacaktır.
anu

1
@ anu Yalnızca son çare olarak gradyan iniş kullanın. ve bu sadece problemin SVD veya QR tarafından çözülemeyecek kadar büyük olması durumunda olacaktır. Asla Normal Denklemleri oluşturmayın, ASLA Normal denklemleri çözmek için açıkça bir matrisi ters çevirmeyin. 30.000 özellik, günümüzde pek fazla gibi görünmüyor.
Mark L. Stone,

0

Doğrusal bir modelin katsayılarını bulmak teknik olarak bir Lineer Denklem kümesine çözüm bulma işlemidir .

Bu tür çözümleri hesaplamak için bir çok şey optimization techniquesgeliştirildi ve Gradient Descentbunlardan biri.
Dolayısıyla, Gradient Descent bunu yapmanın tek yolu değildir .

Andrew Ng derste kullanır çünkü gelişmiş Lineer Cebir ve Sayısal Hesaplama ile uğraşmadan anlaşılması kolaydır .


Yanlış olmasa da, cevabınızın standart olmayan bir duruma odaklanarak daha büyük resmi özlediğini düşünüyorum. Büyük çoğunluğu lineer regresyon modelleri bir kapalı form çözümü kullanarak QR ayrışma kullanılarak takılır. GDgradyan terbiyeli - daha ileri yöntemler tanıtmak için bir örnek olarak kullanılır (örn. SGD- stokastik GD).
usεr11852 diyor Reinstate Monic 31:15

QR ayrıştırmasının ne olduğunu açıklayabilir misiniz?
Victor,

3
Ax=bA=QRRQAx=bQRx=bRx=QTbRQTQ=ISGD. Çoğu insan çok büyük matrislere sahip olmadığından QR ayrışması daha iyidir. Genel olarak QR ayrışımı, sayısal dünyayı biçimlendirmiştir; SIAM bunu 20. yüzyılın ilk 10 algoritmasından biri olarak seçti.
usεr11852 diyor Reinstate Monic

@ usεr11852 tabi tabi. Çünkü, QR'nin ayrışması, Ng'nin kurs seviyesinin alanıyla ilgili kalmak gibi konseptlerden kaçınmak için cevabı basit tutmak istedim.
Vikas Raturi

3
QR, 20. yüzyılın ilk 10 algoritmasından biriydi. Ancak zaman geçiyor ve SVD'yi hesaplamak için etkili algoritmalar 1960'lara dayanıyor olsa da, uygulama alanlarının önemine bakmak zorundasınız. Bu nedenle SVD'nin 21. yüzyılın en iyi algoritması olduğuna inanıyorum. Açıkçası, filmler önermek için kullanılan QR'yi hiç duydunuz mu? Hayır, bu kritik uygulama için SVD kullanılır. SVD, Twitter'ın muhafazakar yaşlı gençlere, hangi genç ünlüleri takip etmeleri gerektiği konusunda istenmeyen öneriler gönderdiğinde tercih edilen bir algoritmadır. QR bunu yapalım görelim !!!
Mark L. Stone,
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.