Apa itu Machine Learning
Istilah Machine Learning (ML) saat ini sedang booming, muncul di mana-mana, dan seakan menjadi sebuah jurus rahasia ketika sebuah perusahaan teknologi meluncurkan produknya. Tapi...

Istilah Machine Learning (ML) saat ini sedang booming, muncul di mana-mana, dan seakan menjadi sebuah jurus rahasia ketika sebuah perusahaan teknologi meluncurkan produknya. Tapi apa sih sebenarnya ML itu? Apa yang menyebabkan istilah itu booming saat ini? Apa magic yang ada di belakangnya? Mari kita bahas!
Disclaimer: Tulisan ini tidak ditujukan untuk menjadi referensi formal, baik untuk tugas, skripsi, apalagi karya tulis ilmiah (I’m looking at you, adek2 mahasiswa :D). Tulisan ini ditujukan sebagai pengenalan awal ataupun sebagai pencerahan (penyederhanaan) bagi pembaca yang bingung setelah membaca dari text-book atau jurnal.
Apa itu Machine Learning?
Beberapa waktu yang lalu saya sempat membaca tulisan tentang apa itu ML yang ditulis oleh seseorang dengan background statistik. Dalam artikel tersebut ditulis bahwa ML merupakan fancy name dari “melabeli-sesuatu”. ML adalah sebuah cara yang digunakan untuk memberikan label pada objek yang belum diketahui labelnya. Walau sebagian dari pengertian itu benar, tetapi menurut saya ada missing piece jika hanya mengacu pada pengertian tadi. We should make things simple, but not simpler, right?
Menurut saya, penekanan arti dari ML ada pada kata learning itu sendiri. Jadi ML merupakan sebuah cara / metode agar mesin / komputer bisa belajar untuk melakukan suatu task tertentu dari data yang diberikan. Berikut adalah definisi dari salah satu pionir dalam ML:
Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed.
Definisi tersebut mungkin masih terlalu umum, berikut adalah definisi yang lebih detail:
A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
Dari definisi tersebut bisa dilihat bahwa ada 3 komponen utama pada ML, yaitu Task (T) (contohnya melabeli sesuatu), Experience (E), dan Performance Measure (P). Contohnya ketika kita memerlukan sebuah program untuk melabeli apakah sebuah gambar adalah apel atau stroberi (Task). Kemudian kita melakukan training pada algoritma yang digunakan, dan kemampuan algoritma tersebut meningkat pada setiap iterasi (Experience) yang diukur dari akurasinya (Performance measure).
Lalu kenapa harus menggunakan ML? Kenapa tidak menggunakan if-then-else seperti biasa?
Mari kita kembali mengingat jenis pekerjaan apa yang dikerjakan oleh komputer dengan baik: menghitung (arithmetic), dan mengikuti instruksi (algorithmic). Jika kita butuh untuk menghitung rata-rata tinggi badan dari 10.000 anak, atau memisahkan 10.000 data klien berdasarkan kategori perusahaannya, program komputer tradisional bisa melakukannya dengan sekejap mata. Pekerjaan tersebut didasari oleh rumus atau instruksi yang ditulis oleh programmer. Tetapi kita sebagai manusia belajar dari contoh, bukan dari formula.
Bayangkan jika proses kita belajar seperti komputer. Ketika kita diajari untuk mengenali buah apel, orang tua kita akan menyuruh kita mengukur berapa panjangnya, lebarnya, beratnya, konturnya, warnanya. Kemudian mengajarkan kita instruksi bahwa jika panjangnya sekian, lebarnya sekian, warnanya merah, benda itu berarti apel.
Tetapi faktanya kita belajar dari contoh. Saat pertama kali kita diperlihatkan apel, kita membuat semacam model—abstraksi dalam otak kita. Kemudian kita melihat apel itu dari sudut lain, dalam posisi lain dengan sudut berbeda. Lalu apel lain dengan bentuk atau ukuran yang sedikit berbeda. Ketika itu terjadi, perlahan-lahan kita meng-update model kita sehingga semakin hari semakin baik. Problem seperti inilah yang sulit dilakukan dengan program komputer tradisional, dan ML menggunakan pendekatan belajar dari contoh tadi untuk memecahkannya.
Sebuah algoritma ML bisa saja isinya mirip seperti algoritma biasa yaitu if-then-else (seperti decision tree). Tetapi yang membedakan adalah bagaimana rule dari decision itu didapat, apakah secara explicit ditulis oleh programmer, atau dibuat secara otomatis berdasarkan data contoh.
Sebagai tambahan, berikut adalah beberapa alasan untuk menggunakan ML:
- Problem yang biasanya mudah dilakukan manusia, tapi tidak oleh komputer. Contohnya mengenali wajah, kita tahu bahwa ini si A, ini si B, tapi jika disuruh menjelaskan bingung sendiri. Pokoknya gitu we :p
- Problem terlalu kompleks. Jangankan membuat rule untuk ditulis menjadi code, kita sendiri tidak tahu bagaimana memahami problem tersebut.
- Rule terlalu panjang. Mungkin kita punya rule untuk problem tersebut, tetapi terlalu panjang dan tidak efisien.
- Problem berkembang. Program tersebut harus mengakomodir perubahan dari data baru yang masuk, sehingga harus menganalisis ulang untuk membuat rule baru.
Jenis-jenis Machine Learning
Berikut adalah jenis-jenis ML secara singkat:
- Supervised Learning: Learning dari data yang telah diketahui labelnya. Contohnya:
- Classification: Melabeli objek yang tidak dikenali sesuai class hasil prediksi
- Regression: Memprediksi nilai dari suatu objek
- Unsupervised Learning: Learning dari data yang tidak diketahui labelnya. Contohnya:
- Clustering: Mengelompokan objek
- Dimentional Reduction: Menyederhanakan data tanpa mengurangi informasi yang didapat secara drastis
- Association Rule Learning: Mempelajari hubungan antar objek
- Reinforcement Learning: Learning dari reward dan penalty dari action yang dilakukan agent.
Referensi
Berikut adalah referensi, baik yang digunakan untuk tulisan ini maupun referensi lain yang saya kira bagus untuk yang ingin belajar lebih jauh tentang machine learning:
- Hands-On Machine Learning with Scikit-Learn and TensorFlow. Aurélien Géron. (Book)
- Machine Learning is Fun. Adam Geitgey. (Medium Post)
- Machine Learning Course. Andrew Ng. (Coursera)
Bagi yang membutuhkan referensi spesifik untuk tugas, skripsi, atau karya tulis ilmiah, bisa mencari dengan keyword berikut di google scholar atau sciencedirect: \ Machine learning in [bidang spesifik] - Survey/Review
Misalnya
1
Machine learning in agriculture - Survey
Keyword tersebut mencari survey paper tentang machine learning di bidang agriculture. Dalam survey/review paper biasanya dijelaskan tentang gambaran umum area pembahasan survey/review paper tersebut, termasuk dari latar belakang, permasalahan dan tantangan, dan termasuk state-of-the-art method yang dilakukan peneliti-peneliti lain untuk mengatasi problem tersebut. Sehingga selain kita bisa mendapatkan gambaran umum tentang suatu problem, kita bisa mendapatkan clue untuk paper-paper lain yang lebih technical.