การจำแนกประเภทด้วยการไล่ระดับสีแบบไล่ระดับ: วิธีการทำนายใน [0,1]


17

คำถาม

ฉันกำลังดิ้นรนเพื่อทำความเข้าใจว่าการทำนายนั้นจะอยู่ในช่วง[0,1]เมื่อทำการจำแนกไบนารีด้วยการไล่ระดับสีแบบค่อยเป็นค่อยไป

สมมติว่าเรากำลังทำงานกับปัญหาการจำแนกเลขฐานสองและฟังก์ชันวัตถุประสงค์ของเราคือการสูญเสียบันทึกyilog(Hm(xi))+(1yi)log(1Hm(xi))โดยที่yคือตัวแปรเป้าหมาย{0,1}และHคือโมเดลปัจจุบันของเรา

เมื่อการฝึกอบรมผู้เรียนที่อ่อนแอต่อไปhiดังกล่าวว่ารูปแบบใหม่ของเราคือHi=Hi1+hiสิ่งที่เป็นกลไกที่ควรจะให้Hi[0,1] ? หรืออาจเป็นคำถามที่เกี่ยวข้องมากกว่านี้มีกลไกแบบนี้หรือไม่?


ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่ฉันทำ

ฉันกำลังพยายามเพิ่มการไล่ระดับสีโดยใช้ต้นไม้การถดถอย สิ่งที่ฉันทำเพื่อหลีกเลี่ยงมันคือการคูณด้วยปัจจัยc [ 0 , c max ]เช่นนี้H + c max hไม่ไปต่ำกว่าศูนย์หรือสูงกว่าหนึ่งและฉันเลือกcในช่วงนี้ที่ย่อเล็กสุด ฟังก์ชั่นการสูญเสียhic[0,cmax]H+cmaxhc

นี่ทำให้เกิดปัญหาต่อไปนี้: หลังจากรอบฉันมีจุดหนึ่งที่จำแนกอย่างสมบูรณ์และแบ่งที่ดีที่สุดที่มีการผลักลักษณนามในทิศทางของการไล่ระดับสีต้องการผลักดันจุดนี้เหนือจุดหนึ่งซึ่งฉันแน่ใจว่าจะไม่เกิดขึ้นโดย การตั้งค่า 0 ดังนั้นการวนซ้ำครั้งถัดไปทั้งหมดจะเลือกการแบ่งที่เหมือนกันและc = 0 ที่เหมือนกันc=0c=0

ฉันลองใช้ระเบียบปฏิบัติทั่วไป

  • ลดอัตราการเรียนรู้โดยการคูณโดยμ = 0.01 นี่เป็นเพียงความล่าช้าของปัญหาcμ=0.01
  • การสุ่มตัวอย่างพื้นที่คุณลักษณะ แต่บางจุดนั้นง่ายต่อการจำแนกพวกมันทำเครื่องหมายในเกือบทุกช่องใน "นี่เป็นค่าบวกหรือไม่" รูปแบบและ "การแบ่งที่ดี" เกือบทุกรายการแสดงพฤติกรรมนี้

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

สิ่งที่เราจัดการในบริบทของการสูญเสียโลจิสติกควรเป็นความน่าจะเป็นดังนั้นเราจะหลีกเลี่ยงได้อย่างไร


สัญชาตญาณของฉันคือการวางแบบจำลองที่เรากำลังสร้าง, , ในฟังก์ชัน sigmoid ซึ่งมันถูก จำกัด ไว้ที่[ 0 , 1 ]และฉันเดาว่ามันจะใช้ได้ แต่ฉันอยากรู้ว่ามีวิธีแก้ปัญหาอื่นหรือไม่ เนื่องจากการเพิ่มระดับความลาดชันดูเหมือนจะใช้อย่างประสบความสำเร็จในงานการจำแนกประเภทจึงควรมีโซลูชัน "ที่ถูกต้อง" (เช่นพร้อมด้วยเหตุผล)H[0,1]


คุณอาจต้องการให้เป็นแบบหลายค่าในln ( H ) นั้นจะทำงานร่วมกับผู้เชี่ยวชาญคนอื่น ๆ ของคุณ Hln(H)
Alex R.

คำตอบ:


22

ฉันชอบที่จะคิดแบบนี้คล้ายคลึงกับกรณีของตัวแบบเชิงเส้นและการขยายไปยัง GLMs (ตัวแบบเชิงเส้นทั่วไป)

ในโมเดลเชิงเส้นเราพอดีฟังก์ชันเชิงเส้นเพื่อทำนายการตอบสนองของเรา

y^=β0+β1x1+βnxn

เพื่อสรุปสถานการณ์อื่น ๆ เราขอแนะนำฟังก์ชั่นลิงค์ซึ่งเปลี่ยนส่วนเชิงเส้นของแบบจำลองไปเป็นสเกลของการตอบสนอง (ในทางเทคนิคนี่คือลิงค์ผกผัน แต่ฉันคิดว่ามันง่ายกว่าที่คิดแบบนี้เปลี่ยนตัวทำนายเชิงเส้น เป็นการตอบสนองมากกว่าเปลี่ยนการตอบสนองเป็นการทำนายเชิงเส้น)

ตัวอย่างเช่นโมเดลโลจิสติกใช้ฟังก์ชัน sigmoid (หรือ logit)

y^=11+exp((β0+β1x1+βnxn))

และการถดถอยปัวซองใช้ฟังก์ชันเลขชี้กำลัง

y^=exp(β0+β1x1+βnxn)

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

y^=ihi

ที่เป็นลำดับของผู้เรียนที่อ่อนแอของเรา กรณีทวินามคล้ายคลึงกับการถดถอยโลจิสติกส์ (ตามที่คุณบันทึกไว้ในคำตอบ)hi

y^=11+exp(ihi)

และการส่งเสริมปัวส์ซองนั้นคล้ายคลึงกับการถดถอยปัวซอง

y^=exp(ihi)

คำถามยังคงอยู่ว่าจะมีวิธีใดที่จะเหมาะสมกับโมเดลที่ได้รับการปรับปรุงเหล่านี้เมื่อมีการเชื่อมโยงกับฟังก์ชั่นการเชื่อมโยง? สำหรับกรณี gaussian ที่การเชื่อมโยงคือฟังก์ชั่นเอกลักษณ์ตัวอักษรที่ได้ยินบ่อยๆของผู้เรียนที่อ่อนแอที่เหมาะสมกับส่วนที่เหลือของรูปแบบการทำงานในปัจจุบันทำงานออกมา เคล็ดลับคือการเขียนฟังก์ชันการสูญเสียที่ถูกย่อให้เล็กสุดเป็นฟังก์ชันของเส้นตรงเป็นส่วนหนึ่งของรูปแบบ (เช่นเป็นส่วนหนึ่งของการกำหนด GLM) ที่iβixi

ตัวอย่างเช่นการสูญเสียแบบทวินามมักจะพบว่าเป็น

iyilog(pi)+(1yi)log(1pi)

ที่นี่การสูญเสียเป็นหน้าที่ของค่าที่คาดการณ์ในระดับเดียวกับการตอบสนองและp iคือการแปลงแบบไม่เป็นเชิงเส้นของตัวทำนายเชิงเส้นL ฉันpipiLiฉันแต่เราสามารถแสดงสิ่งนี้เป็นฟังก์ชั่นของอีกครั้ง (ในกรณีนี้หรือที่เรียกว่าอัตราต่อรองบันทึก)Li

iyiLilog(1+exp(Li))

จากนั้นเราสามารถใช้ความชันของเรื่องนี้เทียบกับและเพิ่มเพื่อลดปริมาณนี้โดยตรงL

ในตอนท้ายเมื่อเราต้องการสร้างการคาดการณ์สำหรับผู้ใช้เราจะใช้ฟังก์ชันลิงก์กับลำดับสุดท้ายของผู้เรียนที่อ่อนแอเพื่อใช้การทำนายในระดับเดียวกับการตอบสนอง ในขณะที่ปรับโมเดลให้เหมาะสมเราทำงานภายในสเกลเชิงเส้นตลอดเวลา


2
r(,)i(yilog11+er+(1yi)log(111+er))r

@ matthew-drury คุณช่วยเพิ่มแสงในส่วน multinomial K-class ของ K-class ของอัลกอริทึมเดียวกันที่ความคิดที่คล้ายกันถูกขยายให้ทำงานได้หรือไม่?
MixCoded

6

หลังจากการวิจัยบางอย่างดูเหมือนว่าสัญชาตญาณของฉันและความคิดเห็นของ Alex R.ถูกต้อง

เพื่อสร้างแบบจำลองอย่างต่อเนื่องโดยมีการคาดการณ์ใน [0,1]หนึ่งสามารถใส่รูปแบบ Hเป็นฟังก์ชันลอจิสติก (Wikipedia)เช่นนั้นHR, เรามี

11+อี-H[0,1]
ขั้นตอนการไล่ระดับสีที่เพิ่มขึ้นนั้นใช้อนุพันธ์เทียบกับ H และอัปเดตโมเดลราวกับว่าฟังก์ชันลอจิสติกเป็นส่วนหนึ่งของฟังก์ชันต้นทุนและใช้งานได้

สิ่งนี้ได้ถูกเสนอไว้ในบทความการถดถอยลอจิสติกของสารเติมแต่ง: มุมมองทางสถิติของการส่งเสริมโดย Friedman, Hastie และ Tibshirani เพื่อสร้างLogitBoost (Wikipedia)ซึ่งเป็นการปรับAdaBoost (Wikipedia)ให้เข้ากับ Logistic Loss

In very basic terms, if it is possible to go from linear regression to logistic regression by the addition of a sigmoid, then it also works to convert regression boosting to classification boosting.

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