Giả sử bạn đang cố gắng giảm thiểu hàm mục tiêu thông qua số lần lặp. Và giá trị hiện tại là . Trong tập dữ liệu đã cho, không có "lỗi không thể khắc phục" và bạn có thể giảm thiểu tổn thất xuống cho dữ liệu đào tạo của mình. Bây giờ bạn có hai cách để làm điều đó.100,00,0
Cách đầu tiên là "tỷ lệ học tập lớn" và vài lần lặp. Giả sử bạn có thể giảm tổn thất trong mỗi lần lặp, sau đó, trong10,010 lần lặp, bạn có thể giảm tổn thất xuống .0,0
Cách thứ hai sẽ là "tốc độ học tập chậm" nhưng lặp đi lặp lại nhiều hơn. Giả sử bạn có thể giảm tổn thất bằng trong mỗi lần lặp và bạn cần lần lặp để có 0,0 mất trên dữ liệu đào tạo của mình.1100
Bây giờ hãy nghĩ về điều này: hai cách tiếp cận có bằng nhau không? và nếu không cái nào tốt hơn trong bối cảnh tối ưu hóa và bối cảnh học máy ?
Trong tài liệu tối ưu hóa , hai cách tiếp cận là như nhau. Khi cả hai đều hội tụ để giải pháp tối ưu . Mặt khác, trong học máy , chúng không bằng nhau. Bởi vì trong hầu hết các trường hợp, chúng tôi không làm cho tổn thất trong đào tạo được đặt thành sẽ gây ra sự phù hợp quá mức.0
Chúng ta có thể nghĩ về cách tiếp cận đầu tiên là "tìm kiếm lưới mức độ thô" và cách tiếp cận thứ hai là "tìm kiếm lưới mức độ tốt". Cách tiếp cận thứ hai thường hoạt động tốt hơn, nhưng cần nhiều sức mạnh tính toán hơn cho nhiều lần lặp hơn.
Để ngăn chặn sự phù hợp quá mức, chúng ta có thể làm những việc khác nhau, cách đầu tiên là hạn chế số lần lặp, giả sử chúng ta đang sử dụng cách tiếp cận đầu tiên, chúng ta giới hạn số lần lặp là 5. Cuối cùng, tổn thất cho dữ liệu đào tạo là . (BTW, điều này sẽ rất lạ từ quan điểm tối ưu hóa , có nghĩa là chúng ta có thể cải thiện giải pháp trong tương lai / nó không được hội tụ, nhưng chúng tôi đã chọn không. Để tối ưu hóa, chúng tôi thường thêm các ràng buộc hoặc các điều khoản xử phạt vào chức năng khách quan, nhưng thường không giới hạn số lần lặp.)50
Mặt khác, chúng ta cũng có thể sử dụng cách tiếp cận thứ hai: nếu chúng ta đặt tỷ lệ học tập là nhỏ, giảm mất cho mỗi lần lặp, mặc dù chúng ta có số lần lặp lớn nói là lần lặp, chúng ta vẫn chưa giảm thiểu tổn thất xuống .0,15000,0
Đây là lý do tại sao tỷ lệ học tập nhỏ tương đương với "thường xuyên hơn".
Dưới đây là một ví dụ về việc sử dụng tỷ lệ học tập khác nhau trên dữ liệu thử nghiệm bằng cách sử dụng xgboost
. Vui lòng kiểm tra theo dõi hai liên kết để xem những gì không eta
hoặc n_iterations
có nghĩa là gì.
Các thông số cho Tree Booster
Kiểm soát quá mức XGBoost
Đối với cùng số lần lặp, hãy nói . Một tỷ lệ học tập nhỏ là "không phù hợp" (hoặc mô hình có "độ lệch cao") và tỷ lệ học tập lớn là "quá phù hợp" (hoặc mô hình có "phương sai cao").50
Tái bút bằng chứng của sự không phù hợp là cả tập huấn luyện và kiểm thử đều có lỗi lớn và đường cong lỗi cho đào tạo và kiểm tra gần nhau. Dấu hiệu của sự phù hợp quá mức là lỗi tập huấn luyện là rất thấp và tập kiểm tra rất cao, hai đường cong nằm cách xa nhau.