(คำตอบของ hamner ดีมากดังนั้นเพียงโพสต์ข้ามคำตอบของฉันจาก MetaOptimize เพื่อความสมบูรณ์)
ผมคิดว่าอัลกอริทึมกำเนิดกับการให้บริการรูปแบบของวิธีการที่ข้อมูลจะถูกสร้างขึ้นจริง (ผมคิดว่าพวกเขาทั้งให้คุณแบบของทั้งสองและมากกว่าของ , แม้ว่าฉันเดาว่ามันจะเทียบเท่ากัน) และอัลกอริธึม discriminative เป็นเพียงแค่ให้แยกการจัดหมวดหมู่ (และไม่จำเป็นต้องในลักษณะที่น่าจะเป็น)P(X|Y)P(Y)P(X,Y)
ตัวอย่างเช่นแบบจำลองการผสมแบบเกาส์และการจัดกลุ่ม k-mean ในอดีตเรามีแบบจำลองความน่าจะเป็นที่ดีสำหรับวิธีการสร้างจุด (เลือกส่วนประกอบที่มีความน่าจะเป็นบางส่วนจากนั้นปล่อยจุดโดยการสุ่มตัวอย่างจากการแจกแจงแบบเกาส์ของส่วนประกอบ) แต่ไม่มีอะไรที่เราจะพูดถึงได้
โปรดทราบว่าอัลกอริทึมกำเนิดมีคุณสมบัติการจำแนกเนื่องจากคุณสามารถรับเมื่อคุณมีและ (โดยทฤษฎีบทของเบย์) แม้ว่าอัลกอริทึมการจำแนกไม่ได้มีคุณสมบัติกำเนิดจริงๆP(Y|X)P(X|Y)P(Y)
1:อัลกอริธึม Discriminative ช่วยให้คุณสามารถจำแนกคะแนนได้โดยไม่ต้องให้แบบจำลองว่าจะสร้างคะแนนอย่างไร ดังนั้นสิ่งเหล่านี้อาจเป็นได้ทั้ง:
- อัลกอริทึมที่น่าจะเป็นพยายามที่จะเรียนรู้ (เช่นการถดถอยโลจิสติก);P(Y|X)
- หรืออัลกอริธึมที่ไม่น่าจะเป็นไปได้ที่พยายามเรียนรู้การแมปโดยตรงจากคะแนนไปยังคลาส (เช่น perceptron และ SVM เพียงแค่ให้ไฮเปอร์เพลตที่แยกจากกัน แต่ไม่มีโมเดลการสร้างจุดใหม่)
ดังนั้นตัวแยกประเภทที่เลือกปฏิบัติเป็นตัวแยกประเภทที่ไม่ได้เกิดขึ้น
อีกวิธีหนึ่งในการคิดเกี่ยวกับสิ่งนี้คืออัลกอริธึมกำเนิดสร้างสมมติฐานโครงสร้างบางอย่างในแบบจำลองของคุณแต่อัลกอริธึมการเลือกปฏิบัติทำให้สมมติฐานน้อยลง ตัวอย่างเช่น Naive Bayes ถือว่าความเป็นอิสระตามเงื่อนไขของคุณสมบัติของคุณในขณะที่การถดถอยโลจิสติก (การ "เลือก" ของ Naive Bayes) ที่เลือกปฏิบัติไม่ได้
2:ใช่ Naive Bayes เป็นกำเนิดเพราะมันจับและ(Y) ตัวอย่างเช่นหากเรารู้ว่าและพร้อมด้วยความน่าจะเป็นคำภาษาอังกฤษและภาษาฝรั่งเศสตอนนี้เราสามารถสร้างเอกสารใหม่โดยเลือกภาษาของเอกสาร ( ภาษาอังกฤษที่มีความน่าจะเป็น 0.7, ภาษาฝรั่งเศสที่มีความน่าจะเป็น 0.3) จากนั้นสร้างคำตามความน่าจะเป็นคำศัพท์ของภาษาที่เลือกP(X|Y)P(Y)P(Y=English)=0.7P(Y=French)=0.3
ใช่ฉันเดาว่าคุณสามารถสร้างการถดถอยแบบโลจิสติกส์ได้ในแบบนั้น แต่เป็นเพราะคุณกำลังเพิ่มบางอย่างในการถดถอยแบบโลจิสติกส์ที่ยังไม่มีอยู่ นั่นคือเมื่อคุณทำการจำแนก Naive Bayes คุณจะคำนวณโดยตรง(ข้อกำหนดทางด้านขวาและเป็นสิ่งที่อนุญาตให้คุณสร้างเอกสารใหม่); แต่เมื่อคุณคำนวณในการถดถอยโลจิสติกคุณไม่ได้คำนวณสองสิ่งนี้คุณเพียงแค่ใช้ฟังก์ชันโลจิสติกส์กับผลิตภัณฑ์ดอทP(Y|X)∝P(X|Y)P(Y)P(X|Y)P(Y)P(Y|X)
3:แบบจำลองกำเนิดมักจะมีประสิทธิภาพสูงกว่ารุ่นจำแนกในชุดข้อมูลที่มีขนาดเล็กของพวกเขาเพราะสมมติฐานกำเนิดวางโครงสร้างบางอย่างเกี่ยวกับรูปแบบของคุณที่ป้องกันไม่ให้ overfitting ตัวอย่างเช่นลองพิจารณา Naive Bayes vs. Logistic Regression สมมติฐานของ Naive Bayes นั้นค่อนข้างไม่ค่อยพอใจดังนั้นการถดถอยโลจิสติกส์จึงมีแนวโน้มสูงกว่า Naive Bayes เมื่อชุดข้อมูลของคุณเติบโตขึ้น (เนื่องจากสามารถจับภาพการพึ่งพาที่ Naive Bayes ไม่สามารถทำได้) แต่เมื่อคุณมีชุดข้อมูลขนาดเล็กเท่านั้นการถดถอยแบบโลจิสติกส์อาจเลือกรูปแบบปลอมที่ไม่มีอยู่จริงดังนั้น Naive Bayes จึงทำหน้าที่เหมือนเป็น regularizer ชนิดหนึ่งในแบบจำลองของคุณที่ป้องกันการ overfitting มีบทความโดย Andrew Ng และ Michael Jordan เกี่ยวกับตัวแยกประเภทและการแบ่งแยกแบบแยกส่วนที่พูดถึงสิ่งนี้เพิ่มเติม
4:ฉันคิดว่ามันหมายความว่าแบบจำลอง generative จริงสามารถเรียนรู้โครงสร้างพื้นฐานของข้อมูลถ้าคุณระบุรูปแบบของคุณได้อย่างถูกต้องและรูปแบบที่เก็บจริง แต่แบบจำลอง discriminative สามารถมีประสิทธิภาพสูงกว่าในกรณีที่สมมติฐานของคุณไม่พอใจ น้อยผูกติดอยู่กับโครงสร้างโดยเฉพาะและโลกแห่งความจริงยุ่งเหยิงและสมมติฐานไม่ค่อยพอใจอย่างสมบูรณ์เลย) (ฉันอาจจะไม่สนใจคำพูดเหล่านี้หากพวกเขาสับสน)