Saya membayangkan bahwa semakin besar koefisien pada suatu variabel, semakin besar kemampuan model untuk "berayun" dalam dimensi itu, memberikan peluang yang lebih besar untuk menyesuaikan kebisingan. Meskipun saya pikir saya punya perasaan yang wajar tentang hubungan antara varians dalam model dan koefisien besar, saya tidak memiliki alasan yang baik mengapa mereka terjadi dalam model pakaian luar. Apakah salah untuk mengatakan bahwa itu adalah gejala overfitting dan koefisien penyusutan lebih merupakan teknik untuk mengurangi varians dalam model? Regularisasi melalui penyusutan koefisien tampaknya beroperasi pada prinsip bahwa koefisien besar adalah hasil dari model overfitted, tapi mungkin saya salah menafsirkan motivasi di balik teknik ini.
Intuisi saya bahwa koefisien besar umumnya merupakan gejala overfitting berasal dari contoh berikut:
Katakanlah kita ingin memasukkan poin yang semuanya terletak pada sumbu x. Kita dapat dengan mudah membuat polinomial yang solusinya adalah: . Katakanlah poin kita adalah . Teknik ini memberikan semua koefisien> = 10 (kecuali untuk satu koefisien). Ketika kita menambahkan lebih banyak poin (dan dengan demikian meningkatkan derajat polinomial) besarnya koefisien ini akan meningkat dengan cepat.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
Contoh ini adalah bagaimana saya saat ini menghubungkan ukuran koefisien model dengan "kompleksitas" dari model yang dihasilkan, tetapi saya khawatir bahwa kasus ini adalah steril untuk benar-benar menjadi indikasi perilaku dunia nyata. Saya sengaja membangun model overfitted (tingkat polinomial OLS 10 derajat pada data yang dihasilkan dari model sampling kuadratik) dan terkejut melihat sebagian besar koefisien kecil dalam model saya:
set.seed(123)
xv = seq(-5,15,length.out=1e4)
x=sample(xv,20)
gen=function(v){v^2 + 7*rnorm(length(v))}
y=gen(x)
df = data.frame(x,y)
model = lm(y~poly(x,10,raw=T), data=df)
summary(abs(model$coefficients))
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 0.000001 0.003666 0.172400 1.469000 1.776000 5.957000
data.frame(sort(abs(model$coefficients)))
# model.coefficients
# poly(x, 10, raw = T)10 7.118668e-07
# poly(x, 10, raw = T)9 3.816941e-05
# poly(x, 10, raw = T)8 7.675023e-04
# poly(x, 10, raw = T)7 6.565424e-03
# poly(x, 10, raw = T)6 1.070573e-02
# poly(x, 10, raw = T)5 1.723969e-01
# poly(x, 10, raw = T)3 6.341401e-01
# poly(x, 10, raw = T)4 8.007111e-01
# poly(x, 10, raw = T)1 2.751109e+00
# poly(x, 10, raw = T)2 5.830923e+00
# (Intercept) 5.956870e+00
Mungkin kesimpulan dari contoh ini adalah bahwa dua pertiga dari koefisien kurang dari 1, dan relatif terhadap koefisien lainnya , ada tiga koefisien yang luar biasa besar (dan variabel yang terkait dengan koefisien ini juga merupakan yang paling dekat). terkait dengan model pengambilan sampel yang benar).
Apakah (L2) regularisasi hanya sebuah mekanisme untuk mengurangi varians dalam suatu model dan dengan demikian "memperlancar" kurva agar lebih sesuai dengan data masa depan, atau apakah memanfaatkan heuristik yang diperoleh dari pengamatan bahwa model-model overfiited cenderung menunjukkan koefisien yang besar? Apakah ini pernyataan akurat bahwa model overfitted cenderung menunjukkan koefisien yang besar? Jika demikian, adakah yang bisa menjelaskan mekanisme di balik fenomena sedikit dan / atau mengarahkan saya ke beberapa literatur?
sumber
Jawaban:
Dalam konteks regularisasi, koefisien "besar" berarti bahwa besaran estimasi lebih besar daripada seharusnya, jika spesifikasi model tetap telah digunakan. Ini dampak dari memperoleh tidak hanya perkiraan, tetapi juga spesifikasi model, dari data.
Pertimbangkan apa prosedur seperti regresi bertahap akan lakukan untuk variabel yang diberikan. Jika estimasi koefisiennya relatif kecil terhadap kesalahan standar, maka akan dikeluarkan dari model. Ini bisa jadi karena nilai sebenarnya benar-benar kecil, atau hanya karena kesalahan acak (atau kombinasi keduanya). Jika dijatuhkan, maka kami tidak lagi memperhatikannya. Di sisi lain, jika estimasi relatif besar terhadap kesalahan standar, itu akan dipertahankan. Perhatikan ketidakseimbangan: model akhir kami akan menolak variabel ketika estimasi koefisien kecil, tetapi kami akan menyimpannya ketika estimasi besar. Dengan demikian kita cenderung melebih-lebihkan nilainya.
Dengan kata lain, apa artinya overfitting adalah Anda melebih-lebihkan dampak dari serangkaian prediktor yang diberikan pada respons. Tetapi satu-satunya cara Anda dapat melebih-lebihkan dampaknya adalah jika koefisien yang diperkirakan terlalu besar (dan sebaliknya, perkiraan untuk prediktor yang dikecualikan Anda terlalu kecil).
step
Ini adalah contoh dari apa yang saya bicarakan.
sumber
step
) daripada di eksperimen kedua Anda ("membabi buta" nilai-nilai pas). Bukankah ini bertentangan dengan apa yang Anda sarankan seharusnya terjadi?poly
(saya rasa tidak)?Satu jawaban yang sangat sederhana tanpa melihat detail Anda: Ketika Anda overfitting, penduga parameter cenderung mendapatkan varians besar, dan dengan varians besar nilai-nilai besar adalah apa yang seharusnya Anda harapkan!
sumber
David. Saya pikir masalah dengan contoh Anda adalah Anda belum menormalkan data Anda (yaitu X ^ 10 >> X.
Jadi david benar sehingga menyusut lebih besar koefisien lebih besar (sehingga Anda dapat berakhir dengan banyak koefisien kecil, sedangkan regularisasi L1 mungkin memberi Anda satu besar dan sisanya nol)
jadi pada dasarnya itu merangkum bahwa perubahan kecil harus memiliki efek kecil (dan tentu saja kita kembali ke masalah seberapa kecil kecil - normalisasi data Anda dll). Tetapi kuncinya adalah dalam dimensi yang lebih tinggi, di mana korelasi berperan: bayangkan Anda memiliki dua variabel x, y yang sangat berkorelasi (keduanya dinormalisasi ke varians 1) maka perbedaannya akan kecil = "noise" - menghukum bobot yang besar karenanya mencegah Anda menyesuaikan diri dengan kebisingan ini (dan menjadi sangat besar hampir membatalkan koefisien untuk y dan x).
Contoh masih berlaku untuk setiap hubungan linier (y = mx)
mencari regresi ridge
sumber
Gambar ini dari catatan saya tentang kursus DL Andrew Ng, mohon beri tahu saya jika Anda memiliki pertanyaan
sumber