Apakah TensorFlow perpustakaan Machine Learning yang lengkap?


11

Saya baru mengenal TensorFlow dan saya perlu memahami kemampuan dan kekurangan TensorFlow sebelum saya dapat menggunakannya. Saya tahu bahwa ini adalah kerangka kerja pembelajaran yang mendalam, tetapi terlepas dari itu algoritma pembelajaran mesin lainnya dapat kita gunakan dengan aliran tensor. Sebagai contoh, bisakah kita menggunakan SVM atau hutan acak menggunakan TensorFlow? (Saya tahu ini terdengar gila)

Singkatnya, saya ingin tahu Algoritma Pembelajaran Mesin mana yang didukung oleh TensorFlow. Apakah ini hanya pembelajaran yang mendalam atau sesuatu yang lebih?


1
Dukungan mesin vektor diimplementasikan di TensorFlow: github.com/AidanGG/tensorflow_tmva/wiki/Support-Vector-Machine
Neil Slater

3
Hanya untuk memastikan: TensorFlow BUKAN perpustakaan pembelajaran yang mendalam. Keras (yang dapat menggunakan TensorFlow sebagai Backend) adalah pustaka semacam itu. TensorFlow adalah cara cerdas untuk menangani perhitungan berat (menggunakan grafik komputasi) untuk menjalankannya pada banyak perangkat keras (CPU, GPU, dan lainnya).
Robin

Jawaban:


15

Ini adalah penyederhanaan besar, tetapi pada dasarnya ada dua jenis perpustakaan pembelajaran mesin yang tersedia saat ini:

  1. Pembelajaran mendalam (CNN, RNN, jaring yang terhubung penuh, model linier)
  2. Segala sesuatu yang lain (SVM, GBM, Hutan Acak, Naif Bayes, K-NN, dll)

Alasan untuk ini adalah bahwa pembelajaran yang mendalam jauh lebih intensif secara komputasi daripada metode pelatihan tradisional lainnya, dan oleh karena itu memerlukan spesialisasi intens perpustakaan (misalnya, menggunakan GPU dan kemampuan didistribusikan). Jika Anda menggunakan Python dan sedang mencari paket dengan algoritme terbesar, coba scikit-pelajari. Pada kenyataannya, jika Anda ingin menggunakan pembelajaran yang mendalam dan metode yang lebih tradisional Anda harus menggunakan lebih dari satu perpustakaan. Tidak ada paket "lengkap".


1
Apakah jawaban ini masih berlaku dua tahun kemudian? Sepertinya TensorFlow telah berkembang pesat sejak saat itu.
john sullivan

7

TensorFlow terutama diindikasikan untuk pembelajaran mendalam, yaitu jaringan saraf dengan banyak lapisan dan topologi aneh.

Itu dia. Ini adalah alternatif untuk Theano , tetapi dikembangkan oleh Google.

Di TensorFlow dan Theano, Anda memprogram secara simbolis. Anda mendefinisikan jaringan saraf Anda dalam bentuk operasi algeabreic (node ​​ini dikalikan dengan bobot ini dan kemudian transformasi non-linear diterapkan, bla bla bla), yang secara internal diwakili oleh grafik (yang dalam kasus TensorFlow, tetapi bukan Theano, Anda benar-benar dapat melihat untuk men-debug jaringan saraf Anda).

Kemudian, TensorFlow (atau Theano) menawarkan algoritma pengoptimalan yang melakukan pekerjaan berat untuk mengetahui bobot apa yang meminimalkan fungsi biaya apa pun yang ingin Anda meminimalkan. Jika jaringan saraf Anda dimaksudkan untuk menyelesaikan masalah regresi, Anda mungkin ingin meminimalkan jumlah perbedaan kuadrat antara nilai yang diprediksi dan nilai yang sebenarnya. TensorFlow melakukan pekerjaan berat untuk membedakan fungsi biaya Anda dan semua itu.

EDIT: Lupa menyebutkan bahwa, tentu saja, SVM dapat dilihat sebagai jenis jaringan saraf , jadi jelas, Anda dapat melatih SVM menggunakan alat optimasi TensorFlow. Tapi TensorFlow hanya dilengkapi dengan pengoptimal berbasis gradient descent yang agak bodoh untuk digunakan untuk melatih SVM kecuali Anda memiliki banyak pengamatan, karena ada pengoptimal khusus untuk SVM yang tidak terjebak dalam minimum lokal.

Juga, mungkin patut disebutkan, bahwa TensorFlow dan Theano adalah kerangka kerja yang cukup rendah. Kebanyakan orang menggunakan kerangka kerja yang dibangun di atasnya, dan lebih mudah digunakan. Saya tidak akan menyarankan di sini, karena itu akan menghasilkan diskusi sendiri. Lihat saran di sini untuk paket yang mudah digunakan.


1
Theano tidak dikembangkan oleh Google. Menurut situs web mereka , itu "terutama dikembangkan oleh para akademisi." Tensorflow dikembangkan oleh Google .
dantiston

1
@ David ya, saya tahu. Saya bermaksud mengatakan "TensorFlow adalah alternatif untuk Theano dan TensorFlow dikembangkan oleh Google". Saya merujuk pada TensorFlow, bukan Theano. Kata-kata buruk, maaf.
Ricardo Cruz

5

Ryan Zotti menawarkan jawaban yang bagus, tetapi ini berubah. Dengan penambahan metode Random Forest , Gradient Boosting , dan Bayesian TensorFlow, ia mengarah ke arah menjadi solusi satu atap. Lebih banyak algoritma tradisional tercantum di sini . TensorFlow memiliki janji khusus, karena dirancang untuk mengukur dengan baik dan mendukung operasi GPU. Namun, scikit learnadalah toko serba ada tradisional di mana Anda dapat menemukan banyak algoritma standar. Mereka biasanya bukan yang terbaru dan terhebat, jadi Anda mungkin juga ingin perpustakaan khusus.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.