ไล่ระดับสีสำหรับฟังก์ชั่นการสูญเสียโลจิสติก


12

ฉันจะถามคำถามที่เกี่ยวข้องกับคนนี้

ฉันพบตัวอย่างของการเขียนฟังก์ชันการสูญเสียที่กำหนดเองสำหรับ xgboost ที่นี่ :

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))
}

ฟังก์ชั่นการสูญเสียโลจิสติกคือ

log(1+eyP)

โดยที่Pคืออัตราต่อรองและyคือป้ายกำกับ (0 หรือ 1)

คำถามของฉันคือวิธีการที่เราจะได้รับการไล่ระดับสี (อนุพันธ์แรก) ก็เท่ากับความแตกต่างระหว่างค่าความจริงและความน่าจะเป็นที่คาดการณ์ไว้ (คำนวณจากบันทึกอัตราต่อรองเป็นpreds <- 1/(1 + exp(-preds)))?


คุณควรใช้การสูญเสียข้อผิดพลาดกำลังสองเพื่อให้ได้ สัญกรณ์ของคุณสับสนและควรกำหนดไว้ในโพสต์ หากคือความเสี่ยงที่คาดการณ์ไว้การสูญเสีย( y - p ) 2เป็นสิ่งที่คุณต้องการ ฉันสับสนเพราะเราไม่เคยใช้pเพื่อหมายถึงอัตราต่อรอง p(yp)2p
AdamO

ได้รับการแก้ไขไปยังเมืองหลวงP มันเป็นอัตราต่อรองและมีการทำเครื่องหมายอย่างชัดเจนในคำถาม ฉันรู้ว่าการไล่ระดับสีสำหรับฟังก์ชั่นการสูญเสีย ( y - f ( x ) ) 2คือ f ( x ) - yแต่มันเป็นการสูญเสียแบบตารางไม่ใช่ลอจิสติก pP(yf(x))2f(x)y
Ogurtsov

เมื่อคุณพูดว่า "การไล่ระดับสี" คุณหมายถึงการไล่ระดับสีอะไร ความชันของการสูญเสีย? มันเป็นความสัมพันธ์ทางคณิตศาสตร์อย่างง่าย ๆ ว่าถ้าอนุพันธ์ของนิพจน์เป็นผลต่างเชิงเส้นแล้วนิพจน์นั้นเป็นผลต่างกำลังสองหรือการสูญเสียข้อผิดพลาดกำลังสอง
AdamO

ใช่มันคือทั้งหมดที่เกี่ยวกับการไล่ระดับสีของการสูญเสีย มันง่ายเมื่อฟังก์ชันการสูญเสียเป็นข้อผิดพลาดกำลังสอง ในกรณีนี้ฟังก์ชั่นการสูญเสียคือการสูญเสียโลจิสติก ( en.wikipedia.org/wiki/LogitBoost ) และฉันไม่พบการติดต่อระหว่างการไล่ระดับสีของฟังก์ชั่นนี้และตัวอย่างรหัสที่กำหนด
Ogurtsov

คำตอบ:


19

คำตอบของฉันสำหรับคำถามของฉัน: ใช่มันสามารถแสดงให้เห็นว่าการไล่ระดับสีสำหรับการสูญเสียโลจิสติกเท่ากับความแตกต่างระหว่างค่าจริงและความน่าจะเป็นที่คาดการณ์ คำอธิบายสั้น ๆ ก็พบว่าที่นี่

อันดับแรกการสูญเสียของโลจิสติกส์เป็นเพียงความน่าจะเป็นบันทึกเชิงลบดังนั้นเราจึงสามารถเริ่มต้นด้วยนิพจน์สำหรับความเป็นไปได้ในการบันทึก ( หน้า 74 - การแสดงออกนี้เป็นความน่าจะเป็นบันทึกเองไม่ใช่เชิงลบ

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

pipi=11+ey^iy^i

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

อนุพันธ์อันดับแรกที่ได้รับโดยใช้ 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

หลังจากเปลี่ยนเครื่องหมายเรามีการแสดงออกสำหรับการไล่ระดับสีของฟังก์ชันการสูญเสียโลจิสติก:

piyi

2
y^yν1pi(1pi)(yipi)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.