Gradient cho chức năng mất hậu cần


11

Tôi sẽ hỏi một câu hỏi liên quan đến cái này .

Tôi tìm thấy một ví dụ về cách viết chức năng mất tùy chỉnh cho xgboost tại đây :

loglossobj <- function(preds, dtrain) {
  # dtrain is the internal format of the training data
  # We extract the labels from the training data
  labels <- getinfo(dtrain, "label")
  # We compute the 1st and 2nd gradient, as grad and hess
  preds <- 1/(1 + exp(-preds))
  grad <- preds - labels
  hess <- preds * (1 - preds)
  # Return the result as a list
  return(list(grad = grad, hess = hess))
}

Chức năng mất hậu cần là

log(1+eyP)

Trong đó là tỷ lệ cược log và y là nhãn (0 hoặc 1).Py

Câu hỏi của tôi là: làm thế nào chúng ta có thể nhận được độ dốc (đạo hàm đầu tiên) đơn giản bằng với sự khác biệt giữa các giá trị thực và xác suất dự đoán (được tính từ tỷ lệ cược log như preds <- 1/(1 + exp(-preds)))?


Bạn nên sử dụng mất bình phương lỗi để đạt được điều đó. Ký hiệu của bạn là khó hiểu và nên được xác định trong bài. Nếu là rủi ro dự đoán, thì ( y - p ) 2 mất là điều bạn muốn. Tôi bối rối vì chúng tôi không bao giờ sử dụng p để có nghĩa là tỷ lệ cược log. p(yp)2p
AdamO

đã được cố định để vốn P . Đó là tỷ lệ cược log, và nó được đánh dấu rõ ràng trong câu hỏi. Tôi biết rằng độ dốc cho hàm mất ( y - f ( x ) ) 2 f ( x ) - y , nhưng đó là tổn thất vuông, không phải là logistic. pP(yf(x))2f(x)y
Ogurtsov

Khi bạn nói "gradient", bạn có ý nghĩa gì về độ dốc? Độ dốc của sự mất mát? Đó là một mối quan hệ toán học đơn giản mà nếu đạo hàm của một biểu thức là một sự khác biệt tuyến tính, thì biểu thức đó là một sự khác biệt bậc hai, hoặc mất bình phương lỗi.
AdamO

Vâng, đó là tất cả về độ dốc của sự mất mát. Nó là đơn giản, khi mất chức năng bình phương lỗi. Trong trường hợp này, hàm mất là logistic ( en.wikipedia.org/wiki/LogitBoost ) và tôi không thể tìm thấy sự tương ứng giữa độ dốc của hàm này và ví dụ mã đã cho.
Ogurtsov

Câu trả lời:


18

Câu trả lời của tôi cho câu hỏi của tôi: có, có thể chỉ ra rằng độ dốc cho mất logistic bằng với sự khác biệt giữa các giá trị thực và xác suất dự đoán. Giải thích ngắn gọn đã được tìm thấy ở đây .

Đầu tiên, mất logistic chỉ là khả năng log âm, vì vậy chúng ta có thể bắt đầu bằng biểu thức cho khả năng đăng nhập ( tr. 74 - biểu thức này là chính khả năng log, chứ không phải khả năng log âm):

L=yilog(pi)+(1yi)log(1pi)

pipi=11+ey^iy^i

L=yilog(11+ey^i)+(1yi)log(ey^i1+ey^i)

Đạo hàm đầu tiên thu được bằng Wolfram Alpha:

L=yi(1yi)ey^i1+ey^i

ey^iey^i

L=yiey^i+yi11+ey^i=yi(1+ey^i)1+ey^i11+ey^i=yipi

Sau khi thay đổi dấu hiệu, chúng ta có biểu thức cho độ dốc của hàm mất logistic:

piyi

2
y^yν1pi(1pi)(yipi)
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.