Thuật toán đệ quy bình phương tối thiểu (trực tuyến)


12

Bất cứ ai cũng có thể chỉ cho tôi theo hướng của một thuật toán trực tuyến (đệ quy) cho Tikhonov Chính quy hóa (bình phương tối thiểu hóa bình thường)?

Trong một môi trường trực tuyến, tôi sẽ tính toán sử dụng bộ dữ liệu ban đầu của tôi, nơi λ được tìm thấy sử dụng n lần kiểm chứng chéo. Một giá trị y mới có thể được dự đoán cho một x đã cho bằng cách sử dụng y = x ^ T \ hat \ beta .β^=(XTX+λI)1XTYλyxy=xTβ^

Trong cài đặt trực tuyến, tôi liên tục vẽ các điểm dữ liệu mới. Làm cách nào tôi có thể cập nhật β^ khi tôi vẽ các mẫu dữ liệu bổ sung mới mà không thực hiện tính toán lại đầy đủ trên toàn bộ tập dữ liệu (bản gốc + mới)?


1
Các bình phương tối thiểu được chuẩn hóa Tikhonov của bạn có lẽ thường được gọi là Levenberg-Marquest trong các vòng tròn thống kê, ngay cả khi áp dụng cho các vấn đề tuyến tính thuần túy (như ở đây). Có một bài viết về Levenberg Marquest trực tuyến ở đây . Tôi không biết nếu đó là bất kỳ trợ giúp.
Glen_b -Reinstate Monica

Câu trả lời:


11

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

Đặt , sau đóMn1=(XXT+λI)1

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

Mn+1Mn=xnxnT , chúng ta có thể nhận được

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

Theo công thức của Woodbury , chúng ta có

Mn+11=Mn1Mn1xnxnTMn1(1+xnTMn1xn)

Kết quả là

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

Tính trung bình của cho biết bạn có thể sử dụng để tính gần đúng với phạm vi từ đến . Bạn có thể thử trong trường hợp của mình để chọn tốt nhất cho đệ quy của mình.M - 1 nηn=nα α0,51αMn11+xnTMn1xnα0.51α


Tôi nghĩ nó cũng hoạt động nếu bạn áp dụng thuật toán gradient hàng loạt:

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


Điều gì sẽ xảy ra nếu tôi cập nhật hồi quy của mình mỗi lần với các mẫu dữ liệu mới, trong đó mỗi lô liên tiếp được rút ra từ một phân phối hơi khác nhau? tức là không IID. Trong trường hợp này tôi muốn người hồi quy có tính đến dữ liệu mới, nhưng không ảnh hưởng đến dự đoán của nó ở địa phương của dữ liệu cũ (các đợt trước)? Bạn có thể chỉ cho tôi bất kỳ tài liệu bạn có thể cảm thấy hữu ích?
rnoodle

Câu hỏi hay, nhưng xin lỗi hiện tại tôi không thể biết nó sẽ ảnh hưởng đến mô hình của bạn đến mức nào nếu bạn vẫn đang sử dụng công thức gradient hàng loạt trong câu trả lời hoặc xấp xỉ bằng cách áp dụng trực tiếp mẫu ma trận: eta ^ (- alpha) * X (Y-X 'beta_n) trong đó X, Y là các mẫu lô mới của bạn
lennon 310

xin chào, có vẻ như hệ số chính quy không được tham gia vào công thức cập nhật đệ quy? hoặc nó chỉ quan trọng trong việc khởi tạo nghịch đảo của ma trận M?
Bành Triệu

4

Một điểm mà không ai giải quyết được cho đến nay là nó thường không có ý nghĩa gì khi giữ tham số chính quy không đổi khi các điểm dữ liệu được thêm vào. Lý do cho điều này là thường sẽ phát triển tuyến tính với số lượng điểm dữ liệu, trong khi thuật ngữ chính quy sẽ không. λXβy2λβ2


Đó là một điểm thú vị. Nhưng chính xác tại sao nó "không có ý nghĩa"? Giữ không đổi chắc chắn có giá trị về mặt toán học, do đó "không có ý nghĩa" phải được hiểu trong một số loại bối cảnh thống kê. Nhưng bối cảnh nào? Điều gì xảy ra sai? Sẽ có một số loại sửa chữa dễ dàng, chẳng hạn như thay thế các tổng bình phương bằng các bình phương trung bình? λ
whuber

Thay thế tổng bình phương bằng một phiên bản thu nhỏ (ví dụ lỗi bình phương trung bình) sẽ có ý nghĩa, nhưng chỉ cần sử dụng các bình phương tối thiểu đệ quy sẽ không thực hiện được điều đó.
Brian Borchers

Đối với những gì sẽ xảy ra, tùy thuộc vào sự lựa chọn của bạn về , bạn sẽ nhận được một giải pháp rất không chính xác với một số lượng lớn các điểm dữ liệu hoặc một giải pháp rất bất thường với một số lượng nhỏ các điểm dữ liệu. λ
Brian Borchers

Mọi người sẽ nghi ngờ điều đó, nhưng nếu được điều chỉnh ban đầu sau khi nhận được điểm dữ liệu và sau đó thêm nhiều điểm dữ liệu, liệu các giải pháp kết quả có nhiều điểm dữ liệu hơn và cùng có bị quá mức hay không thường xuyên sẽ phụ thuộc vào những điểm mới đó điểm dữ liệu. Điều này có thể được phân tích bằng cách giả sử các datapoints hành động như một mẫu iid từ một phân phối đa biến, trong trường hợp này nó xuất hiện nên được đặt thành ở giai đoạn . Điều này sẽ thay đổi các công thức cập nhật, nhưng theo cách thông thường và đơn giản đến mức tính toán hiệu quả vẫn có thể thực hiện được. (+1)λnλλN/nN
whuber

3

Có lẽ một cái gì đó như gốc dốc Stochastic có thể làm việc ở đây. Tính toán bằng phương trình của bạn ở trên trên tập dữ liệu ban đầu, đó sẽ là ước tính bắt đầu của bạn. Đối với mỗi điểm dữ liệu mới, bạn có thể thực hiện một bước giảm độ dốc để cập nhật ước tính tham số của mình.β^


Tôi đã nhận ra rằng SGD (có lẽ là xe buýt nhỏ) là cách để giải quyết các vấn đề trực tuyến như thế này tức là cập nhật các xấp xỉ chức năng.
rnoodle

1

Trong hồi quy tuyến tính, một khả năng là cập nhật phân tách QR trực tiếp của , như được giải thích ở đây . Tôi đoán rằng, trừ khi bạn muốn ước tính lại sau khi mỗi datapoint mới được thêm vào, một cái gì đó rất giống nhau có thể được thực hiện với hồi quy sườn.Xλ


0

Đây là một cách tiếp cận khác (và ít phức tạp hơn) so với sử dụng công thức Woodbury. Lưu ý rằng và có thể được viết dưới dạng tổng . Vì chúng tôi đang tính toán mọi thứ trực tuyến và không muốn tổng tiền nổ tung, chúng tôi có thể sử dụng các phương tiện khác ( và ).XTXXTyXTX/nXTy/n

Nếu bạn viết và là:Xy

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

chúng ta có thể viết các bản cập nhật trực tuyến cho và (được tính đến hàng thứ ) như:XTX/nXTy/nt

At=(11t)At1+1txtxtT,

bt=(11t)bt1+1txtyt.

Ước tính trực tuyến của bạn về sẽ trở thànhβ

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

Lưu ý rằng điều này cũng giúp giải thích không đổi khi bạn thêm các quan sát!λ

Quy trình này là cách https://github.com/joshday/OnlineStats.jl tính toán các ước tính trực tuyến về hồi quy tuyến tính / sườn núi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.