เขียนร่วมกับ Mark Fingerhuth

เราจะใช้คอมพิวเตอร์ควอนตัมเพื่อแก้ปัญหาในการเรียนรู้ของเครื่องได้อย่างไร นักวิจัย ซึ่งส่วนใหญ่เป็นนักฟิสิกส์ เริ่มถามคำถามนี้มากขึ้นในช่วงสองสามปีที่ผ่านมา คำตอบแรกๆ บางข้อกล่าวถึงปัญหาในลักษณะที่มักทำกันในการคำนวณควอนตัม: ใช้อัลกอริธึมการเรียนรู้ของเครื่องแบบคลาสสิกและค้นหาอัลกอริธึมควอนตัมที่คำนวณโซลูชันเดียวกันได้เร็วขึ้น (และสำหรับผู้ที่ไม่คุ้นเคยกับความซับซ้อนในการคำนวณ "เร็วขึ้น" ในบริบทนี้ไม่ได้หมายความว่า "เร็วขึ้นอย่างแน่นอน" แต่ด้วยประสิทธิภาพที่ดีขึ้นสำหรับขนาดปัญหาที่เพิ่มขึ้น เช่น ข้อมูลมากขึ้น)

ในรายงานของเรา “การใช้ตัวแยกประเภทตามระยะทางพร้อมวงจรรบกวน” (Schuld, Fingerhuth และ Petruccione 2017) ซึ่งได้รับรางวัลรองชนะเลิศในงาน IBM Q Best Paper Award เราได้พลิกแนวทางนี้ เราจะสามารถสร้างโมเดลแมชชีนเลิร์นนิงง่ายๆ หรือที่เรียกว่าลักษณนาม ซึ่งสามารถนำไปใช้โดยวงจรควอนตัมขนาดเล็กได้หรือไม่ โดยสรุป ตัวแยกประเภทคือโมเดล ฟังก์ชัน หรืออัลกอริธึมที่อนุมานจากจุดข้อมูลตัวอย่าง {(x, y)} ของอินพุต x และป้ายกำกับคลาส y เพื่อเดา y สำหรับอินพุตที่มองไม่เห็น x

ความคิด

วงจรการจำแนกประเภทควอนตัมที่เราคิดขึ้นมานั้นสั้นมากจริงๆ โดยประกอบด้วยเกท Hadamard เดี่ยวและการวัดควิบิตเดี่ยวสองตัวที่กระทำบน ancilla และ คลาส qubit ที่กำหนด ( การวัดผลอย่างหนึ่งเกี่ยวข้องกับการหลังการคัดเลือก แต่มีอัตราความสำเร็จที่สมเหตุสมผลในทางปฏิบัติ)

การเตรียมข้อมูล

เพื่อให้ตัวแยกประเภทนี้ทำสิ่งที่มีประโยชน์ อันดับแรกเราต้องเข้ารหัสข้อมูลเป็นแอมพลิจูดของสถานะควอนตัมโดยใช้วงจร U_data ในความเป็นจริง เราจำเป็นต้องทำให้ข้อมูลเป็นมาตรฐานก่อน เพื่อให้สามารถแสดงเป็นเวกเตอร์บนทรงกลม Bloch ที่มีมิติสูงได้ รูทีนควอนตัมเพื่อเข้ารหัสข้อมูลในแอมพลิจูด หรือที่เรียกว่ารูทีน การเตรียมสถานะตามอำเภอใจ เป็นที่รู้กันว่าทำได้โดยใช้รันไทม์ที่เป็นเส้นตรงในขนาดข้อมูล และนี่ถือเป็นวิธีที่ดีที่สุดที่อัลกอริทึมของเราสามารถทำได้ในแง่ของ ของรันไทม์ เนื่องจากข้อมูลเป็นอินพุตของปัญหา

ลักษณนาม

เมื่อข้อมูลได้รับการจัดเตรียมแล้ว วงจรประตูเดียวสามารถใช้ตัวแยกประเภทที่เฉพาะเจาะจงมาก ซึ่งจะคำนวณค่าเฉลี่ยถ่วงน้ำหนักของป้ายกำกับคลาสของอินพุตการฝึกทั้งหมด น้ำหนักจะสูงขึ้นเมื่ออินพุตอยู่ใกล้อินพุตใหม่ที่เราต้องการจัดประเภท

ในเวอร์ชันที่ง่ายที่สุด “ความใกล้ชิด” วัดด้วยระยะทางแบบยุคลิดกำลังสอง แต่วงจรการเตรียมสถานะที่แตกต่างกัน U_data สามารถเปลี่ยนการวัดความใกล้ชิดได้ สิ่งนี้คล้ายกับ "เคล็ดลับเคอร์เนล" ในการเรียนรู้ของเครื่องแบบคลาสสิก

การนำไปปฏิบัติ

เราต้องการเรียกใช้ตัวอย่างบน IBM Quantum Experience ซึ่งในขณะนั้นจำกัดไว้เพียงเครื่อง 5 คิวบิต สิ่งนี้กลับกลายเป็นว่าไม่ง่ายอย่างที่เราคิด เนื่องจากแม้แต่ในตัวอย่าง 2 มิติ วงจรการเตรียมสถานะซึ่งโดยหลักการแล้วประกอบด้วยประตูจำนวนหนึ่งก็ถูกเสียงกลืนหายไปอย่างง่ายดาย สิ่งที่ Mark คิดขึ้นมาคือวงจรที่สร้างขึ้นด้วยมือสำหรับเวกเตอร์อินพุตที่เลือกไว้สองตัวเพื่อทำการทดลองพิสูจน์หลักการ

แม้จะมีอัลกอริธึมที่สร้างขึ้นมาอย่างพิถีพิถันตามทฤษฎีแล้ว วงจรก็เตรียมสถานะต่างๆ ด้วยความแม่นยำต่ำ นอกเหนือจากข้อผิดพลาดของฮาร์ดแวร์ ดังที่คุณเห็นในตารางทางด้านซ้าย ค่าที่แน่นอน (เครื่องหมายดอกจัน) และผลลัพธ์ที่จำลองด้วยการเตรียมสถานะที่มีความแม่นยำต่ำ (สามเหลี่ยม) ซึ่งยังค่อนข้างห่างไกลจากผลลัพธ์ที่สร้างโดยฮาร์ดแวร์ (หมายเลขบนสุดในแต่ละเซลล์)

โดยรวมแล้ว ดูเหมือนว่าแม้แต่ตัวแยกประเภทที่เล็กที่สุดในโลก เราก็ต้องการเวลาเพิ่มอีกเล็กน้อยก่อนที่จะทำ "ตัวเลขฮาร์ดแวร์" ได้ ในทางกลับกัน สิ่งต่างๆ กำลังพัฒนาอย่างรวดเร็ว ดังนั้นโปรดคอยติดตาม!

หากคุณต้องการเจาะลึกรายละเอียดทางเทคนิคอีกสักหน่อย คุณอาจลองตัวอย่างนี้:

ตัวอย่าง

สมมติว่าคุณมีตัวอย่าง x¹=(0,-1) ของคลาส y¹=0 และตัวอย่าง x²=(-0.789, -0.615) ของคลาส y²=1 และคุณต้องการทราบว่าคลาสใดในสองคลาสที่เป็นตัวอย่างข้อมูลใหม่ x=(-0.948, 0.318) เป็นของ

เมื่ออ้างถึงรายงานเพื่อดูรายละเอียด สถานะที่จะเตรียมด้วย U_data จะเป็นสัดส่วนกับสิ่งนี้:

ดังที่คุณอาจเห็น สำเนาอินพุตใหม่สองชุดได้รับการเข้ารหัสในครึ่งบนของการซ้อนทับที่ทำเครื่องหมายโดย ancilla ที่เป็น 0 ข้อมูลการฝึกอบรมจะถูกเข้ารหัสลงในครึ่งล่าง และควิบิตของคลาสที่พัวพันกับจุดข้อมูลแต่ละจุดจะถูกตั้งค่าเป็น คลาสที่จุดข้อมูลเป็นของ คิวบิตสองตัวในรีจิสเตอร์กลางเพียงสร้างดัชนีรายการของเวกเตอร์ข้อมูล

ตอนนี้ ประตูฮาดามาร์ดรบกวนแอมพลิจูด ในการเข้ารหัสของเรา หมายความว่าจะคำนวณผลรวมและความแตกต่างของจุดข้อมูล

การวัดภายหลังแบบเลือก “ฆ่า” ครึ่งหนึ่งของแอมพลิจูด

ความน่าจะเป็นของตัวแยกประเภทในการทำนาย 1 หมายถึงความน่าจะเป็นในการวัดคลาสควิบิตในสถานะ |1⟩ ซึ่งเป็นสัดส่วนกับผลรวมของแอมพลิจูดทั้งสอง เนื่องจากการทำให้ข้อมูลเป็นมาตรฐาน สิ่งนี้จะชั่งน้ำหนักจุดการฝึกตามระยะทางกำลังสอง ซึ่งหมายความว่าจุดการฝึกแบบปิดของคลาส 1 จะมีส่วนอย่างมากต่อความน่าจะเป็นในการวัด |1⟩ ในขณะที่จุดที่อยู่ห่างออกไปสามารถมีส่วนได้น้อยเท่านั้น .