דף זה תורגם על ידי Cloud Translation API.
Switch to English

עיצוב קוונטי של TensorFlow

TensorFlow Quantum (TFQ) מיועד לבעיות של לימוד מכונות קוונטיות בעידן NISQ. זה מביא פרימיטיבי מחשוב קוונטיים - כמו בניית מעגלי קוונטים - למערכת האקולוגית TensorFlow. דגמים ופעולות שנבנו באמצעות TensorFlow משתמשים בפרימיטיביות אלה ליצירת מערכות היברידיות קוונטיות-קלאסיות.

באמצעות TFQ, החוקרים יכולים לבנות גרף TensorFlow באמצעות מערך נתונים קוונטי, מודל קוונטי ופרמטרי בקרה קלאסיים. כל אלה מיוצגים כטנסורים בתרשים חישובי יחיד. התוצאה של מדידות קוונטיות - המובילות לאירועים הסתברותיים קלאסיים - מתקבלת על ידי האופציות של TensorFlow. ההדרכה מתבצעת באמצעות ממשק ה- API של Keras המקובל. מודול tfq.datasets מאפשר לחוקרים להתנסות במערכי נתונים קוונטיים חדשים ומעניינים.

Cirq

Cirq הוא מסגרת תכנות קוונטית מגוגל. זה מספק את כל הפעולות הבסיסיות - כמו qubits, שערים, מעגלים ומדידה - כדי ליצור, לשנות ולהפעיל מעגלי קוונטים במחשב קוונטי, או מחשב קוונטי מדומה. TensorFlow Quantum משתמש בפרימיטיביות של Cirq כדי להרחיב את TensorFlow לצורך חישוב אצווה, בניית מודלים וחישוב מעבר צבע. כדי להיות יעילים עם TensorFlow Quantum, כדאי להיות יעילים עם Cirq.

פרימיטיבים קוונטיים של TensorFlow

TensorFlow Quantum מיישם את הרכיבים הדרושים לשילוב TensorFlow עם חומרת מחשוב קוונטית. לשם כך, TFQ מציגה שני פרימיטיביים של דאטה:

  • קוונטית מעגל: זה מייצג Cirq -defined מעגלים קוונטיים ( cirq.Circuit ) בתוך TensorFlow. צור קבוצות של מעגלים בגודל משתנה, בדומה לחבילות של פרטי נתונים שונים המוערכים באמת.
  • סכום פאולי : ייצג שילובים לינאריים של מוצרי טנסור של מפעילי פאולי שהוגדרו ב- cirq.PauliSum ( cirq.PauliSum ). כמו מעגלים, צור קבוצות של מפעילים בגודל משתנה.

אופציות בסיסיות

באמצעות פרימיטיבים של מעגל הקוונטים בתוך tf.Tensor , TensorFlow Quantum מיישם אופים המעבדים מעגלים אלה ומפיקים תפוקות משמעותיות.

האופציות של TensorFlow נכתבות ב- C ++ מיטוב. אופציות אלה מדגימות ממעגלים, מחשבות ערכי ציפייה ומוצאות את המצב המיוצר על ידי המעגלים הנתונים. כתיבת אופים גמישים וביצועיים טומנת בחובה כמה אתגרים:

  1. המעגלים אינם באותו גודל. במעגלים מדומים, אינך יכול ליצור פעולות סטטיות (כמו tf.matmul או tf.add ) ואז להחליף מספרים שונים למעגלים בגדלים שונים. אפשרויות אלה חייבות לאפשר גדלים דינמיים שגרף המחשוב TensorFlow סטטי בגודל סטטי אינו מאפשר.
  2. נתונים קוונטיים יכולים לגרום למבנה מעגל אחר לחלוטין. זו סיבה נוספת לתמוך בגדלים דינמיים במערכות ה- TFQ. נתוני קוונטים יכולים לייצג שינוי מבני למצב הקוונטי הבסיסי המיוצג על ידי שינויים במעגל המקורי. מכיוון שפרטי נתונים חדשים מוחלפים פנימה והחוצה בזמן ריצה, לא ניתן לשנות את גרף המחשוב TensorFlow לאחר בנייתו, ולכן נדרש תמיכה במבנים משתנים אלה.
  3. cirq.Circuits דומים לתרשים מחושב בכך שהם סדרת פעולות - וחלקם עשויים להכיל סמלים / מצייני מיקום. חשוב להפוך את זה לתואם ככל האפשר עם TensorFlow.

מסיבות ביצועים, Eigen (ספריית C ++ המשמשת באופציות TensorFlow רבות) אינו מתאים לסימולציה של מעגלי קוונטים. במקום זאת, סימולטורי המעגל המשמשים בניסוי עליונות קוונטית משמשים כמאמתים ומורחבים כבסיס למערכות TFQ (הכל כתוב עם הוראות AVX2 ו- SSE). נוצרו אופים עם חתימות פונקציונליות זהות המשתמשות במחשב קוונטי פיזי. המעבר בין מחשב קוונטי מדומה ופיזי קל כמו שינוי שורת קוד יחידה. אופציות אלה ממוקמות ב- circuit_execution_ops.py .

שכבות

שכבות קוונטיות של TensorFlow חושפות דגימה, ציפייה וחישוב מצב בפני מפתחים באמצעות הממשק tf.keras.layers.Layer . נוח ליצור שכבת מעגלים לפרמטרי בקרה קלאסיים או לפעולות קריאה. בנוסף, ניתן ליצור שכבה עם דרגה גבוהה של מורכבות תומכת במעגל אצווה, ערך פרמטר של בקרת אצווה, וביצוע פעולות קריאה של אצווה. ראה tfq.layers.Sample ל- tfq.layers.Sample .

מבדילים

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

כדי לפתור בעיה זו, מודול tfq.differentiators מספק מספר טכניקות בידול סטנדרטיות. משתמשים יכולים גם להגדיר את השיטה שלהם לחישוב הדרגות - הן בהגדרת "העולם האמיתי" של חישוב הציפיות מבוסס-המדגם והן בעולם המדויק האנליטי. שיטות כמו הבדל סופי הן לרוב המהירות ביותר (זמן שעון קיר) בסביבה אנליטית / מדויקת. אמנם איטי יותר (זמן שעון קיר), אך שיטות מעשיות יותר כמו שינוי פרמטר או שיטות סטוכסטיות יעילות יותר. tfq.differentiators.Differentiator הוא מופעים ומצורפים אופ קיים עם generate_differentiable_op , או עבר הבנאי של tfq.layers.Expectation או tfq.layers.SampledExpectation . כדי ליישם tfq.differentiators.Differentiator בהתאמה אישית, יש לרשת את המחלקה tfq.differentiators.Differentiator . כדי להגדיר פעולת מעבר צבע לדגימה או חישוב וקטורי מצב, השתמש ב- tf.custom_gradient .

מערכי נתונים

ככל שתחום המחשוב הקוונטי יגדל, יתעוררו יותר נתונים קוונטיים ושילובי מודלים, מה שיקשה על השוואה מובנית. מודול tfq.datasets משמש כמקור הנתונים למשימות למידה קוונטיות. זה מבטיח השוואה מובנית עבור הדגם והביצועים.

יש לקוות כי עם תרומות קהילתיות גדולות, מודול ה- tfq.datasets יגדל כדי לאפשר מחקר שקוף וניתן לשחזור יותר. אוצרות בזהירות של בעיות ב: בקרת קוונטים, סימולציה פרמיונית, סיווג ליד מעברי פאזה, חישה קוונטית וכו ', כולם מועמדים tfq.datasets לתוספת ל tfq.datasets . כדי להציע מערך נתונים חדש, פתח גיליון GitHub .