max_delta_step trong xgboost


9

Tôi không thể hiểu đầy đủ cách thức tham số này hoạt động từ mô tả trong tài liệu

[max_delta_step [default = 0]] Bước delta tối đa chúng tôi cho phép ước tính trọng lượng của mỗi cây. Nếu giá trị được đặt thành 0, điều đó có nghĩa là không có ràng buộc. Nếu nó được đặt thành một giá trị dương, nó có thể giúp làm cho bước cập nhật trở nên thận trọng hơn. Thông thường tham số này là không cần thiết, nhưng nó có thể giúp hồi quy logistic khi lớp cực kỳ mất cân bằng. Đặt nó thành giá trị 1-10 có thể giúp kiểm soát cập nhật

Tôi không rõ "bước delta" đề cập đến điều gì, đặc biệt là vì đã có một giải pháp phân tích cho các trọng số, và các trọng số đã bị phạt bởi eta. Ai đó có thể làm sáng tỏ nơi tham số này phù hợp với thuật toán, "bước delta" đề cập đến điều gì và chính xác nó giúp ích như thế nào trong các bộ dữ liệu cực kỳ mất cân bằng?

Câu trả lời:


5

eta giới thiệu chính quy hóa 'tương đối' (nhân trọng số với hệ số không đổi) nhưng trong trường hợp cực đoan khi hessian gần như bằng 0 (như khi chúng ta có các lớp rất không cân bằng) thì điều này không đủ vì trọng số (trong đó tính toán của hessian mẫu số) trở thành gần như vô tận. Vì vậy, những gì max_delta_steps làm là giới thiệu chính quy hóa 'tuyệt đối' giới hạn trọng lượng trước khi áp dụng hiệu chỉnh eta.

Nếu bạn thấy mã của xgboost (tham số tệp.h, thủ tục Calcweight), bạn có thể thấy điều này và bạn thấy tác dụng của các tham số chính quy khác, lambda và alpha (tương đương với chính quy L1 và L2). Trong hiệu ứng lambda đặc biệt bổ sung (hoặc có thể thay thế) max_delta_step, vì lambda lớn hơn 0 làm trọng lượng nhỏ hơn.

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.