สัญชาตญาณในความแตกต่าง Kullback-Leibler (KL)


47

ฉันได้เรียนรู้เกี่ยวกับสัญชาตญาณที่อยู่เบื้องหลัง KL Divergence ว่าฟังก์ชันการแจกแจงแบบจำลองแตกต่างจากการกระจายข้อมูลเชิงทฤษฎี / จริง แหล่งที่มาฉันอ่านก็จะบอกว่าเข้าใจง่ายของระยะห่างระหว่างทั้งสองกระจายเป็นประโยชน์ แต่ไม่ควรดำเนินการอย่างแท้จริงเพราะสองกระจายและที่ KL Divergence ไม่สมมาตรในและQPQPQ

ฉันไม่แน่ใจว่าจะเข้าใจคำแถลงสุดท้ายได้อย่างไรหรือนี่คือสิ่งที่สัญชาตญาณของ 'ระยะทาง' แตกสลายหรือไม่

ฉันขอขอบคุณตัวอย่างที่เรียบง่าย แต่ลึกซึ้ง


3
ฉันคิดว่าคุณต้องถอยกลับและเข้าใจว่าคุณมักจะมีความไม่สมดุลในสถิติระหว่างการกระจายตัวของประชากรที่แท้จริงและตัวอย่าง (หรือจริงและแบบจำลอง) ฯลฯ และนี่คือสิ่งที่ KL Divergence สะท้อน ... ในทฤษฎีความน่าจะเป็นทั่วไปไม่มี โดยทั่วไปแล้วความแตกต่างและตัวชี้วัดแบบสมมาตรทำให้รู้สึกมากขึ้น
seanv507

1
คุณอ่าน "แหล่งที่มา" อันใด
nbro

คำตอบ:


34

A (เมตริก) ระยะทางต้องสมมาตรคือP) แต่จากคำจำกัดความแล้วไม่ใช่DD(P,Q)=D(Q,P)KL

ตัวอย่าง: , ,0.5Ω={A,B}P(A)=0.2,P(B)=0.8Q(A)=Q(B)=0.5

เรามี:

KL(P,Q)=P(A)logP(A)Q(A)+P(B)logP(B)Q(B)0.19

และ

KL(Q,P)=Q(A)logQ(A)P(A)+Q(B)logQ(B)P(B)0.22

ดังนั้นและจึงไม่ใช่ระยะ (เมตริก)K LKL(P,Q)KL(Q,P)KL


50

การเพิ่มไปยังคำตอบที่ยอดเยี่ยมอื่น ๆ คือคำตอบที่มีมุมมองอื่นซึ่งอาจเพิ่มสัญชาตญาณเพิ่มเติมซึ่งถูกถาม

Kullback-Leibler divergence คือ หากคุณมีสองสมมติฐานเกี่ยวกับการกระจายมีการสร้างข้อมูล ,และแล้ว เป็นอัตราส่วนความเป็นไปได้สำหรับการทดสอบกับP เราเห็นว่าการเบี่ยงเบน Kullback-Leibler ด้านบนนั้นเป็นค่าคาดหวังของอัตราส่วน loglikelihood ภายใต้สมมติฐานทางเลือก ดังนั้นเป็นการวัดความยากของปัญหาการทดสอบนี้เมื่อคือสมมติฐานว่าง ดังนั้นความไม่สมดุลX P Q p ( x )

KL(P||Q)=p(x)logp(x)q(x)dx
XPQ H0:QH1:PKL(P||Q)QKL(P||Q)KL(Q||P)p(x)q(x)H0:QH1:PKL(P||Q)QKL(P||Q)KL(Q||P)สะท้อนถึงความไม่สมดุลระหว่างสมมติฐานว่างและสมมติฐานทางเลือก

ให้เราดูสิ่งนี้ในตัวอย่างเฉพาะ ให้เป็น -distribution และคือการแจกแจงแบบปกติมาตรฐาน (ในตัวอย่างที่เป็นตัวเลขด้านล่าง ) อินทิกรัลที่นิยามความแตกต่างดูซับซ้อนดังนั้นให้เราใช้การรวมเชิงตัวเลขใน R:t ν Q ν = 1PtνQν=1

> lLR_1  <-  function(x) {dt(x, 1, log=TRUE)-dnorm(x, log=TRUE)}  
> integrate(function(x) dt(x, 1)*lLR_1(x), lower=-Inf, upper=Inf)
Error in integrate(function(x) dt(x, 1) * lLR_1(x), lower = -Inf, upper = Inf) : 
  the integral is probably divergent

> lLR_2  <-  function(x) {-dt(x, 1, log=TRUE)+dnorm(x, log=TRUE)}  
> integrate(function(x) dnorm(x)*lLR_2(x), lower=-Inf, upper=Inf)
0.2592445 with absolute error < 1e-07

ในกรณีแรกอินทิกรัลดูเหมือนว่าจะแยกตัวเลขแสดงความแตกต่างใหญ่มากหรือไม่มีที่สิ้นสุดในกรณีที่สองมันมีขนาดเล็กสรุป: กรณีแรกที่มีการยืนยันโดยบูรณาการการวิเคราะห์สัญลักษณ์ในคำตอบโดย @ ซีอานนี่: อะไรคือมูลค่าสูงสุดของ Kullback-Leibler (KL) ความแตกต่าง

KL(P||Q)KL(Q||P)0.26

สิ่งนี้บอกอะไรเราในแง่ของการปฏิบัติจริง? หากโมเดล Null เป็นการแจกแจงแบบปกติมาตรฐาน แต่ข้อมูลถูกสร้างขึ้นจากดังนั้นการปฏิเสธ null จึงค่อนข้างง่าย! ข้อมูลจากกระจายไม่เหมือนกับข้อมูลที่กระจายทั่วไป ในอีกกรณีหนึ่งจะมีการสลับบทบาท null เป็นแต่ข้อมูลถือเป็นเรื่องปกติ แต่ข้อมูลที่กระจายทั่วไปอาจดูเหมือนข้อมูลดังนั้นปัญหานี้ยากกว่ามาก! ที่นี่เรามีขนาดตัวอย่างและข้อมูลทุกอย่างที่อาจมาจากการแจกแจงแบบปกติก็มาจาก ! การเปลี่ยนบทบาทไม่ใช่ความแตกต่างส่วนใหญ่มาจากบทบาทของผู้ผิดกฎหมายt1t1t1t1n=1t1

ภายใต้การแจกแจงทางเลือกมีความน่าจะเป็นค่อนข้างมากในการได้รับตัวอย่างซึ่งมีความน่าจะเป็นน้อยมากภายใต้โมเดลโมฆะ (ปกติ) ทำให้มีความแตกต่างมาก แต่เมื่อการกระจายทางเลือกเป็นเรื่องปกติข้อมูลทั้งหมดที่เราได้รับจะมีความน่าจะเป็นปานกลาง (จริง ๆ แล้วมีความหนาแน่น ... ) ภายใต้โมเดลnullดังนั้นความแตกต่างจึงน้อยt1t1

สิ่งนี้เกี่ยวข้องกับคำตอบของฉันที่นี่: เหตุใดเราควรใช้ข้อผิดพลาด t แทนที่จะเป็นข้อผิดพลาดปกติ


22

ประการแรกการละเมิดเงื่อนไขความสมมาตรเป็นปัญหาที่เล็กที่สุดของการเบี่ยงเบน Kullback-Leibler ละเมิดความไม่เท่าเทียมกันของสามเหลี่ยมเช่นกัน คุณสามารถแนะนำเวอร์ชันสมมาตรเป็นแต่นั่นก็ยังไม่ได้เป็นตัวชี้วัดเพราะทั้งและละเมิดความไม่เท่าเทียมกันของสามเหลี่ยม เพื่อพิสูจน์ว่าเพียงใช้เหรียญสามลำเอียง A, B & C ที่ผลิตหัวน้อยกว่าก้อยเช่นเหรียญที่มีความน่าจะเป็นหัว: A = 0.1, B = 0.2 และ C = 0.3 ในทั้งสองกรณี KL divergence ปกติหรือเวอร์ชันสมมาตรของ SKL ตรวจสอบว่าพวกเขาไม่สมการสามเหลี่ยมเต็มรูปแบบ D(P||Q)

SKL(P,Q)=D(P||Q)+D(Q||P)
D(P||Q)SKL(P,Q)
D(A||B)+D(B||C)D(A||C)
SKL(A,B)+SKL(B,C)SKL(A,C)
เพียงใช้สูตรนี้:
D(P||Q)=ipilog(piqi)
SKL(P,Q)=i(piqi)log(piqi)

D(A||B)=0.1log(0.10.2)+0.9log(0.90.8)0.0159
D(B||C)0.0112
D(A||C)0.0505
0.0159+0.01120.0505
SKL(A,B)0.0352
SKL(B,C)0.0234
SKL(A,C)0.1173
0.0352+0.02340.1173

ฉันแนะนำตัวอย่างนี้โดยมีวัตถุประสงค์ ลองจินตนาการว่าคุณกำลังโยนเหรียญบางอย่างเช่น 100 ครั้ง ตราบใดที่เหรียญนี้ไม่เอนเอียงคุณก็สามารถเข้ารหัสผลลัพธ์ที่มีลำดับ 0-1 บิต (1 หัว, 0 หาง) ในสถานการณ์เช่นนี้เมื่อความน่าจะเป็นของหัวเหมือนกับความน่าจะเป็นของหางและเท่ากับ 0.5 นั่นเป็นการเข้ารหัสที่มีประสิทธิภาพทีเดียว ตอนนี้เรามีเหรียญเอนเอียงบางส่วนดังนั้นเราจึงควรเข้ารหัสผลลัพธ์ที่มีแนวโน้มมากขึ้นด้วยรหัสที่สั้นกว่าเช่นผสานกลุ่มหัวและก้อยและแสดงลำดับของหัว k ที่มีรหัสยาวกว่าลำดับของก้อย (น่าจะเป็นมากกว่า) และที่นี่ Kullback-Leibler divergenceขึ้น ถ้า P แสดงถึงการกระจายตัวที่แท้จริงของผลลัพธ์และ Q เป็นเพียงการประมาณของ P ดังนั้นD(P||Q)D(P||Q) หมายถึงการลงโทษที่คุณจ่ายเมื่อคุณเข้ารหัสผลลัพธ์ที่มาจาก P distrib โดยมีการเข้ารหัสไว้สำหรับ Q (การลงโทษในความหมายของบิตพิเศษที่คุณต้องใช้)

ถ้าคุณเพียงแค่ต้องเมตริกใช้ระยะ Bhattacharyya (แน่นอนแก้ไขรุ่น )1[xp(x)q(x)]


7
หากมีใครเกี่ยวข้องกับการวัดจริงที่มีการเชื่อมต่อที่ใกล้ชิดกับความแตกต่าง KL พวกเขาอาจพิจารณาสแควร์รูทของการแตกต่าง Jensen-Shannon แทน Bhattacharyya
พระคาร์ดินัล

5

ฉันถูกล่อลวงให้ตอบคำถามของคุณอย่างชาญฉลาด การนำสิ่งที่คุณพูดกลับมา KL divergence เป็นวิธีการวัดระยะทางระหว่างการแจกแจงสองแบบเนื่องจากคุณจะคำนวณระยะห่างระหว่างชุดข้อมูลสองชุดในพื้นที่ Hilbert แต่ควรใช้ความระมัดระวังบางอย่าง

ทำไม? KL แตกต่างไม่ใช่ระยะทางตามที่คุณอาจใช้เป็นปกติเช่นเช่น norm แน่นอนมันเป็นบวกและเท่ากับศูนย์หากและถ้าการแจกแจงทั้งสองเท่ากัน (ในสัจพจน์สำหรับกำหนดระยะทาง) แต่ดังที่กล่าวไปแล้วมันไม่สมมาตร มีวิธีที่จะหลีกเลี่ยงสิ่งนี้ แต่มันก็สมเหตุสมผลที่จะไม่สมมาตรL2

ที่จริงแล้ว KL divergence กำหนดระยะห่างระหว่างการกระจายตัวแบบ (ที่คุณรู้จริง) และทฤษฎีหนึ่งซึ่งทำให้รู้สึกถึงการจัดการแตกต่างกัน (ระยะทาง "ทฤษฎี" ของถึงโดยสมมติว่า รุ่น ) และ (ระยะทาง "เชิงประจักษ์" ของถึงสมมติว่าข้อมูล ) เนื่องจากพวกเขาหมายถึงมาตรการที่แตกต่างกันมากQPKL(P,Q)PQPKL(Q,P)PQQ


4

ทฤษฎีองค์ประกอบข้อมูลตำราเรียนให้เราเป็นตัวอย่าง:

ตัวอย่างเช่นถ้าเรารู้ว่าการแจกแจงที่แท้จริงของตัวแปรสุ่มเราสามารถสร้างโค้ดที่มีความยาวคำอธิบายเฉลี่ย H (p) หากเราใช้รหัสสำหรับการแจกแจงแทนเราจะต้องใช้บิต H (p) + D (p || q) โดยเฉลี่ยเพื่ออธิบายตัวแปรแบบสุ่ม

ในการถอดความข้อความข้างต้นเราสามารถพูดได้ว่าถ้าเราเปลี่ยนการกระจายข้อมูล (จาก q เป็น p) เราจำเป็นต้อง D (p | | q) บิตพิเศษโดยเฉลี่ยเพื่อรหัสการกระจายใหม่

ภาพประกอบ

ให้ฉันอธิบายสิ่งนี้โดยใช้แอปพลิเคชั่นหนึ่งตัวในการประมวลผลภาษาธรรมชาติ

พิจารณาว่ากลุ่มใหญ่ของคนที่มีป้ายกำกับ B เป็นผู้ไกล่เกลี่ยและแต่ละคนจะได้รับมอบหมายงานที่จะเลือกที่เป็นรูปธรรมจากturkey, animalและbookและส่งไปยังซีมีชื่อคนที่อาจส่งแต่ละของพวกเขาอีเมลที่จะให้เป็น พวกเขามีคำแนะนำ หากไม่มีใครในกลุ่มได้รับอีเมลพวกเขาอาจยกคิ้วขึ้นและลังเลสักครู่เมื่อพิจารณาว่า C ต้องการอะไร และความน่าจะเป็นของแต่ละตัวเลือกที่เลือกคือ 1/3 การกระจายแบบสม่ำเสมอ toally (ถ้าไม่มันอาจเกี่ยวข้องกับการตั้งค่าของตัวเองและเราก็ไม่สนใจกรณีดังกล่าว)

แต่ถ้าพวกเขาจะได้รับคำกริยาเช่นbaste3/4 ของพวกเขาอาจจะเลือกturkeyและเลือก 3/16 animalและ 1/16 bookเลือก แล้วข้อมูลเฉลี่ยเท่าไหร่ในบิตของผู้ไกล่เกลี่ยแต่ละคนโดยเฉลี่ยได้รับเมื่อพวกเขารู้คำกริยา มันคือ:

D(p(nouns|baste)||p(nouns))=x{turkey,animal,book}p(x|baste)log2p(x|baste)p(x)=34log23413+316log231613+116log211613=0.5709  bits

แต่ถ้าคำกริยาที่ให้ไว้คือreadอะไร? เราอาจจินตนาการว่าพวกเขาทุกคนจะเลือกbookโดยไม่ลังเลเลยจากนั้นข้อมูลเฉลี่ยที่ได้รับสำหรับผู้ไกล่เกลี่ยแต่ละคำกริยาreadคือ:

D(p(nouns|read)||p(nouns))=x{book}p(x|read)log2p(x|read)p(x)=1log2113=1.5849  bits
เราเห็นได้ว่าคำกริยาreadสามารถให้ข้อมูลแก่ผู้ไกล่เกลี่ยได้มากขึ้น และนั่นคือสิ่งที่เอนโทรปีสัมพัทธ์สามารถวัดได้

มาเล่าเรื่องของเรากันต่อ ถ้าซีสงสัยว่าคำนามอาจผิดเพราะเอบอกเขาว่าเขาอาจทำผิดโดยส่งคำกริยาผิดไปยังผู้ไกล่เกลี่ย ถ้าเช่นนั้นข่าวร้ายชิ้นใดที่สามารถให้ข้อมูล C ได้ในหน่วยบิต

1) ถ้าคำกริยาที่ให้โดย A คือbaste:

D(p(nouns)||p(nouns|baste))=x{turkey,animal,book}p(x)log2p(x)p(x|baste)=13log21334+13log213316+13log213116=0.69172  bits

2) แต่ถ้าคำกริยาเป็นreadอย่างไร

D(p(nouns)||p(nouns|baste))=x{book,,}p(x)log2p(x)p(x|baste)=13log2131+13log2130+13log2130=  bits

เนื่องจาก C ไม่เคยรู้ว่าคำนามอีกสองคำจะเป็นอะไรและคำใด ๆ ในคำศัพท์จะเป็นไปได้

เราจะเห็นได้ว่าการเบี่ยงเบนของ KL นั้นไม่สมมาตร

ฉันหวังว่าฉันพูดถูกและถ้าไม่ได้โปรดแสดงความคิดเห็นและช่วยแก้ไขฉัน ขอบคุณล่วงหน้า.

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