דלג לתוכן הראשי

סקירה של שיטות למידת מכונה רלוונטיות

בחלק הזה נסקור כמה מושגים ושיטות מפתח מתחום למידת המכונה הקלאסית, שיעזרו לנו להבין טוב יותר את זרימות העבודה בלמידת מכונה קוונטית. נתחיל עם הצגת מונחים כלליים, ואחר כך נצלול לעומק בשני סוגים של למידת מכונה: שיטות גרעין (בעיקר בהקשר של מכונת וקטורי תמיכה) ורשתות עצביות. בהחלט קיימות קשרים בין השיטות האלו, אבל נתייחס אליהן כנפרדות בגלל ההבדלים בזרימות העבודה הקוונטיות שמוצגות כאן ובשיעורים הבאים. זו רק סקירה שטחית, ונדלג על הרבה דקויות. לסקירה מלאה יותר של למידת מכונה, אנו ממליצים על משאבים כמו [1-3].

סוגי למידת מכונה

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

  1. למידה מפוקחת: בלמידה מפוקחת, הנתונים שמשמשים לאימון המודל מסומנים עם תוויות. המטרה של האלגוריתמים האלה היא ללמוד את הקשר בין הנתונים לתוויות או לפלטים המתאימים להם, ולהכליל זאת לנתונים שלא נראו קודם. משימות נפוצות בקבוצה הזו הן סיווג ורגרסיה.
  2. למידה לא מפוקחת: בניגוד ללמידה מפוקחת, למידה לא מפוקחת משתמשת בנתונים ללא תוויות לאימון מודל למידת המכונה. המטרה של אלגוריתמים כאלה היא לגלות דפוסים וסטרוקטורה נסתרים בנתונים. חלק מהאלגוריתמים בקבוצה הזו הם אלגוריתמי קיבוץ והפחתת ממדים. מודלים גנרטיביים מסוימים כמו רשתות יריבות גנרטיביות ו-variational autoencoders יכולים גם הם להיכלל בקטגוריה הזו.
  3. למידה מחיזוקים: אלגוריתמים בקטגוריה הזו של למידת מכונה מוגדרים על ידי סוכן שמקיים אינטראקציה עם סביבה. הסוכן נוקט פעולות ומקבל משוב מהסביבה שלו בצורת תגמולים ועונשים. בסופו של דבר, דרך מנגנון המשוב הזה, הסוכן לומד לנקוט בסט הפעולות הנכון לביצוע משימה ספציפית.

ייצוג דיאגרמטי של למידה מפוקחת ולא מפוקחת.

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

הכנסת "קוונטי" ללמידת מכונה

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

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

למשל, CC אומר שיש לנו מאגר נתונים קלאסי – כמו תמונות, קול או טקסט שאפשר לאחסן במחשבים קלאסיים – ושאנחנו גם משתמשים במחשב קלאסי להפעלת אלגוריתם למידת מכונה. זה בדיוק תחום למידת המכונה הקלאסית. מצד שני, QQ אומר שאנחנו משתמשים במחשב קוונטי לעיבוד נתונים קוונטיים. כאן, "נתונים קוונטיים" יכולים לאמר כמה דברים, ועשויים להיות תלויי הקשר. ניתן לחשוב על נתונים קוונטיים כאוסף של תוצאות מדידה שהתקבלו ממכשיר קוונטי, או שהם עשויים להתייחס למצבים שהוכנו במחשב קוונטי על ידי אלגוריתם אחר. בעתיד, הם אפילו עשויים להתייחס לנתונים שנשמרים ב-QRAM (Quantum Random Access Memory), שכיום לא קיים. כשחוקרים מדברים על למידת מכונה קוונטית, הם בדרך כלל מתכוונים לתחום ה-CQ, שבו מאגר הנתונים הנוכחי הוא קלאסי ומכשיר העיבוד שמריץ את אלגוריתם למידת המכונה הוא מחשב קוונטי. בחלקים הבאים של הקורס נתמקד באלגוריתמים כאלה.

מכונות וקטורי תמיכה

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

דיאגרמה של מכונת וקטורי תמיכה.

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

גבול החלטה לינארי ניתן לתיאור בדרכים רבות; בחלק מהדרכים, הדרך הישירה ביותר היא זו שמוצגת ב-f1f_1 למטה. כאן, Θ\Theta הוא קבוצת הפרמטרים שמגדירים את ההיפרמישור, x\vec{x} הוא מאגר הנתונים שלך, ו-bb הוא היסט קבוע. Φ\Phi הוא מיפוי ממרחב נקודות נתוני הקלט לעיתים קרובות (אך לא בהכרח) למרחב בעל ממד גבוה יותר. נחזור למיפוי הזה בהמשך.

במודל f1,f_1, Θ\Theta הוא וקטור הפרמטרים הניתנים לכיוון שהמודל ילמד. זה מה שאנחנו קוראים "הניסוח הפרימרי". עם מניפולציה מתמטית אפשר להראות שיש דרך שנייה לנסח את אותה בעיה. אנחנו קוראים לזה "הניסוח הדואלי", שמיוצג על ידי המשוואה f2f_2 למטה. לניסוח הזה אנחנו צריכים לבצע אופטימיזציה על פרמטרי האלפא. ההבדל העיקרי הוא שבניסוח הפרימרי למשוואה יש מכפלה פנימית בין וקטור התכונות לפרמטרים הניתנים ללמידה, ואילו בניסוח הדואלי המכפלה הפנימית היא בין וקטורי תכונות. למרות שהצורה הדואלית כוללת גם את תכונות נתוני האימון וגם את התוויות המתאימות, נראה בחלק הבא כיצד היא מוכיחה את עצמה כשימושית יותר מהצורה הפרימרית.

f1(x)=ΘTΦ(x)+bf_1(\vec{x}) = \Theta^T \Phi(\vec{x})+b f2(x)=i=1nαiyiΦT(xi)Φ(x)+bf_2(\vec{x}) = \sum_{i=1}^n \alpha_i y_i \Phi^T(\vec{x}_i)\Phi(\vec{x})+b

שיטות גרעין וכיצד קוונטי יכול לשחק תפקיד

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

מעבר למרחבים בעלי ממד גבוה יותר

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

גרפית, ניתן לראות בקלות כיצד אפשר להכליל את גישת ה-SVM למקרים שבהם הנתונים המקוריים אינם ניתנים להפרדה לינארית, בהינתן המיפוי הנכון לממדים גבוהים יותר. כשמסתכלים על הנתונים הדו-ממדיים משמאל, אפשר לראות שאין גבול החלטה לינארי שיכול להפריד בין שתי הקלאסים. עם זאת, אפשר לשקול הוספת תכונה שלישית למרחב התכונות שלנו. אם התכונה החדשה הזו היא – למשל – המרחק לראשית הצירים של שתי התכונות הקודמות x1x_1 ו-x2x_2, אז הנתונים הופכים לניתנים להפרדה לינארית. זה גם אומר שניתן להריץ את אלגוריתם מכונת וקטורי התמיכה בהצלחה עכשיו על מרחב התכונות הבעל ממד גבוה יותר הזה.

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

אנחנו גם מסמנים את "מיפוי התכונות" הזה כ-Φ\Phi. מיפוי התכונות לעיתים קרובות ממפה ממרחב נתוני הקלט לממד גבוה יותר, כפי שמוצג כאן, אבל קיימים מודלים ואלגוריתמים שמשתמשים במיפויים לממדים נמוכים יותר. המיפוי לממדים גבוהים יותר הוא פשוט מקרה קל לדמיין ולהבין.

x=(x1x2)\vec{x} = \begin{pmatrix}x_1 \\ x_2 \end{pmatrix} Φ(x)=(x1x2x12+x22)\vec{\Phi}(\vec{x}) = \begin{pmatrix}x_1 \\ x_2 \\ {x_1}^2+{x_2}^2\end{pmatrix}

חלק ממיפויי התכונות עשויים למפות למרחבים בעלי ממד גבוה מאוד. במקרים כאלה, הממדיות הגבוהה הופכת את המכפלות הפנימיות ליקרות יותר מבחינה חישובית. נחזור לנקודה הזו בהמשך.

למה הצורה הדואלית שימושית?

נזכיר את הניסוחים הפרימרי והדואלי של מודל הגבול הלינארי שלנו:

f1(x)=ΘTΦ(x)+bf_1(\vec{x}) = \Theta^T \Phi(\vec{x})+b f2(x)=i=1nαiyiΦT(xi)Φ(x)+bf_2(\vec{x}) = \sum_{i=1}^n \alpha_i y_i \Phi^T(\vec{x}_i)\Phi(\vec{x})+b

עכשיו שאנחנו יודעים ששימוש במיפוי תכונות כדי להגיע למרחב בעל ממד גבוה יותר יכול לאפשר לנו למצוא בהצלחה היפרמישור מפריד, אנחנו יכולים להחליף את וקטור התכונות המקורי x\vec{x} במשוואות בוקטורים שעברו מיפוי תכונות. עם זאת, אם נעשה זאת בניסוח הפרימרי, נתקל בבעיה של חישוב מכפלות פנימיות בין הפרמטרים לבין מיפוי תכונות שעלול להיות בעל ממד גבוה מאוד. אולם, בניסוח הדואלי, אנחנו רואים שאלה מוחלפים במכפלות פנימיות בין וקטורים שעברו מיפוי תכונות של קלטים שונים.

עבור חלק ממיפויי התכונות, יתכן שניתן לכתוב את המכפלה הפנימית של וקטורים שעברו מיפוי תכונות ΦT(xi)Φ(xj)\vec{\Phi}^T(\vec{x}_i)\cdot \vec{\Phi}(\vec{x}_j) כפונקציה פשוטה k(xi,xj)k(\vec{x}_i, \vec{x}_j) של המשתנים המקוריים (בעלי הממד הנמוך יותר) xi\vec{x}_i ו-xj\vec{x}_j. עבור בחירות מסוימות של Φ,\Phi, אולי אפילו נוכל לכתוב את ΦT(xi)Φ(xj)\vec{\Phi}^T(\vec{x}_i)\cdot \vec{\Phi}(\vec{x}_j) כפונקציה פשוטה של המכפלה הפנימית בעלת הממד הנמוך יותר xiTxj\vec{x}_i^T\vec{x}_j. זה מועיל מאוד מבחינה חישובית כי אפשר לגשת למרחב שבו הנתונים ניתנים להפרדה לינארית, אך ללא עלות המניפולציות בממדים גבוהים יותר. למעשה, מכיוון שהוקטורים שעברו מיפוי תכונות מופיעים ב-f2f_2 רק במכפלות פנימיות, ייתכן שלא נצטרך אפילו לבצע את מיפוי התכונות במפורש כדי לחשב את המכפלות הפנימיות. אנחנו קוראים לפונקציה k(xi,xj)k(\vec{x}_i, \vec{x}_j) שמחשבת את המכפלות הפנימיות "פונקציית הגרעין", ודרך הימנעות הזו מחישוב מיפוי התכונות נקראת "טריק הגרעין". למעשה, הוקטורים שעברו מיפוי התכונות עשויים אפילו להיות בעלי ממד אינסופי, אבל הגרעין עשוי עדיין להיות ניתן לחישוב יעיל מאוד.

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

k=(k(x1,x1)k(x1,x2)...k(x2,x1)k(x2,x2)...)k = \begin{pmatrix}k(\vec{x}_1,\vec{x}_1) & k(\vec{x}_1,\vec{x}_2) & ... \\ k(\vec{x}_2,\vec{x}_1) & k(\vec{x}_2,\vec{x}_2) & ... \\ \vdots & \vdots & \ddots\end{pmatrix}

ברגע שמחשבים את מטריצת הגרעין, ניתן למצוא את הפרמטרים האופטימליים (αi\alpha_i) באמצעות שיטות כמו תוכנת תכנות ריבועי או אלגוריתם הנקרא "אופטימיזציה מינימלית רציפה". כמובן, זה מניח שקיים גרעין ניתן לחישוב יעיל המתאים למיפוי תכונות שהופך את קלאסי הנתונים שלך לניתנים להפרדה לינארית. גישה קרובה אך חדשנית היא אמידת גרעין קוונטי.

גרעינים קוונטיים

מחשבים קוונטיים, או מצבים קוונטיים בכלל, מאפשרים הגדרה טבעית מאוד של "גרעין קוונטי". ניתן לפרש את הקידוד של קלט x\vec{x} למצב קוונטי Φ(x)|\Phi(\vec{x})\rangle כמיפוי תכונות. התהליך הזה אכן עשוי למפות את הנתונים למרחב בעל ממד גבוה מאוד כנפוץ במיפויי תכונות קלאסיים, אבל הממדיות תהיה תלויה בשיטת הקידוד (ראה את שיעור קידוד הנתונים). נזכיר שהמכפלה הפנימית של שני מצבים קוונטיים ψϕ\langle \psi | \phi \rangle קשורה להסתברות של מדידת המצב ϕ|\phi\rangle כאשר נמצאים במצב ψ|\psi\rangle. ניתן לאמוד את המכפלה הפנימית של שתי נקודות הנתונים שעברו מיפוי Φ(xi)\vec{\Phi}(\vec{x}_i) ו-Φ(xj)\vec{\Phi}(\vec{x}_j) על ידי ביצוע מספיק מדידות של ה-Circuit המתקבל.

ייצוג מופשט של גרעין כ-Circuit.

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

מסווגים קוונטיים וריאציוניים ורשתות עצביות

אלגוריתם נוסף ללמידת מכונה קוונטית לטווח הקרוב נקרא "מעגלים קוונטיים וריאציוניים" (VQCs). כאשר מעגלים אלה משמשים במשימת סיווג, ייתכן שתראו את אותו ראשי תיבות המשמש להתייחסות ל"מסווגים קוונטיים וריאציוניים" (גם VQCs). אלה לעיתים קרובות מנצלים מבנים דומים לרשתות עצביות קלאסיות (NNs); ובמקרים כאלה תראו אותם מתוארים כרשתות עצביות קוונטיות (QNNs). חשוב להבין שVQCs הם כלליים יותר ואינם צריכים לפעול לפי מבנה של NN, אבל נתחיל באנלוגיה עם NNs כדי לעזור להבהיר את התפקיד שקוונטי יכול לשחק בזרימות עבודה קיימות של למידת מכונה. לאחר מכן נדון בהכללות. נתחיל בסקירה של רשתות עצביות קלאסיות.

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

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

QML_CR_background_QNN_2ndlayer.png

השכבה הראשונה היא שכבת הקלט, והפעלות an0a_n^0 של הנוירונים בשכבה הזו מוזנות ישירות מהנתונים x\vec{x} לניתוח (כמו הצל של פיקסלים בודדים בתמונה, לדוגמה). השכבה האחרונה היא שכבת פלט שמתארת קטגוריזציה (כמו סיווג תמונה כ-90% סיכוי להיות כלב, ו-10% סיכוי להיות חתול, בהמשך לדוגמת התמונה).

QML_CR_background_QNN_output.png

הנוירונים בכל שכבה מעבדים אותות שהם מקבלים מהשכבה הקודמת ומשדרים אותם לשכבה הבאה דרך משקולות, wiw_i (החיבורים בדיאגרמה). אם נתמקד באחד מהנוירונים האלה, יש לנו אבן הבניין של רשת עצבית, הנקראת "פרצפטרון". מבחינה מתמטית, פרצפטרון מקבל וקטור קלט x\vec{x}, ומחשב את המכפלה הפנימית שלו עם וקטור משקולות ניתן לאימון בתוספת הטיה כלשהי. וחשוב מאוד, הפרצפטרון מיישם פונקציית הפעלה לא-לינארית (σ\sigma) על חישוב זה. פונקציות ההפעלה הלא-לינאריות האלה קריטיות לכוח הביטוי הגדול של הרשתות העצביות. דרך נוספת לחשוב על זה היא שאילו לא היה לנו אי-לינאריות בין השכבות, אז היינו יכולים בעיקרון לכתוב את כל הרשת העצבית כמספר כפל מטריצות גדול אחד. זה פשוט היה מניב מודל לינארי, שלא יהיה מסוגל לתפוס את הדפוסים המורכבים שרשתות עצביות עמוקות יכולות. לכן, פונקציות הפעלה לא-לינאריות הן יסודיות ברשתות עצביות.

perceptron_CP.png

פונקציות כמו

f(x)=σ(wx+b)f(\vec{x}) = \sigma (\vec{w}\cdot \vec{x}+\vec{b})

מחושבות בכל נוירון באמצעות הנתונים הידועים x\vec{x} וה-σ\sigma הלא-לינארי וגם וקטורי המשקולות הלא-ידועים w\vec{w} וההטיות b\vec{b}. בכלל, עשויים להיות משקולות שאינן אפס בין כל הנוירונים של כל השכבות, ונקרא למשקולות משכבה LL לשכבה L+1L+1 בין נוירונים mm ו-n,n, wm,nLw^L_{m,n}. באופן דומה, ההטיה על הנוירון ה-nthn^\text{th} של השכבה ה-LthL^\text{th} תהיה bnL.b^L_n. ההטיות כאן אינן קשורות ל-bb-ים מהדיון על הגרעין הקוונטי.

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

C(wm,nL,bnL)=1Ni=1Ntrainj=1Noutputs(vi,jpi,j)2C(w^L_{m,n},b^L_n) = \frac{1}{N}\sum_{i=1}^{N_\text{train}}\sum_{j=1}^{N_\text{outputs}}{(v_{i,j}-p_{i,j})^2}

בהתאם ליישום שלך, זה יכול לאמר לקחת את ההפרש בין הערך הממשי vi,jv_{i,j} של תמונה ii מנתוני האימון עבור פלט jj (נניח לדוגמה, ערך של 1.0 על נוירון שכבת הפלט עבור "כלב" ו-0 על כל הנוירונים האחרים) לבין הערך החזוי pi,jp_{i,j}. מרבעים את ההפרש ומסכמים על פני כל הקטגוריות, כך שזה לוכד לא רק אם הקטגוריה הנכונה הופעלה ביותר, אלא גם אם הפעלות שגויות מופחתות. לאחר מכן מסכמים על כל הדוגמאות בסט האימון שלנו ומקבלים עלות.

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

פרצפטרון קוונטי

כדי להיות מסוגלים לבנות את המקבילה הקוונטית של הפרצפטרון, אחד הדברים שאנחנו צריכים לשקול הוא להיות מסוגלים לממש אי-לינאריות עם Circuit קוונטי, שהוא תפקיד פונקציית ההפעלה ברשתות עצביות קלאסיות. הסיבה לכך היא שבלי שיקולים נוספים, Circuit קוונטי מממש רק פעולות יוניטריות, שהן פשוט לינאריות. ישנן שיטות שונות שניתן להשתמש בהן כדי להכניס אי-לינאריות ל-Circuit קוונטי. אחת השיטות העיקריות היא שימוש במדידות כמקור לאי-לינאריות. שיקולים נוספים כוללים שיטות מבוססות על טרנספורמציית פורייה קוונטית, מדידות mid-circuit או Circuit דינמי, ומעקב של Qubits מחוץ ל-Circuit.

רשת עצבית קוונטית

רשת עצבית קוונטית (QNN) פועלת על ידי קידוד ראשוני של נתוני הקלט עם שכבת היוניטרי UU בתמונה, לאחר מכן החלת Circuit קוונטי המתאים למשקולות בין שכבות (WW-ים למטה), ולבסוף שכבת מדידה. כמה נקודות מפתח על כך:

  • פעולות טעינת הנתונים והמשקולות הן פעולות לינאריות.
  • המדידות הן לא-לינאריות.
  • אז כמו ב-NN הקלאסי, יש לנו גם רכיבים לינאריים וגם לא-לינאריים.
  • ל-Circuit המשקולות עדיין יש פרמטרים וריאציוניים, כך שעדיין יש מינימיזציה קלאסית לביצוע.

ייצוג של רשת עצבית קוונטית כ-Circuit.

ניתן להשתמש ב-Circuit כמו זה שלמעלה לחישוב פונקציה fQNN(x)=0U(X)WOWU(x)0f_{QNN}(x) = \langle 0|U^{\dagger}(X)W^{\dagger}OWU(x)|0\rangle שים לב שהפונקציה הזו אינה בכלל זהה לפונקציה f(x)f(x) המתוארת ב-NNs קלאסיים. בפרט, פונקציה זו כוללת שכבות רבות אפשריות של משקולות רבות, ומוחלת על כל הנתונים שנטענו ל-Circuit הקוונטי שלך על ידי UU.

הכללות

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

דיאגרמה המציגה מספר שכבות של Gates בתוך רשת עצבית קוונטית

עם זאת, בבנייה הזו של הרשת העצבית הקוונטית, אנחנו רואים שהבלוק היוניטרי שמקודד את הנתונים חוזר על עצמו בין בלוקים יוניטריים וריאציוניים עם הפרמטרים הניתנים לאימון. האסטרטגיה הזו, שאנחנו מכנים "העלאה מחדש של נתונים", מגובה בתוצאות תיאורטיות מעניינות. למעשה, מאמר מאת Pérez-Salinas et al. מראה שעם עזרת העלאה מחדש מרובה של נתונים, "Qubit בודד מספק יכולות חישוביות מספיקות לבניית מסווג קוונטי אוניברסלי כאשר מסייעת לו שגרת עזר קלאסית." לכן, העלאה מחדש של נתונים היא טכניקה שניתן להשתמש בה כדי לשפר את כוח הביטוי והיכולת הייצוגית של המודל, מה שמאפשר לרשת העצבית הקוונטית לקרב פונקציות מורכבות.

מקורות

[1] "Reinforcement Learning: An Introduction", Richard S. Sutton and Richard G. Barto, MIT Press, Second Edition, Cambridge, MA, 2018

[2] "Pattern Recognition and Machine Learning", Christopher M. Bishop, Springer, 2006

[3] "Foundations of Machine Learning", Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar, MIT Press, Second Edition, 2018.