14 alat sumber terbuka untuk memanfaatkan pembelajaran mesin dengan sepenuhnya

Penapisan spam, pengecaman wajah, mesin cadangan - apabila anda mempunyai kumpulan data yang besar di mana anda ingin melakukan analisis ramalan atau pengecaman corak, pembelajaran mesin adalah cara terbaik. Perkembangan perisian sumber terbuka percuma menjadikan pembelajaran mesin lebih mudah dilaksanakan baik pada mesin tunggal dan skala, dan dalam bahasa pengaturcaraan yang paling popular. Alat sumber terbuka ini merangkumi perpustakaan seperti Python, R, C ++, Java, Scala, Clojure, JavaScript, dan Go.

Apache Mahout

Apache Mahout menyediakan cara untuk membina persekitaran untuk hosting aplikasi pembelajaran mesin yang dapat ditingkatkan dengan cepat dan efisien untuk memenuhi permintaan. Mahout bekerja terutamanya dengan projek Apache yang lain, Spark, dan pada mulanya dirancang untuk bekerja dengan Hadoop demi menjalankan aplikasi yang diedarkan, tetapi telah diperluas untuk bekerja dengan hujung belakang yang diedarkan seperti Flink dan H2O.

Mahout menggunakan bahasa khusus domain di Scala. Versi 0.14 adalah reaktor dalaman utama projek, berdasarkan Apache Spark 2.4.3 sebagai lalai.

Karang

Karang, oleh Makmal Inovasi, menyasarkan masalah umum dengan model pembelajaran mesin: melabel data mentah, yang boleh menjadi proses yang lambat dan membosankan, tetapi tanpanya model pembelajaran mesin tidak dapat memberikan hasil yang berguna. Karang memungkinkan anda menulis di Python sekumpulan fungsi pelabelan untuk data anda, sehingga pelabelan dapat dilakukan seprogram mungkin. Berbagai transformasi dan ambang dapat diset pada data anda untuk mempermudah proses pelabelan, seperti meletakkan data dalam tong berdasarkan nilai diskrit atau kuantil.

Alat ML Teras

Kerangka Core ML Apple membolehkan anda mengintegrasikan model pembelajaran mesin ke dalam aplikasi, tetapi menggunakan format model pembelajaran tersendiri. Berita baiknya ialah anda tidak perlu melakukan pretrain model dalam format Core ML untuk menggunakannya; anda boleh menukar model dari hampir semua kerangka pembelajaran mesin yang biasa digunakan menjadi Core ML dengan Core ML Tools.

Core ML Tools berfungsi sebagai pakej Python, jadi ia bergabung dengan kekayaan perpustakaan dan alat pembelajaran mesin Python. Model dari TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM, dan XGBoost semuanya boleh ditukar. Model rangkaian saraf juga dapat dioptimalkan untuk ukuran dengan menggunakan kuantisasi pasca latihan (misalnya, hingga kedalaman sedikit yang masih tepat).

Korteks

Cortex menyediakan cara yang mudah untuk melayani ramalan dari model pembelajaran mesin menggunakan Python dan TensorFlow, PyTorch, Scikit-learn, dan model lain. Sebilangan besar pakej Cortex hanya terdiri daripada beberapa fail - logik inti Python anda, fail cortex.yaml yang menerangkan model apa yang akan digunakan dan jenis sumber komputasi apa yang akan diperuntukkan, dan fail requirements.txt untuk memasang sebarang keperluan Python yang diperlukan. Keseluruhan pakej digunakan sebagai wadah Docker ke AWS atau sistem hosting lain yang sesuai dengan Docker. Sumber komputasi diperuntukkan dengan cara yang sesuai dengan definisi yang digunakan dalam Kubernetes, dan anda boleh menggunakan GPU atau Amazon Inferentia ASIC untuk mempercepat perkhidmatan.

Featuretools

Kejuruteraan ciri, atau pembuatan ciri, melibatkan pengambilan data yang digunakan untuk melatih model pembelajaran mesin dan menghasilkan, biasanya dengan tangan, versi data yang diubah dan digabungkan yang lebih berguna demi melatih model tersebut. Featuretools memberi anda fungsi untuk melakukan ini dengan objek Python tingkat tinggi yang dibina dengan mensintesis data dalam bingkai data, dan dapat melakukannya untuk data yang diekstrak dari satu atau beberapa bingkai data. Featuretools juga menyediakan primitif umum untuk operasi sintesis (misalnya, time_since_previousuntuk menyediakan masa yang berlalu antara contoh data yang dicap waktu), jadi anda tidak perlu menggulungnya sendiri.

GoLearn

GoLearn, perpustakaan pembelajaran mesin untuk bahasa Go Google, telah dibuat dengan tujuan berkembar iaitu kesederhanaan dan penyesuaian, menurut pemaju Stephen Whitworth. Kesederhanaan terletak pada cara data dimuat dan ditangani di perpustakaan, yang dicorak mengikut SciPy dan R. Penyesuaiannya terletak pada bagaimana beberapa struktur data dapat diperluas dengan mudah dalam aplikasi. Whitworth juga telah membuat pembungkus Go untuk perpustakaan Vowpal Wabbit, salah satu perpustakaan yang terdapat di kotak alat Shogun.

Gradio

Satu cabaran umum semasa membina aplikasi pembelajaran mesin adalah membina UI yang kuat dan mudah disesuaikan untuk latihan model dan mekanisme penyampaian ramalan. Gradio menyediakan alat untuk membuat UI berasaskan web yang membolehkan anda berinteraksi dengan model anda dalam masa nyata. Beberapa contoh projek yang disertakan, seperti antara muka input ke pengkelasan gambar Inception V3 atau model pengenalan tulisan tangan MNIST, memberi anda idea bagaimana anda dapat menggunakan Gradio dengan projek anda sendiri.

H2O

H2O, sekarang dalam semakan utama ketiga, menyediakan keseluruhan platform untuk pembelajaran mesin dalam memori, dari latihan hingga melayani ramalan. Algoritma H2O diarahkan untuk proses perniagaan — penipuan atau ramalan trend, misalnya — dan bukannya, katakanlah, analisis gambar. H2O dapat berinteraksi secara tersendiri dengan kedai HDFS, di atas YARN, di MapReduce, atau secara langsung dalam contoh Amazon EC2.

Hadoop mavens dapat menggunakan Java untuk berinteraksi dengan H2O, tetapi kerangka kerja juga menyediakan ikatan untuk Python, R, dan Scala, yang memungkinkan anda untuk berinteraksi dengan semua perpustakaan yang tersedia di platform tersebut juga. Anda juga boleh kembali ke panggilan REST sebagai kaedah untuk menggabungkan H2O ke dalam kebanyakan saluran paip.

Oryx

Oryx, dengan hormat dari pencipta distribusi Cloudera Hadoop, menggunakan Apache Spark dan Apache Kafka untuk menjalankan model pembelajaran mesin pada data masa nyata. Oryx menyediakan cara untuk membina projek yang memerlukan keputusan pada masa ini, seperti mesin cadangan atau pengesanan anomali langsung, yang dimaklumkan oleh data baru dan sejarah. Versi 2.0 adalah reka bentuk semula projek yang hampir lengkap, dengan komponennya digabungkan secara longgar dalam seni bina lambda. Algoritma baru, dan abstraksi baru untuk algoritma tersebut (contohnya, untuk pemilihan hyperparameter), dapat ditambahkan pada bila-bila masa.

Kilat PyTorch

Apabila projek yang hebat menjadi popular, ia sering dilengkapi dengan projek pihak ketiga yang menjadikannya lebih mudah digunakan. PyTorch Lightning menyediakan pembungkus organisasi untuk PyTorch, supaya anda dapat memusatkan perhatian pada kod yang penting dan bukannya menulis papan ketik untuk setiap projek.

Projek kilat menggunakan struktur berdasarkan kelas, jadi setiap langkah umum untuk projek PyTorch dikemas dalam metode kelas. Gelung latihan dan pengesahan separa automatik, jadi anda hanya perlu memberikan logik anda untuk setiap langkah. Lebih mudah untuk menetapkan hasil latihan dalam beberapa GPU atau campuran perkakasan yang berbeza, kerana arahan dan rujukan objek untuk melakukannya berpusat.

Scikit-belajar

Python telah menjadi bahasa pengaturcaraan untuk matematik, sains, dan statistik kerana kemudahan penggunaannya dan luasnya perpustakaan yang tersedia untuk hampir semua aplikasi. Scikit-learning memanfaatkan keluasan ini dengan memanfaatkan beberapa pakej Python yang ada — NumPy, SciPy, dan Matplotlib — untuk kerja matematik dan sains. Perpustakaan yang dihasilkan dapat digunakan untuk aplikasi "workbench" interaktif atau disematkan ke dalam perisian lain dan digunakan kembali. Kit ini boleh didapati di bawah lesen BSD, sehingga terbuka sepenuhnya dan boleh digunakan semula.

Shogun

Shogun adalah salah satu projek yang paling lama bertahan dalam koleksi ini. Ia dibuat pada tahun 1999 dan ditulis dalam C ++, tetapi dapat digunakan dengan Java, Python, C #, Ruby, R, Lua, Octave, dan Matlab. Versi utama terbaru, 6.0.0, menambah sokongan asli untuk Microsoft Windows dan bahasa Scala.

Walaupun popular dan luas, Shogun mempunyai persaingan. Perpustakaan pembelajaran mesin berasaskan C ++ yang lain, Mlpack, hanya ada sejak tahun 2011, tetapi mengaku lebih pantas dan senang digunakan (dengan set API yang lebih bersepadu) daripada perpustakaan yang bersaing.

Spark MLlib

Perpustakaan pembelajaran mesin untuk Apache Spark dan Apache Hadoop, MLlib menawarkan banyak algoritma umum dan jenis data berguna, yang dirancang untuk berjalan pada kelajuan dan skala. Walaupun Java adalah bahasa utama untuk bekerja di MLlib, pengguna Python dapat menghubungkan MLlib dengan perpustakaan NumPy, pengguna Scala dapat menulis kod terhadap MLlib, dan pengguna R dapat memasukkan ke Spark pada versi 1.5. Versi 3 MLlib memfokuskan pada penggunaan Spark's DataFrame API (berbanding dengan RDD API yang lebih lama), dan menyediakan banyak fungsi klasifikasi dan penilaian baru.

Projek lain, MLbase, dibina di atas MLlib untuk memudahkan memperoleh hasil. Daripada menulis kod, pengguna membuat pertanyaan dengan menggunakan bahasa deklaratif à la SQL.

Weka

Weka, yang dibuat oleh Machine Learning Group di University of Waikato, disebut sebagai "pembelajaran mesin tanpa pengaturcaraan." Ini adalah meja kerja GUI yang memberi kuasa kepada penjahat data untuk mengumpulkan saluran pembelajaran mesin, melatih model, dan menjalankan ramalan tanpa perlu menulis kod. Weka bekerja secara langsung dengan R, Apache Spark, dan Python, yang terakhir dengan cara pembungkus langsung atau melalui antara muka untuk perpustakaan berangka umum seperti NumPy, Pandas, SciPy, dan Scikit-learn. Kelebihan besar Weka adalah bahawa ia menyediakan antara muka yang mudah dilayari dan mesra untuk setiap aspek pekerjaan anda termasuk pengurusan pakej, pra-proses, klasifikasi, dan visualisasi.