Pembelajaran mesin otomatis atau penjelasan AutoML

Dua hambatan terbesar dalam penggunaan pembelajaran mesin (baik pembelajaran mesin klasik maupun pembelajaran mendalam) adalah keterampilan dan sumber daya komputasi. Anda dapat menyelesaikan masalah kedua dengan membuang-buang uang, baik untuk pembelian perangkat keras yang dipercepat (seperti komputer dengan GPU kelas atas) atau untuk penyewaan sumber daya komputasi di cloud (seperti instance dengan GPU yang terpasang, TPU, dan FPGA).

Di sisi lain, memecahkan masalah keterampilan lebih sulit. Data scientist sering kali meminta gaji yang besar dan mungkin masih sulit untuk direkrut. Google dapat melatih banyak karyawannya dengan kerangka TensorFlow-nya sendiri, tetapi sebagian besar perusahaan hampir tidak memiliki orang yang cukup terampil untuk membuat sendiri model pembelajaran mesin dan pembelajaran mendalam, apalagi mengajari orang lain caranya.

Apa itu AutoML?

Pembelajaran mesin otomatis, atau AutoML, bertujuan untuk mengurangi atau menghilangkan kebutuhan ilmuwan data yang terampil untuk membuat model pembelajaran mesin dan pembelajaran mendalam. Sebaliknya, sistem AutoML memungkinkan Anda memberikan data pelatihan berlabel sebagai masukan dan menerima model yang dioptimalkan sebagai keluaran.

Ada beberapa cara untuk melakukannya. Salah satu pendekatannya adalah agar perangkat lunak hanya melatih setiap jenis model pada data dan memilih model yang paling sesuai. Perbaikan dari hal ini adalah dengan membangun satu atau lebih model ansambel yang menggabungkan model-model lain, yang terkadang (tetapi tidak selalu) memberikan hasil yang lebih baik.

Teknik kedua adalah mengoptimalkan hyperparameter (dijelaskan di bawah) model atau model terbaik untuk melatih model yang lebih baik. Rekayasa fitur (juga dijelaskan di bawah) adalah tambahan yang berharga untuk pelatihan model apa pun. Salah satu cara untuk menghilangkan keterampilan pembelajaran mendalam adalah dengan menggunakan pembelajaran transfer, yang pada dasarnya menyesuaikan model umum yang terlatih untuk data tertentu.

Apa itu pengoptimalan hyperparameter?

Semua model pembelajaran mesin memiliki parameter, yang berarti bobot untuk setiap variabel atau fitur dalam model. Ini biasanya ditentukan oleh propagasi balik dari kesalahan, ditambah iterasi di bawah kendali pengoptimal seperti penurunan gradien stokastik.

Sebagian besar model pembelajaran mesin juga memiliki hyperparameter yang disetel di luar loop pelatihan. Ini sering kali mencakup kecepatan pembelajaran, tingkat putus sekolah, dan parameter khusus model seperti jumlah pohon di Random Forest.

Penyetelan hyperparameter atau pengoptimalan hyperparameter (HPO) adalah cara otomatis untuk menyapu atau menelusuri satu atau beberapa hyperparameter model untuk menemukan rangkaian yang menghasilkan model terlatih terbaik. Ini bisa memakan waktu, karena Anda perlu melatih model lagi (loop dalam) untuk setiap kumpulan nilai hyperparameter dalam sapuan (loop luar). Jika Anda melatih banyak model secara paralel, Anda dapat mengurangi waktu yang dibutuhkan dengan mengorbankan lebih banyak perangkat keras.

Apa itu rekayasa fitur?

Sebuah fitur adalah properti terukur individu atau karakteristik fenomena yang diamati. Konsep "fitur" terkait dengan variabel penjelas, yang digunakan dalam teknik statistik seperti regresi linier. Sebuah vektor fitur menggabungkan semua fitur untuk satu baris menjadi vektor numerik. Rekayasa fitur adalah proses menemukan kumpulan variabel terbaik dan pengkodean data terbaik serta normalisasi untuk masukan ke proses pelatihan model.

Bagian dari seni memilih fitur adalah memilih sekumpulan variabel independen minimum yang menjelaskan masalah. Jika dua variabel sangat berkorelasi, keduanya perlu digabungkan menjadi satu fitur, atau salah satunya harus dibuang. Kadang-kadang orang melakukan analisis komponen utama (PCA) untuk mengubah variabel berkorelasi menjadi sekumpulan variabel yang tidak berkorelasi linier.

Untuk menggunakan data kategorikal untuk klasifikasi mesin, Anda perlu mengenkode label teks ke dalam formulir lain. Ada dua pengkodean umum.

Salah satunya adalah label encoding , yang artinya setiap nilai label teks diganti dengan angka. Lainnya adalah one-hot encoding , yang berarti setiap nilai label teks diubah menjadi kolom dengan nilai biner (1 atau 0). Sebagian besar framework pembelajaran mesin memiliki fungsi yang melakukan konversi untuk Anda. Secara umum, encoding one-hot lebih disukai, karena encoding label terkadang dapat membingungkan algoritme pembelajaran mesin sehingga berpikir bahwa kolom yang dienkode diurutkan.

Untuk menggunakan data numerik untuk regresi mesin, Anda biasanya perlu menormalkan data. Jika tidak, angka dengan rentang yang lebih besar mungkin cenderung mendominasi jarak Euclidian antara vektor fitur, efeknya dapat diperbesar dengan mengorbankan bidang lainnya, dan pengoptimalan penurunan paling curam mungkin mengalami kesulitan untuk menyatu. Ada sejumlah cara untuk menormalkan dan menstandarisasi data untuk pembelajaran mesin, termasuk normalisasi min-maks, normalisasi rata-rata, standarisasi, dan penskalaan ke panjang satuan. Proses ini sering disebut penskalaan fitur .

Beberapa transformasi yang digunakan orang untuk membuat fitur baru atau mengurangi dimensi vektor fitur cukup sederhana. Misalnya, kurangi Year of Birthdari Year of Deathdan Anda buat Age at Death, yang merupakan variabel bebas utama untuk analisis seumur hidup dan kematian. Dalam kasus lain, konstruksi fitur mungkin tidak begitu jelas.

Apa itu pembelajaran transfer?

Pembelajaran transfer terkadang disebut pembelajaran mesin khusus, dan terkadang disebut AutoML (kebanyakan oleh Google). Daripada memulai dari awal saat melatih model dari data Anda, Google Cloud AutoML menerapkan pembelajaran transfer dalam otomatis (artinya dimulai dari jaringan neural dalam yang ada yang dilatih pada data lain) dan penelusuran arsitektur neural (artinya ia menemukan kombinasi yang tepat dari ekstra lapisan jaringan) untuk terjemahan pasangan bahasa, klasifikasi bahasa alami, dan klasifikasi gambar.

Itu adalah proses yang berbeda dari yang biasanya dimaksud dengan AutoML, dan tidak mencakup banyak kasus penggunaan. Di sisi lain, jika Anda membutuhkan model deep learning yang disesuaikan di area yang didukung, transfer learning sering kali akan menghasilkan model yang lebih unggul.

Implementasi AutoML

Ada banyak implementasi AutoML yang bisa Anda coba. Beberapa adalah layanan berbayar, dan beberapa kode sumber gratis. Daftar di bawah ini sama sekali tidak lengkap atau final.

Layanan AutoML

Semua dari tiga layanan awan besar memiliki semacam AutoML. Amazon SageMaker melakukan penyetelan hyperparameter tetapi tidak secara otomatis mencoba beberapa model atau melakukan rekayasa fitur. Azure Machine Learning memiliki AutoML, yang menyapu fitur dan algoritme, serta penyetelan hyperparameter, yang biasanya Anda jalankan pada algoritme terbaik yang dipilih oleh AutoML. Google Cloud AutoML, seperti yang saya bahas sebelumnya, adalah pembelajaran transfer mendalam untuk terjemahan pasangan bahasa, klasifikasi bahasa alami, dan klasifikasi gambar.

Sejumlah perusahaan kecil juga menawarkan layanan AutoML. Misalnya, DataRobot, yang mengklaim telah menemukan AutoML, memiliki reputasi yang kuat di pasar. Dan meskipun dotData memiliki pangsa pasar yang kecil dan UI yang biasa-biasa saja, dotData memiliki kemampuan rekayasa fitur yang kuat dan mencakup banyak kasus penggunaan perusahaan. H2O.ai Driverless AI, yang saya ulas pada tahun 2017, dapat membantu seorang data scientist menghasilkan model seperti master Kaggle, melakukan rekayasa fitur, penyapuan algoritme, dan pengoptimalan hyperparameter secara terpadu.

Kerangka AutoML

AdaNet adalah framework berbasis TensorFlow ringan untuk secara otomatis mempelajari model berkualitas tinggi dengan intervensi ahli yang minimal. Auto-Keras adalah pustaka perangkat lunak sumber terbuka untuk pembelajaran mesin otomatis, yang dikembangkan di Texas A&M, yang menyediakan fungsi untuk secara otomatis mencari arsitektur dan hyperparameter model pembelajaran mendalam. NNI (Neural Network Intelligence) adalah toolkit dari Microsoft untuk membantu pengguna merancang dan menyesuaikan model pembelajaran mesin (misalnya, hyperparameter), arsitektur jaringan saraf, atau parameter sistem yang kompleks dengan cara yang efisien dan otomatis.

Anda dapat menemukan proyek AutoML tambahan dan daftar makalah yang cukup lengkap dan terkini tentang AutoML di GitHub.