วิธีการตั้งค่าเครือข่ายประสาทเพื่อส่งออกข้อมูลลำดับ


20

ฉันมีโครงข่ายใยประสาทเทียมที่ตั้งค่าเพื่อคาดเดาบางสิ่งที่ตัวแปรเอาต์พุตเป็นลำดับ ฉันจะอธิบายด้านล่างโดยใช้สามเอาต์พุตที่เป็นไปได้ A <B <C

มันค่อนข้างชัดเจนว่าจะใช้โครงข่ายประสาทเทียมเพื่อส่งออกข้อมูลที่เป็นหมวดหมู่ได้อย่างไร: เอาต์พุตเป็นเลเยอร์ softmax ของเลเยอร์สุดท้าย (โดยปกติจะเชื่อมต่อเต็มที่) หนึ่งต่อหมวดหมู่และหมวดที่คาดการณ์ไว้คือหนึ่งที่มีค่าเอาต์พุตที่ใหญ่ที่สุด ค่าเริ่มต้นในรุ่นยอดนิยมจำนวนมาก) ฉันใช้การตั้งค่าเดียวกันสำหรับค่าลำดับ อย่างไรก็ตามในกรณีนี้ผลลัพธ์มักจะไม่สมเหตุสมผลตัวอย่างเช่นเอาท์พุทเครือข่ายสำหรับ A และ C สูง แต่ B ต่ำ: นี่ไม่น่าเชื่อถือสำหรับค่าลำดับ

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

วิธีมาตรฐานในการแก้ไขปัญหานี้คืออะไร มีการวิจัยหรือการอ้างอิงใด ๆ ที่อธิบายข้อดีข้อเสียของวิธีการต่าง ๆ หรือไม่?


1
ฉันได้รับความนิยมอย่างมากใน Google สำหรับ "การถดถอยโลจิสติกอันดับ" เช่นบทความนี้
shadowtalker

@ssdecontrol: น่าสนใจ ฉันลองแล้ว ผลลัพธ์นั้นดีกว่าการเลือกเอาต์พุตหนึ่งตัวที่มีค่าสูงสุด แต่แย่กว่าวิธีอื่นเล็กน้อย (ซื่อๆเบย์เป็นต้น) สิ่งนี้มีประโยชน์ แต่มันไม่ได้ช่วยในการฝึกอบรมเครือข่ายเพียงปรับปรุงผลลัพธ์เล็กน้อยหลังจากความจริงแล้ว ... หรืออย่างน้อยฉันก็ไม่เห็นวิธีที่จะช่วยฝึกอบรมเครือข่าย
อเล็กซ์ฉัน

คุณลอง "ตัวไหน" จุดเดียวของฉันคือเครื่องมือค้นหาอาจมีประโยชน์มากกว่าที่คุณคาดไว้
shadowtalker

นอกจากนี้ฉันไม่แน่ใจว่าฉันเข้าใจสิ่งที่คุณหมายถึงโดย "ตัวอย่างเช่นเอาท์พุทเครือข่ายสำหรับ A และ C สูง แต่ B ต่ำ: นี้ไม่น่าเชื่อถือ" คุณหมายถึงคุณกำลังทำนาย As และ Cs มาก แต่น้อย Bs? ฉันไม่เห็นว่าทำไมจึงเป็นสิ่งที่ไม่น่าเชื่อเว้นแต่คุณจะมีเหตุผลสำคัญหรือเฉพาะโดเมนที่จะคิดอย่างนั้น
shadowtalker

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

คำตอบ:


15

ฉันเชื่อว่าสิ่งที่คนส่วนใหญ่ทำคือเพียงแค่ปฏิบัติกับการจัดหมวดหมู่ตามลำดับเป็นการจัดหมวดหมู่หลายชั้นทั่วไป ดังนั้นหากพวกเขามีคลาสพวกเขาจะมีเอาต์พุตและใช้ฟังก์ชั่นการเปิดใช้งาน sigmoid (ไม่ใช่ softmax อย่างเห็นได้ชัด) และไบนารีข้ามเอนโทรปีเป็นการสูญเสียเคKK

แต่บางคนก็สามารถคิดค้นการเข้ารหัสที่ชาญฉลาดสำหรับคลาสลำดับของคุณ (ดูคำตอบสแต็คโอเวอร์โฟลว์นี้) มันเป็นการเข้ารหัสที่ร้อนแรง

  • คลาส 1 แสดงเป็น [0 0 0 0 ... ]

  • class 2 แสดงเป็น [1 0 0 0 ... ]

  • คลาส 3 แสดงเป็น [1 1 0 0 ... ]

คือแต่ละเซลล์ประสาทคาดการณ์ความน่าจะเป็น<k) คุณยังต้องใช้ sigmoid เป็นฟังก์ชั่นการเปิดใช้งาน แต่ฉันคิดว่านี่จะช่วยให้เครือข่ายเข้าใจถึงความต่อเนื่องระหว่างคลาสฉันไม่รู้ หลังจากนั้นคุณทำการ post-processing ( ) เพื่อแปลงเอาต์พุตไบนารีเป็นคลาสของคุณP(y^<k)np.sum

กลยุทธ์นี้มีลักษณะคล้ายกับวงดนตรีจากแฟรงก์และฮอลล์และผมคิดว่านี่เป็นครั้งแรกที่พิมพ์ดังกล่าว


วิธีนี้ดูน่าดึงดูดกว่ามาก สิ่งสำคัญคือต้องตระหนักว่าการใช้โหมดที่คาดการณ์เพื่อเปลี่ยนสิ่งนี้ให้เป็นปัญหาการจำแนกประเภทไม่ใช่ความคิดที่ดี ทำนายความน่าจะเป็นของแต่ละคนจะกลายเป็นทำนายความน่าจะเป็นสะสมและยูทิลิตี้ฟังก์ชันสำหรับการตัดสินใจขั้นสุดท้ายสามารถแทรกเข้าไปในภายหลังเมื่อรู้ว่าสาธารณูปโภค ดูfharrell.com/post/classification
Frank Harrell

1
@RicardoCruz - อืมมันฟังดูเหมือนสิ่งที่ฉันแนะนำ: "1 0 0 สำหรับ A, 1 1 0 สำหรับ B และ 1 1 1 สำหรับ C" ดีใจที่ได้ทราบว่าใช้งานได้! ว้าวนั่นเป็นกระดาษจากปี 2007 ความคิดนี้มีมานานแล้ว
Alex I

ใช่ฉันรู้สึกประหลาดใจเมื่อพบกระดาษแผ่นนั้น!
Ricardo Cruz

หมายเหตุ: ตามที่ระบุไว้ใน "A Neurel Network Approach to Ordinal Regression": "... ... การใช้ฟังก์ชั่น sigmoid อิสระสำหรับโหนดเอาท์พุทไม่ได้รับประกันความสัมพันธ์แบบโมโนโทนิค (o1> = o2> = .... > = oK) ซึ่งเป็น ไม่จำเป็น แต่เป็นที่ต้องการสำหรับการคาดการณ์ " ดังนั้นเพียงแค่ทำการ "np.sum" ตามเวลาที่คาดการณ์ไม่ใช่วิธีที่ดีที่สุด
sccrthlt

1
แก้ไขความคิดเห็นของฉันด้านบน: การดำเนินการ "np.sum" บนผลลัพธ์ของเครือข่ายประสาทเทียมทำให้เข้าใจผิด สถานการณ์ต่อไปนี้อาจเกิดขึ้นเมื่อเวกเตอร์เอาต์พุตคือ [0 1 0 1 0] การทำผลรวมของเวกเตอร์นี้จะทำให้เกิดการคาดคะเนระดับ 2 ซึ่งอันที่จริงแล้วโครงข่ายประสาทเทียมไม่แน่ใจ
sccrthlt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.