Tôi tưởng tượng rằng một hệ số trên một biến càng lớn thì mô hình càng có khả năng "xoay" theo chiều đó, mang lại cơ hội gia tăng để phù hợp với tiếng ồn. Mặc dù tôi nghĩ rằng tôi đã có ý thức hợp lý về mối quan hệ giữa phương sai trong mô hình và các hệ số lớn, tôi không hiểu rõ lý do tại sao chúng xảy ra trong các mô hình overfit. Có phải không chính xác khi nói rằng chúng là một triệu chứng của quá mức và co rút hệ số là một kỹ thuật để giảm phương sai trong mô hình? Chính quy hóa thông qua co rút hệ số dường như hoạt động theo nguyên tắc các hệ số lớn là kết quả của một mô hình quá mức, nhưng có lẽ tôi hiểu sai động lực đằng sau kỹ thuật này.
Trực giác của tôi rằng các hệ số lớn nói chung là một triệu chứng của việc sử dụng quá mức đến từ ví dụ sau:
Giả sử chúng ta muốn khớp với điểm mà tất cả đều nằm trên trục x. Chúng ta có thể dễ dàng xây dựng một đa thức có các giải pháp là những điểm sau: . Giả sử điểm của chúng tôi là . Kỹ thuật này cho tất cả các hệ số> = 10 (ngoại trừ một hệ số). Khi chúng ta thêm nhiều điểm hơn (và do đó làm tăng mức độ của đa thức), độ lớn của các hệ số này sẽ tăng lên nhanh chóng.f ( x ) = ( x - x 1 ) ( x - x 2 ) . . . . ( x - x n - 1 ) ( x - x n ) x = 1 , 2 , 3 , 4
Ví dụ này là cách tôi hiện đang kết nối kích thước của các hệ số mô hình với "độ phức tạp" của các mô hình được tạo, nhưng tôi lo ngại rằng trường hợp này là vô trùng để thực sự là biểu hiện của hành vi trong thế giới thực. Tôi đã cố tình xây dựng một mô hình quá mức (OLS đa thức 10 độ phù hợp với dữ liệu được tạo từ mô hình lấy mẫu bậc hai) và rất ngạc nhiên khi thấy hầu hết các hệ số nhỏ trong mô hình của tôi:
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
Có thể điểm trừ của ví dụ này là hai phần ba hệ số nhỏ hơn 1 và so với các hệ số khác , có ba hệ số lớn bất thường (và các biến liên quan đến các hệ số này cũng xảy ra gần nhất liên quan đến mô hình lấy mẫu thật).
Có phải (L2) chính quy chỉ là một cơ chế để làm giảm phương sai trong mô hình và do đó "làm mịn" đường cong để phù hợp hơn với dữ liệu trong tương lai, hay nó đang lợi dụng một heuristic xuất phát từ quan sát rằng các mô hình bị quá mức có xu hướng thể hiện các hệ số lớn? Đây có phải là một tuyên bố chính xác rằng các mô hình quá mức có xu hướng thể hiện các hệ số lớn? Nếu vậy, có lẽ ai đó có thể giải thích cơ chế đằng sau hiện tượng này một chút và / hoặc hướng tôi đến một số tài liệu?