Adakah yang bisa mengarahkan saya ke arah algoritma online (rekursif) untuk Regulasi Tikhonov (kuadrat terkecil yang diatur)?
Dalam pengaturan offline, saya akan menghitung menggunakan set data asli saya di mana ditemukan menggunakan validasi silang n-fold. Nilai y baru dapat diprediksi untuk x yang diberikan menggunakan .
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)?
Jawaban:
BiarkanM−1n=(XXT+λI)−1 , lalu
Menurut rumus Woodbury , kita punya
Hasil dari,
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−α M−1n1+xTnM−1nxn α 0.5 1 α
Saya pikir ini juga berfungsi jika Anda menerapkan algoritma batch gradient:
sumber
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β−y∥2 ∥λβ∥2
sumber
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.β^
sumber
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 λ
sumber
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 ).XTX XTy XTX/n XTy/n
Jika Anda menulis dan sebagai:X y
kita dapat menulis pembaruan online ke dan (dihitung hingga baris ke- ) sebagai:XTX/n XTy/n t
Perkiraan online Anda menjadiβ
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.
sumber