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?
machine-learning
Swaroop
sumber
sumber
Jawaban:
Ini adalah penyederhanaan besar, tetapi pada dasarnya ada dua jenis perpustakaan pembelajaran mesin yang tersedia saat ini:
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".
sumber
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.
sumber
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 learn
adalah 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.sumber