Makine Öğreniminde İstatistiksel Programlama: Pyro ve TFP Arasındaki Karşıtlık

Yayınlanan: 2021-01-29

Makine öğrenmesinde istatistiksel veya olasılıksal programlama, aşağıda gösterildiği gibi 2 programlama dili kullanılarak yapılır. Kısa bir giriş yaparak, Basit bir deyişle, olasılıksal programlama istatistiksel modelleme için bir araçtır. Temel olarak, bir çözüm olarak istatistiksel modeller oluşturabileceğimiz ve tasarlayabileceğimiz bir dil kullanarak problemleri çözmek anlamına gelir.

Bilgisayar programlama dillerini kullanarak istatistik kavramlarını uygulamakla ilgilidir. Olasılık modellerini kullanarak, modelin hiper parametreleri hakkındaki inançlarımızın çıktıyı nasıl değiştirebileceği çıkarımı yapılabilir.

İçindekiler

Ünlü Olasılıksal Programlama Dilleri

1. piro

Pyro, Python'da yazılmış ve arka uçta Pytorch tarafından desteklenen olasılıksal bir programlama dilidir (PPL). Pyro ile derin olasılıklı modellemeye, Bayes modellemeye erişimimiz var ve en iyi modern derin öğrenme algoritmalarını birleştiriyoruz. Aşağıdaki gibi kurulabilir:

pip3 Pyro-ppl'yi yükleyin

veya kaynaktan yüklemek için aşağıdaki komutları kullanın:

git klonu https://github.com/pyro-ppl/pyro.git

cd ateş

pip kurulumu .[ekstralar]

Basit bir kod satırı kullanarak Pyro'yu içe aktarın:

ithalat piro

2. Tensör Akış Olasılığı (TFP)

TFP, GPU ve TPU üzerinde olasılıklı modeller ile derin öğrenme modellerinin kombinasyonunu mümkün kılan TensorFlow üzerine kurulmuş bir Python kitaplığıdır. İlgili tahminleri anlamak ve yapmak için alan bilgisini birleştirmek isteyen herkes tarafından kullanılabilir. TFP'yi yüklemek için, komutunuza veya anaconda isteminize aşağıdaki komutu yazın.

pip kurulumu – tensorflow-olasılığını yükseltme

TFP, aşağıdaki komut satırı kullanılarak kodda kullanılabilir:

tensorflow_probability'yi tfp olarak içe aktar

Kariyerinizi hızlandırmak için Dünyanın en iyi Üniversiteleri - Yüksek Lisanslar, Yönetici Yüksek Lisans Programları ve Makine Öğrenimi ve Yapay Zeka alanında İleri Düzey Sertifika Programından çevrimiçi yapay zeka kursuna katılın .

Pyro ve TFP Arasındaki Zıtlık

1. Belgeler

Pyro ve TFP için belgeler mükemmel ve bol iken, sinir ağları olasılığından TFP için açıklama konusunda daha az. Pyro'da, pyro.nn modülü, derin olasılıksal programlama bağlamında yararlı olan sinir ağı modüllerinin uygulamalarını sunar. TFP'de, tfp.layers, temsil ettikleri işlevler üzerinde belirsizliğe sahip sinir ağı katmanlarını temsil eder ve TensorFlow Katmanlarını genişletir.

2. Dil

Hem TFP hem de Pyro kullanıcıları python ile yazar. Ancak, TFP örneğinde yer alan API son derece ayrıntılıdır. Bununla demek istediğim, bazen bir çözüme ulaşmak için daha fazla kod satırı yazmamız gerekiyor. Bu bazen iyi olabilir, çünkü tüm program üzerinde daha fazla kontrole sahibiz ve Pyro'da daha kısa bir biçimde mevcut olduğunda kötü olabilir.

3. Hızlanma Süresi

Pyro ile kodun yürütülmesi daha hızlı ve verimlidir ve öğrenmek için yeni kavramlara ihtiyacınız olmaz. Öte yandan TFP, oturumların yanı sıra yer tutucular, Değişken kapsam belirleme gibi kavramlar gerektirir ve bu nedenle yürütülmesi daha fazla zaman alır.

4. Dağıtım

Hem TFP hem de Pyro, küçük ölçekli bir sunucu tarafında kolayca devreye alınabilir. Mobil ve mikrobilgisayar ya da yerleşik dağıtımlar için TensorFlow, Pytorch'un aksine verimli çalışır. TensorFlow'un Android ve IOS'ta dağıtımı için Pytorch'a kıyasla daha az çaba gerekir.

5. Grafikler

Tensorflow, Torch ve Theano gibi diğer kütüphanelerle karşılaştırıldığında yerel olan daha iyi hesaplama grafik görselleştirmelerine sahiptir. Edward, TensorFlow üzerine kurulmuştur ve hesaplamalı grafikler, dağıtılmış eğitim, CPU/GPU entegrasyonu, otomatik farklılaşma ve TensorBoard ile görselleştirme gibi özellikler sağlar. Ancak Pyro, herhangi bir gösterim veya görselleştirme işlevi sağlamaz.

TensorBoard ile Edward müdahalesi, Kaynak: Edward

6. Markov Zinciri Monte Carlo

TFP, kullanımı örnek bir olasılık dağılımı ve TensorFlow'da birkaç Değer Yineleme algoritması olan bir ton Markov zinciri Monte Carlo (MCMC) algoritması (Metropolis, Gibbs, Hamiltonian gibi) uygular. 2018 yılına kadar Pyro, Markov zinciri Monte Carlo'yu gerçekleştirmedi. Güncellendi ve tam MCMC, HMC ve NUTS desteğine sahip.

7. Optimize Ediciler

TFP'nin Nelder-Mead, BFGS ve L-BFGS (kısıtlanmamış doğrusal olmayan optimizasyon problemlerini belirlemek için) dahil olmak üzere birkaç TensorFlow optimize ediciyi uygulaması gibi, Pyro da PyTorch'ta bulunan optimize edicileri uygular.Pyro.optim modülü, Pyro'da optimizasyon için destek sağlar . İki PPL'nin temel modüllerine (TensorFlow ve PyTorch) bağlı olduğu söylenebilir.

Kaynak

8. Bijektörler

TFP'de, bijektörler, bir olasılık yoğunluğu için değişkenlerin değişimini içerir. Bir uzaydan diğerine eşleme yaptığımızda, ilk uzaydaki olasılık yoğunluklarından hedef uzaydaki yoğunluklara kadar bir haritayı da etkileriz.

Ancak farklı bir uzaya eşleme yaptığımız için, sonraki uzaydaki olasılık yoğunluğunun hesaplanmasında bu eşleme hesaplarını izlememiz gerekir. Bijektörler bu nedenle düzgün haritalama için kullanılır. Pyro'da, belgeler bijektörler hakkında hiçbir şeyden bahsetmiyor, bu yüzden onlara sahip olmadıklarını varsayıyorum.

9. Zaman Serileri

pyro.contrib.timeseries modülü, tahmin uygulamaları için yararlı olan Bayesian zaman serisi modellerinin bir koleksiyonunu sağlar. Bu, Pyro'daki mevcut Forecaster nesnesini kullanarak başarılabilir. Modele girdi verilerini verdikten sonra, modele bilinçli bir tahminin nasıl yapılacağını anlatıyoruz.

Bu kadar kolay, sadece veri ve olasılık çerçevesi. Ancak TFP, Tensorflow'un CNN'ler ve RNN'ler gibi zaman serisi modellerini ve Bayes yapısal zaman serisi modelleri Çerçevesini (tfp.sts) kullanır. Bayes yapısal zaman serisi, henüz piyasaya sürülmemiş olan zaman serisi modellerini uydurmak için üst düzey bir arayüzdür.

Kaynak

10. Dağılımlar

Rastgele değişkenlerin (örneğin, Bernoulli, Gaussian) özelliklerini (örneğin, ortalama, varyans) oluşturmak ve düzenlemek için bir temel sınıftır. Bir örnek normal bir dağılım olabilir. Pyro'daki çoğu dağıtım, PyTorch dağıtımlarının etrafındaki ince sarmalayıcılardır. PyTorch dağıtım arayüzüyle ilgili ayrıntılar için, torch.distributions.distribution.Distribution'a göz atabilirsiniz. Ancak TFP'nin tfp.distributions modülü vardır.

Kaynak

Kaynak

11. Genelleştirilmiş Doğrusal Modeller (GLM)

İstatistikte, genelleştirilmiş doğrusal model, normal dağılım dışında hata dağılım modellerine sahip yanıt değişkenlerine izin veren sıradan doğrusal regresyonun esnek bir genellemesidir. TFP'de, tfp.glm modülü, karma efektli regresyon modellerini uydurmak için yüksek seviyeli bir arayüz içerir. Ancak Pyro'nun GLM için böyle bir modülü yoktur.

Kaynak

Çözüm

Bu faktörleri kullanarak, Pyro'nun TFP'den çok farklı olmadığı sonucuna varmak güvenlidir. Her ikisi de Python programlama diline dayanmaktadır. Python API'leri iyi belgelenmiştir. Ancak Pytorch, iyi bir yükselme süresine sahiptir ve bu nedenle TensorFlow'dan çok daha hızlıdır. Bu iki çerçeve arasında karar vermek, her biri için öğrenme yöntemini ne kadar erişilebilir bulduğunuza bağlı olacaktır. Seçiminiz ayrıca kuruluşunuzun gereksinimlerine de bağlı olacaktır.

Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka alanında Yönetici PG Programına göz atın. -B Mezunu statüsü, 5'ten fazla pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Referanslar

Başlarken – Pyro belgeleri

Modül: tfp | TensorFlow Olasılığı

Makine öğrenimi istatistiklerle ve bunun tersi nasıl bağlantılıdır?

İstatistik, verileri temsil etmek ve ondan sonuçlar veya çıkarımlar yapmak için istatistiksel bir model oluşturmak için kullanılır. Makine öğrenimi, verileri anlamak ve doğru tahminler yapmak için bu istatistiksel modeli kullanır. Bu nedenle, makine öğreniminin düzgün ve kolay bir şekilde gerçekleştirilmesine yardımcı olmak için istatistiksel modeller oluşturmada istatistikler kullanılır.

İstatistik bilgisi olmadan makine öğrenimini bilebilir miyim?

İstatistikler ve makine öğrenimi birbirine bağlıdır. İstatistik biliyorsanız, verileri istatistiksel bir model şeklinde temsil edebilir ve ardından makine öğrenmesi ile analiz edebilir ve tahminlerde bulunabilirsiniz. Bu nedenle, makine öğrenmesinden önce istatistikleri bilmek oldukça yardımcı olacaktır. Yani, sadece istatistiklerin temellerini biliyorsanız, gitmeye hazırsınız. Makine öğreniminde başarılı olmak için istatistikte profesyonel olmanıza gerek yok.

Yeni başlayanlar için TensorFlow'u öğrenmesi kolay mı?

TensorFlow, baştan sona çalışan açık kaynaklı bir makine öğrenimi platformudur. TensorFlow, hem yeni başlayanlar hem de profesyoneller için makine öğrenimi modelleri oluşturmayı kolaylaştırır. Makine öğreniminde çalışmak istiyorsanız, altı ila on iki ay arasında TensorFlow yeteneklerinizi incelemek ve mükemmelleştirmek için harcamanız gerekir. Ancak R ve Python gibi programlama dillerinin temellerini biliyorsanız çok fazla sorun yaşamazsınız.