"Kuantum hegemonyası" yeni numara mı? Google kuantum makine öğrenimi açık kaynak kitaplığı TFQ burada!

Tam metin 2338 Kelimeler, tahmini öğrenme süresi 13 dakika

Kaynak: unsplash

Geçen yıl Ekim ayında, "Nature" Google tarafından bir makale yayınladı. Geliştirdiği Sycammore kuantum işlemcisi, on binlerce yıl boyunca geleneksel süper bilgisayarların hesaplamasını 200 saniyede tamamlayabilir. Buna dayanarak, Google "kuantum hegemonyasına" ulaştığını iddia ediyor. .

9 Mart 2020'de Google Yapay Zeka, kuantum makine öğrenimi modellerinin hızlı gelişimi için açık kaynaklı bir kitaplık olan TensorFlow Quantum'un (TFQ) kullanılabilirliğini doğruladı. Bu, Google'ın "kuantum üstünlüğü" için yeni bir numara mı?

Aslında, daha önce Pennylane gibi birkaç başka çerçeve vardı, ancak hiçbiri TFQ kadar iyi değildi. TFQ bu alanda bir araç kutusu olarak ortaya çıktı ve henüz kamuya açıklanmadı. Diğer bazı çerçeveler hakkında bilgi edindim, ancak TFQ üzerinde çalıştıktan sonra, TFQ'nun en iyisi olduğu inkar edilemez.

Parametreli kuantum devrelerinde makine öğrenimi nasıl gerçekleştirilir?

Bunu açıklığa kavuşturmak için TFQ'nun teknik direktörü Massoud Mosini bir örnek verdi. "Uzay-zaman hacmindeki birim işleminin veya baskının rastgele dönüşünün, derin bir sinir ağında girdiyi çıktıya eşlemek gibi klasik bir devreyi taklit eden sürekli parametreleştirilmiş bir dönüş olduğuna dikkat edilmelidir."

Kaynak: unsplash

Bu kuantum sinir ağlarının prensibidir.

Ancak bu parametreli kuantum devreleri nasıl oluşturulur?

Hibrit bir kuantum modeli geliştirmenin ilk adımı, kuantum hesaplamayı kullanabilmektir. Bu amaçla TFQ, bilgisayarlarda kuantum devrelerini gerçekleştirmek için yeni bir açık kaynak platformu olan Cirq'e güveniyor.

Cirq, kübitler, kapılar, devreler ve hesaplama operatörleri gibi kuantum hesaplamayı tanımlamak için gereken temel yapıları içerir. Cirq'in arkasındaki fikir, kuantum uygulamalarının temel yapı taşlarını özetleyen basit bir programlama modeli sağlamaktır.

Cirq ve TFQ birleştirilebilir mi? Sorun nedir?

Teknik engel 1

· Kuantum verileri içe aktarılamaz.

· Hem veriler hem de modeller kuantum devrelerindeki katmanlardır.

Kuantum verileri her an hazır olmalıdır.

Teknik bariyer 2

· Nispeten yüksek gecikmeli bir CPU-QPU.

· Toplu işler, kuantum bilgisayara aktarılır.

· QPU her çalıştığında tam bir kuantum programına ihtiyaç duyar.

· QPU birkaç mikrosaniye içinde çalışır.

Bunu pratik hale getirmek ve engelleri aşmak için TFQ ekibi programlama bağlamında göz ardı edilemeyecek bazı mimari konseptler ortaya koydu. Mimari standartlar aşağıdaki gibidir:

1. Türevlenebilirlik: Kuantum devrelerinin farklılaşmasını ve karışık geri yayılmasını desteklemelidir.

2. Devre toplu işleme: kuantum verilerini kuantum devreleri olarak yükleyin ve birden çok farklı devreyi paralel olarak eğitin.

3. Yürütme arka uçtan bağımsız: Simülatörden gerçek cihaza birkaç adımda geçebilirsiniz.

4. Minimalizm - Cirq ve TF arasında bir köprü: kullanıcıların makine öğrenimi sorunlarını çözmek için kuantum bilgisayarlarla nasıl etkileşim kuracaklarını yeniden öğrenmelerine gerek yok.

Kaynak: unsplash

Adım adım

Karma ayırt edici modelin TFQ işlem hattı

Aşama 1:

Bir kuantum veri kümesi hazırlayın: Kuantum verilerini, Cirq ile yazılmış bir kuantum devresi olarak tanımlanan bir tensör olarak yükleyin. Tensör, bir kuantum veri kümesi oluşturmak için bir kuantum bilgisayarda TensorFlow tarafından yürütülür.

Kuantum veri kümesi, bilgisayar grafiklerine uygulanan ve tfq.convert_to_tensor kullanan parametrik olmayan bir cirq.Circuit nesnesidir.

Adım 2:

Kuantum sinir ağı modelini değerlendirin: Bu adımda araştırmacılar, kuantum sinir ağının bir prototipini yapmak için Cirq'i kullanabilir ve ardından bunu TensorFlow hesaplama grafiğine yerleştirebilirler.

Kuantum modelinin inşası, SymPy sembollerinin nesnelerini içermek için cirq.Circuit kullanır ve tfq.AddCircuit kullanılarak katmanlanabilir ve kuantum veri kaynağına eklenebilir.

Aşama 3:

Örnek veya ortalama: Bu adım, ortalama değeri elde etmek için (1) ve (2) adımlarının birkaç çalışmasını kullanır. Örnek veya ortalama değer, kuantum verileri ve kuantum modeli gönderilerek tfq.Sample veya tfq.Expectation katmanına gönderilir.

4. Adım:

Klasik sinir ağı modelini değerlendirin: Bu adım, önceki adımda çıkarılan metrikler arasındaki ilişkiyi çıkarmak için klasik derin sinir ağını kullanır. TFQ, TensorFlow ile tamamen uyumlu olduğundan, kuantum modelleri tf.keras.layers.Dense gibi tf.keras.layers.Layer'a ve diğer nesnelere doğrudan bağlanabilir.

Kaynak: unsplash

Adım 5:

Maliyet işlevini değerlendirin: Geleneksel makine öğrenimi modeline benzer şekilde, TFQ bu adımda maliyet işlevini değerlendirir. Kuantum verileri etiketlenmişse, değerlendirme maliyet fonksiyonu, modelin sınıflandırma görevini ne kadar doğru yaptığına bağlı olabilir Görev denetimsiz ise, diğer kriterlere dayanır.

(1) - (4) aşamalarında oluşturulan modeli tf.keras.Model'de paketleyerek kullanıcıların modüldeki tüm kayıplara tf.keras.losses erişmesine olanak tanıyın.

6. Adım:

Gradyanı değerlendirin ve parametreleri güncelleyin - maliyet fonksiyonunu değerlendirdikten sonra, maliyetleri düşürmek için, boru hattındaki ücretsiz parametreler beklenen yönde güncellenmelidir.

Gradyan inişini desteklemek için, kuantum işleminin türevi TensorFlow geri yayılım mekanizmasına açıklanır.Tfq farklılaştırıcılar aracılığıyla.

Kaynak: unsplash

Kodlama demosu

# Bağımlılıkları içe aktarma ! pip install --upgrade cirq == 0.7.0 ! pip install --upgrade tensorflow == 2.1.0 ! pip kurulum qutip ! pip tensorflow-quantum kurulumu ithalat cirq numpy'yi np olarak içe aktar ithalat qutip rastgele içe aktar sympy içe aktar tensorflow'u tf olarak içe aktar tensorflow_quantum'u tfq olarak içe aktar #Quantum Veri Kümesi def generate_dataset (qubit, theta_a, theta_b, num_samples): "" "Verilen iki açıya yakın" kübit "üzerinde noktaların bir veri kümesi oluşturun; etiketler iki küme için tek etkin kodlama kullanın. "" " q_data = bloch = {"a" :, "b":} etiketler = blob_size = abs (theta_a-theta_b) / 5 _ inrange (num_samples) için: coin = random.random () spread_x = np.random.uniform (-blob_size, blob_size) spread_y = np.random.uniform (-blob_size, blob_size) madeni para < 0.5: label = açı = theta_a + spread_y kaynak = "a" Başka: label = açı = theta_b + spread_y kaynak = "b" tags.append (etiket) q_data.append (cirq.Circuit (cirq.ry (-angle) (qubit), cirq.rx (-spread_x) (qubit))) bloch.append (np.cos (açı)) bloch.append (np.sin (açı) * np.sin (spread_x)) bloch.append (np.sin (açı) * np.cos (spread_x)) returntfq.convert_to_tensor (q_data), np.array (etiketler), bloch # Veri kümesini oluşturma qubit = cirq.GridQubit (0, 0) theta_a = 1 theta_b = 4 num_samples = 200 q_data, labels, bloch_p = generate_dataset (qubit, theta_a, theta_b, num_samples #Model # Modelimizin kuantum kısmı olarak bir Z ekseni ölçümünün takip ettiği Y ekseni etrafında parametreleştirilmiş bir dönüş kullanacağız.Klasik kısım için, iki veri kaynağının ölçüm istatistiklerini ayırt etmeyi öğrenmesi gereken iki üniteli bir SoftMax kullanacağız. # Kuantum modeli katmanını oluşturun theta = sympy.Symbol ('teta') q_model = cirq.Circuit (cirq.ry (theta) (qubit)) q_data_input = tf.keras.Input ( şekil = (), dtype = tf.dtypes.string) beklenti = tfq.layers.PQC (q_model, cirq.Z (qubit)) beklenti_çıktı = beklenti (q_data_input) # Klasik SoftMax sınıflandırıcıyı ekleyin classifier = tf.keras.layers.Dense (2, activation = tf.keras.activations.softmax) classifier_output = sınıflandırıcı (beklenti_çıktı) model = tf.keras.Model (inputs = q_data_input, outputs = classifier_output) # Sınıflandırma için standart derleme model.compile (optimizer = tf.keras.optimizers.Adam (learning_rate = 0.1), kayıp = tf.keras.losses.CategoricalCrossentropy ()) tf.keras.utils.plot_model (model, show_shapes = True, dpi = 70) #Eğitim geçmiş = model.fit (x = q_data, y = etiketler, epochs = 50, ayrıntılı = 0) test_data, _, _ = generate_dataset (qubit, theta_a, theta_b, 1) p = model.predict (test_data) baskı (f "prob (a) = {p: .4f}, prob (b) = {p: .4f}")

Kaynak: unsplash

Kuantum sinir ağını çok basit adımlarla keşfettik ve hatta onu TFQ ile gerçekleştirdik ki bu gerçekten şaşırtıcı. TFQ, makine öğrenimi tarihinde büyük bir adım olacak.

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Tek noktadan veri işleme! Bu 15 Python kütüphanesi bilinmelidir
önceki
Kimse bu şeylerle uğraşmak istemez! Size yardımcı olması için dekoratörü tekrar deneyin
Sonraki
Güzel fotoğraflar üretmek için sinirsel stil aktarımı kullanın, bir sonraki Van Gogh sizsiniz!
sen benim gözümsin AI, engelli insanlar için engelsiz İnternet erişim kanalları açar
Anlatılmamış hikaye - ana akım şifrelemenin arkasındaki adam
Slack neden bu kadar popüler? Daha hızlı, daha güvenilir ve daha güvenli
Bugünün Temel Sesi | Yüksek bir yeri işgal etmek için akıllı arabanın "giriş savaşı" daha yeni başladı
Veri yapısı bir kabus mu? Röportajı geçmek için ustalaşmalısınız
Sıfır yuan ile başladığımda uygulamayı ücretsiz olarak nasıl çalıştırırım?
Tuzaklara dikkat edin! Java'da 10 yaygın hata
Kod yazmak, roman yazmak gibi mi? Jupyter edebi programlamayı gerçeğe dönüştürüyor
Gelişmeye devam edin! Python projenizi otomasyondan nasıl yararlanabilirsiniz?
Yetkili Tanıma | Jitai Test Merkezi, CNAS tarafından akredite edilmiştir
Birden fazla bloğun yıkılmasını içeren Beiyuan Caddesi'ndeki 100 günlük zorlu projelerin listesi burada
To Top