Tôi đang sử dụng Phân kỳ KL làm thước đo cho sự khác biệt giữa 2 và .
=-∑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
Tôi đang sử dụng Phân kỳ KL làm thước đo cho sự khác biệt giữa 2 và .
=-∑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
Câu trả lời:
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
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.
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.