ข้ามไปยังเนื้อหาหลัก

ทบทวนวิธีการ machine learning ที่เกี่ยวข้อง

ในส่วนนี้ เราจะทบทวนคำศัพท์สำคัญและวิธีการต่างๆ จาก classical machine learning ที่จะช่วยให้เข้าใจ workflow ใน quantum machine learning ได้ดีขึ้น เราจะเริ่มแนะนำคำศัพท์ทั่วไปก่อน แล้วจึงเจาะลึก machine learning สองประเภท ได้แก่ kernel methods (โดยเฉพาะในบริบทของ support vector machine) และ neural networks มีความเชื่อมโยงกันอยู่ระหว่างวิธีการเหล่านี้ แต่เราจะถือว่าเป็นเรื่องแยกกัน เนื่องจาก quantum workflow มีความแตกต่างกันที่กล่าวถึงในบทเรียนนี้และบทเรียนต่อๆ ไป นี่เป็นเพียงภาพรวมเบื้องต้น และเราจะข้ามรายละเอียดปลีกย่อยไปมาก สำหรับภาพรวมที่ครอบคลุมยิ่งขึ้น แนะนำให้ดูแหล่งอ้างอิงเช่น [1-3]

ประเภทของ machine learning

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

  1. Supervised learning: ใน supervised learning ข้อมูลที่ใช้ฝึกโมเดลจะมีป้ายกำกับ เป้าหมายของอัลกอริทึมเหล่านี้คือเรียนรู้ความสัมพันธ์ระหว่างข้อมูลกับป้ายกำกับหรือผลลัพธ์ที่สอดคล้องกัน แล้วนำไปใช้กับข้อมูลที่ยังไม่เคยเห็น งานทั่วไปในหมวดนี้ได้แก่ classification และ regression
  2. Unsupervised learning: ต่างจาก supervised learning ตรงที่ unsupervised learning ใช้ข้อมูลที่ไม่มีป้ายกำกับในการฝึกโมเดล เป้าหมายของอัลกอริทึมเหล่านี้คือค้นหารูปแบบและโครงสร้างที่ซ่อนอยู่ในข้อมูล อัลกอริทึมบางส่วนในหมวดนี้ได้แก่ clustering และ dimensionality reduction และโมเดล generative บางอย่างเช่น generative adversarial networks และ variational autoencoders ก็อาจจัดอยู่ในหมวดนี้ด้วย
  3. Reinforcement learning: อัลกอริทึมในหมวด machine learning นี้นิยามโดย agent ที่ทำงานร่วมกับสภาพแวดล้อม agent จะดำเนินการต่างๆ และรับข้อเสนอแนะจากสภาพแวดล้อมในรูปแบบของรางวัลและการลงโทษ ในที่สุดผ่านกลไกป้อนกลับนี้ agent จะเรียนรู้ที่จะดำเนินการชุดที่ถูกต้องเพื่อทำงานเฉพาะ

ภาพแผนผังแสดง supervised learning และ unsupervised learning

ภาพซ้ายแสดงข้อมูลสองหมวดที่มีป้ายกำกับเหมือนใน supervised learning ในกรณีนี้หมวดต่างๆ สามารถแยกได้แบบ linear ภาพขวาแสดงกลุ่มของข้อมูล ใน unsupervised learning ข้อมูลเหล่านี้จะไม่มีป้ายกำกับในตอนแรก และอัลกอริทึมจะศึกษาการกระจายตัว บางทีอาจมองหากลุ่มต่างๆ เพื่อวัตถุประสงค์ในการแสดงภาพตัวอย่างกลุ่มที่อัลกอริทึมอาจระบุ ข้อมูลจึงได้รับการติดป้ายกำกับในที่สุด ความแตกต่างสำคัญระหว่างสองอย่างนี้คือ กระบวนการ supervised learning เริ่มต้นด้วยข้อมูลที่มีป้ายกำกับอยู่แล้ว ส่วน unsupervised learning เริ่มต้นด้วยข้อมูลที่ไม่มีป้ายกำกับ แม้ว่าข้อมูลจะมีป้ายกำกับในตอนท้าย

การนำ "ควอนตัม" เข้าสู่ machine learning

ตอนนี้เราสามารถเริ่มสำรวจว่า "ควอนตัม" ถูกนำเข้าสู่ machine learning ได้อย่างไร ในการจัดหมวดหมู่แบบกว้างขึ้นนี้ เราพิจารณาทั้งประเภทของโมเดล/อัลกอริทึมบนอุปกรณ์ประมวลผล รวมถึงประเภทของข้อมูลที่ป้อนเข้าไป ภาพด้านบนสรุปการผสมผสานที่เป็นไปได้เหล่านี้

ไดอะแกรมแสดงจต��ุภาคที่มีอัลกอริทึมอยู่บนแกนหนึ่งและข้อมูลอยู่บนอีกแกนหนึ่ง โดยแต่ละอย่างอาจเป็นแบบ quantum หรือ classical

ตัวอย่างเช่น CC หมายความว่าเรามีชุดข้อมูลแบบ classical เช่น รูปภาพ เสียง หรือข้อความที่เราเก็บได้บนคอมพิวเตอร์แบบ classical และเราใช้คอมพิวเตอร์แบบ classical เพื่อรันอัลกอริทึม machine learning ซึ่งนี่คือการตั้งค่า classical machine learning โดยตรง ในทางกลับกัน QQ หมายความว่าเราใช้คอมพิวเตอร์ควอนตัมเพื่อประมวลผลข้อมูลควอนตัม ที่นี่ "ข้อมูลควอนตัม" อาจหมายความหลายอย่างและอาจขึ้นอยู่กับบริบท ข้อมูลควอนตัมอาจเป็นชุดผลลัพธ์การวัดที่ได้จากอุปกรณ์ควอนตัม หรืออาจหมายถึงสถานะที่ถูกเตรียมบนคอมพิวเตอร์ควอนตัมโดยอัลกอริทึมอื่น ในอนาคตอาจหมายถึงข้อมูลที่เก็บใน QRAM (Quantum Random Access Memory) ซึ่งยังไม่มีอยู่ในปัจจุบัน เมื่อนักวิจัยพูดถึง quantum machine learning พวกเขามักหมายถึงระบบ CQ ที่ชุดข้อมูลเป็นแบบ classical และอุปกรณ์ประมวลผลที่รันอัลกอริทึม machine learning คือคอมพิวเตอร์ควอนตัม ในส่วนต่อๆ ไปของคอร์สนี้ เราจะเน้นที่อัลกอริทึมเหล่านี้

Support vector machines

ตอนนี้เราจะทบทวนกลุ่มอัลกอริทึมที่เรียกว่า support vector machines จากมุมมอง classical machine learning ในภายหลังเราจะแสดงให้เห็นว่า quantum computing สามารถนำเข้ามาในอัลกอริทึมนี้ได้อย่างไร

ไดอะแกรมของ support vector machine

สมมติว่ามีงาน binary classification บนชุดข้อมูลที่มีพื้นที่ feature สองมิติตามที่แสดงในกราฟ สิ่งหนึ่งที่เราทำได้เพื่อ classification ชุดข้อมูลนี้คือหาเส้นตรง หรือโดยทั่วไปคือ hyperplane ที่แยกสองหมวดออกจากกัน ในทางปฏิบัติเราหา hyperplane ที่แยกได้จำนวนอนันต์ ดังนั้นคำถามคือ: เราจะกำหนด hyperplane ที่ดีที่สุดได้อย่างไร แนวคิดคือ decision boundary ที่ดีโดยเฉพาะควรทำให้ margin สูงสุด ซึ่งนิยามว่าเป็นระยะทางไปยังจุดที่ใกล้ที่สุดในแต่ละหมวด ในการตั้งค่านี้ จุดข้อมูลที่มีระยะทางน้อยที่สุดถึง decision boundary เรียกว่า support vectors

decision boundary แบบ linear อาจอธิบายได้หลายวิธี วิธีที่ตรงไปตรงมาที่สุดคือที่แสดงใน f1f_1 ด้านล่าง ที่นี่ Θ\Theta คือชุดพารามิเตอร์ที่กำหนด hyperplane x\vec{x} คือชุดข้อมูลของคุณ และ bb คือ constant shift Φ\Phi คือการ mapping จากพื้นที่ของจุดข้อมูล input มักจะ (แต่ไม่จำเป็น) ไปยังพื้นที่มิติสูงกว่า เราจะกลับมาที่การ mapping นี้ด้านล่าง

ในโมเดล f1,f_1, Θ\Theta คือ vector ของพารามิเตอร์ที่ปรับได้ที่โมเดลจะเรียนรู้ นี่คือสิ่งที่เราเรียกว่า "primal formulation" ด้วยการดัดแปลงทางคณิตศาสตร์บางอย่าง เราสามารถแสดงให้เห็นว่ามีวิธีที่สองในการกำหนดปัญหาเดิม เรียกว่า "dual formulation" ที่แสดงด้วยสมการ f2f_2 ด้านล่าง สำหรับ formulation นี้ เราต้องปรับพารามิเตอร์ alpha ความแตกต่างหลักคือใน primal formulation สมการมี inner product ระหว่าง feature vector กับพารามิเตอร์ที่เรียนรู้ได้ ในขณะที่ใน dual formulation inner product จะอยู่ระหว่าง feature vectors แม้ว่า dual form จะรวมทั้ง feature ของข้อมูลฝึกและป้ายกำกับที่สอดคล้องกัน แต่เราจะเห็นในส่วนถัดไปว่ามันมีประโยชน์มากกว่า primal form อย่างไร

f1(x)=ΘTΦ(x)+bf_1(\vec{x}) = \Theta^T \Phi(\vec{x})+b f2(x)=i=1nαiyiΦT(xi)Φ(x)+bf_2(\vec{x}) = \sum_{i=1}^n \alpha_i y_i \Phi^T(\vec{x}_i)\Phi(\vec{x})+b

Kernel methods และบทบาทของควอนตัม

วิดีโอด้านล่างจะกระตุ้นความสนใจว่าควอนตัมสามารถมีบทบาทใน linear classifiers ได้อย่างไร ซึ่งอธิบายรายละเอียดเพิ่มเติมในข้อความ

การย้ายไปยังพื้นที่มิติสูง

ในส่วนนี้และส่วนย่อยถัดไป การอภิปรายมุ่งเน้นที่การ mapping ไปยังมิติที่สูงกว่า ประเด็นคืออธิบาย "kernel trick" ในบริบทของ mapping ระหว่างพื้นที่ และดังนั้นจึงวางรากฐานสำหรับสิ่งที่ quantum kernel คืออะไร สิ่งสำคัญคือ ไม่ใช่ ว่ามิติที่สูงกว่าใน quantum wave functions จะแก้ปัญหาทั้งหมดของเรา ดังที่กล่าวในบทนำ classical Gaussian feature maps นั้นมีมิติอนันต์อยู่แล้ว มิติของ data features มีความสำคัญ แต่ quantum states มิติสูงไม่เพียงพอสำหรับการปรับปรุงเหนือวิธีการ classical

จากภาพกราฟ เราสามารถเห็นได้ง่ายๆ ว่าเราสามารถสรุป SVM ไปยังกรณีที่ข้อมูลต้นฉบับไม่สามารถแยกแบบ linear ได้ โดยใช้ mapping ที่เหมาะสมไปยังมิติที่สูงกว่า เมื่อดูข้อมูลสองมิติทางซ้าย เราจะเห็นว่าไม่มี linear decision boundary ที่สามารถแยกสองหมวดออกจากกันได้ อย่างไรก็ตาม เราสามารถพิจารณาเพิ่ม feature ที่สามให้กับ feature space ของเรา ถ้า feature ใหม่นี้เป็น — ตัวอย่างเช่น — ระยะทางถึง origin ของ feature สองตัวก่อนหน้า x1x_1 และ x2x_2 แล้วข้อมูลก็จะสามารถแยกได้แบบ linear ซึ่งหมายความว่าตอนนี้เราสามารถรัน support vector machine algorithm ได้สำเร็จบน feature space มิติสูงกว่านี้

ไดอะแกรมแสดงวงแหวนของข้อมูลประเภทหนึ่งที่มีข้อมูลประเภทที่สองอยู่ตรงกลาง เซลล์ที่สองแสดงข้อมูลที่ project ไปยัง 3D เหมือนรูปชาม ตอนนี้ข้อมูลสามารถแยกได้แบบ linear

เราก็เรียก "feature mapping" นี้ว่า Φ\Phi เช่นกัน feature map มักจะ mapping จากพื้นที่ของข้อมูล input ไปยังมิติที่สูงกว่า ดังที่แสดงที่นี่ แต่มีโมเดลและอัลกอริทึมที่ใช้ mapping ไปยังมิติที่ต่ำกว่า การ mapping ไปยังมิติที่สูงกว่าเป็นเพียงกรณีที่ง่ายต่อการแสดงภาพและเข้าใจ

x=(x1x2)\vec{x} = \begin{pmatrix}x_1 \\ x_2 \end{pmatrix} Φ(x)=(x1x2x12+x22)\vec{\Phi}(\vec{x}) = \begin{pmatrix}x_1 \\ x_2 \\ {x_1}^2+{x_2}^2\end{pmatrix}

feature maps บางอย่างอาจ map ไปยังพื้นที่มิติสูงมาก ในกรณีเช่นนี้ มิติสูงทำให้ inner products มีค่าใช้จ่ายในการคำนวณมากขึ้น เราจะกลับมาที่จุดนั้นด้านล่าง

ทำไม dual form จึงมีประโยชน์?

ลองนึกถึง primal และ dual formulations ของโมเดล linear boundary ของเรา:

f1(x)=ΘTΦ(x)+bf_1(\vec{x}) = \Theta^T \Phi(\vec{x})+b f2(x)=i=1nαiyiΦT(xi)Φ(x)+bf_2(\vec{x}) = \sum_{i=1}^n \alpha_i y_i \Phi^T(\vec{x}_i)\Phi(\vec{x})+b

ตอนนี้ที่เรารู้ว่าการใช้ feature map เพื่อไปยังพื้นที่มิติสูงกว่าสามารถช่วยให้เราหา separating hyperplane ได้สำเร็จ เราสามารถแทนที่ feature vector ต้นฉบับ x\vec{x} ในสมการด้วย feature-mapped vectors อย่างไรก็ตาม ถ้าเราทำเช่นนี้ใน primal formulation เราจะเผชิญกับปัญหาของการต้องคำนวณ inner products ระหว่างพารามิเตอร์และ feature map มิติสูงที่อาจมาก แต่ใน dual formulation เราเห็นว่าสิ่งเหล่านี้ถูกแทนที่ด้วย inner products ระหว่าง feature-mapped vectors ของ inputs ต่างๆ

สำหรับ feature maps บางอย่าง อาจเป็นไปได้ที่จะเขียน inner product ของ feature-mapped vectors ΦT(xi)Φ(xj)\vec{\Phi}^T(\vec{x}_i)\cdot \vec{\Phi}(\vec{x}_j) เป็นฟังก์ชันง่ายๆ k(xi,xj)k(\vec{x}_i, \vec{x}_j) ของตัวแปรต้นฉบับ (มิติต่ำกว่า) xi\vec{x}_i และ xj\vec{x}_j สำหรับบางการเลือก Φ,\Phi, เราอาจสามารถเขียน ΦT(xi)Φ(xj)\vec{\Phi}^T(\vec{x}_i)\cdot \vec{\Phi}(\vec{x}_j) เป็นฟังก์ชันง่ายๆ ของ inner product มิติต่ำกว่า xiTxj\vec{x}_i^T\vec{x}_j ซึ่งมีประโยชน์ทางการคำนวณมาก เพราะเราสามารถเข้าถึงพื้นที่ที่ข้อมูลสามารถแยกได้แบบ linear แต่โดยไม่ต้องเสียค่าใช้จ่ายในการจัดการในมิติสูง ในความเป็นจริง เนื่องจาก feature-mapped vectors ปรากฏใน f2f_2 เฉพาะใน inner products เราอาจไม่จำเป็นต้องดำเนินการ feature mapping อย่างชัดเจนเพื่อคำนวณ inner products เลย เราเรียกฟังก์ชัน k(xi,xj)k(\vec{x}_i, \vec{x}_j) ที่คำนวณ inner products ว่า "kernel function" และวิธีการหลีกเลี่ยงการคำนวณ feature map นี้เรียกว่า "kernel trick" ที่จริงแล้ว feature-mapped vectors อาจมีมิติอนันต์ได้ แต่ kernel ก็อาจคำนวณได้อย่างมีประสิทธิภาพมาก

kernel function เองเป็นฟังก์ชันของ input data vectors สองตัว การแทน data vector คู่ทุกคู่ในชุดข้อมูลเป็นอาร์กิวเมนต์ของ kernel function ส่งผลให้ได้เมทริกซ์ symmetric, positive semi-definite ที่เรียกว่า kernel matrix:

k=(k(x1,x1)k(x1,x2)...k(x2,x1)k(x2,x2)...)k = \begin{pmatrix}k(\vec{x}_1,\vec{x}_1) & k(\vec{x}_1,\vec{x}_2) & ... \\ k(\vec{x}_2,\vec{x}_1) & k(\vec{x}_2,\vec{x}_2) & ... \\ \vdots & \vdots & \ddots\end{pmatrix}

เมื่อคำนวณ kernel matrix แล้ว เราสามารถหาพารามิเตอร์ที่ดีที่สุด (αi\alpha_i) โดยใช้วิธีต่างๆ เช่น quadratic programming software หรืออัลกอริทึมที่เรียกว่า "sequential minimal optimization" แน่นอนว่าสิ่งนี้ถือว่ามี kernel ที่คำนวณได้อย่างมีประสิทธิภาพซึ่งสอดคล้องกับ feature map ที่ทำให้ data classes ของคุณสามารถแยกได้แบบ linear แนวทางที่เกี่ยวข้องแต่ใหม่คือ quantum kernel estimation

Quantum kernels

คอมพิวเตอร์ควอนตัม หรือ quantum states โดยทั่วไป ช่วยให้นิยาม "quantum kernel" ได้อย่างเป็นธรรมชาติ เราสามารถตีความการ encode input x\vec{x} เป็น quantum state Φ(x)|\Phi(\vec{x})\rangle เป็น feature map กระบวนการนี้อาจ map ข้อมูลไปยังพื้นที่มิติสูงมากดังที่พบใน classical feature maps แต่มิติจะขึ้นอยู่กับวิธีการ encoding (ดูบทเรียน Data Encoding) จำได้ว่า inner product ของ quantum states สองตัว ψϕ\langle \psi | \phi \rangle เกี่ยวข้องกับความน่าจะเป็นในการวัด state ϕ|\phi\rangle เมื่ออยู่ใน state ψ|\psi\rangle เราสามารถประมาณ inner product ของจุดข้อมูลที่ mapping แล้วสองจุด Φ(xi)\vec{\Phi}(\vec{x}_i) และ Φ(xj)\vec{\Phi}(\vec{x}_j) โดยการวัด Circuit ที่ได้จำนวนครั้งที่เพียงพอ

การแสดงภาพ abstract ของ kernel เป็น Circuit

ดังที่เราจะเห็นในภายหลังในคอร์ส เราสามารถใช้การวัดบน quantum Circuit เหมือนที่แสดงด้านบนเพื่อประมาณ kernel และเราสามารถรัน SVM optimization แบบ classical บน kernel matrix เพื่อเรียนรู้พารามิเตอร์ที่ปรับได้

Variational quantum classifiers และ neural networks

อัลกอริทึม quantum machine learning near-term อีกอย่างหนึ่งเรียกว่า "variational quantum circuits" (VQCs) เมื่อ Circuit เหล่านี้ใช้ในงาน classification คุณอาจเห็นตัวย่อเดียวกันใช้เรียก "variational quantum classifiers" (ก็คือ VQCs เช่นกัน) สิ่งเหล่านี้มักใช้โครงสร้างที่คล้ายกับ classical neural networks (NNs) และในกรณีเหล่านั้นคุณจะเห็นว่าถูกอธิบายว่าเป็น quantum neural networks (QNNs) สิ่งสำคัญที่ต้องเข้าใจคือ VQCs มีความทั่วไปมากกว่าและไม่จำเป็นต้องเป็นโครงสร้าง NN แต่เราเริ่มต้นด้วยการเปรียบเทียบกับ NNs เพื่อช่วยชี้แจงบทบาทที่ควอนตัมสามารถมีในงาน machine learning ที่มีอยู่แล้ว จากนั้นเราจะอภิปรายถึงการสรุปทั่วไป เราเริ่มต้นด้วยการทบทวน classical neural networks

วิดีโอด้านล่างให้การทบทวน neural networks อย่างย่อ และจุดที่ทับซ้อนกับ variational quantum circuits ซึ่งสำรวจเพิ่มเติมในข้อความ

neural network คือโมเดลการคำนวณที่ได้รับแรงบันดาลใจอย่างคร่าวๆ จากโครงสร้างและฟังก์ชันของ neurons ในสมอง neurons เหล่านี้ ซึ่งเป็น nodes ที่เราเห็นในรูป ถูกจัดเรียงเป็นชั้นๆ และเชื่อมต่อกันผ่าน weights

QML_CR_background_QNN_2ndlayer.png

ชั้นแรกคือ input layer และค่า activations an0a_n^0 ของ neurons ในชั้นนี้ถูกป้อนโดยตรงจากข้อมูล x\vec{x} ที่ต้องการวิเคราะห์ (เช่น ระดับสีของแต่ละพิกเซลในรูปภาพ) ชั้นสุดท้ายคือ output layer ที่อธิบายการจัดหมวดหมู่ (เช่น การจำแนกรูปภาพว่ามีโอกาส 90% เป็นสุนัข และ 10% เป็นแมว หากจะยกตัวอย่างต่อ)

QML_CR_background_QNN_output.png

neurons ในแต่ละชั้นประมวลผลสัญญาณที่ได้รับจากชั้นก่อนหน้าและส่งต่อไปยังชั้นถัดไปผ่าน weights wiw_i (การเชื่อมต่อในไดอะแกรม) ถ้าเราเน้นที่ neurons เหล่านี้สักตัวหนึ่ง เราจะได้ building block ของ neural network ที่เรียกว่า "perceptron" ในเชิงคณิตศาสตร์ perceptron รับ input vector x\vec{x} และคำนวณ inner product ของมันกับ weight vector ที่ฝึกได้บวกกับ bias บางค่า และที่สำคัญมาก perceptron ใช้ฟังก์ชัน activation แบบ non-linear (σ\sigma) บนการคำนวณนี้ ฟังก์ชัน activation แบบ non-linear เหล่านี้มีความสำคัญต่อพลังการแสดงออกที่ยอดเยี่ยมของ neural networks อีกวิธีที่จะคิดถึงเรื่องนี้คือ ถ้าเราไม่มีความ non-linear ระหว่างชั้นต่างๆ เราก็สามารถเขียน neural network ทั้งหมดเป็นการคูณเมทริกซ์ขนาดใหญ่ตัวเดียวได้ ซึ่งจะส่งผลให้ได้โมเดลเชิงเส้น ซึ่งไม่สามารถจับรูปแบบที่ซับซ้อนที่ deep neural networks ทำได้ ดังนั้น ฟังก์ชัน activation แบบ nonlinear จึงเป็นพื้นฐานใน neural networks

perceptron_CP.png

ฟังก์ชันเช่น

f(x)=σ(wx+b)f(\vec{x}) = \sigma (\vec{w}\cdot \vec{x}+\vec{b})

ถูกคำนวณที่ทุก neuron โดยใช้ข้อมูล x\vec{x} ที่ทราบและ σ\sigma แบบ non-linear รวมถึง weight vectors ที่ไม่ทราบ w\vec{w} และ biases b\vec{b} โดยทั่วไป อาจมี weights ที่ไม่เป็นศูนย์ระหว่าง neurons ทุกตัวของทุกชั้น และเราจะเรียก weights จากชั้น LL ไปยังชั้น L+1L+1 ระหว่าง neurons mm และ nn ว่า wm,nLw^L_{m,n} ในทำนองเดียวกัน bias บน neurons ที่ nthn^\text{th} ของชั้น LthL^\text{th} จะเป็น bnLb^L_n biases ที่นี่ไม่เกี่ยวข้องกับ bb จากการอภิปราย quantum kernel

คุณอาจเริ่ม neural network ด้วยชุด weights และ biases แบบสุ่ม หรือจากการตั้งค่าเริ่มต้นที่สมเหตุสมผล จากนั้น แนวคิดคือตรวจสอบว่า neural network ของคุณจำแนกสิ่งต่างๆ ได้ดีแค่ไหนและปรับปรุงมัน เราใช้ cost function เพื่ออธิบายว่า neural network ของเราเบี่ยงเบนจากการจำแนกที่ถูกต้องได้อย่างไร มีหลายวิธีในการนิยาม cost function เราจะอธิบายตัวอย่างทั่วไปหนึ่งตัวที่นี่ ซึ่งเกี่ยวข้องกับ mean-squared error (MSE):

C(wm,nL,bnL)=1Ni=1Ntrainj=1Noutputs(vi,jpi,j)2C(w^L_{m,n},b^L_n) = \frac{1}{N}\sum_{i=1}^{N_\text{train}}\sum_{j=1}^{N_\text{outputs}}{(v_{i,j}-p_{i,j})^2}

ขึ้นอยู่กับการใช้งาน อาจหมายถึงการหาความแตกต่างระหว่างค่าจริง vi,jv_{i,j} ของรูปภาพ ii จากข้อมูลฝึกสำหรับ output jj (ตัวอย่างเช่น ค่า 1.0 บน output layer neuron สำหรับ "สุนัข" และ 0 บน neurons อื่นทั้งหมด) และค่าที่ predict ได้ pi,jp_{i,j} ยกกำลังสองความแตกต่างนั้นและรวมทุกหมวดหมู่ เพื่อไม่เพียงจับว่าหมวดที่ถูกต้องถูก activate มากที่สุด แต่ยังว่า activations ที่ไม่ถูกต้องถูกลดลงด้วย จากนั้นเราบวกรวมตัวอย่างทั้งหมดใน training set เพื่อได้ cost

จากนั้นเราปรับพารามิเตอร์ต่างๆ เช่น weights ในแต่ละชั้น ระหว่าง neurons ทั้งหมด และ biases บน neurons ทั้งหมด ใช้ classical optimization routines เช่น gradient descent เพื่อค้นหา local minimum ใน cost function

Quantum perceptron

เพื่อสร้าง quantum counterpart ของ perceptron สิ่งหนึ่งที่เราต้องพิจารณาคือการ implement non-linearity ด้วย quantum circuits ซึ่งเป็นบทบาทของ activation function ใน classical neural networks เพราะโดยไม่มีการพิจารณาเพิ่มเติม quantum circuits จะ implement เฉพาะ unitary operations ซึ่งเป็นเชิงเส้นอย่างง่าย มีวิธีต่างๆ ที่เราสามารถใช้เพื่อแนะนำ non-linearity ให้กับ quantum circuits วิธีหลักอย่างหนึ่งคือการใช้การวัดเป็นแหล่งของ non-linearity วิธีอื่นๆ ได้แก่ วิธีที่ใช้ quantum Fourier transform, mid-circuit measurements หรือ dynamic circuits และการ trace Qubit ออกจาก Circuit

Quantum neural network

quantum neural network (QNN) ทำงานโดยการ encode ข้อมูล input ด้วยชั้น unitary UU ในรูปก่อน จากนั้นใช้ quantum circuits ที่สอดคล้องกับ weights ระหว่างชั้น (WW ด้านล่าง) และสุดท้ายชั้นการวัด ประเด็นสำคัญบางอย่างเกี่ยวกับสิ่งนี้:

  • การโหลดข้อมูลและ weightings เป็น linear operations
  • การวัดเป็น non-linear
  • ดังนั้นเหมือนกับ classical NN เรามีทั้งส่วน linear และ non-linear
  • weight circuits ยังคงมีพารามิเตอร์ variational ดังนั้นยังคงต้องมี classical minimization ดำเนินการ

การแสดง quantum neural network เป็น Circuit

เราสามารถใช้ Circuit ดังที่แสดงด้านบนเพื่อคำนวณฟังก์ชัน fQNN(x)=0U(X)WOWU(x)0f_{QNN}(x) = \langle 0|U^{\dagger}(X)W^{\dagger}OWU(x)|0\rangle โปรดทราบว่าฟังก์ชันนี้โดยทั่วไปไม่เหมือนกับฟังก์ชัน f(x)f(x) ที่อธิบายใน classical NNs โดยเฉพาะอย่างยิ่ง ฟังก์ชันนี้รวมถึงหลายชั้นของ weights จำนวนมาก และถูกนำไปใช้กับข้อมูลทั้งหมดที่โหลดเข้า quantum circuit ของคุณโดย UU

การสรุปทั่วไป

ตอนนี้เราสามารถดูวิธีหนึ่งในการสร้าง quantum counterpart ของ neural network ในโมเดลนี้ การไหลของข้อมูลแตกต่างจาก classical feed-forward neural network ในการตั้งค่าแบบ classical ข้อมูลจะไหลจากซ้ายไปขวา เริ่มต้นด้วย input และสิ้นสุดด้วย model output และในทิศทางย้อนกลับเมื่อทำ backpropagation เพื่อฝึกโมเดล

ไดอะแกรมแสดงหลายชั้นของ Gates ภายใน quantum neural network

อย่างไรก็ตาม ใน quantum neural network นี้ เราเห็นว่า unitary block ที่ encode ข้อมูลซ้ำตัวเองระหว่าง variational unitary blocks ที่มีพารามิเตอร์ที่ฝึกได้ กลยุทธ์นี้ที่เราเรียกว่า "data reuploading" ได้รับการสนับสนุนจากผลทางทฤษฎีที่น่าสนใจ ในความเป็นจริง บทความโดย Pérez-Salinas et al. แสดงให้เห็นว่า ด้วยความช่วยเหลือของ data reuploading หลายครั้ง "Qubit เดียวให้ความสามารถในการคำนวณที่เพียงพอเพื่อสร้าง universal quantum classifier เมื่อได้รับความช่วยเหลือจาก classical subroutine" ดังนั้น data reuploading เป็นเทคนิคที่เราสามารถใช้เพื่อเพิ่มความสามารถในการแสดงออกและพลังในการแทน representation ของโมเดล ทำให้ quantum neural network สามารถประมาณฟังก์ชันที่ซับซ้อนได้

อ้างอิง

[1] "Reinforcement Learning: An Introduction", Richard S. Sutton and Richard G. Barto, MIT Press, Second Edition, Cambridge, MA, 2018

[2] "Pattern Recognition and Machine Learning", Christopher M. Bishop, Springer, 2006

[3] "Foundations of Machine Learning", Mehryar Mohri, Afshin Rostamizadeh, and Ameet Talwalkar, MIT Press, Second Edition, 2018.

Source: IBM Quantum docs — updated 20 ม.ค. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of approx. 26 มี.ค. 2569