عنوان: روش یادگیری ماشین برای آماده سازی حالت و سنتز دروازه در کامپیوترهای کوانتومی فوتونیک
در این پروژه نشان میدهیم که چگونه میتوان از تکنیکهای یادگیری ماشین و بهینهسازی برای یافتن مدارهای کامپیوترهای کوانتومی فوتونیک استفاده کرد که تبدیل دلخواه بین حالتهای ورودی و خروجی را انجام میدهند. در ساده ترین حالت یک حالت ورودی، روش ما مدارهایی را برای تهیه یک حالت کوانتومی مورد نظر کشف می کند. در مورد کلیتر چندین رابطه ورودی و خروجی، روش ما مدارهایی را به دست میآورد که عمل تبدیل واحد هدف را بازتولید میکنند. ما از یک شبکه عصبی کوانتومی متغیر پیوسته به عنوان معماری مدار استفاده می کنیم. شبکه از چندین لایه گیت نوری با پارامترهای متغیر تشکیل شده است که با اعمال تمایز خودکار با استفاده از پسزمینه TensorFlow شبیهساز کامپیوتر کوانتومی فوتونی Strawberry Fields بهینهسازی شدهاند. ما قدرت و تطبیق پذیری روش های خود را با یادگیری نحوه استفاده از مدارهای با عمق کوتاه برای سنتز فوتون های تک، حالت های گوتسمن-کیتایف-پیش مهارت، حالت های NOON، گیت های فاز مکعبی، واحدهای تصادفی، برهمکنش های کراس کر، و همچنین چندین مورد دیگر نشان می دهیم. حالتها و دروازه ها به طور معمول با استفاده از مدارهای با عمق کوتاه، که معمولاً از چند صد دروازه تشکیل می شوند، وفاداری بالایی بالای %99 بدست آوردند. مدارها به طور خودکار با تعیین وضعیت یا گیت هدف و اجرای الگوریتم بهینه سازی به دست می آیند.
فهرست
مقاله بیس (2019)
state_learner.py: یک اسکریپت پایتون برای خودکار کردن یادگیری حالت کوانتومی با استفاده از مدارهای کوانتومی متغیر پیوسته (CV). به سادگی حالت هدف یک یا دو حالته خود را به همراه سایر هایپرپارامترها مشخص کنید و این اسکریپت به طور خودکار مدار کوانتومی متغیر را ساخته و بهینه می کند.
gate_synthesis.py: یک اسکریپت پایتون برای خودکارسازی سنتز گیت کوانتومی با استفاده از مدارهای کوانتومی متغیر پیوسته (CV). به سادگی واحد هدف یک یا دو حالته خود را به همراه سایر فراپارامترها مشخص کنید و این اسکریپت به طور خودکار مدار کوانتومی متغیر را ساخته و بهینه می کند.
learner
: یک ماژول پایتون حاوی فایلهای پایتون قابل واردات زیر است:
states.py: توابعی برای ایجاد حالت های تحلیل شده در مقاله.
gates.py: توابعی برای ایجاد حالت های تحلیل شده در مقاله.
plots.py: توابعی برای تولید نمودارها و تجسم ها در مقاله.
circuits.py: توابعی برای ساخت مدارهای متغیر یک حالته و دو حالته همانطور که در مقاله شبکه های عصبی کوانتومی متغیر پیوسته توضیح داده شده است.
نوتبوکهای Jupyter: دو نوتبوک Jupyter نیز ارائه میشود، StateLearning.ipynb و GateSynthesis.ipynb که به ترتیب فرآیند یادگیری حالت و سنتز دروازه را طی میکنند.
نتایج و داده های ارائه شده در arXiv:1807.10781: شامل دو پوشه فرعی است. gate_results و state_results، هر کدام با فایلهای NumPy npz حاوی پارامترهای هایپرپارامترها و مدارهای گیتهای سنتز شده و حالتهای آموختهشده ارائهشده در arXiv:1807.10781. برای اطلاعات بیشتر در مورد داده های موجود به این پوشه مراجعه کنید.
الزامات
برای ساخت و بهینه سازی مدارهای کوانتومی متغیر، این اسکریپت ها و نوت بوک ها از باطن TensorFlow از Strawberry Fields استفاده می کنند. علاوه بر این، matplotlib برای تولید نمودارهای خروجی مورد نیاز است و OpenFermion برای ساخت واحدهای دروازه هدف استفاده می شود.
استفاده از اسکریپت ها
برای استفاده از اسکریپتها، کافی است هایپرپارامترها را تنظیم کنید – یا با تغییر پارامترهای پیشفرض در خود فایل، یا ارسال آرگومانهای خط فرمان مربوطه – و سپس اسکریپت را با استفاده از Python 3 اجرا کنید:
python3 state_learner.py
خروجیهای شبیهسازیها در دایرکتوری out_dir/simulation_ID، با تنظیم out_dir توسط دیکشنری hyperparameter ذخیره میشوند و simulation_ID بهطور خودکار بر اساس نام شبیهسازی تعیین میشود.
پس از هر بهینهسازی، نمودارها و تجسمهایی از وضعیت/دروازه هدف و آموخته شده و همچنین یک فایل چند آرایهای NumPy simulation_ID.npz ایجاد میشود. این فایل شامل تمام فراپارامترهایی است که شبیهسازی را مشخص میکنند، و همچنین نتایج – از جمله وضعیت/دروازه هدف و آموختهشده، و پارامترهای دروازه مدار متغیر بهینهشده.
برای دسترسی به داده های ذخیره شده، فایل را می توان با استفاده از NumPy بارگیری کرد:
results = np.load('simulation_ID.npz')
سپس از طریق کلید مربوطه می توان به فراپارامترها و نتایج منفرد دسترسی پیدا کرد. به عنوان مثال، برای استخراج حالت آموخته شده، و همچنین فهرستی از مقادیر فشار لایه مدار متغیر:
learnt_state = results['learnt_state'] squeezing = results['sq_r']
برای فهرستی از تمام کلیدهای موجود، به سادگی اجرا کنید print(results.keys())
.
وضعیت فراپارامترهای یادگیرنده
هایپرپارامترهای زیر را می توان برای اسکریپت تنظیم کرد state_learner.py
:
هایپرپارامتر | آرگومان خط فرمان | توصیف |
---|---|---|
name |
-n /--name |
نام شبیه سازی |
out_dir |
-o /--out-dir |
دایرکتوری خروجی برای ذخیره نتایج شبیه سازی |
target_state_fn |
n/a | تابعی برای ایجاد حالت هدف برای بهینه سازی. این تابع میتواند یک لیست اختیاری از پارامترهای حالت را به همراه cutoff آرگومان کلیدواژه مورد نیاز که برش پایه Fock را تعیین میکند، بپذیرد. تابع باید یک آرایه NumPy با طول [cutoff] برای حالتهای حالت تک، و طول [cutoff^2] برای دو حالت حالت برگرداند. |
state_params |
-p /--state-params |
فرهنگ لغت اختیاری پارامترهای حالت برای انتقال به تابع حالت هدف، به عنوان مثال {“N”: 3}. |
cutoff |
-c /--cutoff |
شبیه سازی برش پایه Fock. |
depth |
-d /--depth |
تعداد لایه ها در مدار کوانتومی متغیر. |
reps |
-r /--reps |
تعداد مراحل بهینه سازی برای انجام. |
active_sd |
n/a | انحراف استاندارد پارامترهای دروازه بدون حفظ فوتون اولیه در مدار کوانتومی متغیر. |
passive_sd |
n/a | انحراف استاندارد پارامترهای دروازه حفظ فوتون اولیه در مدار کوانتومی متغیر. |
تابع حالت هدف را می توان به صورت دستی در پایتون تعریف کرد و به فرهنگ لغت هایپرپارامترها اضافه کرد یا از فایل Learners/states.py وارد کرد. پس از تکمیل بهینه سازی، اسکریپت یادگیری حالت به طور خودکار نمودارهای زیر را ایجاد می کند:
- تابع هزینه در مقابل مرحله بهینه سازی
- توابع ویگنر حالت هدف و حالت آموخته شده (فقط برای حالت های یک حالت)
- توابع موج حالت هدف و حالت آموخته شده.
فراپارامترهای سنتز گیت
هایپرپارامترهای زیر را می توان برای اسکریپت تنظیم کرد
هایپرپارامتر | آرگومان خط فرمان | توصیف |
---|---|---|
name |
-n /--name |
نام شبیه سازی |
out_dir |
-o /--out-dir |
دایرکتوری خروجی برای ذخیره نتایج شبیه سازی |
target_unitary_fn |
n/a | تابعی برای تولید واحد هدف برای سنتز. این تابع میتواند فهرستی اختیاری از پارامترهای گیت را به همراه cutoff آرگومان کلیدواژه مورد نیاز که برش پایه Fock را تعیین میکند، بپذیرد. تابع باید یک آرایه NumPy با اندازه [cutoff, cutoff] برای واحدهای حالت تک و اندازه [cutoff^2، cutoff^2] برای دو حالت واحد برگرداند. |
target_params |
-p /--target-params |
فرهنگ لغت اختیاری پارامترهای دروازه برای انتقال به تابع واحد هدف، به عنوان مثال {"gamma": 0.01} . |
cutoff |
-c /--cutoff |
شبیه سازی برش پایه Fock. |
gate_cutoff |
-g /--gate-cutoff |
فضای فرعی d بعدی که واحد هدف در آن عمل می کند. مقدار cutoff دروازه باید کمتر یا مساوی با قطع شبیه سازی باشد. |
depth |
-d /--depth |
تعداد لایه ها در مدار کوانتومی متغیر. |
reps |
-r /--reps |
تعداد مراحل بهینه سازی برای انجام. |
active_sd |
n/a | انحراف استاندارد پارامترهای دروازه بدون حفظ فوتون اولیه در مدار کوانتومی متغیر. |
passive_sd |
n/a | انحراف استاندارد پارامترهای دروازه حفظ فوتون اولیه در مدار کوانتومی متغیر. |
maps_outside |
n/a | اگر واحد هدف، حالت های Fock را در زیرفضای d بعدی مشخص شده توسط گیت بر روی حالت های Fock خارج از زیرفضای d بعدی، روی True تنظیم کنید. اگر مطمئن نیستید، روی True تنظیم کنید. |
تابع واحد هدف را می توان به صورت دستی در پایتون تعریف کرد و به فرهنگ لغت هایپرپارامترها اضافه کرد یا از فایل Learners/gates.py وارد کرد. پس از تکمیل بهینه سازی، اسکریپت سنتز گیت به طور خودکار وفاداری فرآیند و میانگین وفاداری دو واحد را محاسبه می کند و نمودارهای زیر را ایجاد می کند:
تابع هزینه در مقابل مرحله بهینه سازی
- توابع ویگنر واحد هدف و واحد آموخته شده در حالت برهم نهی برابر اعمال می شود (فقط برای حالت های یک حالت)
- توابع موج واحد هدف و واحد آموخته شده در حالت برهم نهی برابر اعمال می شود (فقط برای دو حالت حالت)
- نمودارهای ماتریسی از عناصر واقعی و خیالی واحد هدف و واحد آموخته شده.
پروژه مشابه دارید؟
برای ثبت سفارش در سیمیا می توانید از طریق اپلیکیشن سیمیا، یا فرم ثبت سفارش در سایت اقدام کرده و یا از طریق ایمیل، واتساپ، تلگرام و اینستاگرام اقدام نمایید.
اپلیکیشن سیمیا را از بازار و مایکت دانلود کنید.
سریع ترین راه پاسخگویی سیمیا، واتساپ می باشد. لینک واتساپ، اینستاگرام و تلگرام در پایین سایت وجود دارد.
نشانی ایمیل سیمیا simiya_ht@yahoo.com می باشد.
از برقراری تماس برای هماهنگی پروژه خودداری کنید، حجم بالای سفارشات به ما اجازه نمی دهد تا از طریق تلفن پاسخگوی شما عزیزان باشیم، حتما درخواست خود را به صورت مکتوب و از طریق یکی از راه های ذکر شده فوق ارسال نمایید، درخواست خود را به طور کامل و با تمام فایل ها و توضیحات لازم ارسال نمایید تا مدت زمان بررسی آن به حداقل برسد. پس از تعیین کارشناس، در اسرع وقت به شما پاسخ می دهیم.
نقد و بررسیها
هیچ دیدگاهی برای این محصول نوشته نشده است.