ขอแนะนำ Joy Vazirani: การแสดงข้อความด้วยคอมพิวเตอร์ควอนตัม

ขอแนะนำ Joy Vazirani: การแสดงข้อความด้วยคอมพิวเตอร์ควอนตัม

เครดิตฟรี

ในเดือนกันยายนของปี 1970 เมื่อ 50 ปีก่อนในเดือนนี้การสร้างภาพทางวิทยาศาสตร์ที่สำคัญมากถูกตีพิมพ์โดยฮาโรลด์ D. หัตถกรรม: ภาพที่ปรากฎข้อมูลจากพัลซาร์วิทยุครั้งแรกที่รู้จักกันในชื่อซีพี 1919 สัญญาณนี้มีความสำคัญด้วยเหตุผลหลายประการ รวมถึงความจริงที่ว่าผู้คนคิดว่ามันเป็นสัญญาณจากต่างดาวในตอนแรก แต่สำหรับฉัน ความสำคัญของภาพ CP 1919 คือการใช้งานในอาร์ตเวิร์กอัลบั้มสำหรับUnknown Pleasuresของ Joy Division ในที่สุด มันเป็นหนึ่งในการปรับข้อมูลทางวิทยาศาสตร์ที่สวยงามและเป็นที่รู้จักมากที่สุด

สล็อต

เพื่อเป็นเกียรติแก่มรดกนั้น ฉันสร้างภาพขึ้นใหม่ แต่แทนที่จะใช้ข้อมูลพัลซาร์ ฉันใช้ข้อมูลจากคอมพิวเตอร์ควอนตัม ลองใช้เว็บแอปที่นี่และอ่านต่อเพื่อทำความเข้าใจวิธีใช้คอมพิวเตอร์ควอนตัมเพื่อสร้างภาพที่คล้ายคลึงกันของคุณเอง
ขั้นแรก มาพูดคุยกันเล็กน้อยเกี่ยวกับวิธีการทำงานของคอมพิวเตอร์ควอนตัม ฉันจะข้ามพื้นฐานบางอย่าง เนื่องจากพวกเขาได้รับการอธิบายหลายครั้งโดยผู้ที่มีความรู้มากกว่าฉัน
สำหรับจุดประสงค์ของเราที่นี่ ส่วนสำคัญคือคอมพิวเตอร์ควอนตัมต่างจากคอมพิวเตอร์ทั่วไป (หรือคลาสสิก) ตรงที่ใช้ผลกระทบของการรบกวน ซึ่งเป็นพฤติกรรมที่พบเฉพาะในฟิสิกส์ควอนตัมซึ่งลักษณะคล้ายคลื่นของสสารทำให้สถานะบางอย่างของระบบควอนตัมมีมากขึ้น มีโอกาสเกิดขึ้นและโอกาสอื่นๆ น้อยลงในการค้นหาผลลัพธ์ไปยังอัลกอริทึมในขั้นตอนที่น้อยลง คอมพิวเตอร์เหล่านี้จัดการสถานะควอนตัมที่ละเอียดอ่อนซึ่งมีข้อผิดพลาดมากมายและอาจไม่ได้รับคำตอบที่ถูกต้องตลอดเวลา ดังนั้นเราจึงเรียกใช้อัลกอริทึมซ้ำแล้วซ้ำอีกเพื่อขยายคำตอบที่ถูกต้อง ตัวอย่างเช่น ผลลัพธ์ทั่วไปจากคอมพิวเตอร์ควอนตัมจะมีลักษณะดังนี้
ไม่ว่าคอมพิวเตอร์ควอนตัมจะพยายามคำนวณอะไร เราจะเห็นได้ว่าคำตอบที่ถูกต้องคือเสาสูงที่อยู่ตรงกลาง แถบเล็กๆ อื่นๆ ทั้งหมดในฮิสโตแกรมของเรานั้นเป็นสัญญาณรบกวนที่เป็นผล คอมพิวเตอร์ควอนตัมในปัจจุบันไม่สมบูรณ์แบบ ผลลัพธ์ของเราจึงอาจมีเสียงรบกวน แต่ในกรณีนี้ คำตอบที่ถูกต้องยังคงค่อนข้างชัดเจน สำหรับการสร้างภาพ ฉันคิดว่าสัญญาณรบกวนนั้นสวยงามและเสริมเข้ากับเอฟเฟกต์สุดท้าย เมื่อคอมพิวเตอร์ควอนตัมสามารถทนต่อความผิดพลาดได้อย่างเต็มที่ การสร้างภาพข้อมูลนี้จะน่าเบื่อมากขึ้น ครั้งหนึ่งเสียงเป็นสิ่งที่ดี
แล้วมันคำนวณอะไร คำตอบคืออะไร? มาเพิ่มข้อมูลในฮิสโตแกรมของเรากัน
อย่างที่คุณเห็น แต่ละแท่งจะมีชุดค่า 0 และ 1 กำกับอยู่ เหล่านี้เป็นสตริงไบนารี 7 บิต และคำตอบแบบขยายของเราคือ “101001” ซึ่งเป็นเลขฐานสองสำหรับตัวอักษร “Q” ซึ่งหมายความว่าคอมพิวเตอร์ควอนตัมของเรากำลังขยายตัวอักษร Q ซึ่งเป็นอักษรตัวแรกของ Qiskit ซึ่งเป็นสิ่งที่เราต้องการอย่างแน่นอน! (สำหรับผู้ที่ให้ความสนใจจริงๆ ข้อความที่เป็นเลขฐานสองมักเขียนเป็น 8 บิต เริ่มต้นด้วย 0 หรือ 0b แต่จะเพิ่มเติมในภายหลังในคำถามที่พบบ่อย)
จากที่นี่ ฉันส่งออกข้อมูลเป็นไฟล์ .csv และจัดรูปแบบให้ดูเหมือนเส้นจากอาร์ตเวิร์กอัลบั้มUnknown Pleasures อันโด่งดังของ Joy Division โดยใช้ Apple Numbers และ Adobe Illustrator แอมพลิจูดอาจดูแตกต่างออกไปเล็กน้อยเนื่องจากภาพด้านล่างใช้ข้อมูลทั้งหมดที่ได้รับจากคอมพิวเตอร์ควอนตัม ในขณะที่ด้านบนเป็นเพียงข้อมูลสรุป
คอมพิวเตอร์ควอนตัม “คำนวณ” ตัวอักษร Q อย่างไร
นั่นคือสิ่งที่อัลกอริทึม Bernstein-Vazirani มาในที่ที่คุณสามารถอ่านทั้งหมดเกี่ยวกับมันในเชิงลึกที่นี่ หรือนี่คือการสรุปโดยย่อ: มีฟังก์ชันที่เรียกว่า oracle ซึ่งทำงานในลักษณะเฉพาะที่ขึ้นอยู่กับสตริงลับของเลขฐานสอง (0 และ 1) อัลกอริทึมเป็นวิธีค้นหาสตริงลับ ในกรณีของเรา สตริงลับคือตัวอักษรของเรา ดังนั้นเราจึงเข้ารหัสตัวอักษรโดยการแปลงก่อนให้เป็นเลขฐานสองแล้วใส่ลงใน oracle ซึ่งเราจะเขียนตัวเองด้วยประตูตรรกะควอนตัม จากนั้นเราเรียกใช้อัลกอริทึม Bernstein-Vazirani บนคอมพิวเตอร์ควอนตัม โดยขอให้ค้นหาสตริงลับของ oracle เป็นสถานะควอนตัม ซึ่งเราสามารถวัดได้ เนื่องจากเสียงรบกวนที่เกี่ยวข้องกับคอมพิวเตอร์ควอนตัมในปัจจุบัน เราจึงเรียกใช้อัลกอริทึมหลายครั้งเพื่อดูว่าฟังก์ชันทำงานอย่างไร เพื่อหาว่า Oracle ใดขับเคลื่อนพฤติกรรมของฟังก์ชัน ทำให้เราได้แอมพลิจูดดังที่แสดงด้านบน
ในการทำคำเต็ม (หรือประโยค) จะต้องเรียกใช้อัลกอริทึมเดียวกันสำหรับตัวอักษรแต่ละตัว นี่คือเหตุผลที่ตัวอย่าง “Qiskit” ของเรามี 6 บรรทัด แต่ละบรรทัดตรงกับตัวอักษร “Qiskit” ในเวอร์ชันโต้ตอบที่นี่ฉันรันตัวอักษรทุกตัวล่วงหน้า (ทั้งตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ซึ่งแตกต่างกันที่ระดับไบนารี) เพื่อให้คุณสามารถเล่นกับมันและสร้างการแสดงภาพข้อความที่เข้ารหัสด้วยคอมพิวเตอร์ควอนตัมในสไตล์ Joy Division ของคุณเอง
นั่นเป็นพื้นฐานเลย! แน่นอนฉันไขมันต่ำกว่ารายละเอียดบางอย่าง แต่โน๊ตบุ๊ค Jupyter ทั้งหมดด้วยรหัส Qiskit สามารถพบได้ที่นี่ซึ่งสร้างเมื่อการดำเนินการ Qiskit ที่อธิบายไว้ใน Qiskit ตำราเรียนที่นี่ source code สำหรับเว็บแอปที่อยู่ใน GitHub repo เดียวกันที่นี่ ความแตกต่างหลักจากสิ่งที่แสดงในสมุดบันทึกคือ คุณสามารถป้อนสตริงข้อความ และจะส่งกลับอาร์เรย์ของวงจรที่สอดคล้องกับตัวอักษรแต่ละตัว อาร์เรย์ของวงจรสามารถทำงานได้พร้อมกันด้วย Qiskit เป็นงานเดียว ลองใช้เลย!
และถ้าคุณยังไม่ได้เลือก ฉันกำลังเรียกสิ่งนี้ว่า “Joy Vazirani” เพราะมันจัดรูปแบบข้อมูลที่ส่งออกโดยอัลกอริทึม Bernstein-Vazirani ให้ดูเหมือนงานศิลปะของ Joy Division
ตัวอย่างสุดท้าย นี่คือภาพจำลองบนเสื้อเชิ้ตที่เขียนว่า “qiskit terra aqua aer ignis” โดยไม่มีการเว้นวรรค

สล็อตออนไลน์

คำถามที่พบบ่อย
ทำไมความไม่ถูกต้องเล็กน้อยในแอมพลิจูด?
ในตอนต้นของบทเกี่ยวกับ Bernstein-Vazirani หนังสือเรียน Qiskit กล่าวว่า “การใช้คอมพิวเตอร์ควอนตัม เราสามารถแก้ปัญหานี้ด้วยความมั่นใจ 100% หลังจากการเรียกใช้ฟังก์ชัน 𝑓(𝑥) เพียงครั้งเดียว” หากเป็นกรณีนี้ เหตุใดจึงมีแอมพลิจูดอื่นนอกเหนือจากคำตอบที่ถูกต้อง เป็นความจริงที่อัลกอริธึม Bernstein-Vazirani ได้รับการพิจารณาว่าถูกกำหนดไว้แล้วและควรได้ผลลัพธ์ที่ถูกต้องในการลองครั้งแรก แต่ระบบควอนตัมในปัจจุบันยังมีข้อจำกัด โดยเฉพาะอย่างยิ่ง คอมพิวเตอร์ควอนตัมระยะใกล้มีแนวโน้มที่จะเกิดข้อผิดพลาดในระดับเล็กน้อย ซึ่งเรียกว่าสัญญาณรบกวน ซึ่งทำให้เกิดหนามแหลมเล็กน้อย นักวิจัยกำลังทำงานอย่างหนักเพื่อขจัดสัญญาณรบกวน แต่สำหรับการสร้างภาพข้อมูลนี้ การสร้างภาพที่น่าสนใจคือกุญแจสำคัญ สักวันหนึ่ง การรันอัลกอริธึมนี้จะส่งผลให้เส้นแบนราบโดยสมบูรณ์ โดยมีการพุ่งสูงขึ้นหนึ่งครั้งเหนือคำตอบที่ถูกต้อง นั่นจะดีสำหรับวิทยาศาสตร์
ทำไมตัวอักษรบางตัวถึงแม่นยำกว่าตัวอื่น?
วงจรที่สร้างขึ้นโดยอัลกอริทึมด้านบนไม่ใช่วงจรเดียวกับที่ส่งไปยังฮาร์ดแวร์ควอนตัมจริง คอมพิวเตอร์ควอนตัมแต่ละเครื่องที่พร้อมใช้งานผ่าน IBM Quantum มีข้อจำกัดส่วนบุคคล ไม่ใช่ทุก qubits ที่จะเข้าไปพัวพันกับ qubit อื่น ๆ และไม่ใช่ทุก qubit จะทำงานอย่างเท่าเทียมกัน เมื่องานถูกส่งไปทำงาน วงจรจะถูกคอมไพล์ (หรือ transpiled ขึ้นอยู่กับว่าคุณคุยกับใคร) เพื่อให้พอดีกับฮาร์ดแวร์อย่างมีประสิทธิภาพมากที่สุด แต่ไม่ใช่ว่าทุกตัวอักษรจะมีประสิทธิภาพเท่ากัน
วงจรที่สองนั้นยาวกว่าเล็กน้อย (หรืออย่างที่เราพูดมีความลึกมากกว่า) ซึ่งทำให้ยากต่อการรักษาความแม่นยำ ยิ่งวงจร (ในเชิงลึก) ยาวขึ้นเท่าใด ก็ยิ่งต้องใช้เวลาในการดำเนินการนานขึ้นเท่านั้น ซึ่งหมายถึงโอกาสที่สัญญาณรบกวนจะเข้าสู่ระบบมากขึ้น ตัวอักษรแต่ละตัวมีลักษณะแตกต่างกันเล็กน้อย ดังนั้นตัวอักษรบางตัวจึงแม่นยำน้อยกว่าตัวอื่นๆ
ทำไมเพียง 7 บิตแทนที่จะเป็น 8 เพื่อแสดงตัวอักษร?
ยิ่งใช้บิตน้อยเท่าไร ผลลัพธ์ก็จะยิ่งแม่นยำมากขึ้นเท่านั้น เมื่อแปลงจากข้อความเป็นไบนารีใน Python ข้อมูลจะถูกเติมด้วย “0b” ซึ่งเป็นเพียงวิธีการคำนวณในการพูดว่า “ไบนารีกำลังจะตามมา” ในสคริปต์ของฉันฉันขูดทั้งสองสิ่งนี้ออก หากคุณใช้ google จากascii to binary tableคุณจะเห็นข้อความทั้งหมดขึ้นต้นด้วย 0 เราไม่ต้องการสิ่งนั้น ดังนั้นฉันจะลบมันทิ้ง เช่นเดียวกับคำอธิบายข้างต้นเกี่ยวกับวิธีการที่ความลึกของวงจรส่งผลต่อความถูกต้อง จำนวน qubits ที่ใช้เรียกว่าความกว้างของวงจรเช่นเดียวกัน ที่ IBM เราพิจารณาทั้งความกว้างและความลึกของวงจรเพื่อความถูกต้อง ซึ่งเรียกว่าปริมาณควอนตัม (หรือ QV) สำหรับการใช้งานเว็บแอปฉันรันวงจรทั้งหมดบนการเรียกคอมพิวเตอร์ควอนตัม “ibmq_montreal” ด้วยปริมาณควอนตัมสูงสุด QV64

jumboslot

การคำนวณควอนตัมนั้นยาก แต่เข้าถึงได้มากขึ้นอย่างช้าๆ นักวิทยาศาสตร์และนักวิจัยมักทำกันเพื่อวิทยาศาสตร์และการวิจัย แต่ที่ IBM เรากำลังพยายามนำคอมพิวเตอร์ควอนตัมออกจากห้องแล็บและมอบให้ทุกคนด้วยเครื่องมือบนคลาวด์ฟรี เช่นIBM Quantum Experienceและเครื่องมือโอเพนซอร์สอย่างQiskit. ฉันทำงานให้กับ IBM Quantum แต่ฉันก็เป็นศิลปินด้วย และฉันต้องการแสดงให้เห็นว่าคอมพิวเตอร์ควอนตัมสามารถใช้โดยผู้ที่ไม่ใช่นักวิทยาศาสตร์เพื่อทำสิ่งต่าง ๆ ที่ไม่จำเป็นต้องก้าวหน้าในด้านการวิจัย แต่ก็ยังมีค่า ฉันหวังว่าคนอื่นเช่นฉัน ผู้ที่ไม่มีพื้นฐานฟิสิกส์ควอนตัมแต่มีความอยากรู้อยากเห็นและมีความคิดสร้างสรรค์ สามารถเริ่มเรียนรู้การคำนวณควอนตัมเป็นวิธีการแสดงออกอย่างสร้างสรรค์ ฉันหวังว่าบล็อกนี้จะแสดงให้เห็นว่าการคำนวณควอนตัมไม่จำเป็นต้องเกี่ยวกับการแก้ปัญหาที่ซับซ้อนที่สุดในโลกเสมอไป และพวกเราที่ไม่ใช่นักคณิตศาสตร์ยังสามารถเรียนรู้การใช้คอมพิวเตอร์ควอนตัมได้
สำหรับฉัน คอมพิวเตอร์ควอนตัมคือพู่กัน อาจเป็นพู่กันที่ซับซ้อนที่สุดในโลก แต่ฉันหวังว่านี่จะเป็นจุดเริ่มต้นของเส้นทางการเรียนรู้สำหรับการใช้คอมพิวเตอร์ควอนตัมในการแสดงออกอย่างสร้างสรรค์
Russell Huffman เป็นนักออกแบบของ IBM Quantum ในเมืองออสติน รัฐเท็กซัส บทความข้างต้นเป็นเรื่องส่วนตัวและไม่จำเป็นต้องแสดงถึงตำแหน่ง กลยุทธ์ หรือความคิดเห็นของ IBM
ในการทำเช่นนี้ เรากำหนดน้ำหนักให้กับตัวอย่างตามความยากของเครือข่ายเพื่อจำแนกประเภท และเราทำเช่นนี้โดยการแนะนำโพรบ โพรบแต่ละตัวรับอินพุตจากเลเยอร์ที่ซ่อนอยู่ โพรบแต่ละตัวมีชั้นเดียวที่เชื่อมต่ออย่างสมบูรณ์พร้อมชั้นซอฟต์แม็กซ์ในขนาดของเอาต์พุตเครือข่ายที่ต่ออยู่ โพรบในเลเยอร์iทำหน้าที่เป็นตัวแยกประเภทที่ใช้เฉพาะคำนำหน้าของเครือข่ายจนถึงเลเยอร์ i สมมติฐานคือกรณีง่ายจะถูกจัดอย่างถูกต้องมีความเชื่อมั่นสูงแม้จะมีฟิวส์ชั้นแรกและเพื่อให้เราได้รับระดับความเชื่อมั่น P ฉันจากยานสำรวจทั้งหมดสำหรับแต่ละกรณี เราใช้ p iทั้งหมดเพื่อคำนวณความยากของอินสแตนซ์ w iเช่น พื้นที่ใต้เส้นโค้ง (AUC) ของ p i’NS. ภาพประกอบด้านล่างแสดงความแตกต่างระหว่างตัวอย่างที่ง่ายและยาก
ตอนนี้ เราสามารถใช้ตุ้มน้ำหนักเพื่อฝึกโมเดลอย่างง่ายบนชุดข้อมูลสุดท้ายที่ถ่วงน้ำหนักได้ เราเรียกกระบวนการตรวจสอบนี้ว่า การรับน้ำหนักที่มีความมั่นใจ และการฝึก ProfWeight อีกครั้ง
เรานำเสนอทางเลือกสองทางในการคำนวณน้ำหนักสำหรับตัวอย่างในชุดข้อมูล ในแนวทาง AUC ที่กล่าวถึงข้างต้น เราสังเกตข้อผิดพลาดในการตรวจสอบความถูกต้องของแบบจำลองอย่างง่ายเมื่อฝึกในชุดการฝึกดั้งเดิม เราเลือกโพรบที่มีความแม่นยำอย่างน้อย α (> 0) มากกว่าโมเดลธรรมดา แต่ละตัวอย่างจะถ่วงน้ำหนักตามคะแนนความเชื่อมั่นเฉลี่ยสำหรับป้ายกำกับจริงที่คำนวณโดยใช้การคาดการณ์แบบอ่อนแต่ละรายการจากโพรบ
ทางเลือกที่สองเกี่ยวข้องกับการปรับให้เหมาะสมโดยใช้โครงข่ายประสาทเทียม ที่นี่เราเรียนรู้น้ำหนักที่เหมาะสมที่สุดสำหรับชุดการฝึกโดยปรับวัตถุประสงค์ต่อไปนี้ให้เหมาะสม:
S*=min w min β E[λ(S wβ (x),y)], ย่อย ถึง. อี[w]=1
[NPC5]โดยที่ w คือน้ำหนักที่จะหาได้สำหรับแต่ละอินสแตนซ์ β หมายถึงพื้นที่พารามิเตอร์ของแบบจำลองอย่างง่าย S และ λ คือฟังก์ชันการสูญเสีย เราจำเป็นต้องจำกัดน้ำหนัก เนื่องจากไม่เช่นนั้น วิธีแก้ปัญหาเล็กน้อยของตุ้มน้ำหนักทั้งหมดที่เป็นศูนย์จะเหมาะสมที่สุดสำหรับวัตถุประสงค์ข้างต้น เราแสดงให้เห็นในบทความนี้ว่าข้อจำกัดของ E[w]=1 ของเรามีความเกี่ยวข้องกับการค้นหาการสุ่มตัวอย่างความสำคัญที่เหมาะสมที่สุด