Algoritma kuadrat terkecil teratur rekursif (online)

12

Adakah yang bisa mengarahkan saya ke arah algoritma online (rekursif) untuk Regulasi Tikhonov (kuadrat terkecil yang diatur)?

Dalam pengaturan offline, saya akan menghitung β^=(XTX+λI)1XTY menggunakan set data asli saya di mana λ ditemukan menggunakan validasi silang n-fold. Nilai y baru ydapat diprediksi untuk x yang diberikan xmenggunakan y=xTβ^ .

Dalam pengaturan online saya terus menggambar titik data baru. Bagaimana saya bisa memperbarui β^ ketika saya menggambar sampel data tambahan baru tanpa melakukan perhitungan ulang penuh pada seluruh kumpulan data (asli + baru)?

rnoodle
sumber
1
Kuadrat teregulasi Tikhonov Anda mungkin lebih sering disebut Levenberg-Marquardt dalam lingkaran statistik, bahkan ketika diterapkan pada masalah linier murni (seperti di sini). Ada makalah tentang Levenberg Marquardt online di sini . Saya tidak tahu apakah itu bisa membantu.
Glen_b -Reinstate Monica

Jawaban:

11

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

Biarkan Mn1=(XXT+λI)1 , lalu

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

Mn+1Mn=xnxnT , kita bisa dapatkan

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

Menurut rumus Woodbury , kita punya

Mn+11=Mn1Mn1xnxnTMn1(1+xnTMn1xn)

Hasil dari,

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

Rata-rata Polyak menunjukkan Anda dapat menggunakan untuk mendekati dengan berkisar dari ke . Anda dapat mencoba dalam kasus Anda untuk memilih terbaik untuk rekursi Anda.ηn=nαMn11+xnTMn1xnα0.51α


Saya pikir ini juga berfungsi jika Anda menerapkan algoritma batch gradient:

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

lennon310
sumber
Bagaimana jika saya memperbarui regresi saya setiap kali dengan sampel batch data baru, di mana setiap batch berturut-turut diambil dari distribusi yang sedikit berbeda? yaitu non IID. Dalam hal ini saya ingin regressor mempertimbangkan data baru, tetapi tidak mempengaruhi prediksi di lokasi data lama (batch sebelumnya)? Bisakah Anda mengarahkan saya ke literatur apa pun yang mungkin Anda rasa berguna?
rnoodle
Pertanyaan yang bagus, tapi maaf saat ini saya tidak bisa memberi tahu seberapa besar itu akan memengaruhi model Anda jika Anda masih menggunakan rumus batch gradient dalam jawabannya, atau mendekati dengan menerapkan bentuk matriks secara langsung: eta ^ (- alpha) * X (Y-X 'beta_n) dengan X, Y adalah sampel batch baru Anda
lennon310
hai, sepertinya koefisien regularisasi tidak terlibat dalam formula pembaruan rekursif? atau apakah itu hanya masalah dalam inisialisasi invers dari matriks M?
Peng Zhao
4

Suatu titik yang belum pernah ditangani sejauh ini adalah bahwa secara umum tidak masuk akal untuk menjaga parameter regularisasi konstan ketika titik data ditambahkan. Alasan untuk ini adalah bahwa biasanya akan tumbuh secara linier dengan jumlah titik data, sedangkan istilah regularisasi tidak akan. λXβy2λβ2

Brian Borchers
sumber
Itu poin yang menarik. Tapi persisnya mengapa itu "tidak masuk akal"? Menjaga konstan pasti secara matematis valid, jadi "tidak masuk akal" harus dipahami dalam semacam konteks statistik. Tapi konteks apa? Apa yang salah? Apakah akan ada semacam perbaikan yang mudah, seperti mengganti jumlah kuadrat dengan kuadrat rata-rata? λ
whuber
Mengganti jumlah kuadrat dengan versi skala (misalnya kesalahan kuadrat rata-rata) akan masuk akal, tetapi hanya menggunakan kuadrat terkecil rekursif tidak akan mencapai itu.
Brian Borchers
Mengenai apa yang salah, tergantung pada pilihan Anda , Anda akan mendapatkan solusi yang sangat tidak diregulasi dengan sejumlah besar titik data atau solusi yang sangat terlalu teratur dengan sejumlah kecil titik data. λ
Brian Borchers
Orang akan menduga itu, tetapi jika disetel pada awalnya setelah menerima titik data dan kemudian lebih banyak titik data ditambahkan, apakah solusi yang dihasilkan dengan lebih banyak titik data dan yang sama kelebihan atau kekurangan regulasi akan tergantung pada yang baru titik data. Hal ini dapat dianalisis dengan asumsi datapoints bertindak seperti sampel iid dari distribusi multivariat, dalam hal ini muncul harus ditetapkan untuk pada tahap . Ini akan mengubah formula pembaruan, tetapi dengan cara yang teratur dan sederhana sehingga perhitungan yang efisien masih mungkin dilakukan. (+1)λnλλN/nN
whuber
3

Mungkin sesuatu seperti keturunan gradien Stochastic dapat bekerja di sini. Hitung menggunakan persamaan Anda di atas pada dataset awal, yang akan menjadi taksiran awal Anda. Untuk setiap titik data baru Anda dapat melakukan satu langkah penurunan gradien untuk memperbarui estimasi parameter Anda.β^

Max S.
sumber
Sejak itu saya menyadari bahwa SGD (mungkin minibatch) adalah cara untuk mengatasi masalah online seperti ini yaitu memperbarui perkiraan fungsi.
rnoodle
1

Dalam regresi linier, satu kemungkinan adalah memperbarui dekomposisi QR secara langsung, seperti yang dijelaskan di sini . Saya kira itu, kecuali jika Anda ingin menaksir ulang setelah setiap titik data baru telah ditambahkan, sesuatu yang sangat mirip dapat dilakukan dengan regresi ridge.Xλ

Matteo Fasiolo
sumber
0

Berikut ini adalah pendekatan alternatif (dan kurang kompleks) dibandingkan dengan menggunakan rumus Woodbury. Perhatikan bahwa dan dapat ditulis sebagai penjumlahan . Karena kita menghitung hal-hal secara online dan tidak ingin jumlahnya meledak, kita juga dapat menggunakan cara ( dan ).XTXXTyXTX/nXTy/n

Jika Anda menulis dan sebagai:Xy

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

kita dapat menulis pembaruan online ke dan (dihitung hingga baris ke- ) sebagai:XTX/nXTy/nt

At=(11t)At1+1txtxtT,

bt=(11t)bt1+1txtyt.

Perkiraan online Anda menjadiβ

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

Perhatikan bahwa ini juga membantu dengan interpretasi tetap konstan saat Anda menambahkan pengamatan!λ

Prosedur ini adalah bagaimana https://github.com/joshday/OnlineStats.jl menghitung estimasi online untuk regresi linier / ridge.

joshday
sumber