TensorFlow Quantum (TFQ), NISQ dönemi kuantum makine öğreniminin sorunları için tasarlanmıştır. TensorFlow ekosistemine kuantum devreleri oluşturmak gibi kuantum hesaplamanın ilkellerini getiriyor. TensorFlow ile oluşturulan modeller ve operasyonlar, güçlü kuantum-klasik hibrit sistemler oluşturmak için bu temelleri kullanır.
Araştırmacılar, TFQ'yu kullanarak bir kuantum veri kümesi, bir kuantum modeli ve klasik kontrol parametrelerini kullanarak bir TensorFlow grafiği oluşturabilirler. Bunların hepsi tek bir hesaplamalı grafikte tensörler olarak temsil edilir. Klasik olasılıksal olaylara yol açan kuantum ölçümlerinin sonucu, TensorFlow operasyonları tarafından elde edilir. Eğitim standart Keras API ile yapılır. tfq.datasets
modülü, araştırmacıların yeni ve ilginç kuantum veri kümeleriyle deneyler yapmasına olanak tanır.
Sirk
Cirq, Google'ın kuantum programlama çerçevesidir. Bir kuantum bilgisayarında veya simüle edilmiş bir kuantum bilgisayarında kuantum devrelerini oluşturmak, değiştirmek ve çağırmak için kübitler, kapılar, devreler ve ölçüm gibi tüm temel işlemleri sağlar. TensorFlow Quantum, toplu hesaplama, model oluşturma ve gradyan hesaplama için TensorFlow'u genişletmek amacıyla bu Cirq temellerini kullanır. TensorFlow Quantum ile etkili olabilmek için Cirq ile etkili olmak iyi bir fikirdir.
TensorFlow Quantum ilkelleri
TensorFlow Quantum, TensorFlow'u kuantum hesaplama donanımıyla entegre etmek için gereken bileşenleri uygular. Bu amaçla, TFQ iki veri türü temel öğesi sunar:
- Kuantum devresi : Bu, TensorFlow içindeki Cirq tanımlı kuantum devrelerini (
cirq.Circuit
) temsil eder. Farklı gerçek değerli veri noktaları gruplarına benzer şekilde, farklı boyutlarda devre grupları oluşturun. - Pauli toplamı : Cirq'de (
cirq.PauliSum
) tanımlanan Pauli operatörlerinin tensör çarpımlarının doğrusal kombinasyonlarını temsil eder. Devrelerde olduğu gibi, farklı boyutlarda operatör grupları oluşturun.
Temel operasyonlar
Bir tf.Tensor
içindeki kuantum devre temellerini kullanan TensorFlow Quantum, bu devreleri işleyen ve anlamlı çıktılar üreten operasyonları uygular.
TensorFlow operasyonları optimize edilmiş C++ ile yazılmıştır. Bu operasyonlar devrelerden numune alır, beklenti değerlerini hesaplar ve verilen devreler tarafından üretilen durumu çıkarır. Esnek ve performanslı operasyonlar yazmanın bazı zorlukları vardır:
- Devreler aynı boyutta değildir. Simüle edilmiş devreler için, statik işlemler oluşturamazsınız (
tf.matmul
veyatf.add
gibi) ve ardından farklı boyutlardaki devreler için farklı sayıları kullanamazsınız. Bu operasyonlar, statik olarak boyutlandırılmış TensorFlow hesaplama grafiğinin izin vermediği dinamik boyutlara izin vermelidir. - Kuantum verileri tamamen farklı bir devre yapısına neden olabilir. Bu, TFQ operasyonlarında dinamik boyutları desteklemenin başka bir nedenidir. Kuantum verileri, orijinal devrede yapılan değişikliklerle temsil edilen temel kuantum durumundaki yapısal bir değişikliği temsil edebilir. Çalışma zamanında yeni veri noktaları değiştirilip değiştirildiğinden, TensorFlow hesaplama grafiği oluşturulduktan sonra değiştirilemez, dolayısıyla bu değişen yapılar için destek gereklidir.
-
cirq.Circuits
bir dizi işlem olması bakımından hesaplama grafiklerine benzer ve bazıları semboller/yer tutucular içerebilir. Bunu mümkün olduğunca TensorFlow ile uyumlu hale getirmek önemlidir.
Performans nedenleriyle Eigen (birçok TensorFlow operasyonunda kullanılan C++ kütüphanesi) kuantum devre simülasyonu için pek uygun değildir. Bunun yerine, klasik ötesi kuantum deneyinde kullanılan devre simülatörleri, doğrulayıcı olarak kullanılır ve TFQ operasyonlarının temeli olarak genişletilir (tümü AVX2 ve SSE talimatlarıyla yazılmıştır). Fiziksel bir kuantum bilgisayarı kullanan, aynı işlevsel imzalara sahip operasyonlar oluşturuldu. Simüle edilmiş ve fiziksel bir kuantum bilgisayar arasında geçiş yapmak, tek bir kod satırını değiştirmek kadar kolaydır. Bu işlemler circuit_execution_ops.py
dosyasında bulunur.
Katmanlar
TensorFlow Quantum katmanları, tf.keras.layers.Layer
arayüzünü kullanarak geliştiricilere örneklemeyi, beklentiyi ve durum hesaplamasını sunar. Klasik kontrol parametreleri veya okuma işlemleri için bir devre katmanı oluşturmak uygundur. Ek olarak, toplu devreyi, toplu kontrol parametre değerini destekleyen yüksek derecede karmaşıklığa sahip bir katman oluşturabilir ve toplu okuma işlemlerini gerçekleştirebilirsiniz. Örnek için tfq.layers.Sample
bakın.
Farklılaştırıcılar
Birçok TensorFlow işleminin aksine, kuantum devrelerindeki gözlemlenebilirlerin hesaplanması nispeten kolay olan gradyan formülleri yoktur. Bunun nedeni, klasik bir bilgisayarın yalnızca kuantum bilgisayarda çalıştırılan devrelerden örnekleri okuyabilmesidir.
Bu sorunu çözmek için tfq.differentiators
modülü çeşitli standart farklılaştırma teknikleri sağlar. Kullanıcılar ayrıca hem örnek tabanlı beklenti hesaplamasının "gerçek dünya" ayarında hem de analitik kesin dünyada gradyanları hesaplamak için kendi yöntemlerini tanımlayabilirler. Sonlu farklar gibi yöntemler analitik/kesin bir ortamda genellikle en hızlıdır (duvar saati süresi). Daha yavaş olmasına rağmen (duvar saati süresi), parametre kaydırma veya stokastik yöntemler gibi daha pratik yöntemler genellikle daha etkilidir. Bir tfq.differentiators.Differentiator
başlatılır ve generate_differentiable_op
ile mevcut bir operasyona eklenir veya tfq.layers.Expectation
veya tfq.layers.SampledExpectation
yapıcısına iletilir. Özel bir farklılaştırıcı uygulamak için tfq.differentiators.Differentiator
sınıfından miras alın. Örnekleme veya durum vektörü hesaplamasına yönelik bir degrade işlemi tanımlamak için tf.custom_gradient
kullanın.
Veri kümeleri
Kuantum hesaplama alanı büyüdükçe daha fazla kuantum verisi ve model kombinasyonu ortaya çıkacak ve bu da yapısal karşılaştırmayı daha da zorlaştıracak. tfq.datasets
modülü, kuantum makine öğrenimi görevleri için veri kaynağı olarak kullanılır. Model ve performans için yapılandırılmış karşılaştırmalar sağlar.
Büyük topluluk katkılarıyla tfq.datasets
modülünün daha şeffaf ve tekrarlanabilir araştırmalara olanak tanıyacak şekilde büyüyeceği umulmaktadır. Kuantum kontrolü, fermiyonik simülasyon, faz geçişlerine yakın sınıflandırma, kuantum algılama vb. konularda dikkatle seçilmiş problemlerin tümü tfq.datasets
eklenmek için mükemmel adaylardır. Yeni bir veri kümesi önermek için GitHub sorununu açın.