שְׁאֵלָה:
לחשב את ההבדל בין קולבק-לייבלר בפועל?
smwikipedia
2014-05-16 07:04:48 UTC
view on stackexchange narkive permalink

אני משתמש ב- Divergence של KL כמדד להבדל בין 2 $ pmf $ $ P $ ל- $ Q $.

$$ D_ {KL} (P || Q) = \ sum_ {i = 1} ^ N \ ln \ left (\ frac {P_i} {Q_i} \ right) P_i $$$$ = - \ sum P (X_i) ln \ left (Q (X_i) \ right) + \ sum P ( X_i) ln \ left (P (X_i) \ right) $$

אם $$ P (X_i) = 0 $$ נוכל לחשב בקלות את $$ P (X_i) ln \ left (Q (X_i) \ right) = 0 $$ $$ P (X_i) ln \ left (P (X_i) \ right) = 0 $$

אבל אם $$ P (X_i) \ ne0 $$ ו- $$ Q (X_i) = 0 $$ כיצד לחשב את $$ P (X_i) ln \ left (Q (X_i) \ right) $$

כדי לחסוך לכולם קצת זמן ולבהות במה שהתכוונתם אולי כדאי לשנות את $ P (X_i)! = 0 $ ל- $ P (X_i) \ ne 0 $ עם האסימון "\ ne"
בנוסף, האם אתה מתכוון ש- $ Q (X_i) = 0 $ עבור כל $ X_i $? במקרה זה ההפרש של KL אינו מוגדר מכיוון ש- $ Q $ איננה פונקציית הסתברות (אלה חייבים להסתכם ב- 1 לעומת התמיכה).
@Matthew תודה, תוקנה. עקבתי בטעות אחר הרגל הקידוד שלי.
@Matthew $ Q (X_i) = 0 $ לכמה $ X_i $, לא כולם. אני שוקל פיתרון לבסיס של $ P $ ו- $ Q $ על * אותה קבוצה * של תוצאות ולהוסיף ספירת פסבדו * קטנה *, נניח 0.001, לתוצאות שאינן מופיעות. זה יכול להימנע מההסתברויות האפסיות. אבל אני לא בטוח אם ישנן תופעות לוואי.
שְׁלוֹשָׁה תשובות:
user1417648
2014-05-21 19:36:27 UTC
view on stackexchange narkive permalink

אתה לא יכול ואתה לא. תאר לעצמך שיש לך משתנה אקראי של חלוקת הסתברות ש. אך חברך בוב חושב שהתוצאה נובעת מהתפלגות ההסתברות P. הוא בנה קידוד אופטימלי, שממזער את מספר הסיביות הצפויות בהן הוא יצטרך להשתמש כדי לומר לך את תוֹצָאָה. אך מכיוון שהוא בנה את הקידוד מ- P ולא מ- Q, הקודים שלו יהיו ארוכים מהנדרש. הפרשי KL מדדו כמה זמן הקודים יהיו ארוכים יותר.

עכשיו נניח שיש לו מטבע והוא רוצה להגיד לך את רצף התוצאות שהוא מקבל. מכיוון שהראש והזנב צפויים באותה מידה הוא נותן לשניהם קודי 1 ביט. 0 לראש, 1 לזנב. אם הוא זנב זנב ראש זנב, הוא יכול לשלוח 1 1 0 1. עכשיו, אם המטבע שלו נוחת על הקצה הוא לא יכול לומר לך! שום קוד שהוא שולח לך לא יעבוד. בשלב זה KL- הפרדה מתפרקת.

מכיוון שהפרשי KL מתפרקים, תצטרך להשתמש במדד אחר או בהתפלגות הסתברות אחרת. מה שאתה צריך לעשות תלוי באמת במה שאתה רוצה. מדוע אתה משווה התפלגויות הסתברות? מהיכן התפלגויות ההסתברות שלך, האם הן נאמדות מנתונים?

אתה אומר שהפצות ההסתברות שלך מגיעות ממסמכי שפה טבעית איכשהו, ואתה רוצה להשוות זוגות קטגוריות.

ראשית הייתי ממליץ על מדד לקשר סימטרי. ליישום זה זה נשמע כמו A להיות דומה ל- B כמו B דומה ל- A.

האם ניסית את מדד הדמיון הקוסינוס? זה נפוץ למדי ב- NLP.

אם אתה רוצה להיצמד ל- KL, דבר אחד שאתה יכול לעשות הוא לאמוד פונקציית הסתברות מ שני מסמכים ואז לראות כמה סיביות נוספות תצטרך בממוצע לשני המסמכים. כלומר (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2

הסבר נהדר אבל מעט מבלבל: האופן שבו אתה מתאר את הפסקה הראשונה, האם זה לא KL (ש || P)?
שימוש בחלוקת התערובת כדי להשיג את איחוד התומכים ולפעול כמתווך הוא הרעיון שחסר לי מזה 20 שנה \ o /
concipiotech
2014-05-16 08:13:29 UTC
view on stackexchange narkive permalink

בפועל, נתקלתי גם בנושא זה. במקרה זה גיליתי שהחלפת הערך 0 למספר קטן מאוד יכולה לגרום לבעיות. בהתאם לערך שבו אתה משתמש, תציג "הטיה" בערך KL. אם אתה משתמש בערך KL לבדיקת השערה או שימוש אחר הכרוך בסף, ערך קטן זה יכול להטות את התוצאות שלך. מצאתי שהדרך היעילה ביותר להתמודד עם זה היא לשקול רק לחשב את KL על שטח השערה עקבי X_i כאשר שניהם P ו- Q אינם אפסים. בעיקרו של דבר, זה מגביל את התחום של ה- KL לתחום שבו מוגדרים שניהם ושומר על צרות בעת השימוש ב- KL לביצוע מבחני השערה.

תודה. זו הצעה מעניינת. בעיקרון, היא גם מנסה לבסס את P ו- Q על אותה מערכת תוצאות. אנסה את זה.
אם אני מחשב את KL על קבוצת המשנה של הנתונים כאשר P ו- Q אינם אפסיים, האם עלי לנרמל מחדש את P ו- Q על פני אותה קבוצת משנה? או פשוט להשתמש בערך ההסתברות המקורי? אני חושב שאני צריך. אחרת, P ו- Q עדיין לא נמצאים על אותו בסיס.
פשוט ניסיתי בהצעתך. P מפיץ מעל 10K תוצאות, ו- Q מפיץ גם מעל 10K תוצאות. אך ל- P ו- Q יש תוצאות של 3K במשותף. אם אני משתמש רק בתוצאות ה- 3K הנפוצות כדי לאמוד את ההבדל בין P ו- Q, אני לא חושב שזה סביר. כי אנחנו מתעלמים מדברים רבים. ושני, התוצאה בגישה זו שונה לגמרי ממה שאני מקבל על ידי הוספת מספר קטן (או ספירת פסאודו).
הוסף קצת הקשר, אני עובד על ניסוי NLP. יש לי מספר קטגוריות של מסמכים ואני רוצה לספר כמה קרובים כל זוג קטגוריות קשורים זה לזה.
Daniel Mahler
2014-05-22 10:16:19 UTC
view on stackexchange narkive permalink

לאחר חלוקת הסתברות שבה $ Q_i = 0 $ עבור כל $ i $ פירושו שאתה בטוח ש- $ Q_i $ לא יכול להתרחש. לכן אם $ Q_i $ היו מושגים אי פעם הוא מייצג אינסוף / הפתעה אינסופית, וזה מה שמייצג מידע של שאנון. הסטייה של KL מייצגת את כמות ההפתעות הנוספות (כלומר מידע שאבד) לתצפית אם החלוקה $ Q $ משמשת כקירוב להפצה $ P $. אם הקירוב מנבא סיכוי 0 לאירוע שיש בו סבירות פוסטית במציאות, אזי תחוו הפתעה אינסופית באיזה אחוז מהזמן ובכך בממוצע הפתעה אינסופית.

הפיתרון הוא לא לאפשר לעולם 0 או 1 הסתברויות בחלוקה משוערת. בדרך כלל זה מושג על ידי החלקה כלשהי כמו החלקה טובה-טיורינג, החלקה של דיריכלט או החלקה של לפלס.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...