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


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+e−yP)

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

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


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

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

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

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

คำตอบ:


19

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

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

L=yi⋅log(pi)+(1−yi)⋅log(1−pi)

pipi=11+e−y^iy^i

L=yi⋅log(11+e−y^i)+(1−yi)⋅log(e−y^i1+e−y^i)

อนุพันธ์อันดับแรกที่ได้รับโดยใช้ Wolfram Alpha:

L′=yi−(1−yi)⋅ey^i1+ey^i

e−y^ie−y^i

L′=yi⋅e−y^i+yi−11+e−y^i=yi⋅(1+e−y^i)1+e−y^i−11+e−y^i=yi−pi

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

pi−yi

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