הפחתת שגיאות קריאה עבור ה-Sampler primitive באמצעות M3
אומדן שימוש: פחות מדקה על מעבד Heron r2 (הערה: זהו אומדן בלבד. זמן הריצה בפועל עשוי להשתנות.)
רקע
בשונה מה-Estimator primitive, ל-Sampler primitive אין תמיכה מובנית בהפחתת שגיאות. מספר מהשיטות הנתמכות על ידי ה-Estimator מיועדות במיוחד לערכי ציפייה, ולכן אינן ישימות ל-Sampler primitive. יוצא דופן הוא הפחתת שגיאות קריאה, שהיא שיטה יעילה מאוד הישימה גם ל-Sampler primitive.
תוסף ה-M3 של Qiskit מממש שיטה יעילה להפחתת שגיאות קריאה. מדריך זה מסביר כיצד להשתמש בתוסף M3 של Qiskit להפחתת שגיאות קריאה עבור ה-Sampler primitive.
מהי שגיאת קריאה?
מיד לפני המדידה, מצב רשומת ה-Qubit מתואר על ידי סופרפוזיציה של מצבי הבסיס החישובי, או על ידי מטריצת צפיפות. מדידת רשומת ה-Qubit לתוך רשומת ביטים קלאסית מתבצעת בשני שלבים. תחילה מתבצעת המדידה הקוונטית עצמה. משמעות הדבר היא שמצב רשומת ה-Qubit מוקרן על מצב בסיס יחיד המאופיין על ידי מחרוזת של ים ו-ים. השלב השני מורכב מקריאת מחרוזת הביטים המאפיינת מצב בסיס זה וכתיבתה לזיכרון המחשב הקלאסי. אנו מכנים שלב זה קריאה. מסתבר שהשלב השני (הקריאה) גורם ליותר שגיאות מהשלב הראשון (ההקרנה על מצבי הבסיס). הדבר מובן כאשר זוכרים שהקריאה דורשת זיהוי מצב קוונטי מיקרוסקופי והגברתו לממד המקרוסקופי. רזוננטור קריאה מצומד אל ה-Qubit (מסוג transmon), ועל כן חווה תזוזת תדר קטנה מאוד. פולס מיקרוגל נשלח ומוחזר מהרזוננטור, ובתורו חווה שינויים קטנים במאפייניו. הפולס המוחזר מוגבר ומנותח. זהו תהליך עדין הנתון לשורה של שגיאות.
הנקודה החשובה היא שבעוד ששתי המדידה הקוונטית והקריאה כפופות לשגיאות, האחרונה היא שגורמת לשגיאה הדומיננטית, הנקראת שגיאת קריאה, שהיא מוקד המדריך הזה.
רקע תיאורטי
אם מחרוזת הביטים הדגומה (המאוחסנת בזיכרון הקלאסי) שונה ממחרוזת הביטים המאפיינת את המצב הקוונטי המוקרן, אנו אומרים שאירעה שגיאת קריאה. שגיאות אלו נצפות כאקראיות וללא מתאם מדגם לדגם. הוכח כי מועיל למדל את שגיאת הקריאה כ_ערוץ קלאסי רועש_. כלומר, עבור כל זוג מחרוזות ביטים ו-, קיימת הסתברות קבועה שערך אמיתי של ייקרא בטעות כ-.
ביתר דיוק, עבור כל זוג מחרוזות ביטים , קיימת הסתברות (מותנית) ש- נקרא, בהינתן שהערך האמיתי הוא כלומר,
כאשר הוא מספר הביטים ברשומת הקריאה. לשם הבהרה, אנו מניחים ש- הוא מספר שלם עשרוני שייצוגו הבינארי הוא מחרוזת הביטים המתייגת את מצבי הבסיס החישובי. אנו מכנים את המטריצה בגודל מטריצת ההשמה. עבור ערך אמיתי קבוע , סכום ההסתברויות על כל התוצאות הרועשות חייב להיות . כלומר
מטריצה ללא ערכים שליליים המקיימת (1) נקראת סטוכסטית-שמאלית. מטריצה סטוכסטית-שמאלית נקראת גם סטוכסטית-עמודה מאחר שכל אחת מעמודותיה מסתכמת ל-. אנו קובעים בניסוי ערכים משוערים לכל איבר על ידי הכנה חוזרת של כל מצב בסיס ולאחר מכן חישוב התדירויות של התרחשות מחרוזות הביטים הדגומות.
אם ניסוי כולל אמידת התפלגות הסתברות על מחרוזות ביטים פלט באמצעות דגימה חוזרת, אז נוכל להשתמש ב- להפחתת שגיאות קריאה ברמת ההתפלגות. הצעד הראשון הוא להריץ מעגל קבוע המעניין אותנו פעמים רבות, וליצור היסטוגרמה של מחרוזות ביטים דגומות. ההיסטוגרמה המנורמלת היא התפלגות ההסתברות הנמדדת על מחרוזות הביטים האפשריות, שאנו מסמנים אותה ב-. ההסתברות (המשוערת) לדגימת מחרוזת הביטים שווה לסכום על כל מחרוזות הביטים האמיתיות , כל אחת משוקללת לפי ההסתברות שהיא תתפרש בטעות כ-. הצהרה זו בצורה מטריציאלית היא
כאשר היא ההתפלגות האמיתית. במילים אחרות, לשגיאת הקריאה יש השפעה של הכפלת ההתפלגות האידיאלית על מחרוזות הביטים במטריצת ההשמה לייצור ההתפלגות הנצפית . מדדנו את ואת , אך אין לנו גישה ישירה ל-. באופן עקרוני, נקבל את ההתפלגות האמיתית של מחרוזות הביטים עבור המעגל שלנו על ידי פתרון משוואה (2) עבור באופן נומרי.
לפני שנמשיך, כדאי לציין כמה תכונות חשובות של גישה נאיבית זו.
- בפועל, משוואה (2) אינה נפתרת על ידי היפוך . שגרות אלגברה לינארית בספריות תוכנה משתמשות בשיטות יציבות, מדויקות ויעילות יותר.
- בעת אמידת , הנחנו שאירעו רק שגיאות קריאה. בפרט, הנחנו שלא היו שגיאות הכנת מצב ומדידה קוונטית — או לפחות שהן הופחתו בדרכים אחרות. במידה שהנחה זו טובה, מייצגת רק שגיאת קריאה. אך כאשר אנו משתמשים ב- לתיקון התפלגות נמדדת על מחרוזות ביטים, אין אנו עושים הנחה כזו. למעשה, אנו מצפים שמעגל מעניין יכניס רעש, למשל שגיאות Gate. ההתפלגות "האמיתית" עדיין כוללת השפעות מכל שגיאות שלא הופחתו בדרכים אחרות.
שיטה זו, אף שהיא שימושית בנסיבות מסוימות, סובלת ממספר מגבלות.
משאבי המרחב והזמן הדרושים לאמידת גדלים באופן אקספוננציאלי ב-:
- האמידה של ו- כפופה לשגיאה סטטיסטית עקב דגימה סופית. רעש זה יכול להיות קטן כרצוי על חשבון יריות נוספות (עד לסקאלת הזמן של שינוי פרמטרי חומרה הגורמים לשגיאות שיטתיות ב-). אולם, אם אין הנחות לגבי מחרוזות הביטים שנצפות בעת ביצוע ההפחתה, מספר היריות הדרוש לאמידת גדל לפחות אקספוננציאלית ב-.
- היא מטריצה בגודל . כאשר , כמות הזיכרון הדרושה לאחסון גדולה מהזיכרון הזמין במחשב נייד רב-עוצמה.
מגבלות נוספות הן:
- ההתפלגות המשוחזרת עשויה לכלול הסתברות שלילית אחת או יותר (תוך כדי סכימה לאחד). פתרון אחד הוא למזער את בכפוף לאילוץ שכל ערך ב- יהיה אי-שלילי. עם זאת, זמן הריצה של שיטה כזו ארוך בסדרי גודל מאשר פתרון ישיר של משוואה (2).
- הליך הפחתה זה פועל ברמת התפלגות הסתברות על מחרוזות ביטים. בפרט, הוא אינו יכול לתקן שגיאה במחרוזת ביטים בודדת שנצפתה.
תוסף ה-M3 של Qiskit: התאמה למחרוזות ביטים ארוכות יותר
פתרון משוואה (2) באמצעות שגרות אלגברה לינארית נומרית סטנדרטיות מוגבל למחרוזות ביטים שאינן ארוכות מכ-10 ביטים. אולם M3 מסוגל לטפל במחרוזות ביטים ארוכות הרבה יותר. שתי תכונות מפתח של M3 המאפשרות זאת הן:
- מתאמים בשגיאת קריאה מסדר שלוש ומעלה בין אוספי ביטים מניחים שהם זניחים ומתעלמים מהם. באופן עקרוני, במחיר של יריות נוספות, ניתן לאמוד מתאמים גבוהים יותר גם כן.
- במקום לבנות את באופן מפורש, אנו משתמשים במטריצה יעילה קטנה בהרבה שמתעדת הסתברויות רק עבור מחרוזות ביטים שנאספו בעת בניית .
ברמה גבוהה, ההליך פועל כדלקמן.
ראשית, אנו בונים אבני בניין שמהן ניתן לבנות תיאור יעיל ומפושט של . לאחר מכן, אנו מריצים שוב ושוב את המעגל המעניין ואוספים מחרוזות ביטים שמשמשות לבניית הן והן, בעזרת אבני הבניין, יעילה.
ביתר דיוק,
-
מטריצות השמה של Qubit יחיד מאומדות עבור כל Qubit. לשם כך, אנו מכינים שוב ושוב את רשומת ה-Qubit במצב האפסים הכולל ואז במצב האחדות הכולל , ומתעדים את ההסתברות עבור כל Qubit שנקרא בטעות.
-
מתאמים מסדר שלוש ומעלה מניחים שהם זניחים ומתעלמים מהם.
במקום זאת אנו בונים מטריצות השמה של Qubit יחיד בגודל , ו- מטריצות השמה של שני Qubit בגודל . מטריצות ה-Qubit היחיד ושני ה-Qubit הללו מאוחסנות לשימוש מאוחר יותר.
-
לאחר דגימה חוזרת של מעגל לבניית , אנו בונים קירוב יעיל ל- תוך שימוש רק במחרוזות ביטים שנדגמו בעת בניית . מטריצה יעילה זו נבנית באמצעות מטריצות ה-Qubit היחיד ושני ה-Qubit המוזכרות בסעיף הקודם. הממד הלינארי של מטריצה זו הוא לכל היותר מסדר גודל מספר היריות שנעשה בהן שימוש בבניית , שהוא קטן בהרבה מהממד של מטריצת ההשמה המלאה .
לפרטים טכניים על M3, ניתן לעיין ב-Scalable Mitigation of Measurement Errors on Quantum Computers.
יישום M3 על אלגוריתם קוונטי
נישם את הפחתת שגיאות הקריאה של M3 על בעיית ההזזה הנסתרת. בעיית ההזזה הנסתרת, ובעיות קשורות כגון בעיית תת-הקבוצה הנסתרת, נוצרו במקור בהקשר של סביבה עמידה לתקלות (ביתר דיוק, לפני שהוכח שמחשבים קוונטיים עמידים לתקלות אפשריים!). אך הן נחקרות גם עם מעבדים זמינים. דוגמה לאצת מהירות אלגוריתמית אקספו ננציאלית שהושגה לגרסה של בעיית ההזזה הנסתרת על מחשבי IBM® QPUs בני 127 Qubit ניתן למצוא במאמר זה (גרסת arXiv).
בהמשך, כל האריתמטיקה היא בוליאנית. כלומר, עבור , חיבור הוא פונקציית ה-XOR הלוגית. יתר על כן, כפל (או ) הוא פונקציית ה-AND הלוגית. עבור , מוגדר על ידי יישום ביטי של XOR. מכפלה הפנימית מוגדרת על ידי .
אופרטור ה-Hadamard והתמרת פורייה
ביישום אלגוריתמים קוונטיים, נפוץ מאוד להשתמש באופרטור ה-Hadamard כתמרת פורייה. מצבי הבסיס החישובי נקראים לעתים מצבים קלאסיים. הם עומדים ב יחס חד-חד-ערכי למחרוזות הביטים הקלאסיות. אופרטור ה-Hadamard של Qubit על מצבים קלאסיים ניתן לראות כתמרת פורייה על ה-hypercube הבוליאני:
נשקול מצב המתאים למחרוזת ביטים קבועה . על ידי יישום , ושימוש ב-, נראה שתמרת פורייה של ניתן לכתיבה כ-
ה-Hadamard הוא ההופכי של עצמו, כלומר . לכן, תמרת הפורייה ההופכית היא אותו האופרטור, . באופן מפורש, יש לנו,
בעיית ההזזה הנסתרת
נשקול דוגמה פשוטה של בעיית הזזה נסתרת. הבעיה היא לזהות הזזה קבועה בקלט לפונקציה. הפונקציה שאנו שוקלים היא המכפלה הפנימית. היא החבר הפשוט ביותר מתוך קבוצה גדולה של פונקציות שמאפשרות האצה קוונטית לבעיית ההזזה הנסתרת באמצעות טכניקות דומות לאלה המוצגות להלן.
תהי מחרוזות ביטים באורך . נגדיר על ידי
תהי מחרוזות ביטים קבועות באורך . אנו מגדירים עוד על ידי
כאשר ו- הם פרמטרים (נסתרים). ניתן לנו שתי קופסאות שחורות, אחת ממשת את , והשנייה את . אנו מניחים שאנו יודעים שהן מחשבות את הפונקציות המוגדרות לעיל, פרט לכך שאיננו יודעים לא את ולא את . המשחק הוא לקבוע את מחרוזות הביטים הנסתרות (ההזזות) ו- על ידי ביצוע שאילתות ל- ול-. ברור שאם נשחק את המשחק בצורה קלאסית, נדרשות שאילתות לקביעת ו-. לדוגמה, ניתן לשאול את עם כל הזוגות של מחרוזות כך שאחד מאיברי הזוג הוא אפסים בלבד, והאיבר האחר כולל בדיוק אחד שווה ל-. בכל שאילתה, אנו לומדים איבר אחד מ- או מ-. אולם, נראה שאם הקופסאות השחורות ממומשות כמעגלי Circuit קוונטיים, נוכל לקבוע את ו- עם שאילתה בודדת לכל אחת מ- ו-.
בהקשר של מורכבות א לגוריתמית, קופסה שחורה נקראת אורקל. בנוסף לאטימותו, לאורקל יש תכונה שהוא צורך את הקלט ו מייצר את הפלט באופן מיידי, מבלי להוסיף דבר לתקציב המורכבות של האלגוריתם שבו הוא משובץ. למעשה, במקרה שלנו, האורקלים הממשים את ו- יתגלו כיעילים.
מעגלי Circuit עבור ו-
אנו זקוקים לרכיבים הבאים כדי לממש את ו- כמעגלי Circuit קוונטיים.
עבור מצבים קלאסיים של Qubit יחיד , עם , ה-Gate הנשלט ניתן לכתיבה כ-
נפעיל עם שערי CZ, אחד על , ואחד על , וכן הלאה, עד . אנו מכנים אופרטור זה .
הוא גרסה קוונטית של :
אנו גם צריכים לממש הזזת מחרוזת ביטים. אנו מסמנים את האופרטור על הרשומה ב- על ידי ובאופן דומה על הרשומה . אופרטורים אלה מיישמים בכל מקום שביט יחיד הוא , וה-Identity בכל מקום שהוא . אז יש לנו
הקופסה השחורה השנייה ממומשת על ידי הU-אוניטרית , הניתן על ידי
כדי לראות זאת, אנו מיישמים את האופרטורים מימין לשמאל על המצב . תחילה
לאחר מכן,
לבסוף,
שהיא אכן הגרסה הקוונטית של .