TensorFlow Kuantum tasarımı

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:

  1. Devreler aynı boyutta değildir. Simüle edilmiş devreler için, statik işlemler oluşturamazsınız ( tf.matmul veya tf.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.
  2. 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.
  3. 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.