مقدمة إلى تعلم الآلة الكمومي
نظرة عامة ودوافع
قبل البدء، يُرجى إكمال هذا الاستطلاع القصير قبل الدورة، الذي يساعدنا على تحسين محتوانا وتجربة الم ستخدم.
أهلًا بك في تعلم الآلة الكمومي!
الفيديو التالي يُقدّم مقدمة موجزة مُكمِّلة للنص أدناه.
للتلخيص والتكميل بإيجاز:
- رأينا مسألة تُحلّ لأول مرة على حاسوب كمومي، ثم يجد الناس لاحقًا طريقة لحلها على حاسوب فائق كلاسيكي. من المرجح أن تستمر هذه الدورة من الحوسبة الكلاسيكية والكمومية في دفع كليهما إلى حدودهما القصوى لبضع سنوات.
- هناك مسائل محددة يمكن للحوسبة الكمومية فيها إثبات ميزة على الحوسبة الكلاسيكية، مع التقدم في مجالات كتقليص الأخطاء وزيادة عدد الكيوبتات المتاحة. لكن هذا لا يزال وقت استكشاف، بحثًا عن مجموعات بيانات مناسبة للكم وخرائط ميزات كمومية مفيدة.
- تعلم الآلة الكمومي (QML) أحد المجالات المثيرة الكثيرة التي يمكن للحوسبة الكمومية فيها تعزيز سير العمل الكلاسيكية الحالية أو تكاملها.
يُطبِّق تعلم الآلة (ML) خوارزميات على مجموعات بيانات، لذا قد يشمل QML بشكل معقول الميكانيكا الكمومية في جانب البيانات أو الخوارزميات أو كليهما. كل هذه الاحتمالات مثيرة للاهتمام. لكننا سنقتصر في معظمه على مناقشة الخوارزميات الكمومية المطبَّقة على البيانات الكلاسيكية. أحد أسباب ذلك أن مسائل ML ذات البيانات الكلاسيكية مدروسة بعمق وواسعة الانتشار. هناك اهتمام واسع بحلّ مسائل تبدأ بالبيانات الكلاسيكية. سبب آخر هو غياب QRAM. فبدون القدرة على تخزين كميات كبيرة من البيانات الكمومية على جدول زمني طويل نسبيًا، لا تزال الطرق التي تبدأ بالبيانات الكمومية بعيدة نسبيًا عن التطبيق الصناعي. كما أن كيفية "الوصول الكمومي" للبيانات الكلاسيكية بكفاءة غير واضحة. نوعان من ML يحظيان باهتمام خاص: التعلم المُشرَف الذي تُدرَّب فيه خوارزمية باستخدام مجموعة بيانات مُعلَّمة، والتعلم غير المُشرَف الذي تحاول فيه الخوارزمية التعلم عن توزيع من عينات غير مُعلَّمة. قد تتعلم خوارزمية غير مُشرَفة مثلًا كيفية توليد عينات جديدة من نفس التوزيع، أو كيفية تجميع العينات في مجموعات ذات خصائص متشابهة.

تُظهر الصورة اليسرى فئتين من البيانات المُعلَّمة كما في التعلم المُشرَف. في هذه الحالة الفئتان قابلتان للفصل الخطي. تُظهر الصورة اليمنى مجموعات من البيانات. في مهمة التعلم غير المُشرَف، لن تكون هذه البيانات مُعلَّمة في البداية وستدرس الخوارزمية التوزيع، ربما بحثًا عن مجموعات. لأغراض تصوّر المجموعات التي قد تحددها الخوارزمية، عُلِّمت نقاط البيانات الآن. الفارق الرئيسي بين الاثنين هو أن عملية التعلم المُشرَف تبدأ بالبيانات مُعلَّمة مسبقًا بينما تبدأ العملية غير المُشرَفة بالبيانات غير مُعلَّمة، حتى لو عُلِّمت في النهاية.
أولئك الذين لديهم خلفية في تعلم الآلة يعرفون بالفعل أن كثيرًا من طرق الحل تتضمن رسم البيانات في فضاءات أعلى أبعادًا. هذا مُستكشَف بشكل جيد بشكل خاص في سياق النوى. كتذكير موجز، أحيانًا تكون البيانات قابلة للفصل إلى فئات بخط أو مستوٍ أو مستوٍ فائق (سنقول غالبًا "مستوٍ فائق" للإيجاز)، في نفس عدد أبعاد البيانات المعطاة. هذا موضح في الصورة الأولى أعلاه. في أوقات أخرى، قد لا تكون البيانات قابلة للفصل بمستوٍ فائق في تلك الأبعاد، كما هو موضح في الصورة الثانية. لكن لا يزال يمكن أن يكون في البيانات بنية يمكن استغلالها في رسمها إلى أبعاد أعلى، مما يجعل البيانات قابلة للفصل في ذلك الفضاء الأعلى أبعادًا. يتضح هذا في رسم البيانات ثنائية الأبعاد ذات التناظر الدائري إلى الفضاء ثلاثي الأبعاد حيث تُرتَّب نقاط البيانات على سطح قطعة زائدة.

الهدف الشائع في QML هو إيجاد رسم من المجموعة ذات الأبعاد الأدنى من الميزات إلى فضاء أعلى أبعادًا، يفصل نقاط بياناتنا بفاعلية كي نتمكن من استخدام الرسم لتصنيف نقاط البيانات الجديدة. لكن هذه ليست مهمة سهلة، وأي نقاش حول الفائدة المحتملة للحوسبة الكمومية في تعلم الآلة يجب أن يكون مصحوبًا بالتحفظات المناسبة. بالتحديد، يجب معالجة الدقة في اختيار مجموعة البيانات والتحديات في الوصول إلى نطاق الأداة. يجب أيضًا التحول بعيدًا عن محاولة التفوق على خوارزميات ML الكلاسيكية على البيانات التي تتعامل معها بكفاءة وجودة الخوارزميات الكلاسيكية، وإعادة توجيه النقاش نحو التحقيق في خرائط ميزات جديدة يمكن أن تكون مفيدة.
إدارة التوقعات
كثير من مجموعات البيانات المستخدمة في تطبيقات QML الموصوفة في الأدبيات "مُهندَسة الميزات"، أي أن مجموعة بيانات تُختار أو تُولَّد تحديدًا لإظهار حالة استخدام ضيقة تكون فيها الحوسبة الكمومية مفيدة. إذا بدا هذا كنوع من الغش فنحن نسيء فهم المهمة. ليس صحيحًا أن بعض خرائط الميزات الكمومية تُتيح لنا حلّ جميع مهام التصنيف أو كثير منها بكفاءة أو قابلية أكبر من خوارزميات تعلم الآلة الكلاسيكية. بل إن بعض خرائط الميزات الكمومية (لا كلها) تتصرف بشكل مختلف عن خرائط الميزات الكلاسيكية. المهمة إذن هي استكشاف الدوائر الكمومية في سياق البنى البيانية المعقدة. بعض الأسئلة المحددة التي ينبغي معالجتها:
- ما الدوائر الكمومية الأرجح للتصرف بطرق جديدة مقارنةً بالبدائل الكلاسيكية؟
- هل هناك مسائل واقعية تتضمن بيانات ذات خصائص يُستحسن استكشافها باستخدام مثل هذه الدوائر الكمومية الجديدة؟
- هل تتوسع هذه الدوائر الكمومية على أجهزة الكم قريبة الأجل؟
تفسير غير كافٍ
كثيرًا ما يُقابَل تفسير مبسَّط لكيفية قوة الحوسبة الكمومية. يسير على نحو كالتالي:
تمامًا كما تستخدم الحواسيب الكلاسيكية بتات من المعلومات، تستخدم الحواسيب الكمومية كيوبتات. بالنظر إلى عدد من البتات، لنقل 4، يمكن للحاسوب الكلاسيكي أن يكون في أي من حالة ممكنة، بينما يمكن للحاسوب الكمومي أن يوجد في تراكب لجميع الـ16 حالة في آن واحد، ويمكن إجراء عمليات على هذا التراكب كله. في بعض الحالات، هذا يتيح لنا بشكل طبيعي تصميم خوارزميات تعلم مثيرة للاهتمام محتملًا تقوم على رسم إلى فضاءات أعلى أبعادًا.
هذا تصريح صحيح، لكنه غير كافٍ وفيه شيء من التضليل كما سنشرح. كما يُرى أيضًا التأكيد على الفوارق بين المعاملات المركّبة والحقيقية، كما في:
يمكن وصف نظام كلاسيكي احتمالي يمكن فيه وصف نظام بأنه يمتلك احتمالات معينة لوجوده في حالات مختلفة كالتالي.
في مثل هذا النظام، يمكن أن تكون المعاملات و و وما يليها ذات معنى فقط إذا كانت أعدادًا حقيقية موجبة. تُوصف الحالات في الحواسيب الكمومية بسعات احتمالية يمكن أن تكون أعدادًا مركّبة.
التصريحات أعلاه صيغت بعناية شديدة لتكون صحيحة (كثير من التصريحات المشابهة ظاهريًا غير صحيحة). لكن هذه التصريحات الصحيحة ليست تفسيرًا لقوة الحوسبة الكمومية في تعلم الآلة. من جهة، أي تطبيق للحوسبة الكمومية على تعلم الآلة سيتضمن قياسات ولا يمكننا قياس كيوبت ليكون في حالات متعددة في آن واحد. يمكننا تحضير كيوبت في تراكب كـ لكن القياس سيعطي إما أو . لذا في حده الأدنى، هذه القصة عن زيادة الأبعاد ناقصة. علاوةً على ذلك، في سياق النوى، لا يمكن لزيادة الأبعاد في الحوسبة الكمومية أن تكون شرطًا كافيًا للقوة الحسابية على البدائل الكلاسيكية، إذ إن حُجب غاوس لانهائية الأبعاد. هناك دقائق هناك، في أن خرائط الميزات الغاوسية تُستخدم فقط مع "الحيلة النووية" التي تتجنب الحاجة إلى حساب متجه مرسوم لانهائي الأبعاد. لكن تبقى النقطة:
بُعدية عالية للحالات الكمومية المتشابكة ليست توازيًا أسيًا، وليست شرطًا كافيًا لزيادة القوة في تعلم الآلة.
في الدروس التالية، نقدّم سير عمل لدمج الدوائر الكمومية في مهام تعلم الآلة، ونفعل ذلك بهدف صريح هو تيسير استكشاف قوة الحوسبة الكمومية. لا يُطرح أي خريطة ميزات أو خوارزمية في هذه الدورة كمسار سريع نحو نتائج تعلم آلة أفضل للمسائل العامة، لأن خريطة الميزات أو الخوارزمية المطلوبة لذلك غير موجودة. بدلًا من ذلك، نقدّم مجموعة واسعة من الأدوات الكمومية لاستخدامها في استكشاف الحوسبة الكمومية المفيدة.
الإلغاء الكمومي
الإلغاء الكمومي (Dequantization) يُشير إلى استبدال خوارزمية كمومية معطاة بخوارزمية كلاسيكية تُؤدي أداءً مماثلًا لخوارزمية كمومية لمجموعة معينة من المهام، وعادةً يشمل ذلك قابلية التوسع. وفق بعض التعريفات، يجب أن تكون الخوارزمية الكلاسيكية أبطأ من الخوارزمية الكمومية بكثير حدود فقط.
عدد من خوارزميات تعلم الآلة الكمومي (QML) التي كان يُعتقد في البداية أنها توفر تسارعات كبيرة على الخوارزميات الكلاسيكية قد خضعت للإلغاء الكمومي في السنوات الأخيرة. أسفرت هذه العملية عن رؤى مهمة حول المزايا والقيود المحتملة للنهج الكمومية في تعلم الآلة.
أحد أبرز نتائج الإلغاء الكمومي جاء من عمل إيوين تانج على أنظمة التوصية. اكتشف تانج خوارزمية كلاسيكية يمكنها تنفيذ مهام التوصية بسرعات كان يُعتقد سابقًا أنها لا تتحقق إلا بالحواسيب الكمومية. طعن هذا الاكتشاف في افتراض أن الخوارزميات الكمومية تتمتع بميزة أسية لهذه المسألة. العمل الأحدث لـShin et al. ركّز على تحديد الشروط المتعلقة بإمكانية الإلغاء الكمومي لفئة دوال نموذج التعلم الآلي الكمومي التباديلي.
نهج شائع للإلغاء الكمومي (وإن لم يكن الحيلة الوحيدة) هو من خلال النظر في تكلفة تحميل البيانات. أي خوارزمية كمومية مطبَّقة على بيانات كلاسيكية ستتضمن خطوة يُشفَّر فيها البيانات الكلاسيكية في الحاسوب الكمومي. إذا افترضت خوارزمية كمومية نقطة بداية تكون فيها البيانات الكمومية متاحة مسبقًا، فإنه يُخفي فعليًا الوقت اللازم للتشفير. هناك سياقات يمكن فيها افتراض البيانات الكمومية بشكل معقول، لكن كثيرًا من التطبيقات ذات الاهتمام ستبدأ بالبيانات الكلاسيكية. أظهرت بعض حالات الإلغاء الكمومي أنه حين يُدرج وقت التشفير هذا، وحين يمكن تحقيق تحميل البيانات الكلاسيكية بكفاءة، لا تتفوق الخوارزمية الكمومية بعد ذلك على نظيرتها الكلاسيكية.
حتى لو لم يمكن إلغاء خوارزمية كميًا، هذا لا يعني أنها أكثر كفاءة أو قابلية للتوسع من جميع الخوارزميات الكلاسيكية. كمثال متطرف ومصطنع: تخيل خوارزمية لاختيار أكبر j عنصر من مجموعة بحجم k. يمكن كتابة خوارزمية كمومية تستخدم خوارزمية شور لتحليل كل عناصر k إلى عوامل أولية، ثم تحديد أكبر العناصر باستخدام العوامل الأولية. مثل هذه الخوارزمية على الأرجح لا يمكن إلغاؤها كميًا، لكنها أقل كفاءة بكثير من الخوارزميات الكلاسيكية لتحقيق نفس اختيار أكبر العناصر (وإن ليس جزء التحليل غير الضروري).
إثبات الوجود
في عام 2021، نشر باحثو IBM Quantum® يونتشاو ليو وسريناسان أروناتشالام وكريستان تيمي ورقة في Nature بعنوان A rigorous and robust quantum speed-up in supervised machine learning. واتساقًا مع التحفظات أعلاه، اختيرت مسألة تصنيف بعناية لهذا العمل تكون (1) معروفة بصعوبتها الكلاسيكية، و(2) مناسبة لخوارزميات كمومية لإظهار تسارع.
تتناول الورقة تصنيف البيانات استنادًا إلى اللوغاريتمات المنفصلة. نقتبس من الورقة: "لعدد أولي كبير ومولِّد لـ، يُعتقد على نطاق واسع أنه لا يمكن لأي خوارزمية كلاسيكية حساب للمدخل ، في وقت كثيري الحدود في ، عدد البتات اللازمة لتمثيل ." في المقابل، خوارزمية شور معروف أنها تحلّ مسألة اللوغاريتم المنفصل في وقت كثيري الحدود. يُلبّي هذا الاختيار من المسائل المعيارين أعلاه في آن واحد: الصعوبة الكلاسيكية (من غير المرجح إلغاؤها كميًا)، ومعروفة بمناسبتها للخوارزميات الكمومية.
من خلال هذا الاخت يار الحكيم لمسألة التصنيف، تمكّن المؤلفون من إظهار تسارع أسي باستخدام طرق النواة الكمومية (مُلخَّصة بإيجاز أدناه ومُناقَشة في دروس لاحقة) يكون شاملًا ومتينًا. هنا، "شامل" يشير إلى الافتراضات حول البدء بالبيانات الكلاسيكية؛ المؤلفون في هذه الحالة يدرجون وقت تشفير البيانات. هنا، "متين" يشير إلى أن البيانات المراد تصنيفها مفصولة بهامش واسع باستخدام الخوارزمية الكمومية، بحيث تكون نجاحات التصنيف متينة أمام الاعتبارات الواقعية كخطأ أخذ العينات المنتهي.
كل هذا يُجسِّد أن ثمة مسائل تمنح فيها النوى الكمومية تسارعًا أسيًا. لكن الوضع الراهن للعلم هو أن مثل هذه المسائل تُختار بناءً على ملاحظات أو مبررات نظرية تجعلها مناسبة للخوارزميات الكمومية. من غير الواقعي توقع تسارع كمومي لمهام تعلم الآلة التي تتقنها الحواسيب الكلاسيكية.
تحديد الحالات المثالية لاستكشاف الأداة الكمومية مسؤولية هائلة تقع على عاتق المتعلمين في هذه الدورة. وليست مهمة يمكن إنجازها في دورة كهذه. ذلك الاستكشاف مهمة لشبكة IBM Quantum بأسرها، المكوّنة من باحثين مثلكم. ستُعرض هذه الدورة سير عمل QML واستراتيجيات الترميز كي تتمكنوا من البدء في استكشاف الأداة الكمومية في مجال خبرتكم الموضوعاتية.
نأمل أن تكون هذه المقدمة قد أوضحت بعض الأمور حول تعلم الآلة الكمومي:
- يمكن للخوارزميات الكمومية تقديم تسارع أسي على الخوارزميات الكلاسيكية لمسائل محددة للغاية تكون صعبة كلاسيكيًا ومناسبة للخوارزميات الكمومية.
- بُعدية عالية للحالات المتشابكة في الحوسبة الكمومية مهمة، لكنها وحدها لا تكفي لاكتساب ميزة على الخوارزميات الكلاسيكية.
- إيجاد مسائل مناسبة للخوارزميات الكمومية مهمة بالغة الصعوبة، وستقع إلى حدٍّ بعيد على عاتق المتعلمين في هذه الدورة.
أسئلة للتحقق
ما الذي يجعل الحالات الكمومية مختلفة عن الحالات الكلاسيكية؟
الجواب:
كثير. والأبرز: المعاملات المركّبة، والتراكب مع نسخة واحدة. هناك اختلافات عديدة أخرى ستُناقش في دروس مستقبلية، منها التشابك والتداخل.
صحيح أم خاطئ؟ الحالات الكمومية المتشابكة بشدة تُتيح لنا حلّ معظم مسائل تعلم الآلة بكفاءة أكبر على حاسوب كمومي.
الجواب:
خاطئ. تُحلّ معظم مسائل تعلم الآلة بكفاءة عالية بالخوارزميات الكلاسيكية ومن غير المرجح أن تُقدّم الخوارزميات الكمومية أي تسارع جوهري. الهدف في QML هو إيجاد مجموعات بيانات ذات ميزات تُوصف جيدًا بالحالات الكمومية و/أو إيجاد رسوم لميزات البيانات تُحسِّن دقة النماذج.
أهداف التعلم في الدورة
من خلال إتمام هذه الدورة، يمكنك توقع بناء المهارات والكفاءات الأساسية التالية. سيكون المتعلمون قادرين على:
-
شرح ما هو QML وأين يتصل الكم بتعلم الآلة الكلاسيكي.
-
تطبيق مفردات الكم والمصطلحات الرئيسية على سير عمل ML.
-
تحديد المكونات الرئيسية لسير عمل QML (أنواع متنوعة).
-
تحديد أنواع مختلفة من QML والتمييز بينها.
-
تطبيق طرق النواة الكمومية ومُصنِّفات الكم التباديلية باستخدام أوليات Qiskit Runtime واتباع أنماط Qiskit.
-
تحديد مواضع QML الأكثر إثارة للاهتمام وتلك الأقل.
-
تكييف مسألة نموذجية مع مجموعة بياناتهم الخاصة.
-
الوعي بمسائل في QML مثل وقت التدريب والضوضاء وتراكم الأخطاء في قراءات متعددة الحالات.
-
تقديم توصيات حول مواضع QML التي قد تفيد مؤسستهم.
هيكل الدورة
تتكوّن هذه الدورة من عدة دروس. كل درس يحتوي على عدة أسئلة تحقق على مدار النص، لتتمكن من ممارسة مهارات جديدة أو اختبار فهمك أثناء المضي. هذه ليست إلزامية.
في نهاية الدورة، يوجد اختبار من 20 سؤالًا. يجب أن تحصل على 70٪ على الأقل في هذا الاختبار للحصول على شارة تعلم الآلة الكمومي عبر Credly. إذا حصلت على 70٪ على الأقل، ستُرسَل إليك شارتك تلقائيًا عبر البريد الإلكتروني بعد وقت قصير. يمكنك تقديم الاختبار مرتين فقط. بعد التقديم الأول، ستتاح لك فرصة للإجابة مرة أخرى على الأسئلة التي أخطأت فيها. بعد التقديم الثاني، يكون نتيجتك نهائية. اطّلع على الاختبار لمزيد من التفاصيل.
هيكل الدورة كما يلي:
- الدرس 1: مقدمة ونظرة عامة
- الدرس 2: مراجعة تعلم الآلة
- الدرس 3: ترميز البيانات
- الدرس 4: طرق النواة الكمومية وآلات المتجهات الداعمة
- الدرس 5: مُصنِّفات الكم التباديلية / الشبكات العصبية
- اختبار الشارة
شغّل أول كود QML لك
غالبًا ما يكون من المفيد رؤية إلى أين نتجه قبل تقسيم الموضوع إلى أجزاء والتعمق في الخلفية. الخلايا البرمجية أدناه تُنفِّذ مثالًا بسيطًا لطريقة النواة الكمومية. تحديدًا، يُحسَب عنصر مصفوفة نواة واحد. لا ينبغي أن يشعر المستخدمون الجدد على طرق النواة أو النوى الكمومية بالرهبة من هذا؛ إذ ستُخصَّص دروس متعددة في هذه الدورة لتشريح ما يجري بالضبط في هذه الخلايا.
بهذا الكود نقدّم أيضًا أنماط Qiskit: إطار للنهج تجاه الحوسبة الكمومية على نطاق الأداة. يتكوّن هذا الإطار من أربع خطوات عامة جدًا يمكن تطبيقها على معظم المسائل (وإن كانت في بعض سير العمل، قد تُكرَّر بعض الخطوات عدة مرات).
أنماط Qiskit:
- الخطوة 1: رسم المدخلات الكلاسيكية إلى مسألة كمومية
- الخطوة 2: تحسين المسألة للتنفيذ الكمومي
- الخطوة 3: التنفيذ باستخدام أوليات Qiskit Runtime
- الخطوة 4: التحليل / المعالجة اللاحقة
في الخلايا أدناه، نقدّم شرحًا موجزًا للخطوات المختلفة، يكفي لتجد الدرس المناسب لتعلم المزيد.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy pandas qiskit
# Import some qiskit packages required for setting up our quantum circuits.
from qiskit.circuit import Parameter, ParameterVector, QuantumCircuit
from qiskit.circuit.library import unitary_overlap
# Import StatevectorSampler as our sampler.
from qiskit.primitives import StatevectorSampler
# Step 1: Map classical inputs to a quantum problem:
# Start by getting some appropriate data. The data imported below consist of 128 rows or data points.
# Each row has 14 columns that correspond to data features, and a 15th column with a label (+/-1).
!wget https://raw.githubusercontent.com/qiskit-community/prototype-quantum-kernel-training/main/data/dataset_graph7.csv
# Import some required packages, and write a function to pull some training data out of the csv file you got above.
import pandas as pd
import numpy as np
def get_training_data():
"""Read the training data."""
df = pd.read_csv("dataset_graph7.csv", sep=",", header=None)
training_data = df.values[:20, :]
ind = np.argsort(training_data[:, -1])
X_train = training_data[ind][:, :-1]
return X_train
# Prepare training data
X_train = get_training_data()
# Empty kernel matrix
num_samples = np.shape(X_train)[0]
# Prepare feature map for computing overlap between two data points.
# This could be pre-built feature maps like ZZFeatureMap, or a custom quantum circuit, as shown here.
num_features = np.shape(X_train)[1]
num_qubits = int(num_features / 2)
entangler_map = [[0, 2], [3, 4], [2, 5], [1, 4], [2, 3], [4, 6]]
fm = QuantumCircuit(num_qubits)
training_param = Parameter("θ")
feature_params = ParameterVector("x", num_qubits * 2)
fm.ry(training_param, fm.qubits)
for cz in entangler_map:
fm.cz(cz[0], cz[1])
for i in range(num_qubits):
fm.rz(-2 * feature_params[2 * i + 1], i)
fm.rx(-2 * feature_params[2 * i], i)
# Pick two data points, here 14 and 19, and assign the features to the circuits as parameters.
x1 = 14
x2 = 19
unitary1 = fm.assign_parameters(list(X_train[x1]) + [np.pi / 2])
unitary2 = fm.assign_parameters(list(X_train[x2]) + [np.pi / 2])
# Create the overlap circuit
overlap_circ = unitary_overlap(unitary1, unitary2)
overlap_circ.measure_all()
overlap_circ.draw("mpl", scale=0.6, style="iqp")
# Step 2: Optimize problem for quantum execution
# Use Qiskit Runtime service to get the least busy backend for running on real quantum computers.
# from qiskit_ibm_runtime import QiskitRuntimeService
# service = QiskitRuntimeService(channel="ibm_quantum")
# backend = service.least_busy(
# operational=True, simulator=False, min_num_qubits=overlap_circ.num_qubits
# )
# Transpile the circuits optimally for the chosen backend using a pass manager.
# from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
# pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
# overlap_ibm = pm.run(overlap_circ)
# Step 3: Execute using Qiskit Runtime Primitives
# Specify the number of shots to use.
num_shots = 10_000
## Evaluate the problem using statevector-based primitives from Qiskit
sampler = StatevectorSampler()
counts = (
sampler.run([overlap_circ], shots=num_shots).result()[0].data.meas.get_int_counts()
)
# Step 4: Analyze and post-processing
# Find the probability of 0.
counts.get(0, 0.0) / num_shots
--2025-05-09 10:04:28-- https://raw.githubusercontent.com/qiskit-community/prototype-quantum-kernel-training/main/data/dataset_graph7.csv
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.109.133, 185.199.108.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 49405 (48K) [text/plain]
Saving to: ‘dataset_graph7.csv.2’
dataset_graph7.csv. 100%[===================>] 48.25K --.-KB/s in 0.03s
2025-05-09 10:04:29 (1.37 MB/s) - ‘dataset_graph7.csv.2’ saved [49405/49405]
0.8199
رغم أنك لا تحتاج إلى فهم جميع الخطوات أعلاه، يجب أن نحاول فهم المخرج لنعرف لماذا نفعل هذا. كثير من العمليات في تعلم الآلة تستخدم الحواصل الداخلية كجزء من التصنيف الثنائي (من بين أشياء أخرى). ميكانيكا الكم لها ارتباط واضح بهذا، إذ تُعطى احتمالات قياس حالات مختلفة بالحاصل الداخلي مع الحالة الأولية عبر الحاصل الداخلي: . إذن ما فعلناه أعلاه هو إنشاء دائرة كمومية تحتوي ميزات نقطتَي بياناتنا، وترسمهما إلى فضاء متجه كمومي، ثم تُقدِّر الحاصل الداخلي في ذلك الفضاء عبر إجراء قياسات. هذا مثال على تقدير النواة الكمومية. لاحظ أننا نفّذنا هذه العملية فقط لنقطتَي بيانات (الـ14 والـ19). لو فعلنا هذا لجميع الأزواج الممكنة، يمكننا أخذ المخرج (في هذه الحالة العدد 0.821...) وتعبئة مصفوفة من النتائج تصف التداخل بين جميع النقاط في مجموعة بيانات التدريب. هذه هي "مصفوفة النواة".
اختبر فهمك
اقرأ السؤال أدناه، فكّر في إجابتك، ثم انقر على المثلث للكشف عن الحل.
في العملية أعلاه، حسبنا عنصر مصفوفة نواة للنقطتين الـ14 والـ19 من البيانات. ما القيمة التي يجب أن نحصل عليها إذا استخدمنا نفس نقطة البيانات مرتين، هنا (مثلًا الـ14 مع الـ14 مجددًا)؟ بعبارة أخرى، ما يجب أن تكون عليه العناصر القطرية في مصفوفة النواة؟ أجب عن هذا السؤال في غياب الضوضاء، مع الإشارة إلى أن انحرافات عن إجابتك ممكنة في وجود الضوضاء.
الجواب:
يجب أن تكون القيم القطرية 1.0. يجب أن تحسب هذه العملية الحاصل الداخلي الطبيعي لمتجه مع نفسه، وهو يجب أن يكون دائمًا واحدًا.