การเรียนการสอนนี้มีความตั้งใจที่จะแนะนำเกี่ยวกับแนวคิดและศัพท์บัญญัติที่ใช้ ในการคำนวณควอนตัม เพื่อแสดงให้เห็นภาพรวมว่าคอมพิวเตอร์ควอนตัมคืออะไร และเหตุผลที่ว่าทำไมคุณต้องเขียนโปรแกรมอันหนึ่ง
1.1 - Conventional computing
การคำนวณแบบทั่วไป
1.2 - A new kind of computing
การประมวลผลแบบใหม่
1.3 - The light switch game
เกมสวิทช์ไฟ
1.4 - How does quantum mechanics help?
กลศาสตร์ควอนตัมช่วยได้อย่างไร?
2.1 - It's a math expression - who cares?
เป็นนิพจน์ทางคณิตศาสตร์ - ใครสนใจ?
2.3 - Quantum computers can LEARN
คอมพิวเตอร์ควอนตัมสามารถเรียนรู้ได้
2.4 - A computer that programs itself
คอมพิวเตอร์ที่เขียนโปรแกรมด้วยตัวเอง
2.5 - Uncertainty is a feature
คุณสมบัติความไม่แน่นอน
material ที่นี่ถูกเขียนโดยใช้แนวคิดระดับสูง และได้รับการออกแบบมาให้สามารถ เข้าถึงได้สำหรับผู้ชมทั้งด้านเทคนิคและที่ไม่ใช่ด้านเทคนิค พื้นฐานบางประการ เกี่ยวกับฟิสิกส์คณิตศาสตร์และการเขียนโปรแกรมจะเป็นประโยชน์ในการช่วยให้ เข้าใจแนวคิดที่นำเสนอในเอกสารนี้แม้ว่าจะไม่ใช่ความต้องการก็ตาม
อะไรที่คุณจะได้เรียนรู้?
โดยผ่านวัสดุในไพรเมอร์นี้คุณจะได้เรียนรู้ :
- ฟิสิกส์ควอนตัมช่วยให้เราสามารถคำนวณได้อย่างไร
- ความเหมือนและความแตกต่างระหว่างคอมพิวเตอร์ควอนตัมกับคอมพิวเตอร์คลาสสิก
- หน่วยประมวลผลเชิงควอนตัม (qubits) พื้นฐานที่ถูกจัดการเพื่อแก้ปัญหาที่ยากลำบาก
- ทำไมคอมพิวเตอร์ควอนตัมจึงเหมาะสมกับแอพพลิเคชันการเรียนรู้ด้วย AI และเครื่องและวิธีการที่คอมพิวเตอร์ควอนตัมอาจถูกใช้เป็น 'ตัวประมวลผล AI'
1.1 - การคำนวณแบบทั่วไป
ในการทำความเข้าใจการคำนวณควอนตัม มันเป็นประโยชน์มากสำหรับการคิดครั้ง แรกเกี่ยวกับคอมพิวเตอร์ทั่วไป เราได้รับคอมพิวเตอร์ดิจัทัลที่ทันสมัยและความ สามารถในการดำเนินการที่หลากหลายของการใช้งานที่ได้รับ บนเดสท็อปต์พีซี , แล็ปท็อปและสมาร์ทโฟนของเราสามารถเรียกใช้สเปรดชีต , stream live video , อนุญาตให้เราแชทกับคนอีกฝั่งโลกหนึ่งได้และดื่มด่ำกับสภาพแวดล้อมแบบ 3D ที่เหมือนจริง แต่ที่สำคัญทุกคอมพิวเตอร์แบบดิจิทัลมีบางอย่างที่เหมือนกัน พวกเขาทั้งหมดดำเนินการทางคณิตศาสตร์อย่างง่าย พลังของพวกเขามาจากความ เร็วอันยิ่งใหญ่ ซึ่งมันสามารถที่จะทำสิ่งนี้ได้ คอมพิวเตอร์แสดงผลหลายๆล้านของ การดำเนินการในแต่ละวินาที การดำเนินการเหล่านี้ถูกแสดงผลอย่างรวดเร็วซึ่งจะ อนุญาติให้เรารันแอพพลิเคชั่นที่มีความซับซ้อนในระดับที่สูงมาก การคำนวณ ดิจิทัลแบบดั้งเดิมสามารถสรุปได้โดยไดอะแกรมที่โชว์ในรูปที่ 1
รูปที่ 1 การไหลของข้อมูลในคอมพิวเตอร์ทั่วไป
ถึงแม้ว่าเรามีภาระงานมากมายที่คอมพิวเตอร์ทั่วไปทำได้ดี แต่ยังมีบางพื้นที่ที่การ คำนวณดูเหมือนจะยากเหลือเกิน ตัวอย่างของพื้นที่เหล่านี้ คือ : การจดจำภาพ , ภาษาธรรมชาติ (ทำให้คอมพิวเตอร์เข้าใจว่าอะไรคือสิ่งที่เราหมายถึง ถ้าเราพูดกับ มันโดยใช้ภาษาของเราเองมากกว่าภาษาเขียนโปรแกรม) และภาระงานที่ๆ คอมพิวเตอร์ต้องเรียนรู้จากประสบการณ์เพื่อให้มันดีขึ้นในภาระงานเฉพาะอย่าง แม้ว่าในช่วง 2-3 ทศวรรษที่ผ่านมานี้มีงานวิจัยและงานวิจัยมากมายเกิดขึ้น แต่ความคืบ หน้าของเราในด้านนี้ช้าและต้นแบบที่เราใช้ทำงานมักต้องใช้ ซูเปอร์คอมพิวเตอร์ขนาดใหญ่เพื่อใช้พื้นที่เหล่านี้และประสิทธิภาพของมัน
เราสามารถตั้งคำถามได้ว่า : มีวิธีการออกแบบระบบคอมพิวเตอร์ที่แตกต่างจาก พื้นดินหรือไม่? ถ้าเราสามารถเริ่มต้นใหม่อีกครั้งตั้งแต่เริ่มต้นและทำอะไรบาง อย่างที่แตกต่างไปจากเดิมอย่างสิ้นเชิงให้ดีกว่าในงานเหล่านี้ที่คอมพิวเตอร์แบบ เดิมพบได้ยาก เราจะไปเกี่ยวข้องกับการสร้างคอมพิวเตอร์เครื่องใหม่ได้อย่างไร?
1.2 - การประมวลผลแบบใหม่
การคำนวณเชิงควอนตัมมีความแตกต่างอย่างสิ้นเชิงกับวิธีการเดิมในการแปลงบิต สตริงจากชุดข้อมูล 0 และ 1 เป็นอีกชุดหนึ่ง ด้วยการคำนวณเชิงควอนตัม ทุกสิ่ง ทุกอย่างเปลี่ยนแปลงไป ฟิสิกส์ที่เราใช้ในการทำความเข้าใจบิตของข้อมูลและ อุปกรณ์ที่ควบคุมมันแตกต่างกันอย่างสิ้นเชิงกับแบบเดิม วิธีการที่เราสร้างอุปกรณ์ ดังกล่าว แตกต่างกันมันต้องใช้วัสดุแบบใหม่ , กฎการออกแบบอันใหม่ และ สถาปัตยกรรมโปรเซสเซอร์ใหม่ ท้ายที่สุดแล้ว วิธีการที่เราเขียนโปรแกรม ในระบบ นี้แตกต่างไปจากเดิมอย่างสิ้นเชิง เอกสารฉบับนี้จะเป็นการสำรวจปัญหาแรกๆที่ กล่าวมานี้แทนการใช้บิตธรรมดา (0 หรือ 1) ด้วยชนิดของข้อมูลใหม่ - the qubit - สามารถที่จะเปลี่ยนวิธีการคิดของเราเกี่ยวกับการคำนวณได้
1.3 - เกมสวิทช์ไฟ
ในการเริ่มต้นในการเรียนรู้เกี่ยวกับการคำนวณเชิงควอนตัม มันเป็นเรื่องสำคัญที่ จะทำความเข้าใจเหตุผลที่ว่าทำไมเราไม่สามารถใช้คอมพิวเตอร์ดิจิทัลดั้งเดิมเพื่อ แก้บางปัญหาได้ ลองพิจารณาถึงปัญหาทางคณิตศาสตร์ซึ่งเราจะเรียกว่าเกม สวิทช์ไฟ ซึ่งมันจะอธิบายประกอบในจุดนี้
เกมสวิทช์ไฟนี้รวมไปถึงการพยายามหาการตั้งค่าที่ดีที่สุดสำหรับมัดของสวิตช์ นี่เป็นตัวอย่างเชิงกราฟฟิกที่แนะนำปัญหานี้ :
รูปที่ 2 เกมสวิทช์ไฟ
ลองจินตนาการว่าสวิตช์ไฟแต่ละอันมีหมายเลขที่เกี่ยวข้องกับมัน ซึ่งถูกเลือก สำหรับคุณ (คุณไม่จำเป็นที่จะต้องเปลี่ยนมัน) เราเรียกสิ่งนี้ว่า 'bias value' (ค่า ความลำเอียง) คุณต้องเลือกว่าจะทำให้หลอดไฟแต่ละอันเปิดหรือปิดหรือไม่ ในเกมของเรา ON = +1 และ OFF = -1 จากนั้นเราจะเพิ่มค่าความลำเอียง ทั้งหมดของสวิทซ์คูณด้วยค่าเปิด / ปิด สิ่งนี้จะให้หมายเลขแก่เรา objective ของ เกม คือ การตั้งค่าสวิทช์ไปยังหมายเลขที่ต่ำที่สุด ในทางคณิตศาสตร์ เราเรียก bias values ของแต่ละสวิทช์ว่า \( h_i \) และการตั้งค่าสวิทช์เรียกว่า \(s_i \)
รูปที่ 3 เล่นเกมสวิทช์ไฟ - เพิ่มค่า bias values ของแต่ละสวิทช์คูณด้วยการตั้งค่า ของพวกเขา (เป็นอันที่คุณต้องเลือก)
ดังนั้นขึ้นอยู่กับว่าสวิทช์ใดที่เรากำหนดให้ +1 และที่เราตั้งค่าเป็น -1 เราจะได้ คะแนนแตกต่างกันโดยรวม คุณสามารถลองเกมนี้ได้ หวังว่าคุณจะพบว่ามันง่าย เพราะมีกฎง่ายๆในการชนะ :
รูปที่ 4 : หาคำตอบสำหรับ "guess" เฉพาะที่การตั้งค่าสวิตช์
เราจะพบว่าถ้าเราตั้งค่าสวิทช์ทั้งหมดด้วย positive biases เพื่อที่จะปิดและสวิทช์ ทั้งหมดด้วย negative biases เพื่อเปิดและเพิ่มผลลัพธ์แล้วเราจะได้รับค่าโดย รวมต่ำสุด ง่ายใช่มั้ย? ผมสามารถให้สวิตช์เป็นจำนวนมากเท่าที่ผมต้องการด้วยค่า อคติที่แตกต่างกันมากมายและคุณเพียงแค่มองไปที่แต่ละอันในทางกลับกันและ พลิกมันทั้งเปิดหรือปิดก็ตาม
โอเค ต่อไปมาทำให้มันยากขึ้นอีกหน่อย ดังนั้นตอนนี้จินตนาการว่ามีคู่ของสวิทช์ หลายๆอันมีกฎเพิ่มเติม อันหนึ่งที่เกี่ยวข้องกับการพิจารณา PAIRS ของสวิทช์ นอกเหนือจากสวิทช์แต่ละตัวเท่านั้น เราเพิ่มค่าอคติใหม่ (เรียกว่า J) ซึ่งเราคูณด้วย ทั้งการตั้งค่าสวิทช์ที่เชื่อมต่อกับมันและเราเพิ่มค่าผลลัพธ์ที่เราได้รับจากแต่ละคู่ ของสวิทช์ไปยังหมายเลขโดยรวมของเราด้วย อย่างไรก็ตามสิ่งที่เราต้องทำก็คือ เลือกว่าสวิตช์ควรเปิดหรือปิดขึ้นอยู่กับกฎใหม่นี้หรือไม่
รูปที่ 5 ทำให้เกมมันยากขึ้นโดยการเพิ่มในแง่ของการ เพิ่มเติมซึ่งขึ้นอยู่กับการตั้งค่าของคู่ของสวิทช์
แต่ตอนนี้มันยาก ยากมากๆที่จะตัดสินใจว่าสวิทช์ควรจะเปิดหรือปิดหรือไม่ เพราะว่าเพื่อนบ้านของมันส่งผลกระทบต่อมัน แม้แต่ตัวอย่างง่ายๆที่โชว์ด้วย 2 สวิทช์ในรูปด้านบน คุณไม่เพียงทำตามกฎของการตั้งค่าให้เป็นสัญญาณที่ตรงกัน ข้ามกับค่าอคติของพวกเขาอีกต่อไป (ลอง!) ด้วยเว็บที่ซับซ้อนของสวิทช์ที่มี เพื่อนบ้านจำนวนมากจะกลายเป็นเรื่องน่าหงุดหงิดมากในการลองหาชุดค่าผสมที่ เหมาะสมเพื่อให้ได้ค่าที่ต่ำที่สุดโดยรวม
รูปที่ 6 เกมสวิทช์ไฟมีการเพิ่มเงื่อนไขการเชื่อมต่อการสร้าง เว็บปฏิสัมพันธ์ของสวิทช์ไฟ
1.4 กลศาสตร์ควอนตัมช่วยได้อย่างไร?
ด้วยคู่ของสวิทช์คุณสามารถที่จะลองทุกๆการรวมของ ON’s และ OFF’s ได้ มันมี ความเป็นไปได้แค่ 4 อย่างเท่านั้น : [ON ON] , [ON OFF] , [OFF ON] หรือ [OFF OFF] แต่เมื่อคุณเพิ่มสวิทช์มากขึ้นๆเรื่อยๆ จำนวนวิธีที่เป็นไปได้ที่สวิทช์ สามารถตั้งค่าได้ก็เพิ่มขึ้นมากไปด้วย :
รูปที่ 7 การเพิ่มขึ้นอย่างมากของปัญหากับเกมสวิทช์ไฟ
คุณจะเริ่มเห็นว่าทำไมเกมมันไม่สนุกไปมากกว่านี้แล้ว ประสิทธิภาพพื้นฐานของ คอมพิวเตอร์ควอนตัมมาจากไอเดียซึ่งคุณสามารถใส่บิต ของข้อมูลไปยัง superposition ของสถานะได้ คุณสามารถคิดถึงเรื่องนี้ได้ว่าเป็นสถานการณ์ที่ qubit ยังไม่ได้ตัดสินใจว่าต้องการเข้าไปอยู่ในสถานะไหน ผู้คนบางคนอ้างถึง qubit ใน superposition ว่า ‘อยู่ในทั้ง 2 สถานะในเวลาเดียวกัน’ คุณสามารถคิดถึงสถานะ ของ qubit ได้เนื่องจากยังไม่ได้ตัดสินใจว่าเป็น +1 หรือ -1 ซึ่งหมายความว่าการ ใช้คอมพิวเตอร์ควอนตัมสวิตช์ไฟของเราสามารถเปิดและปิดได้ในเวลาเดียวกัน :
รูปที่ 8 บิตเชิงควอนตัมของข้อมูล (qubit) สามารถอยู่ในสิ่งที่เรียกว่าสถานะ superposition ซึ่งยังไม่ได้ตัดสินใจว่าจะอยู่ในสถานะ +1 หรือ -1 (หรือคุณสามารถคิดว่าเป็น ‘ทั้ง 2 สถานะก็ได้’ )
ตอนนี้ให้พิจารณาสวิทช์เดียวกันก่อน แต่ตอนนี้มันรองรับในหน่วยความทรงจำของ คอมพิวเตอร์ควอนตัม (สังเกตว่าค่าความลำเอียงยังไม่ได้ถูกเพิ่มไป) :
รูปที่ 9 เครือข่ายของควอนตัมบิตที่ถูกเชื่อมต่อกันใน superposition คำตอบอยู่ที่นั่น ที่ไหนซักที่!
เพราะว่าสวิทช์ไฟทั้งหมดเปิดและปิดในเวลาเดียวกัน เรารู้ว่าคำตอบที่ถูกต้อง (การตั้งค่าเปิด/ปิดให้ถูกต้องสำหรับแต่ละสวิทช์) เป็นตัวแทนที่ใดที่หนึ่งในนั้น - มันซ่อนจากเราอยู่ในขณะนี้ แต่มันโอเคเพราะว่ากลศาสตร์ควอนตัมจะทำการ ค้นหามันเพื่อเรา D-Wave คอมพิวเตอร์ควอนตัมอนุญาตให้เราเอา ‘การเป็นตัว แทนควอนตัม’ แบบนี้และแยกการกำหนดค่าของ ONs และ OFFs ด้วยค่าที่ต่ำสุด
นี่เป็นวิธีการทำงานของมัน :
รูปที่ 10 คอมพิวเตอร์เริ่มต้นด้วยบิตใน superposition จบลงด้วยพฤติกรรมที่เป็นบิตคลาสสิคปกติและหาคำตอบไปพร้อมกัน
คุณเริ่มต้นด้วยระบบใน superposition ของควอนตัมตามที่อธิบายไว้ด้านบนและ คุณค่อยๆปรับคอมพิวเตอร์ควอนตัมเพื่อปิดผล superposition ควอนตัม ในเวลา เดียวกันคุณค่อยๆเปิดค่าความลำเอียงทั้งหมดเหล่านั้น (h และ J จากก่อนหน้านี้) เมื่อดำเนินการนี้สวิทช์จะค่อยๆเลื่อนออกจากสถานะ superposition และเลือก สถานะแบบคลาสสิคไม่ว่าจะเป็นเปิดหรือปิด ในตอนท้ายแต่ละสวิตช์ต้องเลือกที่จะ เปิดหรือปิด กลศาสตร์ควอนตัมที่ทำงานภายในเครื่องคอมพิวเตอร์จะช่วยให้สวิทช์ ไฟเข้าสู่สภาวะที่เหมาะสมเพื่อให้ได้ค่าโดยรวมต่ำที่สุดเมื่อคุณเพิ่มค่าทั้งหมดเมื่อสิ้นสุด แม้ว่าจะมีสวิทช์ \ (N \) ที่มีการกำหนดค่าที่เป็นไปได้ \ (2 ^ N \) ที่จะ สามารถหาได้ในที่สุด พบว่ามีค่าต่ำสุดที่ชนะเกมสวิทช์ไฟ ดังนั้นเราจึงเห็นว่า คอมพิวเตอร์ควอนตัมช่วยให้เราสามารถลดนิพจน์ได้เช่นการพิจารณาที่นี่ :
\[ E(s) = \sum_i h_i s_i + J_{ij}s_i s_j \]
ซึ่งอาจเป็นเรื่องยาก (ถ้าเป็นไปได้) สำหรับคอมพิวเตอร์แบบคลาสสิก
2.1 - เป็นนิพจน์ทางคณิตศาสตร์ - ใครสนใจ?
เราไม่ได้สร้างเครื่องเพื่อเล่นเกมสวิทซ์ไฟสยองขวัญที่แปลกประหลาด แนวคิด ในการหาค่าดีๆของตัวแปรไบนารี (สวิทซ์) ในลักษณะนี้อยู่ที่หัวใจของปัญหา หลายอย่างที่เกิดขึ้นในการใช้งานในชีวิตประจำวัน มีดังต่อไปนี้ แม้แต่แนวคิดเรื่อง การค้นพบทางวิทยาศาสตร์เองก็เป็นปัญหาด้านการเพิ่มประสิทธิภาพเช่นกัน (คุณ กำลังพยายามค้นหาคำว่า "การกำหนดค่า" ที่ดีที่สุดของคำที่นำไปสู่สมการทาง วิทยาศาสตร์ที่ตรงกับข้อสังเกตของโลกแห่งความเป็นจริง)
รูปที่ 11 ตัวอย่างของแอพพลิเคชันที่อยู่ภายใต้ฝากระโปรง ทั้งหมดนี้เกี่ยวข้องกับการค้นหา 'การตั้งค่าสวิทช์' ที่ดีและสามารถจัดการกับ คอมพิวเตอร์ควอนตัมได้อย่างมีประสิทธิภาพมากขึ้น
2.2 - โปรแกรมพลังงาน
เพื่อทำความเข้าใจว่าปัญหาเหล่านี้อาจเกิดขึ้นจากการค้นหาการตั้งค่าสวิทช์ มาพิจารณากันซิว่าคอมพิวเตอร์ควอนตัมมีวิธีการเขียนโปรแกรมอย่างไร ย้อนกลับ ไปที่รูปที่ 1 ที่ๆ bit strings ถูกเปลี่ยนรูปไปเป็น bits strings ตัวอื่น ผ่านทาง แอพพลิเคชั่นของโปรแกรมลอจิก แทนที่จะป็นเช่นนั้น ขณะนี้เรามีทรัพยากรที่บิต ยังไม่ได้ตัดสินใจดังนั้นการคำนวณจะดำเนินการในลักษณะที่แตกต่างกันโดยพื้น ฐาน อย่างที่โชว์ในรูปที่ 12 ในกรณีนี้กลุ่มของ qubits จะถูกเตรียมใช้งานในสถานะ superposition ของพวกเขาและครั้งนี้จะใช้ ENERGY PROGRAM (แทนที่จะเป็น โปรแกรมลอจิก) ซึ่งจะถูกใช้งานไปยังกลุ่ม qubits จากอันที่ยังไม่ได้ตัดสินใจ ในตอนต้นของการคำนวณ ที่จะเลือกได้ทั้งหมด 2 อย่าง คือ สถานะ -1 หรือ +1 ในตอนจบของการคำนวณ Energy Program คืออะไรล่ะ? มันเป็นแค่ตัวเลขของ h และ J - ตั้งค่าความลำเอียง - ที่เราได้แนะนำไปแล้วก่อนหน้านี้ ในเกมสวิทช์ไฟ เราพูดว่า H และ J ได้ให้คุณมาแล้ว ตอนนี้เราก็จะมาดูว่าพวกมันมาจากที่ไหน - พวกมันคือคำจำกัดความของปัญหาที่คุณพยายามจะแก้
รูปที่ 12 การดำเนินการขั้นพื้นฐานของคอมพิวเตอร์ควอนตัมคือการจัดหา energy program (ชุดของตัวเลขของ h กับ J) และปล่อยให้คอมพิวเตอร์หาการตั้งค่าสวิทช์ (+1 และ -1) จัดทำโปรแกรมพลังงานเป็นชุดของค่า h และ J เพื่อ encode ปัญหา จริงๆบนโลกใบนี้ถ้าคุณกำลังให้ความสนใจ - มันเป็นเรื่องที่ยากเหลือเกินและเสีย เวลา มันเทียบเท่ากันกับโปรแกรมบน desktop PC ของคุณ โดยการส่งไปเป็นโค้ด เครื่องไปยัง microprocessors ข้างใน! ช่างโชคดี! มันมีวิธีที่ดีกว่าในการเขียน โปรแกรมคอมพิวเตอร์ควอนตัมโดยการใช้ quantum compiler การดำเนินการนี้จะ ถูกอธิบายเพิิ่มเติมใน Programming with D-Wave white paper (กระดาษสีขาว)
2.3 - คอมพิวเตอร์ควอนตัมสามารถเรียนรู้ได้
วินัยในการสอนคอมพิวเตอร์เพื่อให้เหตุผลเกี่ยวกับโลกและเรียนรู้จากประสบการณ์ที่เรียกว่า machine learning มันเป็นสาขาย่อยของสาขาปัญญาประดิษฐ์ โค้ดส่วน มากที่เราเขียนค่อนข้างคงที่ - นั่นแหละ ในการให้ข้อมูลใหม่มันจะแสดงการ คำนวณเหมือนกันซ้ำแล้วซ้ำอีกและทำข้อผิดพลาดเดิมๆ โดยใช้ machine learning เราสามารถออกแบบโปรแกรมที่เปลี่ยนแปลงโค้ดของตัวเองได้และถึงแม้กระนั้น มันก็ยังเรียนรู้วิธีการใหม่ๆในการรองรับชิ้นส่วนของข้อมูลที่มันไม่เคยเห็นมาก่อน อีกด้วย
ชนิดของแอพพลิเคชั่นที่รันได้ดีบน D-Wave คอมพิวเตอร์ควอนตัมเป็น แอพพิเคชั่นที่เรียนรู้และตัดสินใจภายใต้เงื่อนไขที่ไม่แน่นอนที่ต้องกระทำ ตัวอย่าง เช่น สมมติว่าคอมพิวเตอร์ถูกร้องขอให้จัดกลุ่ม object ที่มีพื้นฐานอยู่บนรูปภาพ หลายๆอันของ objects ที่คล้ายกันที่คุณได้แสดงให้มันเห็นมาแล้วก่อนหน้านี้แล้ว งานนี้มันยากมากๆสำหรับสถาปัตยกรรมการคำนวณแบบดั้งเดิม ที่ถูกออกแบบ มาเพื่อทำตามเหตุผลทางตรรกะที่เคร่งครัดมากๆ ถ้าระบบถูกโชว์รูปภาพใหม่ มันเป็นเรื่องที่ยากที่จะให้มันทำคำประกาศธรรมดาเกี่ยวกับรูปภาพนั้นๆ เช่น ‘มันดูคล้ายกับแอปเปิ้ล’ โปรเซสเซอร์ของ D-Wave ถูกดีไซน์ขึ้นเพื่อสนับสนุน แอพพลิเคชั่นที่ต้องการเหตุผลในระดับสูงและการทำการตัดสินใจ
เราจะมีวิธีการอย่างไรที่จะสามารถใช้คอมพิวเตอร์ควอนตัมในการดำเนินการการ เรียนรู้ได้ ตัวอย่างเช่น ถ้าเราต้องการให้ระบบจดจำ objects? การเขียน energy program สำหรับงานนี้เป็นอะไรที่ยากมากๆ แม้แต่การใช้ quantum compiler เพราะว่าเราไม่รู้ในเรื่องของรายละเอียดในวิธีการจับสาระสำคัญของ objects ซึ่ง ระบบจะต้องจำ ช่างโชคดีมันมีวิธีในการแก้ปัญหานี้อยู่ เพราะว่ามันมีโหมดที่ คอมพิวเตอร์ควอนตัมสามารถปรับเปลี่ยน energy program ของมันเองเพื่อตอบ สนองต่อข้อมูลใหม่ๆที่เข้ามา สิ่งนี้อนุญาตให้เครื่องทำการเดาได้ดีว่าอะไรที่วัตถุ อาจจะเป็น แม้ว่าจะไม่เคยเห็นตัวอย่างใดๆมาก่อนเลยก็ตาม ส่วนต่อไปจะให้ ภาพรวมเกี่ยวกับการดำเนินการนี้
2.4 - คอมพิวเตอร์ที่เขียนโปรแกรมด้วยตัวเอง
เพื่อให้ระบบปรับเปลี่ยน energy program ของมันด้วยตัวมันเอง คุณเริ่มต้นด้วย การโชว์ให้ระบบเห็นตัวอย่างของแนวคิดที่คุณต้องการให้มันเรียนรู้มากๆ อย่างตัว อย่างที่แสดงในรูปที่ 13 นี่คือไอเดียที่จะลองให้คอมพิวเตอร์เรียนรู้ความแตกต่าง ระหว่างภาพของชนิดของผลไม้ที่แตกต่างกัน เพื่อที่จะทำสิ่งนี้ เราได้แสดงรูปภาพ (หรือมากกว่าการแสดงเชิงตัวเลขของภาพเหล่านั้น) ไปยังระบบเพื่ออธิบาย ประกอบตัวอย่างที่มีความแตกต่างมากมายของแอปเปิ้ล , ราสเบอร์รี่และเมล่อน เรายังให้คำตอบที่ถูกต้องแก่ระบบในแต่ละครั้งโดยการบอกว่าอะไรคือการตั้งค่า สวิทช์ (ฉลาก) มันควรจะสิ้นสุดการเลือกในแต่ละกรณี
ระบบต้องหา energy program (จะแสดงเครื่องหมายคำถามเพราะว่าเราไม่รู้มัน ตั้งแต่แรก) ดังนั้นเมื่อรูปภาพถูกแสดงไปยังระบบ มันจะได้รับฉลากที่ถูกต้องใน แต่ละครั้ง หากได้รับตัวอย่างผิดจำนวนมาก อัลกอริทึมรู้ว่ามันจะต้องเปลี่ยน energy program ของตัวมันเอง
รูปที่ 13 สอน quantum chip โดยอนุญาตให้มันเขียน energy program ของมันด้วยตัวมันเอง ระบบจะปรับ energy program จนกว่าจะมีการทำเครื่องหมายตัวอย่างทั้งหมดที่คุณแสดงอย่างถูกต้อง
สิ่งนี้รู้จักกันในฐานะที่เป็นขั้นตอน ‘การฝึก’ หรือ ‘การเรียนรู้’
ตอนแรกระบบเลือก energy program (จำได้มั้ยที่มันเป็นกระจุกของค่า H และ J ) โดยการสุ่ม มันจะทำให้การทำเครื่องหมายจำนวนมากผิด แต่ไม่เป็นไร เพราะว่าเรา ยังคงแสดงตัวอย่างให้มันเห็นได้และแต่ละครั้งยังอนุญาตให้มันปรับ energy program ได้อีกด้วย ดังนั้น มันก็จะได้รับฉลากที่ถูกต้องมากขึ้นๆ (การตั้งค่าสวิทช์) เมื่อมันไม่สามารถทำอะไรได้ดีไปกว่านี้บนข้อมูลที่มันได้รับ เราจะเก็บ energy program อันสุดท้ายและใช้มันเป็นโปรแกรม ‘ที่ถูกเรียนรู้’ ของพวกเราเพื่อจัด กลุ่มตัวอย่างอันใหม่ที่ไม่เคยเห็น (รูปที่ 14)
ในศัพท์บัญญัติการเรียนรู้ด้วยเครื่อง มันรู้จักในฐานะที่เป็นอัลกอริทึมการเรียนรู้ ภายใต้การกำกับดูแลเพราะว่าเราได้แสดงให้คอมพิวเตอร์เห็นตัวอย่างของรูปภาพ และบอกมันว่าอะไรคือเครื่องหมายที่ควรจะถูกต้องเพื่อที่จะช่วยให้มันได้เรียนรู้ มันยังมีชนิดของอัลกอริทึมชนิดอื่นๆที่ถูกสนับสนุนโดยระบบ แม้แต่ข้อมูลที่ สามารถใช้งานได้หากข้อมูลที่มีป้ายกำกับไม่พร้อมใช้งาน
รูปที่ 14 หลังจากที่ระบบได้เจอโปรแกรมพลังงานที่ดีระหว่างขั้นตอนการฝึกอบรม ตอนนี้สามารถกำหนดป้ายกำกับตัวอย่างที่มองไม่เห็นเพื่อแก้ปัญหาในโลกแห่ง ความเป็นจริงได้แล้ว ขั้นตอนนี้เรียกว่า 'การทดสอบ'
2.5 - คุณสมบัติความไม่แน่นอน
จุดที่น่าสนใจจุดอื่นที่จะต้องโน๊ตเกี่ยวกับคอมพิวเตอร์ควอนตัม คือ มันเป็นความ น่าจะเป็น นั่นหมายความว่ามันสามารถมีได้หลากหลายคำตอบ หนึ่งในนั้นอาจเป็น คำตอบที่คุณกำลังมองหาและหนึ่งในนั้นก็อาจจะไม่ ในตอนแรกสิ่งนี้มันฟังดูแย่ เพราะคอมพิวเตอร์ที่มีคำตอบหลายๆอันเมื่อเราถามคำถามเดียวกัน มันเหมือน เป็นบัค! อย่างไรก็ตามในคอมพิวเตอร์ควอนตัม การมีคำตอบหลายๆอันนี้สามารถ ให้ข้อมูลที่สำคัญเกี่ยวกับระดับความเชื่อมั่นของคอมพิวเตอร์ได้ โดยการใช้ ตัวอย่างผลไม้ด้านบน หากเราแสดงให้คอมพิวเตอร์เห็นรูปภาพและร้องขอให้มัน ทำเครื่องหมายที่รูปที่เหมือนกัน 100 ครั้ง และมันให้คำตอบว่า ‘แอปเปิ้ล’ 100 ครั้ง นั่นหมายความว่าคอมพิวเตอร์ค่อนข้างมั่นใจว่ารูปภาพนั้น คือ แอปเปิ้ล อย่างไรก็ตาม ถ้ามันให้คำตอบว่าเป็นแอปเปิ้ล 50 ครั้งและราสเบอร์รี่ 50 ครั้ง หมายความว่าคอมพิวเตอร์ไม่แน่ใจเกี่ยวกับรูปภาพที่คุณให้มันดูและหากคุณได้แสดงให้มันเห็นรูปของแอปเปิ้ลและมีราสเบอร์รี่ในนั้น มันเป็นอะไรที่ถูกต้องโดย สมบูรณ์ ความไม่แน่นอนนี้อาจมีประสิทธิภาพมากเมื่อคุณกำลังออกแบบระบบที่ สามารถทำการตัดสินใจที่ซับซ้อนและการเรียนรู้เกี่ยวกับโลกใบนี้
References : https://www.dwavesys.com/tutorials/background-reading-series/quantum-computing-primer#main
Tag ที่น่าสนใจ: quantum_computing computer_science programming qubits artificial_intelligence machine_learning quantum_mechanics conventional_computing mathematics energy_program uncertainty physics self-programming_computer light_switch_game data_processing
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM