Mengenal Machine Learning

apa-itu-machine-learning

Machine learning adalah bagian dari artificial intelligence yang memanfaatkan algoritma komputasi untuk membuat sebuah sistem cerdas dengan cara belajar melalui data-data historikal. Saat ini machine learning menjadi bidang yang sangat berkembang dan diminati. Tidak hanya di area riset, tetapi juga telah banyak diimplementasikan untuk kehidupan sehari-hari.

Bagi orang awam Istilah machine learning mungkin terasa terlalu teknis, sehingga tidak sepopuler istilah artificial intelligence atau kecerdasan buatan. Walaupun demikian banyak sekali implementasi artificial intelligence merupakan pengembangan dari machine learning.

 

Mengenal Machine Learning

Singkatnya, machine learning adalah bagaimana membuat mesin atau program dapat belajar dari data sehingga dapat melakukan prediksi secara akurat. Machine learning menggunakan algoritma matematika, yang setelah proses belajar (training process) akan menjadi sebuah formula yang disebut dengan model.

 

Apa Bedanya Machine Learning Dengan Program Biasa?

Pada program biasa, agar sebuah program bisa bekerja dengan baik, kita harus menuliskan aturan secara eksplisit ke dalam kode program dan mengantisipasi berbagai kondisi yang mungkin timbul. Jika ada kondisi atau aturan baru, kita harus menambahkannya ke dalam program atau sistem.

Sedangkan pada machine learning, aturan tersebut dibentuk secara otomatis dari contoh data serta contoh output yang diharapkan. Contoh output ini disebut dengan label. Proses membentuk aturan atau program dari contoh data disebut training, sedangkan program yang dihasilkan disebut model. Memproses input data dengan program untuk mendapatkan output disebut proses prediksi.

 

Mengenal machine learning
Gambar - Perbedaan machine learning dan program biasa

 

Misalkan untuk membuat spam filter, yaitu program yang mengklasifikasikan antara email yang dianggap sebagai sampah (junk mail) dari email jenis lainnya. Jika menggunakan pemrograman biasa, maka kita perlu menentukan parameter atau variabel apa yang akan digunakan untuk identifikasi dan juga kita harus menentukan bagaimana aturannya.

Kita bisa mengidentifikasi junk mail atau email sampah dari isinya. Misalnya dari kata-kata atau frase tertentu seperti ‘bunga 0%’ atau ‘segera dapatkan’. Kata-kata tersebut kita masukkan ke dalam daftar kata yang akan digunakan untuk filtering. Bagaimana jika ada kata-kata baru yang ternyata belum masuk ke dalam daftar, seperti ‘hari senin harga naik’ misalnya? Kita harus memasukkan kata-kata atau frase itu ke dalam daftar supaya email yg mengandung frase tsb dikenali sebagai spam.

Kemudian jika kita menemukan bahwa junk mail banyak dikirim dari alamat-alamat email dengan pola tertentu, kita harus mengubah program untuk menambahkan alamat email ke dalam komponen pengecekan, dan juga menspesifikasi polanya. Demikian pula jika ternyata ada pola IP tertentu yang bisa digunakan untuk deteksi. Lagi-lagi kita perlu mengubah program secara manual.

Dapat dibayangkan betapa sulitnya jika hal ini diterapkan untuk problem yang jauh lebih kompleks dan dinamis, seperti misalnya self driving car. Mustahil bagi kita untuk dapat mendefinisikan semua aturan dan mengantisipasi semua kemungkinan ke dalam kode program.

Dalam machine learning, kita tidak mendefinisikan aturan klasifikasi tersebut secara langsung. Kita memasukkan sekumpulan contoh email yang sudah kita tandai sebagai spam/bukan spam, ke dalam proses training. Dari hasil training ini kita akan mendapatkan model yang bisa kita gunakan untuk melakukan klasifikasi. Secara berkala kita bisa memperbaharui model untuk memasukkan kasus-kasus yang belum tercakup di contoh email sebelumnya dengan melakukan retraining.

 

Jenis-jenis Machine Learning

Secara garis besar jenis machine learning yaitu :

  • Supervised learning
  • Unsupervised learning
  • Reinforcement learning


Supervised Learning

Supervised learning adalah teknik machine learning di mana mesin belajar dari data lengkap dengan jawaban atau hasil prediksi yang diharapkan, atau disebut juga dengan label. Misalnya untuk mengenali foto hewan, maka program akan ‘dilatih’ dengan sekumpulan foto hewan yang sudah dipasangkan atau dilabeli dengan namanya. Untuk membedakan email sampah atau bukan, program dilatih dengan sekumpulan email yang sudah ditandai sebagai sampah dan bukan sampah.

Supervised learning merupakan metode yang paling cepat berkembang dan banyak digunakan, karena relatif lebih cepat dan murah, dan outputnya dapat diukur dengan mudah karena ada label sebagai acuannya.

Kekurangan supervised learning adalah ketersediaan data training. Di dunia nyata, kita tidak selalu dapat menemukan data yang sudah berlabel atau diketahui klasifikasinya. Seringkali kita harus melakukan pelabelan sendiri untuk dapat memperoleh data training yang cukup baik secara kualitas maupun kuantitasnya.

Ada dua jenis masalah yang dapat diselesaikan menggunakan supervised learning yaitu:

  • regresi
  • klasifikasi

Pada masalah regresi, prediksi yang dihasilkan berupa nilai numerik yang kontinu. Sebagai contoh masalah regresi yaitu prediksi nilai akhir seorang murid, prediksi nilai tukar rupiah, prediksi harga saham, prediksi curah hujan dan lain sebagainya.  

Pada klasifikasi, yang diprediksi adalah kategori atau kelas, misalkan klasifikasi email spam, prediksi lulus atau tidak lulus seorang murid (bedakan dengan regresi, yang memprediksi berapa besarnya nilai akhir murid), prediksi naik atau turun nilai tukar Rupiah , dan lain sebagainya.

 

Perbedaan-Reegresi-dan-Klasifikasi
Gambar - Perbedaan Reegresi dan Klasifikasi

Beberapa algoritma supervised learning yang umum digunakan adalah : 

  • Linear regression
  • Logistic regression
  • Decision tree
  • Random Forest
  • Naive Bayes
  • Support Vector Machine

 

Unsupervised Learning

Pada unsupervised learning, mesin belajar dari sekumpulan data yang tidak diketahui labelnya. Biasanya teknik ini digunakan untuk mencari pola tersembunyi dari sekumpulan data. Misalnya jika kita ingin mengelompokkan sekumpulan dokumen atau foto yang belum kita ketahui jenis kelasnya. 

Teknik ini bisa juga dipakai sebelum kita menerapkan supervised learning jika kita tidak memiliki data berlabel. Setelah ditemukan kelompok atau klasternya, kita bisa menentukan label masing-masing klaster secara manual, lalu menggunakannya untuk melakukan klasifikasi dengan supervised learning.

 

Perbedaan-supervised-learning-dan-unsupervised-learning
Gambar - Perbedaan Supervised Learning dan Unsupervised Learning

Yann LeCun, Chief AI Scientist di Facebook dan penerima Turing Award 2018 mengatakan, “Jika machine learning diibaratkan sebuah kue ulangtahun, maka unsupervised learning adalah kue-nya, supervised learning adalah lapisan gula di permukaan kue, dan reinforcement learning adalah cherry di atasnya.” Maksudnya adalah, karena sebagian besar data yang ada di dunia nyata ini adalah data yang tidak berlabel, maka metode unsupervised learning ini menjadi sangat penting.

Jenis-jenis unsupervised learning

  • Clustering 
  • Association dan frequent itemset
  • Dimensionality reduction
  • Topic modeling

 

Reinforcement learning 

Reinforcement Learning (RL) adalah metode learning yang melatih model untuk mengambil serangkaian keputusan untuk mencapai target tertentu, dengan cara berinteraksi dengan lingkungan. Tujuannya adalah mempelajari aturan optimal yang memaksimalkan akumulasi reward. Pada dasarnya RL adalah serangkaian pengambilan keputusan.

Contoh permasalahan yang diselesaikan dengan reinforcement learning adalah permainan seperti catur, atau game komputer seperti startcraft, dll. RL juga digunakan untuk robotik, di mana robot mempelajari tindakan apa yang harus diambil untuk menyelesaikan tugas tertentu.

Ada 3 komponen utama dalam RL, yaitu

  • Agen, yaitu program yang di-training
  • Lingkungan
  • Tujuan, misalnya untuk permainan tujuannya adalah menang

Di samping itu terdapat reward, yang menunjukkan seberapa baik keputusan yang diambil agen sejauh ini.

Perbedaan reinforcement learning dengan supervised maupun unsupervised learning adalah: 

  • RL merupakan serangkaian pengambilan keputusan, sehingga berkaitan erat dengan waktu. Berbeda dengan supervised maupun unsupervised learning yang berurusan dengan data poin yang independen satu sama lain.
  • Proses belajar pada RL adalah proses aktif, di mana keputusan saat ini akan mempengaruhi output di masa yang akan datang.

 

Interaksi-agen-dan-lingkungan-dalam-reinforcement-learning
Gambar - Interaksi Agen dan Lingkungan dalam Reinforcement Learning

 

Semi-supervised Learning 

Permasalahan yang paling banyak dihadapi dalam implementasi machine learning adalah terbatasnya jumlah data yang memiliki label untuk digunakan pada proses training. Karena itulah maka kemudian muncul  teknik dan algoritma baru yang dikenal dengan nama Semi-supervised Learning.

Semi-supervised Learning adalah teknik yang menggabungkan antara sedikit data yang memiliki label dengan data yang tidak memiliki label pada proses training. Pendekatan ini menggabungkan antara teknik supervised dan unsupervised learning, sehingga masalah ketersediaan data yang memiliki label dapat teratasi.

 

Deep Learning

Deep learning adalah sebuah teknik membuat sebuah program atau sistem menjadi pintar dengan menggunakan algoritma yang meniru cara kerja saraf manusia. Deep learning merupakan subset atau bagian dari machine learning yang juga memanfaatkan data untuk belajar.

Dasar utama dari deep learning adalah algoritma jaringan saraf tiruan atau dikenal dengan Artificial Neural Network. Konsep awal mengenai ANN diperkenalkan oleh Warren McCulloch dan Walter Pitts tahun 1943 yang kemudian berkembang menjadi sebuah arsitektur yang sederhana yang disebut perceptron yang diperkenalkan tahun 1958 oleh Frank Rosenblatt.

perceptron
Gambar - Perceptron

 

Arsitektur ANN berkembang sangat pesat seiring dengan perkembangan teknologi komputasi dan kemampuan dalam mengelola big data. Sebut saja Convolution Neural Network, RNN, LSTM hingga Generative Adversarial Network. Semuanya mampu menyelesaikan masalah yang lebih rumit dengan cara yang tidak terbayangkan sebelumnya.

Tidak hanya dapat digunakan untuk menyelesaikan masalah-masalah klasik seperti dicontohkan sebelumnya, seperti prediksi nilai tukar mata uang atau klasifikasi email spam, tetapi juga mampu digunakan untuk menganalisa gambar, video maupun suara dengan lebih baik dan akurat.

 

Dampak Machine Learning

Perkembangan pesat teknologi komputasi seperti penggunaan Graphical Processing Unit (GPU), infrastruktur komputasi awan dan algoritma machine learning membuat implementasi dapat lebih mudah dilakukan. Banyak produk yang digunakan sehari-hari telah disematkan Artificial Intelligence di dalamnya yang pada dasarnya menggunakan machine learning. Misalkan saja produk-produk handphone, atau produk elektronik rumah tangga telah banyak memanfaatkan machine learning, dan ini menjadi sebuah trend.

Tidak sampai disitu saja, implementasi machine learning juga mempermudah manusia dalam mengotomatisasi berbagai proses bisnis, proses manufaktur ataupun proses lain yang sebelumnya banyak menggunakan campur tangan manusia. Mesin yang cerdas telah secara otomatis bekerja dengan baik. Hasil yang didapatkan tentu saja diharapkan lebih baik dan meningkatkan produktivitas.

Ibarat pisau bermata dua, perkembangan ini tentu saja bisa menjadi sebuah ancaman. Dengan mesin-mesin cerdas yang mampu menggantikan banyak pekerjaan manusia, tentu saja bisa berdampak pada  pengurangan tenaga kerja. Tetapi kembali lagi kepada kita sendiri, apakah kita akan terus ikut berkembang sehingga dapat memanfaatkan machine learning atau kita akan tergilas oleh mesin-mesin yang mampu belajar tersebut.