author photo
Rafi Atha Ganiza
November 18, 2020

Machine Learning di Kehidupan-mu

‘Machine Learning’ atau ‘Pembelajaran Mesin’ dalam Bahasa Indonesia mungkin sudah cukup sering kita dengar baik di dunia akademis maupun bisnis. Pembicaraan terkait Machine Learning (atau biasa disingkat ML) biasanya juga didampingi dengan istilah populer lain seperti Big Data, Artificial Intelligence, hingga Deep Learning. Nyatanya memang semua hal itu berkaitan dan saling terhubung satu sama lain.Pada artikel hari ini saya akan mencoba sedikit menjelaskan tentang Machine Learning dan mencoba memberikan contoh penerapan-nya yang mungkin pernah kita rasakan di kehidupan kita sendiri.

Gambar di atas menunjukkan keterkaitan antara tiga topik yang saya sebutkan sebelumnya, yaitu Artificial Intelligence, Deep Learning, dan Machine Learning. Sebelum membahas tentang penerapan Machine Learning lebih dalam akan lebih baik jika kita definisikan ketiga istilah di atas terlebih dahulu. Untuk bagian ini saya akan meminjam definisi yang dijabarkan pada artikel ini.

  • Artificial Intelligence adalah sebuah bidang keilmuan yang mempelajari cara untuk membuat program yang memiliki kecerdasan untuk memecahkan suatu permasalahan secara kreatif.
  • Machine Learning merupakan bagian dari Artificial intelligence yang memungkinkan sistem atau komputer untuk ‘belajar’ secara mandiri dan meningkatkan kemampuannya secara otomatis tanpa perlu instruksi pemrograman yang dituliskan secara eksplisit.
  • Deep Learning adalah bagian dari Machine Learning yang fokus pada penggunaan artificial neural network untuk menganalisa faktor-faktor yang berbeda. Hal tersebut dilakukan dengan membuat artifical neural network yang meniru struktur saraf pada manusia.Ilustrasi di atas dapat digunakan untuk menjelaskan perbedaan utama antara traditional programming dan machine learning. Dalam traditional programming, komputer menghasilkan jawaban berdasarkan data dan rules yang sebelumnya ia terima dari manusia. Misalnya dalam membuat game seperti pada gambar di bawah, kita harus terlebih dahulu memberi tahu pada komputer jika bola bertabrakan dengan salah satu blok yang ada maka blok tersebut akan hilang dan bola akan dipantulkan ke arah yang berlawanan. Hal tersebut jauh berbeda dengan machine learning dimana kita cukup memberikan komputer data input dan output yang kita harapkan, kemudian komputer akan secara mandiri mencari pola dan hubungan antara data input dan output tersebut.

                                  Contoh Traditional Programming (Sumber: deeplearning.ai)


                              Jenis-Jenis Machine Learning

Secara garis besar machine learning dapat dikategorikan ke dalam tiga kelompok utama yaitu supervised learning, unsupervised learning, dan reinforcement learning. Dimana masing-masing jenis tersebut memiliki karakteristik yang berbeda untuk use-case yang juga berbeda.

. . .

Supervised Learning

Arti kata ‘supervised’ pada istilah supervised learning menunjukan bahwa dalam jenis pembelajaran ini komputer atau mesin memerlukan pengawasan dari manusisa. Pengawasan tersebut dilakukan melalui pemberian target atau label pada data yang digunakan. Target tersebut merupakan output yang kita inginkan dari data input yang ada. Misalkan kita ingin membuat model machine learning untuk memisahkan apel dan jeruk. Maka kita memberikan komputer data-data seperti ukuran dan berat dari semua buah yang kita miliki dan kemudian juga memberi tahu komputer jenis dari buah tersebut.


Ilustrasi Tahapan dalam Classification (Sumber: https://medium.com/@gowthamy)


Supervised learning dapat dibagi lagi ke dalam dua jenis berdasarkan pengunaannya, yaitu classification dan regression. Classification dapat digunakan ketika output yang ingin kita hasilkan berupa pengelompokan data berdasarkan label yang telah kita tentukan, misalkan kasus apel dan jeruk yang telah dijelaskan sebelumnya. Sedangkan regression dapat digunakan jika output yang kita harapkan berupa nilai, misalnya untuk memprediksi harga rumah berdasarkan ukuran tanah dan ukuran bangunannya. 

SPAM (Sumber: https://www.mentalfloss.com/)


Salah satu contoh penggunaan metode supervised learning yang mungkin kita paling sering rasakan, baik secara sadar ataupun tidak, adalah spam filtering. Spam filtering adalah salah satu fitur yang sudah banyak digunakan pada berbagai aplikasi pengiriman pesan, terutama e-mail. Spam filtering merupakan contoh kasus binary classification, yaitu permasalahan klasifikasi dimana output yang dihasilkan dapat dibagi menjadi dua kelas, dalam hal ini spam atau non-spam.Seperti yang dijelaskan sebelumnya metode supervised learning membutuhkan dua data yaitu input dan label untuk masing-masing datanya. Dalam contoh kasus diatas data input dapat terdiri dari beberapa komponen yang ada di email tersebut seperti:

  • Judul e-mail
  • Isi atau body dari e-mail
  • Apakah pengirim masuk ke dalam kontak penerima e-mail?
  • Attachment pada e-mail

    Mesin kemudian akan mempelajari masing-masing data yang diberikan untuk mencari karakteristik dari e-mail yang masuk kategori spam dan non-spam. Model yang dihasilkan kemudian dapat divalidasi untuk mengukur apakah sudah dapat melakukan identifikasi spam dengan baik atau belum. Jika sudah model tersebut akan di-deploy pada aplikasi untuk mengklasifikasikan semua e-mail yang masuk pada sistem. Model akan tetap terus dilatih untuk menjaga performanya. Jika menggunakan G-Mail mungkin kita dapat menemukan tombol ‘Mark as not spam’ pada e-mail yang berada pada folder spam kita. Tombol tersebut digunakan untuk melaporkan ‘false positive’ pada sistem dan dapat digunakan untuk meningkatkan performa dan akurasi pada iterasi model berikutnya.

. . .

Unsupervised Learning berbeda dengan supervised learning dimana proses pembuatan model memerlukan manusia untuk memberikan label atau target pada komputer, metode unsupervised learning hanya memerlukan input data. Unsupervised learning dapat digunakan ketika masalah yang dihadapi memerlukan kita untuk memahami struktur atau distribusi yang ada pada data. Unsupervised learning juga berguna untuk menemukan pola yang sulit ditemukan oleh manusia karena kterbatasan kita dalam memproses data yang berjumlah banyak.

Perbandingan Algoritma Clustering dalam Identifikasi Cluster pada Data (Sumber: sklearn)

Salah satu teknik dalam unsupervised learning yang sering digunakan adalah clustering. Clustering bertujuan untuk mengelompokan data berdasarkan kemiripan pada feature atau variabel yang dimiliki data tersebut. Clustering sendiri memiliki sangat banyak algoritma yang memiliki kelebihan dan kekurangannya masing-masing. Algoritma-algoritma tersebut antara lain K-Means, DBSCAN, OPTICS, Mean-Shift, dan Hierarchical Clustering.


Dalam kehidupan sehari-hari, metode unsupervised learning biasanya kita rasakan dalam bentuk recommendation engine, salah satunya seperti yang dimiliki Spotify. Salah satu fitur pada Spotify adalah ‘Discover Weekly’, yaitu sebuah playlist mingguan yang unik bagi masing-masing user. Dimana playlist tersebut berisikan 30 lagu sesuai dengan selera user tersebut.Playlist tersebut dibuat secara otomatis oleh sistem Spotify dengan memanfaatkan data yang mereka miliki. Pertama, Spotify mencatat lagu-lagu yang pernah kita dengarkan, like, dan lagu yang kita skip. Kemudian, Spotify membuat sebuah ‘taste profile’ untuk mengidentifikasi lagu yang kita sukai berdasarkan beberapa karkteristik seperti artist, genre, mood, beats, dan lain-lain. Lalu, Spotify membandingkan profile tersebut dengan profile user lain yang berdekatan atau dalam kata lain memiliki selera yang sama dengan kita. Terakhir, Spotify akan memilih 30 lagu dengan nilai kesamaan paling tinggi dengan lagu yang kita sukai, 30 lagu tersebut lah yang akan masuk ke Discover Weekly playlist kita. Tahapan ini kemudian diulangi setiap minggunya untuk seluruh user yang ada di Spotify.

. . .

Reinforcement Learning

Dari ketiga tipe machine learning yang ada, reinforcement learning dapat dianggap sebagai proses pembelajaran yang paling menyerupai proses pembelajaran manusia. Pada reinforcement learning mesin membuat model dengan melalui trial & error. Hal tersebut dilakukan dengan memberikan feedback/skor positif atau negatif pada mesin berdasarkan output yang dihasilkan. Dalam supervised dan unsupervised learning model dibuat menggunakan data yang bersifat statis. Sedangkan dalam reinforcement learning model dapat dibuat dalam simulasi yang bersifat dinamis.

MarI/O - Machine Learning for Video Games

Video di atas merupakan salah satu contoh penerapan reinforcement learning (dan juga neural network) dalam membuat AI pada sebuah game. AI tersebut dilatih untuk bermain game ‘Super Mario World’ dengan memanfaatkan genetic algorithm. Pada setiap ‘generasi’ AI memiliki ‘agent’ dengan karakteristik yang berbeda-beda, agent tersebutlah yang akan memainkan game tersebut dan masing-masing agent akan menerima ‘fitness score’ yang dihitung berdasarkan seberapa jauh dan seberapa cepat AI dapat menyelesaikan game tersebut. Karakteristik dari agent dengan fitness score tertinggi pada generasi itu kemudian akan digunakan sebagai dasar dalam pembuatan agent pada generasi selanjutnya. Langkah ini akan terus di ulang hingga AI mendapatkan score yang memuaskan dan dapat bekerja dengan baik.

Mungkin jika hanya berdasarkan contoh di atas anda akan mengira reinforcement learning hanya dapat digunakan dalam game. Pada dunia nyata salah satu contoh penggunaan reinforcement learning adalah dalam pembuatan self-driving car dan robot. AI yang digunakan pada self-driving car dan robot tersebut dilatih pada lingkungan simulasi yang menyerupai game diatas sebelum akhirnya di uji coba di dunia nyata.

. . .

Sekian artikel saya terkait machine learning dan penerapannya di sekitar kita. 


Hope you enjoyed it, thanks for reading and have a good day!




discuss-like Suka
icon bagikanBagikan
0 Komentar

Diskusi Populer

Top Member