Kursus
Machine learning bukan lagi istilah yang asing belakangan ini karena organisasi seperti DataCamp, Coursera, Udacity, dan banyak lainnya terus berupaya menghadirkan pendidikan machine learning secara efektif dan fleksibel kepada khalayak umum. Berkat platform mereka, kini sangat mudah untuk memulai di bidang ini dengan hampir tanpa prasyarat. Namun, istilah Automated Machine Learning belakangan ini sering menjadi sorotan di forum pendidikan Data Science populer. Banyak organisasi seperti Google, H2O.ai, dan lain-lain bekerja dengan sangat baik di area ini. Topik ini tidak terlalu umum dibandingkan dengan Machine Learning. Karena machine learning sendiri berurusan dengan bagian otomatisasi; maka wajar jika pertanyaan pertama yang muncul adalah — "Apakah machine learning juga bisa diotomatisasi?"
Anda akan menemukan jawaban untuk banyak pertanyaan seperti ini dalam tutorial ini.
Mari mulai.
Memahami Pipeline Machine Learning Standar
Saat Anda menyelesaikan suatu masalah sebagai Data Scientist, alur kerja standar Anda kira-kira seperti berikut:
- Pengumpulan Data
- Prapemrosesan Data
- Inisialisasi model machine learning yang mungkin sesuai untuk masalahnya
- Melatih model
- Menguji model
- Menyetel parameter model
- Menguji model lagi
- Mengomunikasikan hasil
Langkah kedua, Prapemrosesan Data, sangat luas cakupannya karena pada dasarnya ini adalah salah satu tugas paling memakan waktu dalam pipeline di atas dan mencakup banyak sub-tugas seperti Pembersihan Data, Transformasi Data, Seleksi Fitur, dan lain-lain. Langkah 3 hingga 7 berlaku hanya untuk satu model machine learning. Praktisi yang baik tentu tidak akan berhenti pada satu model saja. Ia akan mencoba berbagai model untuk membandingkan hasilnya dan akhirnya memutuskan model terbaik untuk masalah tersebut. Di sinilah muncul satu set tugas lain yang juga sangat memakan waktu — Memutuskan model mana yang harus dipilih?
Kutipan berikut mengenai proses debugging dalam tugas machine learning sangat tepat, dan penting untuk diingat:
Jadi, sampai di sini, Anda pasti sudah mendapat gambaran singkat tentang tugas rekayasa machine learning yang standar? Pada akhirnya Anda harus memutuskan model mana yang terbaik untuk masalah yang sedang Anda tangani dan Anda juga perlu menjelaskan mengapa itu yang terbaik. Terkadang, Anda berada pada situasi di mana jumlah kemungkinan yang harus dicoba sangat banyak, tetapi tenggat waktu sudah dekat. — Menangkap esensi masalahnya? Mari cari tahu lebih lanjut.
Bagaimana Pipeline Machine Learning Dapat Diotomatisasi?
Di bagian ini, Anda akan melanjutkan dengan gagasan memilih model terbaik untuk suatu masalah dalam situasi di mana jumlah kemungkinan dan tenggat waktu berbanding terbalik.
Di awal tutorial ini Anda menjumpai satu pertanyaan "Apakah machine learning juga bisa diotomatisasi?" Pertanyaan ini sama sekali tidak konyol. Bahkan Sebastian Raschka dalam salah satu wawancaranya menggambarkan Automated Machine Learning sebagai "otomatisasi dari mengotomatisasi otomatisasi".
Ingat kembali langkah nomor 5 dari alur kerja standar tugas data science yang baru saja Anda pelajari — Menyetel hiperparameter model. Misalnya, Anda telah selesai menyiapkan data untuk langkah selanjutnya, dan Anda baru saja menginisialisasi sebuah pengklasifikasi $X$. Sekarang, misalkan $X$ memiliki 5 hiperparameter berbeda. Artinya, Anda harus mencoba pengklasifikasi $X$ yang sama tetapi dengan berbagai set nilai hiperparameter, yang jelas bukan tugas mudah untuk dijalankan. Bagian yang lebih merepotkan datang kemudian. Setelah mencoba berbagai kombinasi, Anda mendapati hasilnya belum cukup baik. Maka Anda memutuskan untuk menguji empat pengklasifikasi lagi (masing-masing dengan 6 hiperparameter berbeda). Bisa bayangkan betapa memakan waktunya ini? Bahkan setelah itu, bagaimana jika Anda tetap tidak mendapatkan hasil yang baik? Investigasi terhadap hal tersebut tak lain adalah proses lain yang juga sangat memakan waktu.
Jadi, gagasan Automated Machine Learning berangkat dari masalah ini.
"Jika banyak model machine learning harus dibangun, menggunakan beragam algoritme dan sejumlah konfigurasi hiperparameter yang berbeda, maka proses pembangunan model ini dapat diotomatisasi, begitu pula perbandingan kinerja dan akurasi model." - KDNuggets
Sekarang Anda punya alasan mengapa istilah Automated Machine Learning banyak menjadi sorotan di forum pendidikan Data Science populer belakangan ini. Anda akan mempelajari lebih lanjut tentang automated machine learning di bagian berikutnya.
Pengantar Automated Machine Learning
Tugas penyetelan hiperparameter untuk berbagai model machine learning juga sangat mungkin memakan waktu. Dalam istilah yang lebih spesifik di Ilmu Komputer, penyetelan hiperparameter adalah proses pencarian yang dalam kasus ini bisa sangat menyeluruh. Bagaimana jika proses ini sendiri dapat diotomatisasi? Nah, itulah yang pada dasarnya dilakukan oleh automated machine learning. "Automated machine learning adalah solusi langsung terhadap kelangkaan data scientist karena dapat secara drastis meningkatkan kinerja dan produktivitas data scientist dengan mempercepat siklus kerja, meningkatkan akurasi model, dan pada akhirnya bahkan mungkin menggantikan kebutuhan akan data scientist." -Automated Machine Learning for Internet of Things
Sekarang Anda memiliki pengetahuan yang cukup tentang automated machine learning, dan siap melihatnya dalam praktik. Namun pertama, mari lihat beberapa pustaka Python yang banyak digunakan untuk melakukan automated machine learning.
Pustaka Python untuk Automated Machine Learning
Ada banyak pustaka Python yang tersedia untuk melakukan automated machine learning. Semuanya berupaya mencapai tujuan yang kurang lebih sama, yaitu mengotomatisasi proses machine learning. Berikut adalah beberapa pustaka Python yang paling banyak digunakan untuk automated machine learning:
Masing-masing pustaka memiliki pendekatan sendiri untuk menangani proses "otomatisasi dari mengotomatisasi otomatisasi". Namun untuk tutorial ini, Anda akan menggunakan Auto-Keras. Mengapa menunggu? Mari kita mulai.
Pengantar Auto-keras
"Auto-Keras adalah pustaka perangkat lunak open source untuk automated machine learning."(Sumber) Pustaka ini dikembangkan oleh DATA Lab di Texas A&M University dan kontributor komunitas. Menurut situs resmi auto-keras — "Tujuan akhir automated machine learning ini adalah menyediakan alat deep learning yang mudah diakses bagi para ahli domain dengan latar belakang data science atau machine learning yang terbatas. Auto-Keras menyediakan fungsi untuk secara otomatis mencari arsitektur dan hiperparameter model deep learning."

Sumber: Auto-Keras
Untuk memasang auto-keras cukup jalankan perintah berikut.
Catatan: Saat ini, Auto-Keras hanya kompatibel dengan: Python 3.6.
!pip install autokeras
Sekarang setelah Anda berhasil memasang Auto-Keras, saatnya melakukan implementasi singkat.
Studi Kasus AutoML menggunakan Auto-keras
Untuk studi kasus ini, Anda akan menggunakan dataset MNIST yang sangat populer. keras memiliki dataset ini bawaan, jadi Anda tidak perlu mengunduhnya secara terpisah. Anda akan mulai dengan memuat modul ImageClassifier dari auto-keras. Anda juga akan memuat dataset MNIST dari modul keras.
from keras.datasets import mnist
from autokeras import ImageClassifier
Anda telah memuat dataset MNIST dari modul keras.datasets dan juga mengimpor ImageClassifier dari auto-keras. Sekarang Anda akan memisahkan dataset menjadi split latih dan uji.
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,)) # (1,) denotes the channles which is 1 in this case
x_test = x_test.reshape(x_test.shape + (1,)) # (1,) denotes the channles which is 1 in this case
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step
Anda telah memisahkan split latih dan uji, dan sekarang Anda akan melatih ImageClassifier dengan x_train dan y_train. Anda akan menguji kinerjanya pada x_test dan y_test.
# Instantiate the ImageClassifier class
clf = ImageClassifier(verbose=True, augment=False)
# Fit the train set to the image classifier
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
# Summarize the results
y = clf.evaluate(x_test, y_test)
print(y * 100)
Sesederhana itu. Hanya 4–5 baris kode dan Anda selesai dengan sebuah eksperimen cepat. Memang, tidak benar-benar cepat. Kode di atas memerlukan waktu eksekusi yang cukup lama. Konfigurasi yang layak untuk menjalankan eksperimen Deep Learning tentu akan sangat membantu. Google Colab juga merupakan titik awal yang sangat baik.
Sekarang mari pelajari lebih lanjut tentang parameter yang Anda gunakan pada potongan kode di atas. Anda akan merujuk ke dokumentasi auto-keras untuk ini dan berikut adalah kutipan relevan dari dokumentasinya:
- Pada ImageClassifier():
- verbose: Boolean untuk menentukan apakah proses pencarian akan ditampilkan ke keluaran.
- augment: Nilai boolean yang menunjukkan apakah data memerlukan augmentasi. Jika tidak didefinisikan, maka akan menggunakan nilai Constant.DATA_AUGMENTATION yang secara default bernilai True.
- Pada metode fit():
- time_limit: Batas waktu pencarian dalam detik.
- final_fit(): Pelatihan akhir setelah menemukan arsitektur terbaik.
- retrain: Boolean untuk menentukan apakah bobot model akan diinisialisasi ulang.
Auto-keras adalah pustaka yang terus berkembang dan masih dalam versi prarilis. Menurut situs resmi, pustaka ini mendukung modul-modul utama berikut:
- supervised: Kelas dasar untuk semua tugas supervised.
- bayesian: GaussianProcessRegressor untuk optimisasi bayesian.
- search: Kelas dasar dari semua kelas pencari. Setiap kelas pencari dapat menimpa fungsi pencariannya untuk mengimplementasikan strateginya.
- graph: Kelas yang merepresentasikan grafik arsitektur neural dari model Keras. Graph mengekstrak grafik arsitektur neural dari model Keras. Setiap node dalam grafik adalah tensor perantara antar layer. Setiap layer adalah edge dalam grafik. Perlu dicatat, beberapa edge dapat merujuk ke layer yang sama. (misalnya, layer Add menambahkan dua tensor menjadi satu tensor. Jadi, ini terkait dengan dua edge.
- preprocessor: Kelas yang dapat memformat data. Kelas ini menyediakan cara untuk mengubah label klasifikasi data menjadi sebuah vektor.
- model_trainer: Kelas yang digunakan untuk melatih model. Kelas ini dapat melatih model Pytorch dengan data loader yang diberikan. Metrik, loss_function, dan model harus saling kompatibel. Silakan lihat detailnya pada atribut.
Catatan Penutup
Anda telah sampai di akhir. Dalam tutorial ini, Anda mempelajari proses machine learning secara umum dan bagaimana proses tersebut dapat diotomatisasi. Anda melihat sekilas pustaka-pustaka yang tersedia untuk melakukan AutoML. Anda menggunakan auto-keras dan melihat jenis abstraksi tingkat tinggi yang ditawarkannya serta betapa mudahnya menggunakan auto-keras.
Tutorial ini mungkin memberi Anda kesan negatif bahwa AutoML dapat menggantikan banyak data scientist ketika sudah benar-benar matang. Benarkah? Pikirkan lagi. AutoML sebenarnya membebaskan data scientist dari beban proses iteratif pemilihan model terbaik untuk suatu masalah. Dengan demikian, seorang data scientist dapat lebih fokus pada data itu sendiri, yang lebih esensial. Wawancara ini bersama Randy Olson memuat wawasan menarik tentang topik ini. Pastikan Anda membacanya, dan Anda tidak akan merasa demotivasi lagi. Jika Anda pernah merasa ragu terhadap pekerjaan praktisi machine learning, lihat saja tulisan ini.
Bidang automated machine learning benar-benar mengalami kemajuan. Misalnya, NAS yang merupakan singkatan dari Neural Architecture Search, yaitu algoritme yang mencari arsitektur jaringan saraf terbaik. Berikut beberapa tautan ke sumber daya yang menunjukkan use case mutakhir dari AutoML:
- Design by Evolution: How to evolve your neural network with AutoML
- AutoML Challenge: A leap forward for machine learning competitions
- AI Google dapat membuat kode machine learning yang lebih baik daripada para penelitinya
- Auto-Keras, atau Bagaimana Anda dapat Membuat Model Deep Learning dalam 4 Baris Kode
Beberapa referensi yang digunakan:
- Auto-Keras, atau Bagaimana Anda dapat Membuat Model Deep Learning dalam 4 Baris Kode
- AutoKeras: Penantang Serius AutoML milik Google
Jika Anda tertarik mempelajari lebih jauh tentang Deep Learning, ikuti kursus DataCamp "Deep Learning in Python" dan lihat kursus kami Introduction to Deep Learning in Python.
