Để thêm vào câu trả lời trước, chúng tôi sẽ bắt đầu lại từ đầu:
Có một số cách bạn có thể phù hợp với mô hình của bạn với dữ liệu đào tạo, một số cách rõ ràng, một số ít như vậy. Đầu tiên, và điều quan trọng nhất là quá mức các tham số đào tạo (trọng số) cho dữ liệu (tham số khớp đường cong trong hồi quy logistic, trọng số mạng trong mạng nơ ron, v.v.). Sau đó, bạn sẽ mô hình hóa nhiễu trong dữ liệu - nếu bạn quá phù hợp, bạn không chỉ nắm bắt được chức năng tạo cơ bản, mà còn là sự ngẫu nhiên do kích thước mẫu và thực tế là mẫu không phải là đại diện hoàn hảo cho dân số. Quá mức này có thể được giảm thiểu đến một mức độ nhất định bằng cách xử phạt các thuộc tính nhất định (nói chung là phức tạp) của mô hình. Điều này có thể được thực hiện bằng cách dừng đào tạo một khi hiệu suất trên mẫu tàu không còn được cải thiện đáng kể, bằng cách loại bỏ một số tế bào thần kinh khỏi mạng lưới thần kinh (được gọi là bỏ học),https://ieeexplore.ieee.org/document/614177/ ) v.v.). Tuy nhiên, các chiến lược chính quy hóa này tự chúng được tham số hóa (khi nào bạn dừng lại?, Cần loại bỏ bao nhiêu tế bào thần kinh? V.v.). Ngoài ra, hầu hết các mô hình học máy đều có một số siêu tham số cần được đặt trước khi bắt đầu đào tạo. Và các siêu tham số này được điều chỉnh trong giai đoạn điều chỉnh tham số.
Điều đó đưa chúng ta đến loại thứ hai, và loại quá mức tinh tế: siêu tham số quá mức. Xác thực chéo có thể được sử dụng để tìm siêu tham số "tốt nhất", bằng cách liên tục huấn luyện mô hình của bạn từ đầu trên các nếp gấp k-1 của mẫu và thử nghiệm ở lần cuối cùng.
Vậy nó được thực hiện chính xác như thế nào? Tùy thuộc vào chiến lược tìm kiếm (được đưa ra bởi hàng chục), bạn đặt siêu tham số của mô hình và huấn luyện mô hình của bạn k lần, mỗi lần sử dụng lần kiểm tra khác nhau. Bạn "nhớ" hiệu suất trung bình của mô hình trong tất cả các lần thử nghiệm và lặp lại toàn bộ quy trình cho một bộ siêu tham số khác. Sau đó, bạn chọn bộ siêu tham số tương ứng với hiệu suất tốt nhất trong quá trình xác thực chéo. Như bạn có thể thấy, chi phí tính toán của thủ tục này phụ thuộc rất nhiều vào số lượng bộ siêu tham số cần được xem xét. Đó là lý do tại sao một số chiến lược để chọn bộ này đã được phát triển (ở đây tôi sẽ khái quát những gì tenhi nói):
- Tìm kiếm dạng lưới: với mỗi siêu tham số, bạn liệt kê một số hữu hạn các giá trị có thể. Sau đó, thủ tục được thực hiện triệt để cho tất cả các kết hợp của các tham số siêu liệt kê. Rõ ràng, nếu bạn có các tham số siêu liên tục, bạn không thể thử tất cả chúng.
- Tìm kiếm lưới ngẫu nhiên: tương tự như tìm kiếm lưới thông thường, nhưng lần này bạn không thử tất cả các kết hợp một cách triệt để, mà thay vào đó hãy lấy mẫu một số lần cố định cho tất cả các giá trị có thể. Lưu ý rằng ở đây có thể không chỉ liệt kê các giá trị có thể cho siêu tham số, mà bạn còn có thể cung cấp phân phối cho mẫu từ đó.
- BayesianSearch - sự kết hợp của các giá trị siêu tham số được chọn để tối đa hóa sự cải thiện điểm số dự kiến. Để biết thêm: http://epage.nips.cc/apers/4522-pratics-bayesian-optimization-of-machine-learning-alerskyms.pdf . Và một thư viện chỉ liên quan đến điều đó: https://github.com/hyperopt/hyperopt . Vì không dễ để kết hợp với sklearn như những gì tenhi khuyên dùng, chỉ sử dụng nó nếu bạn không làm việc với sklearn.
- Các cách khác để tìm kiếm hướng dẫn trong không gian siêu tham số. Theo kinh nghiệm của tôi, chúng hiếm khi được sử dụng, vì vậy tôi sẽ không bao gồm chúng ở đây.
Tuy nhiên đây không phải là kết thúc của câu chuyện, vì các tham số siêu có thể (và sẽ) cũng phù hợp với dữ liệu. Đối với hầu hết các trường hợp, bạn chỉ có thể sống với nó, nhưng nếu bạn muốn tối đa hóa sức mạnh khái quát của mô hình của mình, bạn cũng có thể muốn thử và thường xuyên hóa các tham số siêu. Trước tiên, bạn có thể đánh giá hiệu suất trên dữ liệu ngoài mẫu tốt hơn một chút bằng cách sử dụng tìm kiếm lưới lồng nhau (chi tiết: http://scikit-learn.org/ sóng / auto_examples / model_selection / plot_nested_cross_validation_iris.html , thảo luận: Xác thực chéo để lựa chọn mô hình) hoặc chỉ sử dụng một bộ xác thực không được sử dụng để điều chỉnh siêu tham số. Đối với việc thường xuyên hóa trong không gian siêu tham số, đó ít nhiều là một câu hỏi mở. Một số ý tưởng bao gồm chọn không phải là tập hợp các giá trị siêu tham số tốt nhất, nhưng một cái gì đó gần hơn ở giữa; lý do diễn ra như sau: các giá trị siêu tham số tốt nhất rất có thể phù hợp với dữ liệu chỉ vì hiệu suất tốt hơn các dữ liệu khác, các tham số xấu chỉ là xấu, nhưng các giá trị ở giữa có thể có thể khái quát hóa tốt hơn so với các giá trị tốt nhất . Andrew Ng đã viết một bài báo về nó. Một tùy chọn khác là giới hạn không gian tìm kiếm của bạn (bạn đang thường xuyên bằng cách đưa ra sự thiên vị mạnh mẽ ở đây - các giá trị bên ngoài không gian tìm kiếm sẽ không bao giờ được chọn rõ ràng).
Nhận xét bên lề: sử dụng độ chính xác làm chỉ số hiệu suất trong hầu hết các trường hợp là một ý tưởng rất tồi , hãy nhìn vào điểm số F1 và f_beta - trong hầu hết các trường hợp này sẽ phản ánh tốt hơn những gì bạn thực sự đang cố gắng tối ưu hóa trong các vấn đề phân loại nhị phân.
Tóm lại: chính xác thực chéo được sử dụng để khẳng định hiệu suất của mô hình trên dữ liệu ngoài mẫu, nhưng cũng có thể được sử dụng để điều chỉnh siêu tham số kết hợp với một trong các chiến lược tìm kiếm trong không gian siêu tham số. Tìm siêu tham số tốt cho phép tránh hoặc ít nhất là giảm quá mức, nhưng hãy nhớ rằng siêu tham số cũng có thể vượt quá dữ liệu.