Tính toán phân kỳ Kullback-Leibler trong thực tế?


14

Tôi đang sử dụng Phân kỳ KL làm thước đo cho sự khác biệt giữa 2 p.m.f. PQ .

=-P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

DKL(P||Q)=i=1Nln(PiQi)Pi
=P(Xi)ln(Q(Xi))+P(Xi)ln(P(Xi))

Nếu thì chúng ta có thể dễ dàng tính được rằng P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) ) = 0

P(Xi)=0
P(Xi)ln(Q(Xi))=0
P(Xi)ln(P(Xi))=0

P(Xi)0
Q(Xi)=0
P(Xi)ln(Q(Xi))

P(Xi)!=0P(Xi)0

Q(Xi)=0XiQ

@Matthew Cảm ơn, đã sửa. Tôi vô tình theo thói quen mã hóa của tôi.
smwikipedia

Q(Xi)=0XiPQ

Câu trả lời:


14

Bạn không thể và bạn không. Hãy tưởng tượng rằng bạn có một biến phân phối xác suất ngẫu nhiên Q. Nhưng bạn của bạn Bob nghĩ rằng kết quả đến từ phân phối xác suất P. Anh ta đã xây dựng một mã hóa tối ưu, giúp giảm thiểu số lượng bit dự kiến ​​anh ta sẽ cần sử dụng để cho bạn biết kết quả. Nhưng, vì anh ta đã xây dựng mã hóa từ P chứ không phải từ Q, mã của anh ta sẽ dài hơn mức cần thiết. Phân kỳ KL đo lường các mã sẽ dài hơn bao lâu.

Bây giờ hãy nói rằng anh ta có một đồng tiền và anh ta muốn cho bạn biết chuỗi kết quả anh ta nhận được. Bởi vì đầu và đuôi đều có khả năng như nhau, anh ta cung cấp cho cả hai mã 1 bit. 0 cho đầu, 1 cho đuôi. Nếu anh ta có đuôi đuôi đuôi, anh ta có thể gửi 1 1 0 1. Bây giờ, nếu đồng xu của anh ta nằm ở rìa, anh ta không thể nói cho bạn biết! Không có mã anh gửi cho bạn sẽ làm việc. Tại thời điểm này, sự phân kỳ KL bị phá vỡ.

Vì phân kỳ KL bị phá vỡ, bạn sẽ phải sử dụng một biện pháp khác hoặc phân phối xác suất khác. Những gì bạn nên làm thực sự phụ thuộc vào những gì bạn muốn. Tại sao bạn so sánh phân phối xác suất? Các phân phối xác suất của bạn đến từ đâu, chúng được ước tính từ dữ liệu?

Bạn nói rằng phân phối xác suất của bạn đến từ các tài liệu ngôn ngữ tự nhiên bằng cách nào đó và bạn muốn so sánh các cặp danh mục.

Trước tiên, tôi muốn giới thiệu một biện pháp liên quan đối xứng. Đối với ứng dụng này, có vẻ như A giống với B vì B tương tự như A.

Bạn đã thử các biện pháp tương tự cosine? Nó khá phổ biến trong NLP.

Nếu bạn muốn gắn bó với KL, một điều bạn có thể làm là ước tính hàm xác suất từ cả hai tài liệu và sau đó xem trung bình bạn cần bao nhiêu bit bổ sung cho một tài liệu. Đó là (P | | (P + Q) / 2 + Q | | (P + Q) / 2) / 2


Giải thích tuyệt vời nhưng hơi khó hiểu: cách bạn mô tả đoạn đầu tiên, đó không phải là KL (Q | | P)?
Jurgen

8

Trong thực tế, tôi cũng đã gặp phải vấn đề này. Trong trường hợp này, tôi đã thấy rằng việc thay thế giá trị 0 cho một số rất nhỏ có thể gây ra vấn đề. Tùy thuộc vào giá trị mà bạn sử dụng, bạn sẽ đưa ra "độ lệch" trong giá trị KL. Nếu bạn đang sử dụng giá trị KL để kiểm tra giả thuyết hoặc một số sử dụng khác liên quan đến ngưỡng, thì giá trị nhỏ này có thể làm sai lệch kết quả của bạn. Tôi đã thấy rằng cách hiệu quả nhất để giải quyết vấn đề này là chỉ xem xét tính toán KL trên một không gian giả thuyết nhất quán X_i trong đó BOTH P và Q khác không. Về cơ bản, điều này giới hạn miền của KL thành một miền nơi cả hai được xác định và giúp bạn không gặp rắc rối khi sử dụng KL để thực hiện các bài kiểm tra giả thuyết.


Cảm ơn. Đó là một gợi ý thú vị. Về cơ bản, nó cũng đang cố gắng dựa trên P và Q trên cùng một tập hợp kết quả. Tôi sẽ cố gắng làm điều đó.
smwikipedia

Nếu tôi tính toán KL trên tập con dữ liệu trong đó cả P ​​và Q đều khác không, tôi có cần phải chuẩn hóa lại P và Q trên tập con đó không? Hoặc chỉ sử dụng giá trị xác suất ban đầu? Tôi nghĩ tôi nên. Mặt khác, P và Q vẫn không nằm trên cùng một cơ sở.
smwikipedia

Tôi chỉ thử với đề nghị của bạn. P cũng phân phối hơn 10 nghìn kết quả và Q cũng phân phối hơn 10 nghìn kết quả. Nhưng P và Q chỉ có kết quả chung 3K. Nếu tôi chỉ sử dụng các kết quả 3K phổ biến để ước tính sự khác biệt giữa P và Q, tôi không nghĩ nó hợp lý. Bởi vì chúng ta đang bỏ qua nhiều thứ. Và btw, kết quả với cách tiếp cận này hoàn toàn khác với những gì tôi nhận được bằng cách thêm một số nhỏ (hoặc số giả).
smwikipedia

Thêm một số bối cảnh, tôi đang làm việc trên một thí nghiệm NLP. Tôi có một số loại tài liệu và tôi muốn cho biết mỗi cặp danh mục có liên quan với nhau chặt chẽ như thế nào.
smwikipedia

5

QTôi= =0TôiQTôiQTôiQP

Giải pháp là không bao giờ cho phép 0 hoặc 1 xác suất trong các bản phân phối ước tính. Điều này thường đạt được bằng một số hình thức làm mịn như làm mịn Good-Turing, làm mịn Dirichlet hoặc làm mịn Laplace.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.