Ulasan kaedah pembelajaran mesin yang relevan
Dalam bahagian ini, kita akan mengulas beberapa istilah dan kaedah utama daripada pembelajaran mesin klasik yang akan membantu kita memahami dengan lebih baik aliran kerja dalam pembelajaran mesin kuantum. Kita akan mula dengan memperkenalkan beberapa istilah umum, sebelum menyelam lebih dalam ke dua jenis pembelajaran mesin: kaedah kernel (terutamanya dalam konteks mesin vektor sokongan) dan rangkaian neural. Sudah tentu ada perkaitan antara kaedah-kaedah ini, tetapi kita akan anggap ia berbeza disebabkan perbezaan dalam aliran kerja kuantum yang dibincangkan di sini dan dalam pelajaran-pelajaran kemudian. Ini hanyalah gambaran keseluruhan yang ringkas, dan kita akan melangkau banyak nuansa. Untuk gambaran keseluruhan pembelajaran mesin yang lebih lengkap, kami mencadangkan sumber seperti [1-3].
Jenis-jenis pembelajaran mesin
Sebagai definisi mudah, pembelajaran mesin adalah koleksi algoritma yang menganalisis dan membuat inferens daripada corak dan hubungan dalam data. Secara umum, algoritma pembelajaran mesin boleh dikumpulkan ke dalam tiga kategori utama bergantung pada jenis data yang terlibat dan bagaimana algoritma belajar tanpa diprogramkan secara eksplisit:
- Pembelajaran terkawal: Dalam pembelajaran terkawal, data yang digunakan untuk melatih model adalah berlabel. Matlamat algoritma ini adalah untuk mempelajari hubungan antara data dan label atau output yang berkaitan, dan menggeneralisasikan ini kepada data yang belum dilihat. Tugas umum dalam kelas ini adalah pengelasan dan regresi.
- Pembelajaran tanpa pengawasan: Berbeza dengan pembelajaran terkawal, pembelajaran tanpa pengawasan menggunakan data tanpa label untuk melatih model pembelajaran mesin. Matlamat algoritma sedemikian adalah untuk menemui corak tersembunyi dan struktur dalam data. Beberapa algoritma dalam kelas ini adalah algoritma pengelompokan dan pengurangan dimensi. Beberapa model generatif seperti rangkaian adversarial generatif dan autoenkoder variasi juga boleh dianggap dalam kategori ini.
- Pembelajaran pengukuhan: Algoritma dalam kategori pembelajaran mesin ini ditakrifkan oleh ejen yang berinteraksi dengan persekitaran. Ejen mengambil tindakan dan menerima maklum balas daripada persekitarannya dalam bentuk ganjaran dan hukuman. Akhirnya melalui mekanisme maklum balas ini, ejen belajar untuk mengambil set tindakan yang betul untuk melaksanakan tugas tertentu.

Imej kiri menunjukkan dua kategori data berlabel seperti dalam pembelajaran terkawal. Dalam kes ini, kategori-kategori tersebut boleh dipisahkan secara linear. Imej kanan menunjukkan kelompok data. Dalam tugas pembelajaran tanpa pengawasan, data ini pada mulanya tidak akan berlabel dan algoritma akan mengkaji taburannya, mungkin mencari kelompok. Untuk tujuan menggambarkan contoh kelompok yang mungkin dikenal pasti oleh algoritma, titik-titik data kini telah dilabel. Perbezaan utama antara keduanya adalah bahawa proses pembelajaran terkawal bermula dengan data yang sudah berlabel dan proses pembelajaran tanpa pengawasan bermula dengan data tanpa label, walaupun data dilabel pada akhirnya.
Memperkenalkan "kuantum" kepada pembelajaran mesin
Kita kini boleh mula meneroka bagaimana "kuantum" diperkenalkan ke dalam pembelajaran mesin. Dalam kategori yang lebih luas ini, kita mempertimbangkan jenis model/algoritma pada peranti pemprosesan, serta jenis data yang diberikan kepadanya. Gambar di atas meringkaskan kombinasi yang mungkin ini.

Sebagai contoh, CC bermakna kita mempunyai set data klasik — seperti imej, bunyi, atau teks yang boleh kita simpan pada komputer klasik — dan kita juga menggunakan komputer klasik untuk menjalankan algoritma pembelajaran mesin. Ini adalah tepat tetapan pembelajaran mesin klasik. Sebaliknya, QQ bermakna kita menggunakan komputer kuantum untuk memproses data kuantum. Di sini, "data kuantum" boleh bermakna beberapa perkara, dan boleh bergantung pada konteks. Data kuantum boleh dianggap sebagai satu set hasil pengukuran yang diperoleh daripada peranti kuantum, atau ia boleh merujuk kepada keadaan yang telah disediakan pada komputer kuantum oleh algoritma lain. Pada masa hadapan, ia bahkan boleh merujuk kepada data yang disimpan dalam QRAM (Memori Akses Rawak Kuantum), yang belum wujud pada masa ini. Apabila penyelidik bercakap tentang pembelajaran mesin kuantum, mereka biasanya merujuk kepada rejim CQ, di mana set data adalah klasik dan peranti pemprosesan yang melaksanakan algoritma pembelajaran mesin adalah komputer kuantum. Dalam bahagian-bahagian kursus yang berikut, kita akan memberi tumpuan kepada algoritma sedemikian.
Mesin vektor sokongan
Kita kini mengimbas kembali kelas algoritma yang dipanggil mesin vektor sokongan dari sudut pandang pembelajaran mesin klasik. Kemudian kita akan menunjukkan cara membawa pengkomputeran kuantum ke dalam algoritma ini.

Katakan kita mempunyai tugas pengelasan perduaan pada set data dengan ruang ciri dua dimensi seperti yang ditunjukkan dalam plot. Satu perkara yang boleh kita lakukan untuk melaksanakan pengelasan bagi set data ini adalah mencari garis, atau secara umum hiperplan yang memisahkan dua kelas. Dalam praktiknya kita boleh menemui hiperplan pemisah yang tak terhingga banyaknya, jadi persoalannya adalah: Bagaimana kita menentukan yang optimum? Idea di sini adalah bahawa sempadan keputusan yang baik seharusnya memaksimumkan jidar, yang ditakrifkan sebagai jarak ke titik terdekat dalam setiap kelas. Dalam tetapan ini, titik-titik data dengan jarak terkecil ke sempadan keputusan dipanggil vektor sokongan.
Sempadan keputusan linear boleh diterangkan dalam beberapa cara; dalam beberapa segi cara yang paling mudah adalah yang ditunjukkan dalam di bawah. Di sini, adalah set parameter yang mentakrifkan hiperplan, adalah set data anda, dan adalah anjakan malar. adalah pemetaan dari ruang titik data input selalunya (tetapi tidak semestinya) ke ruang dimensi yang lebih tinggi. Kita akan kembali kepada pemetaan ini di bawah.
Dalam model adalah vektor parameter yang boleh ditala yang akan dipelajari oleh model. Inilah yang kita panggil "formulasi prima". Dengan beberapa manipulasi matematik kita boleh menunjukkan bahawa terdapat cara kedua kita boleh memformulasikan masalah yang sama. Kita panggil ini "formulasi dual", yang digambarkan oleh persamaan di bawah. Untuk formulasi ini, kita perlu mengoptimumkan parameter alfa. Perbezaan utama adalah bahawa dalam formulasi prima persamaan mempunyai hasil darab dalam antara vektor ciri dan parameter yang boleh dipelajari, manakala dalam formulasi dual hasil darab dalam adalah antara vektor ciri. Walaupun bentuk dual menyertakan ciri data latihan dan label yang berkaitan, kita akan melihat dalam bahagian seterusnya bagaimana ia terbukti lebih berguna daripada bentuk prima.
Kaedah kernel dan bagaimana kuantum boleh memainkan peranan
Video di bawah memotivasikan bagaimana kuantum boleh memainkan peranan dalam pengelas linear. Ini diterangkan dengan lebih terperinci dalam teks.
Bergerak ke ruang dimensi lebih tinggi
Dalam subseksyen ini dan yang berikutnya, perbincangan memberi tumpuan kepada pemetaan ke dimensi yang lebih tinggi. Tujuannya di sini adalah untuk menerangkan "helah kernel" dalam konteks pemetaan antara ruang, dan dengan itu menetapkan peringkat untuk apa itu kernel kuantum. Tujuannya bukan bahawa dimensi yang lebih tinggi dalam fungsi gelombang kuantum menyelesaikan semua masalah kita. Seperti yang dinyatakan dalam pengenalan, peta ciri Gaussian klasik sudah berdimensi tak terhingga. Dimensinya ciri data adalah penting, tetapi keadaan kuantum berdimensi tinggi tidak mencukupi untuk penambahbaikan berbanding kaedah klasik.
Secara grafik, seseorang boleh melihat dengan mudah bagaimana kita boleh mengitlakkan pendekatan SVM kepada kes-kes di mana data asal tidak boleh dipisahkan secara linear, dengan pemetaan yang betul ke dimensi yang lebih tinggi. Melihat data dua dimensi di sebelah kiri, kita dapat melihat bahawa tiada sempadan keputusan linear yang boleh memisahkan dua kelas tersebut. Namun, kita boleh mempertimbangkan menambah ciri ketiga ke ruang ciri kita. Jika ciri baru ini adalah — misalnya — jarak ke asalan dua ciri sebelumnya dan , maka data menjadi boleh dipisahkan secara linear. Ini juga bermakna kita kini boleh menjalankan algoritma mesin vektor sokongan dengan berjaya pada ruang ciri berdimensi tinggi ini.

Kita juga menandakan "peta ciri" ini . Peta ciri sering memetakan dari ruang data input ke dimensi yang lebih tinggi, seperti yang ditunjukkan di sini, tetapi terdapat model dan algoritma yang menggunakan pemetaan ke dimensi yang lebih rendah. Pemetaan ke dimensi yang lebih tinggi hanyalah kes yang mudah untuk divisualisasikan dan difahami.
Sesetengah peta ciri mungkin memetakan ke ruang berdimensi sangat tinggi. Dalam kes sedemikian, dimensi tinggi membuat hasil darab dalam lebih mahal secara pengiraan. Kita akan kembali kepada perkara itu di bawah.
Mengapa bentuk dual berguna?
Ingat kembali formulasi prima dan dual model sempadan linear kita:
Sekarang kita tahu bahawa menggunakan peta ciri untuk mencapai ruang berdimensi lebih tinggi membolehkan kita berjaya mencari hiperplan pemisah, kita boleh menggantikan vektor ciri asal dalam persamaan dengan vektor yang telah dipetakan ciri. Namun, jika kita melakukan ini dalam formulasi prima, kita menghadapi masalah perlu mengira hasil darab dalam antara parameter dan peta ciri yang berpotensi berdimensi sangat tinggi. Bagaimanapun, dalam formulasi dual, kita melihat bahawa ini digantikan dengan hasil darab dalam antara vektor yang dipetakan ciri dari input yang berbeza.
Untuk sesetengah peta ciri, mungkin boleh menulis hasil darab dalam vektor yang dipetakan ciri sebagai fungsi mudah pemboleh ubah asal (berdimensi lebih rendah) dan . Untuk sesetengah pilihan kita bahkan mungkin boleh menulis sebagai fungsi mudah hasil darab dalam berdimensi rendah . Ini sangat bermanfaat secara pengiraan kerana kita boleh mengakses ruang di mana data boleh dipisahkan secara linear, tetapi tanpa kos manipulasi dalam dimensi yang lebih tinggi. Malah, memandangkan vektor yang dipetakan ciri hanya muncul dalam dalam hasil darab dalam, kita mungkin tidak perlu melaksanakan pemetaan ciri secara eksplisit untuk mengira hasil darab dalam. Kita panggil fungsi yang mengira hasil darab dalam sebagai "fungsi kernel", dan cara mengelak pengiraan peta ciri ini dipanggil "helah kernel". Malah, vektor yang dipetakan ciri boleh berdimensi tak terhingga, tetapi kernel mungkin masih boleh dikira dengan sangat cekap.
Fungsi kernel itu sendiri adalah fungsi dua vektor data input. Memasukkan setiap pasang vektor data dalam set data sebagai argumen fungsi kernel menghasilkan matriks simetri, positif separa pasti, yang dipanggil matriks kernel:
Setelah kita mengira matriks kernel, kita boleh mencari parameter optimum () menggunakan kaedah seperti perisian pengaturcaraan kuadratik atau algoritma yang dipanggil "pengoptimuman minimal berurutan". Sudah tentu, ini mengandaikan bahawa terdapat kernel yang boleh dikira dengan cekap yang berkaitan dengan peta ciri yang membuat kelas data anda boleh dipisahkan secara linear. Pendekatan yang berkaitan tetapi baru adalah penganggaran kernel kuantum.
Kernel kuantum
Komputer kuantum, atau keadaan kuantum secara umum, membenarkan definisi "kernel kuantum" yang sangat semula jadi. Kita boleh mentafsirkan pengekodan input ke dalam keadaan kuantum sebagai peta ciri. Proses ini memang mungkin memetakan data ke ruang berdimensi sangat tinggi seperti yang biasa dalam peta ciri klasik, tetapi dimensinya akan bergantung pada kaedah pengekodan (lihat pelajaran Pengekodan Data). Ingat bahawa hasil darab dalam dua keadaan kuantum berkaitan dengan kebarangkalian mengukur keadaan ketika dalam keadaan . Kita boleh menganggarkan hasil darab dalam dua titik data yang dipetakan dan dengan membuat pengukuran yang cukup banyak pada Circuit yang terhasil.

Seperti yang akan kita lihat kemudian dalam kursus, kita boleh menggunakan pengukuran pada Circuit kuantum seperti yang ditunjukkan di atas untuk menganggarkan kernel, dan kemudian kita boleh menjalankan pengoptimuman SVM secara klasik pada matriks kernel untuk mempelajari parameter yang boleh ditala.
Pengelas kuantum variasi dan rangkaian neural
Algoritma pembelajaran mesin kuantum jangka dekat yang lain dipanggil "Circuit kuantum variasi" (VQCs). Apabila Circuit ini digunakan dalam tugas pengelasan, anda mungkin melihat akronim yang sama digunakan untuk merujuk kepada "pengelas kuantum variasi" (juga VQCs). Ini sering memanfaatkan struktur yang serupa dengan rangkaian neural (NN) klasik; dan dalam kes-kes tersebut anda akan melihatnya diterangkan sebagai rangkaian neural kuantum (QNN). Adalah penting untuk memahami bahawa VQC adalah lebih umum dan tidak perlu mengikuti struktur NN, tetapi kita mulai dengan analogi NN untuk membantu menjelaskan peranan yang boleh dimainkan kuantum dalam aliran kerja pembelajaran mesin yang sedia ada. Kita kemudian akan membincangkan generalisasi. Kita mulai dengan mengimbas kembali rangkaian neural klasik.
Video di bawah memberikan ulasan ringkas rangkaian neural, dan di mana ia bertindih dengan Circuit kuantum variasi. Ini diterokai lebih lanjut dalam teks.
Rangkaian neural adalah model pengiraan yang terinspirasi secara longgar oleh struktur dan fungsi neuron dalam otak. Neuron-neuron ini, yang merupakan nod yang kita lihat dalam gambar, diorganisasikan ke dalam lapisan, dan dihubungkan melalui pemberat.

Lapisan pertama adalah lapisan input, dan pengaktifan neuron dalam lapisan ini dimasukkan terus dari data yang hendak dianalisis (seperti teduhan piksel individu dalam imej, contohnya). Lapisan terakhir adalah lapisan output yang menerangkan pengkategorian (seperti mengklasifikasikan imej sebagai mempunyai 90% peluang menjadi anjing, dan 10% peluang menjadi kucing, untuk terus dengan contoh imej).

Neuron dalam setiap lapisan memproses isyarat yang mereka terima dari lapisan sebelumnya dan menyampaikannya ke lapisan berikutnya melalui pemberat, (hubungan dalam gambar rajah). Jika kita memberi tumpuan kepada salah satu daripada neuron ini, kita mempunyai blok bina rangkaian neural, yang dipanggil "perceptron". Secara matematik, perceptron mengambil vektor input , dan mengira hasil darab dalamnya dengan vektor pemberat yang boleh dilatih ditambah beberapa pincang. Dan yang sangat penting, perceptron menggunakan fungsi pengaktifan tidak linear () di atas pengiraan ini. Fungsi pengaktifan tidak linear ini adalah kritikal untuk kuasa ekspresi rangkaian neural yang besar. Cara lain untuk memikirkan ini adalah, jika kita tidak mempunyai ketaklinearan antara lapisan, maka kita boleh pada dasarnya menulis keseluruhan rangkaian neural sebagai satu pendaraban matriks besar. Ini hanya akan menghasilkan model linear, yang tidak akan dapat menangkap corak kompleks yang boleh dilakukan oleh rangkaian neural dalam. Oleh itu, fungsi pengaktifan tidak linear adalah asas dalam rangkaian neural.

Fungsi seperti
dikira pada setiap neuron menggunakan data yang diketahui dan tidak linear serta juga vektor pemberat yang tidak diketahui dan pincang . Secara umum, boleh ada pemberat bukan sifar antara semua neuron semua lapisan, dan kita akan memanggil pemberat dari lapisan ke lapisan antara neuron dan . Begitu juga, pincang pada neuron ke- lapisan ke- adalah Pincang di sini tidak berkaitan dengan dari perbincangan kernel kuantum.
Anda mungkin memulakan rangkaian neural anda dengan set pemberat dan pincang rawak, atau dari konfigurasi permulaan yang munasabah. Dari sana, ideanya adalah untuk menyemak seberapa baik rangkaian neural anda mengklasifikasikan sesuatu dan memperbaikinya. Kita menggunakan fungsi kos untuk menerangkan bagaimana rangkaian neural kita menyimpang dari pengelasan yang betul. Terdapat banyak cara untuk mentakrifkan fungsi kos. Kita akan menerangkan satu contoh biasa di sini, yang melibatkan ralat min kuasa dua (MSE):
Bergantung pada aplikasi anda, ini boleh bermakna mengambil perbezaan antara nilai sebenar imej dari data latihan untuk output (katakan contohnya, nilai 1.0 pada neuron lapisan output untuk "anjing" dan 0 pada semua neuron lain) dan nilai yang diramalkan . Kuasakan perbezaan itu dan jumlahkan semua kategori, jadi ia bukan sahaja menangkap sama ada kategori yang betul paling diaktifkan, tetapi juga jika pengaktifan yang salah dikurangkan. Kita kemudian menjumlahkan semua contoh dalam set latihan kita dan mendapatkan kos.
Kita kemudian mengubah parameter seperti pemberat dalam setiap lapisan, antara semua neuron, dan pincang pada semua neuron. Rutin pengoptimuman klasik seperti keturunan kecerunan digunakan untuk mencari minimum tempatan dalam fungsi kos.
Perceptron kuantum
Untuk dapat membina rakan sejawat kuantum bagi perceptron, salah satu perkara yang perlu kita pertimbangkan adalah kemampuan untuk melaksanakan ketaklinearan dengan Circuit kuantum, yang merupakan peranan fungsi pengaktifan dalam rangkaian neural klasik. Ini kerana tanpa pertimbangan tambahan, Circuit kuantum hanya melaksanakan operasi uniter, yang semata-mata linear. Terdapat kaedah berbeza yang boleh kita gunakan untuk memperkenalkan ketaklinearan kepada Circuit kuantum. Salah satu kaedah utama adalah menggunakan pengukuran sebagai sumber ketaklinearan. Pertimbangan lain termasuk kaedah berasaskan transformasi Fourier kuantum, pengukuran pertengahan Circuit atau Circuit dinamik, dan mengesan Qubit dari Circuit.
Rangkaian neural kuantum
Rangkaian neural kuantum (QNN) berfungsi dengan terlebih dahulu mengenkod data input dengan lapisan uniter dalam rajah, kemudian menggunakan Circuit kuantum yang sepadan dengan pemberat antara lapisan ( di bawah), dan akhirnya lapisan pengukuran. Beberapa perkara utama mengenai ini:
- Pemuatan data dan pemberat adalah operasi linear.
- Pengukuran adalah tidak linear.
- Jadi seperti dalam NN klasik, kita mempunyai komponen linear dan tidak linear.
- Circuit pemberat masih mempunyai parameter variasi, jadi masih ada peminimuman klasik yang perlu dijalankan.

Kita boleh menggunakan Circuit seperti di atas untuk mengira fungsi Perhatikan bahawa fungsi ini umumnya tidak sama dengan fungsi yang diterangkan dalam NN klasik. Khususnya, fungsi ini termasuk berpotensi banyak lapisan banyak pemberat, dan digunakan merentasi semua data yang dimuatkan ke dalam Circuit kuantum anda oleh .
Generalisasi
Kita kini boleh melihat salah satu cara membina rakan sejawat kuantum bagi rangkaian neural. Dalam model ini, aliran maklumat berbeza daripada rangkaian neural suap-ke-hadapan klasik. Dalam tetapan klasik, maklumat mengalir dari kiri ke kanan, bermula dengan input dan berakhir dengan output model, dan dalam arah terbalik ketika melakukan perambatan balik untuk melatih model.

Namun, dalam konstruksi rangkaian neural kuantum ini, kita melihat bahawa blok uniter yang mengenkod data berulang antara blok uniter variasi dengan parameter yang boleh dilatih. Strategi ini, yang kita rujuk sebagai "pengunggahan semula data", disokong oleh keputusan teori yang menarik. Malah, sebuah kertas oleh Pérez-Salinas et al. menunjukkan bahawa, dengan bantuan pengunggahan semula data berganda, "satu Qubit memberikan kemampuan pengiraan yang mencukupi untuk membina pengelas kuantum universal apabila dibantu dengan subrutin klasik." Oleh itu, pengunggahan semula data adalah teknik yang boleh kita gunakan untuk meningkatkan ekspresiviti dan kuasa representasi model, membolehkan rangkaian neural kuantum menghampiri fungsi-fungsi yang kompleks.
Rujukan
[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.