Özyinelemeli (çevrimiçi) düzenli en küçük kareler algoritması


12

Birisi beni Tikhonov Düzenlemesi (düzenli en küçük kareler) için çevrimiçi (özyinelemeli) bir algoritma yönünde gösterebilir mi?

Çevrimdışı bir ayarda, λ'nın n katlama çapraz doğrulaması kullanılarak bulunduğu orijinal veri β^=(XTX+λI)1XTY kullanarak \ hat \ beta = (X ^ TX + λI) ^ {- 1} X ^ TY değerini hesaplardım λ. Y = x ^ T \ hat \ beta kullanılarak belirli bir x için yeni bir y değeri tahmin edilebilir .xy=xTβ^

Çevrimiçi ortamda sürekli olarak yeni veri noktaları çiziyorum. Tüm veri kümesinde (orijinal + yeni) tam bir yeniden hesaplama yapmadan yeni ek veri örnekleri çizdiğimde \ hat \ beta'yı nasıl güncelleyebilirim β^?


1
Tikhonov tarafından düzenlenmiş en küçük kareleriniz, belki de daha yaygın olarak , saf doğrusal problemlere (burada olduğu gibi) uygulandığında bile istatistiksel çevrelerde Levenberg-Marquardt olarak adlandırılır . Burada çevrimiçi Levenberg Marquardt hakkında bir makale var . Bunun herhangi bir yardım olup olmadığını bilmiyorum.
Glen_b

Yanıtlar:


11

β^n=(XXT+λI)1i=0n1xiyi

Let Mn1=(XXT+λI)1 , daha sonra

β^n+1=Mn+11(i=0n1xiyi+xnyn) ve

Mn+1Mn=xnxnT , alabiliriz

β^n+1=β^n+Mn+11xn(ynxnTβ^n)

Woodbury formülüne göre ,

Mn+11=Mn1Mn1xnxnTMn1(1+xnTMn1xn)

Sonuç olarak,

β^n+1=β^n+Mn11+xnTMn1xnxn(ynxnTβ^n)

Polyak ortalama kullanabilirsiniz gösterir yaklaştığı ile aralıklar için . Sizin durumunuzda , yinelemeniz için en iyi seçmeyi deneyebilirsiniz .ηn=nαMn11+xnTMn1xnα0.51α


Toplu degrade algoritması uygularsanız da işe yaradığını düşünüyorum:

β^n+1=β^n+ηnni=0n1xi(yixiTβ^n)


Regressörümü her seferinde ardışık her partinin biraz farklı bir dağıtımdan alındığı yeni veri toplu örnekleri ile güncellersem ne olur? yani IID olmayan. Bu durumda regresörün yeni verileri hesaba katmasını isterim, ancak eski verilerin (önceki gruplar) yerindeki tahminlerini etkilemez mi? Bana yararlı olabileceğini düşündüğünüz herhangi bir literatüre yönlendirebilir misiniz?
rnoodle

İyi soru, ama şu anda cevapta hala toplu degrade formülünü kullanıyorsanız veya matris formunu doğrudan uygulayarak yaklaşık ise modelinizi ne kadar etkileyeceğini söyleyemem: eta ^ (- alpha) * X (Y-X 'beta_n) burada X, Y yeni parti örneklerinizdir
lennon310

merhaba, normalleştirme katsayısı özyinelemeli güncelleme formülünde yer almıyor gibi görünüyor? ya da sadece M matrisinin tersinin başlatılmasında önemli midir?
Peng Zhao

4

Şimdiye kadar hiç kimsenin nokta, veri noktaları eklendikçe normalleştirme parametresini sabit tutmanın genellikle mantıklı olmamasıdır . Bunun nedeni normalde veri noktası sayısı ile doğrusal olarak büyürken, normalleştirme terimi olmayacak. λXβy2λβ2


Bu ilginç bir nokta. Ama tam olarak neden "mantıklı değil"? sabit tutmak kesinlikle matematiksel olarak geçerlidir, bu nedenle "mantıklı gelmeme" bir tür istatistiksel bağlamda anlaşılmalıdır. Ama hangi bağlam? Ne yanlış gidiyor? Karelerin toplamlarını ortalama karelerle değiştirmek gibi bir tür kolay düzeltme olur mu? λ
whuber

Karelerin toplamını ölçeklendirilmiş bir sürümle değiştirmek (örneğin ortalama kare hatası) mantıklı olacaktır, ancak yalnızca özyinelemeli en küçük kareler kullanmak bunu başaramaz.
Brian Borchers

Neyin yanlış gideceğine gelince, seçiminize bağlı olarak, çok sayıda veri noktası olan çok düşük düzenli bir çözüm ya da az sayıda veri noktası olan çok düzenli bir çözüm elde edersiniz. λ
Brian Borchers

Şüphelenilir, ancak veri noktası alındıktan sonra başlangıçta ayarlanırsa ve daha sonra daha fazla veri noktası eklenirse, daha fazla veri noktası ve aynı ile sonuçlanan çözümlerin aşırı veya düşük düzenli olup olmadığı bu yeni Veri noktaları. Bu, veri noktalarının çok değişkenli bir dağılımdan bir iid örneği gibi davrandığı varsayılarak analiz edilebilir; bu durumda , aşamasında olarak ayarlanmalıdır . Bu, güncelleme formüllerini değiştirir, ancak düzenli ve basit bir şekilde, etkili hesaplama hala mümkün olabilir. (+1)λnλλN/nN
whuber

3

Belki de Stokastik gradyan inişi gibi bir şey burada işe yarayabilir. Başlangıç ​​veri kümenizdeki yukarıdaki denkleminizi kullanarak yı hesaplayın , bu başlangıç ​​tahmininiz olacaktır. Her yeni veri noktası için, parametre tahmininizi güncellemek üzere bir degrade iniş adımı gerçekleştirebilirsiniz.β^


O zamandan beri SGD'nin (belki de minibatch) bu gibi çevrimiçi sorunlara gitmek için bir yol olduğunu fark ettim yani işlev yaklaşımlarını güncelleme.
rnoodle

1

Doğrusal regresyonda, bir olasılık, burada açıklandığı gibi QR ayrışmasını doğrudan güncellemektir . Her yeni veri noktası eklendikten sonra yeniden tahmin etmek istemiyorsanız , sırt regresyonu ile çok benzer bir şey yapılabileceğini tahmin ediyorum .Xλ


0

İşte Woodbury formülünü kullanmaya kıyasla alternatif (ve daha az karmaşık) bir yaklaşım. Not ve olarak yazılabilir toplamlar . Bazı şeyleri çevrimiçi olarak hesapladığımız ve toplamın patlamasını istemediğimiz için alternatif olarak araçlar ( ve ) kullanabiliriz.XTXXTyXTX/nXTy/n

ve şöyle yazarsanız :Xy

X=(x1TxnT),y=(y1yn),

çevrimiçi güncellemeleri ve ( satırına kadar hesaplanır ) olarak şöyle yazabiliriz :XTX/nXTy/nt

At=(11t)At1+1txtxtT,

bt=(11t)bt1+1txtyt.

Sizin çevrimiçi tahmin sonra olurβ

β^t=(At+λI)1bt.

Bu, gözlemler ekledikçe sabit kalmasının yorumlanmasına da yardımcı olduğunu unutmayın !λ

Bu prosedür https://github.com/joshday/OnlineStats.jl doğrusal / sırt regresyonunun çevrimiçi tahminlerini nasıl hesaplar.

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.