Pemrograman Statistik dalam Pembelajaran Mesin: Kontras Antara Pyro dan TFP

Diterbitkan: 2021-01-29

Pada Machine learning, pemrograman statistik atau probabilistik dilakukan dengan menggunakan 2 bahasa pemrograman seperti gambar di bawah ini. Memberikan pengantar singkat, Dengan kata sederhana, pemrograman probabilistik adalah alat untuk pemodelan statistik. Ini pada dasarnya berarti memecahkan masalah menggunakan bahasa yang dengannya kita dapat membuat dan merancang model statistik sebagai solusi.

Ini tentang menerapkan konsep statistik menggunakan bahasa pemrograman komputer. Menggunakan model probabilistik, seseorang dapat menyimpulkan bagaimana keyakinan kita tentang hyperparameter model dapat mengubah output.

Daftar isi

Bahasa Pemrograman Probabilistik Terkenal

1. Piro

Pyro adalah bahasa pemrograman probabilistik (PPL) yang ditulis dengan Python dan didukung oleh Pytorch di backend. Dengan Pyro, kami memiliki akses ke pemodelan probabilistik mendalam, pemodelan Bayesian, dan menggabungkan yang terbaik dari algoritme pembelajaran mendalam modern. Itu dapat diinstal sebagai berikut:

pip3 Instal Pyro-ppl

atau untuk menginstalnya dari sumber gunakan perintah berikut:

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

cd piro

instal pip .[tambahan]

Impor Pyro menggunakan baris kode sederhana:

impor piro

2. Probabilitas Aliran Tensor (TFP)

TFP adalah library Python yang dibangun di atas TensorFlow yang memungkinkan kombinasi model probabilistik dan model pembelajaran mendalam pada GPU dan TPU. Ini dapat digunakan oleh siapa saja yang ingin menggabungkan pengetahuan domain untuk memahami dan membuat prediksi yang relevan. Untuk menginstal TFP, ketik perintah berikut di perintah Anda atau anaconda prompt.

pip install –upgrade tensorflow-probability

TFP dapat digunakan dalam kode menggunakan baris perintah berikut:

impor tensorflow_probability sebagai tfp

Bergabunglah dengan kursus kecerdasan buatan online dari Universitas top Dunia – Magister, Program Pascasarjana Eksekutif, dan Program Sertifikat Tingkat Lanjut di ML & AI untuk mempercepat karier Anda.

Kontras Antara Pyro dan TFP

1. Dokumentasi

Dokumentasi untuk Pyro dan TFP sangat bagus dan berlimpah sementara penjelasan tentang TFP dari prospek jaringan saraf lebih sedikit. Di pyro, modul pyro.nn menyajikan implementasi modul jaringan saraf yang berguna dalam konteks pemrograman probabilistik yang mendalam. Di TFP, tfp.layers mewakili lapisan jaringan saraf dengan ketidakpastian atas fungsi yang diwakilinya, memperluas Lapisan TensorFlow.

2. Bahasa

Pengguna TFP dan Pyro menulis dengan python. Namun, API yang terlibat dalam kasus TFP sangat bertele-tele. Maksud saya, terkadang kita harus menulis lebih banyak baris kode untuk mencapai solusi. Itu terkadang bagus karena kami memiliki kontrol lebih besar atas seluruh program dan buruk jika tersedia dalam bentuk yang lebih pendek di dalam Pyro.

3. Waktu Peningkatan

Dengan Pyro, eksekusi kode lebih cepat dan efisien, dan Anda tidak memerlukan konsep baru untuk dipelajari. TFP, di sisi lain, membutuhkan konsep seperti placeholder, pelingkupan Variabel serta sesi, sehingga membutuhkan lebih banyak waktu untuk dieksekusi.

4. Penyebaran

Baik TFP dan Pyro dapat dengan mudah digunakan di sisi server skala kecil. Untuk penerapan seluler dan komputer mikro atau tertanam, TensorFlow bekerja secara efisien, tidak seperti Pytorch. Upaya yang lebih sedikit diperlukan untuk penerapan TensorFlow di Android dan iOS, dibandingkan dengan Pytorch.

5. Grafik

Tensorflow memiliki visualisasi grafik komputasi yang lebih baik, yang asli jika dibandingkan dengan perpustakaan lain seperti Torch dan Theano. Edward dibangun di atas TensorFlow dan memungkinkan fitur seperti grafik komputasi, pelatihan terdistribusi, integrasi CPU/GPU, diferensiasi otomatis, dan visualisasi dengan TensorBoard. Pyro, bagaimanapun, tidak menyediakan fungsionalitas demonstratif atau visualisasi.

Interferensi Edward dengan TensorBoard, Sumber: Edward

6. Rantai Markov Monte Carlo

TFP mengimplementasikan satu ton algoritma Markov chain Monte Carlo (MCMC) (seperti Metropolis, Gibbs, Hamiltonian) yang penggunaannya adalah sampel distribusi probabilitas dan beberapa algoritma Iterasi Nilai di TensorFlow. Hingga 2018 Pyro tidak melakukan rantai Markov Monte Carlo. Ini telah diperbarui dan memiliki dukungan penuh MCMC, HMC, dan NUTS.

7. Pengoptimal

Sama seperti TFP yang mengimplementasikan beberapa pengoptimal TensorFlow, termasuk Nelder-Mead, BFGS, dan L-BFGS (untuk menentukan masalah pengoptimalan nonlinier yang tidak dibatasi), Pyro mengimplementasikan pengoptimal yang ada di PyTorch. Modul pyro.optim menyediakan dukungan untuk pengoptimalan di Pyro . Dapat dikatakan bahwa kedua PPL bergantung pada modul dasarnya (TensorFlow dan PyTorch).

Sumber

8. Bijektor

Dalam TFP, bijector mencakup perubahan variabel untuk kepadatan probabilitas. Ketika kita memetakan dari satu ruang ke ruang lain, kita juga mempengaruhi peta dari kepadatan probabilitas pada ruang awal ke kepadatan pada ruang target.

Tetapi karena kita memetakan ke ruang yang berbeda, kita perlu melacak akun pemetaan ini untuk mereka dalam perhitungan densitas probabilitas di ruang terakhir. Oleh karena itu, bijector digunakan untuk pemetaan yang mulus. Di pyro, dokumentasi tidak menyebutkan apa pun tentang bijector, jadi saya berasumsi mereka tidak memilikinya.

9. Seri Waktu

Modul pyro.contrib.timeseries menyediakan kumpulan model deret waktu Bayesian yang berguna untuk aplikasi peramalan. Ini dapat dicapai dengan memanfaatkan objek Peramal yang ada di Pyro. Setelah kami memberikan data input ke model, kami hanya memberi tahu model bagaimana membuat prediksi yang tepat.

Semudah itu, hanya data dan kerangka probabilistik. Namun TFP menggunakan model deret waktu Tensorflow seperti CNN dan RNN beserta Kerangkanya untuk model deret waktu struktural Bayesian (tfp.sts). Deret waktu struktural Bayesian adalah antarmuka tingkat tinggi untuk menyesuaikan model deret waktu yang belum dirilis.

Sumber

10. Distribusi

Ini adalah kelas dasar untuk membangun dan mengatur properti (misalnya, mean, varians) dari variabel acak (misalnya, Bernoulli, Gaussian). Salah satu contohnya adalah distribusi normal. Sebagian besar distribusi di Pyro adalah pembungkus tipis di sekitar distribusi PyTorch. Untuk detail tentang antarmuka distribusi PyTorch, Anda dapat melihat torch.distributions.distribution.Distribution. Namun TFP memiliki modul tfp.distributions.

Sumber

Sumber

11. Model Linier Umum (GLM)

Dalam statistik, model linier tergeneralisasi adalah generalisasi fleksibel dari regresi linier biasa yang memungkinkan untuk variabel respons yang memiliki model distribusi kesalahan selain distribusi normal. Di TFP, modul tfp.glm berisi antarmuka tingkat tinggi untuk menyesuaikan model regresi efek campuran. Pyro, bagaimanapun, tidak memiliki modul seperti itu untuk GLM.

Sumber

Kesimpulan

Dengan menggunakan faktor-faktor ini, aman untuk menyimpulkan bahwa Pyro tidak jauh berbeda dari TFP. Keduanya berbasis dalam bahasa pemrograman Python. Python API didokumentasikan dengan baik. Namun, Pytorch memiliki waktu peningkatan yang baik dan karenanya jauh lebih cepat daripada TensorFlow. Memutuskan di antara dua kerangka kerja ini akan bergantung pada seberapa mudah Anda menemukan metode pembelajaran untuk masing-masing kerangka tersebut. Pilihan Anda juga akan tergantung pada kebutuhan organisasi Anda.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang pembelajaran mesin, lihat Program PG Eksekutif IIIT-B & upGrad dalam Pembelajaran Mesin & AI yang dirancang untuk para profesional yang bekerja dan menawarkan 450+ jam pelatihan ketat, 30+ studi kasus & tugas, IIIT -B Status Alumni, 5+ proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Referensi

Memulai – Dokumentasi Pyro

Modul: tfp | Probabilitas TensorFlow

Bagaimana pembelajaran mesin terhubung dengan statistik dan sebaliknya?

Statistik digunakan untuk membangun model statistik untuk mewakili data dan menarik kesimpulan atau inferensi darinya. Sementara pembelajaran mesin menggunakan model statistik ini untuk mendapatkan pemahaman tentang data dan membuat prediksi yang akurat. Dengan demikian, statistik digunakan dalam membangun model statistik untuk membantu melaksanakan pembelajaran mesin dengan baik dan mudah.

Bisakah saya mengetahui pembelajaran mesin tanpa pengetahuan statistik?

Statistik dan pembelajaran mesin saling berhubungan. Jika Anda mengetahui statistik, Anda dapat merepresentasikan data dalam bentuk model statistik dan kemudian menganalisis dan membuat prediksi dengan pembelajaran mesin. Dengan demikian, mengetahui statistik sebelum pembelajaran mesin akan sangat membantu. Jadi, jika Anda hanya mengetahui dasar-dasar statistik, Anda siap melakukannya. Anda tidak perlu menjadi ahli statistik untuk berhasil dalam pembelajaran mesin.

Apakah TensorFlow mudah dipelajari untuk pemula?

TensorFlow adalah platform pembelajaran mesin sumber terbuka yang berjalan dari awal hingga akhir. TensorFlow membuat pembuatan model pembelajaran mesin menjadi mudah bagi pemula dan profesional. Anda harus menghabiskan waktu antara enam dan dua belas bulan untuk mempelajari dan menyempurnakan kemampuan TensorFlow jika ingin bekerja dalam pembelajaran mesin. Namun, jika Anda mengetahui dasar-dasar bahasa pemrograman seperti R dan Python, Anda tidak akan kesulitan.