ได้โปรดช่วยฉันเข้าใจความแตกต่างระหว่างอัลกอริธึมกำเนิดและการ แบ่งแยกโดยคำนึงถึงว่าฉันเป็นแค่มือใหม่
ได้โปรดช่วยฉันเข้าใจความแตกต่างระหว่างอัลกอริธึมกำเนิดและการ แบ่งแยกโดยคำนึงถึงว่าฉันเป็นแค่มือใหม่
คำตอบ:
สมมติว่าคุณมีการป้อนข้อมูลและคุณต้องการที่จะจำแนกประเภทข้อมูลลงในฉลากx
y
รูปแบบการกำเนิดเรียนรู้ร่วมกันกระจายp(x,y)
และรูปแบบการจำแนกเรียนรู้เงื่อนไขการกระจายความน่าจะเป็นp(y|x)
- ที่คุณควรอ่านเป็น"ความน่าจะเป็นของy
ที่ได้รับx
"
นี่เป็นตัวอย่างง่ายๆ สมมติว่าคุณมีข้อมูลต่อไปนี้ในแบบฟอร์ม(x,y)
:
(1,0), (1,0), (2,0), (2, 1)
p(x,y)
คือ
y=0 y=1
-----------
x=1 | 1/2 0
x=2 | 1/4 1/4
p(y|x)
คือ
y=0 y=1
-----------
x=1 | 1 0
x=2 | 1/2 1/2
ถ้าคุณใช้เวลาสองสามนาทีเพื่อจ้องที่เมทริกซ์สองตัวนั้นคุณจะเข้าใจถึงความแตกต่างระหว่างการแจกแจงความน่าจะเป็นสองแบบ
การแจกแจงp(y|x)
คือการแจกแจงแบบธรรมชาติสำหรับการจำแนกตัวอย่างที่กำหนดx
ลงในคลาสy
ซึ่งเป็นสาเหตุที่อัลกอริธึมที่โมเดลนี้เรียกว่าอัลกอริทึมแบบจำแนก แบบจำลองอัลกอริธึมกำเนิดp(x,y)
ซึ่งสามารถแปลงร่างเป็นp(y|x)
กฎเบย์แล้วนำไปใช้สำหรับการจำแนกประเภท อย่างไรก็ตามการกระจายp(x,y)
ยังสามารถใช้เพื่อวัตถุประสงค์อื่น ตัวอย่างเช่นคุณสามารถใช้p(x,y)
เพื่อสร้างแนวโน้ม(x,y)
คู่
จากคำอธิบายข้างต้นคุณอาจคิดว่าโมเดลทั่วไปนั้นมีประโยชน์มากกว่าและดีกว่า แต่ก็ไม่ง่ายอย่างนั้น บทความนี้เป็นการอ้างอิงที่ได้รับความนิยมอย่างมากในเรื่องของการเลือกปฏิบัติกับการแยกประเภท แต่กำเนิดมันค่อนข้างหนัก สรุปสาระสำคัญโดยรวมคือแบบจำลองที่จำแนกโดยทั่วไปมีประสิทธิภาพสูงกว่าแบบจำลองกำเนิดในงานจำแนกประเภท
p(y|x)
ถึงมีอัลกอริธึมว่าโมเดลนั้นเรียกว่า "discriminative models"
ขั้นตอนวิธีการกำเนิดรูปแบบวิธีการที่ข้อมูลถูกสร้างขึ้นเพื่อจัดหมวดหมู่สัญญาณ มันถามคำถาม: ตามสมมติฐานการสร้างของฉันหมวดหมู่ใดที่มีแนวโน้มที่จะสร้างสัญญาณนี้มากที่สุด
ขั้นตอนวิธีการจำแนกไม่สนใจเกี่ยวกับวิธีการที่ข้อมูลถูกสร้างขึ้นมันก็แบ่งเป็นสัญญาณให้
ลองนึกภาพงานของคุณคือการจำแนกคำพูดเป็นภาษา
คุณสามารถทำได้โดย:
หรือ
คนแรกคือวิธีการกำเนิดและคนที่สองคือวิธีการเลือกปฏิบัติ
ตรวจสอบการอ้างอิงนี้สำหรับรายละเอียดเพิ่มเติมได้ที่: http://www.cedar.buffalo.edu/~srihari/CSE574/Discriminative-Generative.pdf
ในทางปฏิบัติมีการใช้แบบจำลองดังต่อไปนี้
ในแบบจำลองการจำแนกเพื่อทำนายฉลากy
จากตัวอย่างการฝึกอบรมx
คุณต้องประเมิน:
ที่แค่เลือกสิ่งที่เป็นไปได้มากที่สุดชั้นพิจารณาy
x
มันเหมือนเรากำลังพยายามที่จะจำลองขอบเขตการตัดสินใจระหว่างเรียน พฤติกรรมนี้มีความชัดเจนมากในโครงข่ายประสาทเทียมซึ่งน้ำหนักที่คำนวณได้สามารถมองเห็นเป็นรูปทรงโค้งซับซ้อนที่แยกองค์ประกอบของชั้นในพื้นที่
ตอนนี้ใช้กฎ Bayes' ขอแทนในสมการโดย เนื่องจากคุณแค่สนใจmax argคุณสามารถลบส่วนที่เหมือนกันสำหรับทุกy
ๆ ดังนั้นคุณจะเหลือ
ซึ่งเป็นสมการที่คุณใช้ในแบบจำลองการกำเนิด
ในขณะที่ในกรณีแรกคุณมีการแจกแจงความน่าจะ เป็นแบบมีเงื่อนไขp(y|x)
ซึ่งเป็นตัวแบบขอบเขตระหว่างคลาสในครั้งที่สองคุณมีการแจกแจงความน่าจะเป็นแบบร่วม p(x, y)
เนื่องจากp(x | y) p(y) = p(x, y)
ว่าซึ่งเป็นตัวอย่างการกระจายตัวจริงของแต่ละชั้นอย่างชัดเจน
ด้วยฟังก์ชั่นการกระจายความน่าจะร่วมกันกำหนดy
คุณสามารถคำนวณ ( "สร้าง") x
ตามที่ ด้วยเหตุนี้จึงเรียกว่าแบบจำลอง "กำเนิด"
นี่คือส่วนที่สำคัญที่สุดจากเอกสารประกอบการบรรยายของ CS299 (โดยแอนดรู Ng) ที่เกี่ยวข้องกับหัวข้อซึ่งจริงๆช่วยให้ผมเข้าใจความแตกต่างระหว่างจำแนกและการกำเนิดขั้นตอนวิธีการเรียนรู้
สมมติว่าเรามีสัตว์สองชั้นช้าง ( y = 1
) และสุนัข ( y = 0
) และxคือเวกเตอร์ฟีเจอร์ของสัตว์
ได้รับชุดฝึกอบรมอัลกอริทึมเช่นการถดถอยโลจิสติกส์หรืออัลกอริทึม Perceptron (โดยทั่วไป) พยายามหาเส้นตรง - นั่นคือขอบเขตการตัดสินใจ - ที่แยกช้างและสุนัข จากนั้นเมื่อต้องการจัดประเภทสัตว์ใหม่ไม่ว่าจะเป็นช้างหรือสุนัขก็จะทำการตรวจสอบขอบเขตการตัดสินใจที่จะตกและทำการทำนายตามนั้น เราขอเรียกร้องเหล่านี้ขั้นตอนวิธีการเรียนรู้จำแนก
นี่คือวิธีการที่แตกต่างกัน ขั้นแรกให้ดูที่ช้างเราสามารถสร้างแบบจำลองของช้างที่มีลักษณะอย่างไร จากนั้นเมื่อมองสุนัขเราสามารถสร้างแบบจำลองที่แยกออกมาจากสิ่งที่สุนัขหน้าตาเหมือน ในที่สุดการจำแนกสัตว์ใหม่เราสามารถจับคู่สัตว์ใหม่กับรูปแบบช้างและจับคู่กับรูปแบบสุนัขเพื่อดูว่าสัตว์ใหม่ดูเหมือนช้างหรือมากกว่าเหมือนสุนัขที่เราเห็นในชุดฝึก . เราขอเรียกร้องเหล่านี้ขั้นตอนวิธีการเรียนรู้เกี่ยวกับการกำเนิด
โดยทั่วไปมีแนวปฏิบัติในชุมชนการเรียนรู้ของเครื่องไม่ให้เรียนรู้สิ่งที่คุณไม่ต้องการ ตัวอย่างเช่นพิจารณาปัญหาการจัดหมวดหมู่โดยมีเป้าหมายคือกำหนดป้ายกำกับ y ให้กับอินพุต x ที่กำหนด ถ้าเราใช้รูปแบบกำเนิด
p(x,y)=p(y|x).p(x)
เราต้องสร้างโมเดล p (x) ซึ่งไม่เกี่ยวข้องกับงานในมือ ข้อ จำกัด ในทางปฏิบัติเช่นการกระจายของข้อมูลจะบังคับให้เราทำแบบจำลองp(x)
ด้วยสมมติฐานที่อ่อนแอ ดังนั้นเราจึงใช้แบบจำลองการจำแนกสำหรับการจำแนกประเภทโดยสังหรณ์ใจ
จุดข้อมูลเพิ่มเติมที่เข้ากันได้ดีกับคำตอบของ StompChicken ด้านบน
ความแตกต่างพื้นฐานระหว่างตัวเลือกแบบจำลองและตัวแบบกำเนิดนั้นคือ:
แบบจำลองจำแนกเรียนรู้ขอบเขต(แข็งหรืออ่อน)ระหว่างชั้นเรียน
แบบจำลอง Generativeเป็นการกระจายตัวของคลาสแต่ละคลาส
แก้ไข:
โมเดล Generative เป็นโมเดลที่สามารถสร้างข้อมูลได้ เป็นรุ่นที่มีทั้งฟีเจอร์และคลาส (เช่นข้อมูลที่สมบูรณ์)
หากเราเป็นแบบจำลองP(x,y)
: ฉันสามารถใช้การแจกแจงความน่าจะเป็นนี้เพื่อสร้างจุดข้อมูล - และด้วยเหตุนี้การสร้างแบบจำลองอัลกอริทึมทั้งหมดจึงP(x,y)
เกิดขึ้น
เช่น. แบบจำลองกำเนิด
โมเดลไร้เดียงสาP(c)
และP(d|c)
- ซึ่งc
เป็นคลาสและd
เป็นเวกเตอร์คุณลักษณะ
นอกจากนี้ P(c,d) = P(c) * P(d|c)
ดังนั้น Naive Bayes ในแบบจำลองบางแบบ P(c,d)
เบย์เนท
มาร์คอฟแห
รูปแบบการจำแนกเป็นหนึ่งที่สามารถนำมาใช้เฉพาะกับการเลือกปฏิบัติ / ประเภทจุดข้อมูล คุณจำเป็นต้องสร้างแบบจำลองP(y|x)
ในกรณีดังกล่าวเท่านั้น (เช่นความน่าจะเป็นของคลาสที่กำหนดเวกเตอร์คุณลักษณะ)
เช่น. แบบจำลองการเลือกปฏิบัติ:
การถดถอยโลจิสติก
โครงข่ายประสาทเทียม
ฟิลด์สุ่มแบบมีเงื่อนไข
โดยทั่วไปแล้วโมเดลเชิงกำเนิดจำเป็นต้องสร้างแบบจำลองมากกว่าแบบจำลองที่เลือกปฏิบัติและบางครั้งก็ไม่มีประสิทธิภาพ แท้ที่จริงแล้วส่วนใหญ่ (ไม่แน่ใจว่าทั้งหมด) อัลกอริทึมการเรียนรู้ที่ไม่ได้สำรองเช่นการจัดกลุ่ม ฯลฯ สามารถเรียกว่า generative ได้เนื่องจากเป็นแบบจำลองP(d)
(และไม่มีคลาส: P)
PS: คำตอบบางส่วนมาจากแหล่งที่มา
คำตอบมากมายที่นี่ขึ้นอยู่กับคำจำกัดความทางคณิตศาสตร์ที่ใช้กันอย่างแพร่หลาย [1]:
- แบบจำลองการจำแนกเรียนรู้การกระจายการทำนายตามเงื่อนไข
p(y|x)
โดยตรง- โมเดลทั่วไปเรียนรู้การแจกแจงร่วม
p(x,y)
(หรือมากกว่าp(x|y)
และp(y)
)
- การแจกแจงการคาดการณ์
p(y|x)
สามารถรับได้ด้วยกฎของเบย์
แม้ว่าจะมีประโยชน์มาก แต่คำจำกัดความที่แคบนี้จะใช้การตั้งค่าภายใต้การดูแลและมีประโยชน์น้อยกว่าเมื่อตรวจสอบวิธีการที่ไม่ได้รับการดูแลหรือแบบกึ่งควบคุม นอกจากนี้ยังใช้ไม่ได้กับวิธีการร่วมสมัยจำนวนมากสำหรับการสร้างแบบจำลองการกำเนิดลึก ตัวอย่างเช่นตอนนี้เรามีตัวแบบกำเนิดโดยนัยเช่น Generative Adversarial Networks (GANs) ซึ่งใช้การสุ่มตัวอย่างและไม่ได้จำลองแบบความหนาแน่นของความน่าจะเป็นอย่างชัดเจนp(x)
(แทนที่จะเรียนรู้การวัดแบบ divergence ผ่านเครือข่าย discriminator) แต่เราเรียกมันว่า "แบบจำลองเชิงกำเนิด" เนื่องจากมันถูกใช้เพื่อสร้างตัวอย่าง (มิติสูง [10])
ที่กว้างขึ้นและพื้นฐานความหมาย [2] ดูเหมือนเท่าเทียมกันที่เหมาะสมสำหรับคำถามทั่วไป:
- แบบจำลองการจำแนกเรียนรู้ขอบเขตระหว่างชั้นเรียน
- ดังนั้นพวกเขาจึงสามารถแยกแยะระหว่างอินสแตนซ์ข้อมูลประเภทต่างๆ
- โมเดลทั่วไปเรียนรู้การกระจายของข้อมูล
- ดังนั้นพวกเขาจึงสามารถสร้างอินสแตนซ์ข้อมูลใหม่ได้
ถึงอย่างนั้นคำถามนี้ก็บอกเป็นนัยถึงการแบ่งขั้วที่ผิดพลาด [3] "การแบ่งขั้ว" แบบกำเนิดและการเลือกปฏิบัตินั้นแท้จริงแล้วเป็นสเปกตรัมที่คุณสามารถสอดแทรกระหว่าง [4] ได้อย่างราบรื่น
เป็นผลให้ความแตกต่างนี้เกิดขึ้นโดยพลการและสับสนโดยเฉพาะอย่างยิ่งเมื่อโมเดลยอดนิยมจำนวนมากไม่ได้ตกอยู่ในหนึ่งหรืออื่น ๆ [5,6] หรือในความเป็นจริงไฮบริดโมเดล (รวมกันของ "discriminative" และ "กำเนิด" .
อย่างไรก็ตามมันก็ยังคงเป็นประโยชน์และความแตกต่างทั่วไปที่จะทำ เราสามารถแสดงตัวอย่างที่ชัดเจนของโมเดลเชิงกำเนิดและการเลือกปฏิบัติทั้งที่เป็นที่ยอมรับและล่าสุด:
นอกจากนี้ยังมีงานที่น่าสนใจมากมายที่ตรวจสอบการแบ่งแยกแบบแยกส่วน [7] และสเปกตรัม [4,8] และเปลี่ยนรูปแบบการเลือกปฏิบัติเป็นแบบจำลองเชิงกำเนิด [9]
ในที่สุดคำจำกัดความมีการพัฒนาอย่างต่อเนื่องโดยเฉพาะอย่างยิ่งในสาขาที่เติบโตอย่างรวดเร็วนี้ :) มันเป็นวิธีที่ดีที่สุดที่จะพาพวกเขาไปด้วยเกลือนิดหน่อยและบางทีอาจนิยามใหม่ให้กับตนเองและผู้อื่น
คำตอบก่อนหน้าทั้งหมดดีมากและฉันต้องการเชื่อมต่ออีกหนึ่งจุด
จากโมเดลอัลกอริทึมกำเนิดเราสามารถรับการแจกแจง ในขณะที่เราสามารถได้รับการแจกแจงแบบมีเงื่อนไข P (Y | X) จากโมเดลอัลกอริธึมการเลือกปฏิบัติ (หรือเราสามารถพูดได้ว่ามันมีประโยชน์สำหรับการจำแนกฉลากของ Y เท่านั้น) และนั่นคือเหตุผลที่เรียกว่า แบบจำลองที่ไม่เลือกปฏิบัตินั้นไม่ถือว่าสมมติว่า X นั้นมีความเป็นอิสระเนื่องจาก Y ($ X_i \ perp X _ {- i} | Y $) และด้วยเหตุนี้มักจะมีประสิทธิภาพมากกว่าสำหรับการคำนวณการแจกแจงแบบมีเงื่อนไข
สองเซนต์ของฉัน: แนวทางการเลือกปฏิบัติเน้นความแตกต่างวิธีการทั่วไปไม่ได้มุ่งเน้นที่ความแตกต่าง พวกเขาพยายามสร้างแบบจำลองที่เป็นตัวแทนของชั้นเรียน มีการทับซ้อนกันระหว่างคนทั้งสอง โดยหลักการแล้วควรใช้ทั้งสองวิธี: วิธีหนึ่งจะมีประโยชน์ในการค้นหาความคล้ายคลึงกันและอีกวิธีหนึ่งจะมีประโยชน์ในการค้นหาความคล้ายคลึงกันของโรค
โมเดลอัลกอริทึมกำเนิดจะเรียนรู้อย่างสมบูรณ์จากข้อมูลการฝึกอบรมและจะทำนายการตอบสนอง
งานอัลกอริธึมที่เลือกปฏิบัติคือการจำแนกหรือแยกความแตกต่างระหว่าง 2 ผลลัพธ์
นี้บทความช่วยฉันมากในการทำความเข้าใจแนวคิด
สรุป,
วัสดุการอ่านที่ดีบางอย่าง: ความน่าจะเป็นแบบมีเงื่อนไข , PDF ร่วม