Tại sao một quy trình xác thực chéo khắc phục vấn đề quá mức một mô hình?
Tại sao một quy trình xác thực chéo khắc phục vấn đề quá mức một mô hình?
Câu trả lời:
Tôi không thể nghĩ ra một lời giải thích đủ rõ ràng vào lúc này, vì vậy tôi sẽ để điều đó cho người khác; tuy nhiên xác nhận chéo không hoàn toàn khắc phục vấn đề quá khớp trong lựa chọn mô hình, nó chỉ làm giảm nó. Lỗi xác thực chéo không có phương sai không đáng kể, đặc biệt nếu kích thước của tập dữ liệu nhỏ; nói cách khác, bạn nhận được một giá trị hơi khác nhau tùy thuộc vào mẫu dữ liệu cụ thể bạn sử dụng. Điều này có nghĩa là nếu bạn có nhiều mức độ tự do trong lựa chọn mô hình (ví dụ: rất nhiều tính năng để chọn một tập hợp con nhỏ, nhiều tham số siêu để điều chỉnh, nhiều mô hình để chọn), bạn có thể phù hợp với tiêu chí xác thực chéo khi mô hình được điều chỉnh theo cách khai thác biến thể ngẫu nhiên này thay vì theo cách thực sự cải thiện hiệu suất, và bạn có thể kết thúc với một mô hình hoạt động kém. Đối với một cuộc thảo luận về điều này, xemCawley và Talbot "Về sự phù hợp quá mức trong lựa chọn mô hình và xu hướng lựa chọn tiếp theo trong đánh giá hiệu suất", JMLR, tập. 11, trang 2079−2107, 2010
Đáng buồn là xác nhận chéo rất có thể sẽ làm bạn thất vọng khi bạn có một bộ dữ liệu nhỏ, chính xác là khi bạn cần xác thực chéo nhiều nhất. Lưu ý rằng xác thực chéo k-gấp thường đáng tin cậy hơn xác thực chéo một lần vì nó có phương sai thấp hơn, nhưng có thể tốn kém hơn để tính toán cho một số mô hình (đó là lý do tại sao LOOCV đôi khi được sử dụng để chọn mô hình, mặc dù nó có phương sai cao).
Câu trả lời của tôi trực quan hơn là nghiêm ngặt, nhưng có lẽ nó sẽ giúp ...
Theo tôi hiểu, quá mức là kết quả của việc lựa chọn mô hình dựa trên đào tạo và kiểm tra bằng cùng một dữ liệu, trong đó bạn có một cơ chế phù hợp linh hoạt: bạn khớp mẫu dữ liệu của mình chặt chẽ đến mức bạn phù hợp với tiếng ồn, ngoại lệ và tất cả phương sai khác.
Việc chia dữ liệu thành tập huấn luyện và kiểm tra giúp bạn không phải làm điều này. Nhưng phân chia tĩnh không sử dụng hiệu quả dữ liệu của bạn và chính sự phân tách của bạn có thể là một vấn đề. Xác thực chéo giữ lợi thế dữ liệu không-thưởng-an-chính xác phù hợp với đào tạo-dữ liệu của phân tách kiểm tra đào tạo, đồng thời sử dụng dữ liệu mà bạn có hiệu quả nhất có thể (nghĩa là tất cả dữ liệu của bạn được sử dụng như dữ liệu đào tạo và kiểm tra, chỉ là không chạy cùng một lúc).
Nếu bạn có một cơ chế phù hợp linh hoạt, bạn cần hạn chế lựa chọn mô hình của mình để nó không thiên về "hoàn hảo" nhưng lại phù hợp phức tạp. Bạn có thể làm điều đó với AIC, BIC hoặc một số phương pháp xử phạt khác có thể xử phạt trực tiếp mức độ phức tạp phù hợp hoặc bạn có thể thực hiện bằng CV. (Hoặc bạn có thể làm điều đó bằng cách sử dụng một phương pháp phù hợp không linh hoạt, đó là một lý do mô hình tuyến tính là tốt.)
Một cách khác để nhìn vào nó là học tập là về khái quát hóa, và một sự phù hợp quá chặt chẽ trong một số ý nghĩa không khái quát. Bằng cách thay đổi những gì bạn học và những gì bạn đã kiểm tra, bạn khái quát hóa tốt hơn nếu bạn chỉ học các câu trả lời cho một bộ câu hỏi cụ thể.
Từ góc độ Bayes, tôi không chắc chắn rằng xác nhận chéo thực hiện bất cứ điều gì mà phân tích Bayes "phù hợp" không làm để so sánh các mô hình. Nhưng tôi không chắc chắn 100% rằng nó làm.
Mà được gọi là phân phối dự đoán trước . Về cơ bản, nó cho biết mô hình dự đoán dữ liệu thực tế được quan sát tốt như thế nào, đó chính xác là những gì xác thực chéo, với "trước" được thay thế bằng mô hình "đào tạo" được trang bị và "dữ liệu" được thay thế bằng "thử nghiệm" dữ liệu. Vì vậy, nếu mô hình B dự đoán dữ liệu tốt hơn mô hình A, thì xác suất sau của nó tăng so với mô hình A. Có vẻ như từ đó, định lý Bayes sẽ thực sự xác thực chéo bằng cách sử dụng tất cả dữ liệu, thay vì tập hợp con. Tuy nhiên, tôi không hoàn toàn bị thuyết phục về điều này - dường như chúng ta nhận được một cái gì đó chẳng vì gì cả.
Một tính năng thú vị khác của phương pháp này là nó có một "dao cạo" được chế tạo sẵn, được đưa ra bởi tỷ lệ các hằng số chuẩn hóa của các bản phân phối trước cho mỗi mô hình.
Tuy nhiên, xác nhận chéo có vẻ có giá trị đối với "cái gì đó khác" đáng sợ hoặc đôi khi được gọi là "mô hình sai". Tôi liên tục bị giằng xé bởi liệu "điều gì khác" này có quan trọng hay không, vì có vẻ như nó có vấn đề - nhưng nó khiến bạn bị tê liệt mà không có giải pháp nào cả khi nó rõ ràng là vấn đề. Chỉ cần một cái gì đó khiến bạn đau đầu, nhưng bạn không thể làm gì về điều đó - ngoại trừ việc nghĩ "cái gì đó khác" có thể là gì, và thử nó trong mô hình của bạn (để nó không còn là một phần của "thứ khác") .
Và hơn nữa, xác nhận chéo là một cách để thực sự phân tích Bayes khi các tích phân ở trên rất khó khăn. Và xác nhận chéo "có ý nghĩa" đối với bất kỳ ai - đó là "cơ học" chứ không phải là "toán học". Vì vậy, thật dễ dàng để hiểu những gì đang xảy ra. Và nó dường như cũng khiến bạn tập trung vào phần quan trọng của các mô hình - đưa ra dự đoán tốt.