ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

TensorFlow تصميم الكم

تم تصميم TensorFlow Quantum (TFQ) لمشاكل التعلم الآلي الكمومي في عصر NISQ. إنه يجلب بدائيات الحوسبة الكمومية - مثل بناء الدوائر الكمومية - إلى نظام TensorFlow البيئي. تستخدم النماذج والعمليات التي تم إنشاؤها باستخدام TensorFlow هذه البدائية لإنشاء أنظمة هجينة كلاسيكية قوية.

باستخدام الباحثين TFQ ، يمكن للباحثين إنشاء رسم TensorFlow باستخدام مجموعة بيانات كمومية ، ونموذج كمومي ، ومعلمات تحكم كلاسيكية. يتم تمثيلها جميعًا كموترات في رسم بياني حسابي واحد. يتم الحصول على نتائج القياسات الكمية - التي تؤدي إلى الأحداث الاحتمالية الكلاسيكية - بواسطة عمليات TensorFlow. يتم التدريب باستخدام Keras API القياسي. تتيح وحدة tfq.datasets للباحثين تجربة مجموعات بيانات كمية جديدة ومثيرة للاهتمام.

سيرك

Cirq هو إطار عمل للبرمجة الكمية من Google. يوفر جميع العمليات الأساسية - مثل الكوبت والبوابات والدوائر والقياس - لإنشاء وتعديل واستدعاء الدوائر الكمومية على كمبيوتر كمومي أو كمبيوتر كمومي محاكاة. يستخدم TensorFlow Quantum بدائل Cirq هذه لتوسيع TensorFlow من أجل حساب الدُفعة وبناء النموذج وحساب التدرج. لتكون فعالة مع TensorFlow Quantum ، من الجيد أن تكون فعالاً مع Cirq.

TensorFlow البدائية الكم

يقوم TensorFlow Quantum بتنفيذ المكونات اللازمة لدمج TensorFlow مع أجهزة الحوسبة الكمومية. تحقيقا لهذه الغاية ، يقدم TFQ اثنين من أنواع البيانات البدائية:

  • الدائرة الكمومية : تمثل الدوائر الكمية المحددة Cirq ( cirq.Circuit ) داخل TensorFlow. قم بإنشاء مجموعات من دوائر ذات أحجام مختلفة ، تشبه مجموعات من نقاط بيانات مختلفة ذات قيمة حقيقية.
  • مجموع باولي : يمثل مجموعات خطية من منتجات الموتر cirq.PauliSum باولي المحددة في Cirq ( cirq.PauliSum ). مثل الدوائر ، قم بإنشاء مجموعات من العوامل ذات الأحجام المختلفة.

العمليات الأساسية

باستخدام بدائل الكم الكمية داخل tf.Tensor . 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 Quantum أخذ العينات والتوقعات وحساب الحالة للمطورين باستخدام واجهة tf.keras.layers.Layer . من الملائم إنشاء طبقة دائرة لمعلمات التحكم الكلاسيكية أو لعمليات القراءة. بالإضافة إلى ذلك ، يمكنك إنشاء طبقة بدرجة عالية من التعقيد تدعم دارة الدُفعة ، وقيمة معلمة التحكم في الدُفعة ، وتنفيذ عمليات قراءة الدُفعة. انظر tfq.layers.Sample للحصول على مثال.

المفاضلات

على عكس العديد من عمليات TensorFlow ، لا تحتوي المواد القابلة للرصد في الدوائر الكمومية على صيغ للتدرجات التي يسهل حسابها نسبيًا. وذلك لأن الكمبيوتر الكلاسيكي يمكنه فقط قراءة عينات من الدوائر التي يتم تشغيلها على جهاز كمبيوتر كمومي.

لحل هذه المشكلة ، توفر وحدة tfq.differentiators العديد من تقنيات التمايز القياسية. يمكن للمستخدمين أيضًا تحديد طريقتهم الخاصة لحساب التدرجات - في كل من إعداد "العالم الحقيقي" لحساب التوقع المستند إلى العينة ، والعالم التحليلي الدقيق. غالبًا ما تكون الطرق مثل الاختلاف المحدود هي الأسرع (وقت ساعة الحائط) في بيئة تحليلية / دقيقة. بينما أبطأ (وقت ساعة الحائط) ، إلا أن الطرق الأكثر عملية مثل تغيير المعلمة أو الأساليب العشوائية غالبًا ما تكون أكثر فعالية. A tfq.differentiators.Differentiator مثيل وتعلق على المرجع القائمة مع generate_differentiable_op ، أو تمريرها إلى منشئ tfq.layers.Expectation أو tfq.layers.SampledExpectation . لتنفيذ تفاضل مخصص ، ترث من فئة tfq.differentiators.Differentiator . لتحديد عملية التدرج لأخذ العينات أو حساب متجه الحالة ، استخدم tf.custom_gradient .

مجموعات البيانات

مع نمو مجال الحوسبة الكمومية ، ستنشأ المزيد من البيانات الكمية ومجموعات النماذج ، مما يجعل المقارنة المنظمة أكثر صعوبة. tfq.datasets وحدة tfq.datasets كمصدر بيانات لمهام التعلم الآلي الكمومي. يضمن مقارنات منظمة للنموذج والأداء.

ومن المؤمل أنه مع مساهمات المجتمع الكبيرة ، tfq.datasets وحدة tfq.datasets لتمكين البحث الأكثر شفافية tfq.datasets للتكرار. المشاكل المنظمة بعناية في: التحكم الكمي ، والمحاكاة الفيرميونية ، والتصنيف بالقرب من التحولات الطورية ، والاستشعار الكمي ، وما إلى ذلك كلها مرشحات رائعة tfq.datasets إلى tfq.datasets . لاقتراح مجموعة بيانات جديدة ، افتح قضية GitHub .