14 alat sumber terbuka untuk memaksimalkan pembelajaran mesin

Pemfilteran spam, pengenalan wajah, mesin rekomendasi - saat Anda memiliki kumpulan data besar yang ingin Anda lakukan analisis prediktif atau pengenalan pola, pembelajaran mesin adalah cara yang tepat. Perkembangan perangkat lunak sumber terbuka gratis telah membuat pembelajaran mesin lebih mudah diimplementasikan baik pada mesin tunggal maupun dalam skala besar, dan di sebagian besar bahasa pemrograman populer. Alat sumber terbuka ini mencakup pustaka untuk orang-orang seperti Python, R, C ++, Java, Scala, Clojure, JavaScript, dan Go.

Apache Mahout

Apache Mahout menyediakan cara untuk membangun lingkungan untuk menghosting aplikasi pembelajaran mesin yang dapat diskalakan dengan cepat dan efisien untuk memenuhi permintaan. Mahout bekerja terutama dengan proyek Apache terkenal lainnya, Spark, dan pada awalnya dirancang untuk bekerja dengan Hadoop demi menjalankan aplikasi terdistribusi, tetapi telah diperluas untuk bekerja dengan backend terdistribusi lainnya seperti Flink dan H2O.

Mahout menggunakan bahasa khusus domain di Scala. Versi 0.14 adalah refaktor internal utama proyek, berdasarkan Apache Spark 2.4.3 sebagai defaultnya.

Menyusun

Compose, oleh Innovation Labs, menargetkan masalah umum dengan model pembelajaran mesin: memberi label data mentah, yang bisa menjadi proses yang lambat dan membosankan, tetapi tanpanya model pembelajaran mesin tidak dapat memberikan hasil yang berguna. Tulis memungkinkan Anda menulis dengan Python sekumpulan fungsi pelabelan untuk data Anda, sehingga pelabelan dapat dilakukan secara terprogram mungkin. Berbagai transformasi dan ambang batas dapat disetel pada data Anda untuk mempermudah proses pelabelan, seperti menempatkan data dalam nampan berdasarkan nilai atau kuantil diskrit.

Alat Inti ML

Kerangka kerja Core ML Apple memungkinkan Anda mengintegrasikan model pembelajaran mesin ke dalam aplikasi, tetapi menggunakan format model pembelajarannya sendiri yang berbeda. Kabar baiknya adalah Anda tidak perlu melatih model dalam format Core ML untuk menggunakannya; Anda dapat mengonversi model dari hampir semua framework machine learning yang umum digunakan menjadi Core ML dengan Alat Core ML.

Core ML Tools berjalan sebagai paket Python, sehingga terintegrasi dengan kekayaan pustaka dan alat pembelajaran mesin Python. Model dari TensorFlow, PyTorch, Keras, Caffe, ONNX, Scikit-learn, LibSVM, dan XGBoost semuanya dapat dikonversi. Model jaringan neural juga dapat dioptimalkan ukurannya dengan menggunakan kuantisasi pasca pelatihan (misalnya, hingga kedalaman bit kecil yang masih akurat).

Cortex

Cortex menyediakan cara yang nyaman untuk menyajikan prediksi dari model pembelajaran mesin menggunakan Python dan TensorFlow, PyTorch, Scikit-learn, dan model lainnya. Sebagian besar paket Cortex hanya terdiri dari beberapa file - logika inti Python Anda, file cortex.yaml yang menjelaskan model apa yang digunakan dan jenis sumber daya komputasi apa yang akan dialokasikan, dan file requirement.txt untuk menginstal persyaratan Python yang diperlukan. Seluruh paket diterapkan sebagai kontainer Docker ke AWS atau sistem hosting lain yang kompatibel dengan Docker. Sumber daya komputasi dialokasikan dengan cara yang menggemakan definisi yang digunakan di Kubernetes untuk hal yang sama, dan Anda dapat menggunakan GPU atau Amazon Inferentia ASIC untuk mempercepat penyajian.

Fitur-fitur

Rekayasa fitur, atau pembuatan fitur, melibatkan pengambilan data yang digunakan untuk melatih model pembelajaran mesin dan memproduksi, biasanya dengan tangan, versi data yang diubah dan digabungkan yang lebih berguna untuk melatih model. Keistimewaan memberi Anda fungsi untuk melakukan ini melalui objek Python tingkat tinggi yang dibangun dengan mensintesis data dalam kerangka data, dan dapat melakukan ini untuk data yang diekstrak dari satu atau beberapa kerangka data. Keistimewaan juga menyediakan primitif umum untuk operasi sintesis (misalnya, time_since_previousuntuk menyediakan waktu yang berlalu di antara contoh data yang dicap waktu), jadi Anda tidak perlu menggulungnya sendiri.

GoLearn

GoLearn, perpustakaan pembelajaran mesin untuk bahasa Go Google, dibuat dengan tujuan ganda yaitu kesederhanaan dan penyesuaian, menurut pengembang Stephen Whitworth. Kesederhanaan terletak pada cara data dimuat dan ditangani di perpustakaan, yang berpola setelah SciPy dan R. Penyesuaian terletak pada bagaimana beberapa struktur data dapat dengan mudah diperluas dalam aplikasi. Whitworth juga telah membuat pembungkus Go untuk pustaka Vowpal Wabbit, salah satu pustaka yang ditemukan di kotak alat Shogun.

Gradio

Satu tantangan umum saat membuat aplikasi machine learning adalah membuat UI yang kuat dan mudah disesuaikan untuk pelatihan model dan mekanisme penyajian prediksi. Gradio menyediakan alat untuk membuat UI berbasis web yang memungkinkan Anda berinteraksi dengan model Anda secara real time. Beberapa proyek sampel yang disertakan, seperti antarmuka input ke pengklasifikasi gambar Inception V3 atau model pengenalan tulisan tangan MNIST, memberi Anda gambaran tentang bagaimana Anda dapat menggunakan Gradio dengan proyek Anda sendiri.

H2O

H2O, sekarang dalam revisi besar ketiganya, menyediakan seluruh platform untuk pembelajaran mesin dalam memori, mulai dari pelatihan hingga prediksi penayangan. Algoritme H2O diarahkan untuk proses bisnis — prediksi penipuan atau tren, misalnya — daripada, katakanlah, analisis gambar. H2O dapat berinteraksi dalam mode yang berdiri sendiri dengan toko HDFS, selain YARN, di MapReduce, atau langsung dalam instans Amazon EC2.

Pakar Hadoop dapat menggunakan Java untuk berinteraksi dengan H2O, tetapi framework juga menyediakan binding untuk Python, R, dan Scala, memungkinkan Anda untuk berinteraksi dengan semua library yang tersedia di platform tersebut juga. Anda juga dapat beralih kembali ke panggilan REST sebagai cara untuk mengintegrasikan H2O ke hampir semua pipeline.

Oryx

Oryx, atas izin pencipta distribusi Cloudera Hadoop, menggunakan Apache Spark dan Apache Kafka untuk menjalankan model pembelajaran mesin pada data real-time. Oryx menyediakan cara untuk membangun proyek yang membutuhkan keputusan pada saat itu, seperti mesin rekomendasi atau deteksi anomali langsung, yang diinformasikan oleh data baru dan data historis. Versi 2.0 adalah desain ulang proyek yang hampir selesai, dengan komponen-komponennya yang digabungkan secara longgar dalam arsitektur lambda. Algoritme baru, dan abstraksi baru untuk algoritme tersebut (misalnya, untuk pemilihan hyperparameter), dapat ditambahkan kapan saja.

PyTorch Lightning

Saat proyek yang hebat menjadi populer, sering kali proyek itu dilengkapi dengan proyek pihak ketiga yang membuatnya lebih mudah digunakan. PyTorch Lightning menyediakan pembungkus organisasi untuk PyTorch, sehingga Anda dapat fokus pada kode yang penting daripada menulis boilerplate untuk setiap proyek.

Proyek petir menggunakan struktur berbasis kelas, sehingga setiap langkah umum untuk proyek PyTorch diringkas dalam metode kelas. Loop pelatihan dan validasi bersifat semi-otomatis, jadi Anda hanya perlu memberikan logika Anda untuk setiap langkah. Ini juga lebih mudah untuk menyiapkan hasil pelatihan di beberapa GPU atau campuran perangkat keras yang berbeda, karena instruksi dan referensi objek untuk melakukannya terpusat.

Scikit-learn

Python telah menjadi bahasa pemrograman masuk untuk matematika, sains, dan statistik karena kemudahan adopsi dan luasnya perpustakaan yang tersedia untuk hampir semua aplikasi. Scikit-learn memanfaatkan luasnya ini dengan membangun di atas beberapa paket Python yang ada — NumPy, SciPy, dan Matplotlib — untuk pekerjaan matematika dan sains. Pustaka yang dihasilkan dapat digunakan untuk aplikasi "meja kerja" interaktif atau disematkan ke perangkat lunak lain dan digunakan kembali. Kit ini tersedia di bawah lisensi BSD, jadi itu sepenuhnya terbuka dan dapat digunakan kembali.

Shogun

Shogun adalah salah satu proyek berumur terlama dalam koleksi ini. Itu 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, menambahkan dukungan asli untuk Microsoft Windows dan bahasa Scala.

Meskipun populer dan luas, Shogun memiliki persaingan. Pustaka pembelajaran mesin berbasis C ++ lainnya, Mlpack, hanya ada sejak 2011, tetapi mengaku lebih cepat dan lebih mudah untuk bekerja dengannya (melalui satu set API yang lebih integral) daripada pustaka pesaing.

Percikan MLlib

Pustaka pembelajaran mesin untuk Apache Spark dan Apache Hadoop, MLlib menawarkan banyak algoritme umum dan tipe data yang berguna, yang dirancang untuk berjalan dengan kecepatan dan skala. Meskipun Java adalah bahasa utama untuk bekerja di MLlib, pengguna Python dapat menghubungkan MLlib dengan pustaka NumPy, pengguna Scala dapat menulis kode terhadap MLlib, dan pengguna R dapat menyambungkan ke Spark pada versi 1.5. MLlib versi 3 berfokus pada penggunaan API DataFrame Spark (sebagai lawan dari API RDD yang lebih lama), dan menyediakan banyak fungsi klasifikasi dan evaluasi baru.

Proyek lain, MLbase, dibangun di atas MLlib agar lebih mudah memperoleh hasil. Alih-alih menulis kode, pengguna membuat kueri dengan cara bahasa deklaratif à la SQL.

Weka

Weka, dibuat oleh Machine Learning Group di University of Waikato, disebut sebagai "pembelajaran mesin tanpa pemrograman". Ini adalah meja kerja GUI yang memberdayakan pengatur data untuk merakit pipeline machine learning, melatih model, dan menjalankan prediksi tanpa harus menulis kode. Weka bekerja langsung dengan R, Apache Spark, dan Python, yang terakhir melalui pembungkus langsung atau melalui antarmuka untuk pustaka numerik umum seperti NumPy, Pandas, SciPy, dan Scikit-learn. Keuntungan besar Weka adalah menyediakan antarmuka yang dapat dijelajahi dan ramah untuk setiap aspek pekerjaan Anda termasuk manajemen paket, preprocessing, klasifikasi, dan visualisasi.