Tek Analogi #6 — Pembelajaran Mesin (Machine Learning)
“A breakthrough in machine learning would be worth 10 Microsofts” — Bill Gates (Founder of Microsoft)
Halo pembaca 👋 Selamat datang di seri Teknologi Analogi jilid enam. Teknologi Analogi merupakan seri publikasi yang membahas teknologi dengan menggunakan analogi. Kamu bisa baca seri-seri sebelumnya di:
Beberapa hari yang lalu, teman saya bertanya di sebuah grup media sosial: “A.I atau Artificial Intelligence itu masuk ke bidang apa sih?” Teman saya yang lain yang tergabung di dalam grup tersebut menjawab: “computer science” — atau ilmu komputer. Yang menjawab adalah seorang lulusan ilmu komunikasi, namun dia bisa menjawab pertanyaan terkait teknologi dimana saya yang seharusnya menjawab. Sebegitu terkenalnya A.I di dunia ini sekarang.
Tidak dapat dipungkuri lagi, perkembangan A.I di industri teknologi sudah berkembang secara cepat. Banyak media yang memamerkan mulai dari chatGPT, robot Sophia, mobil tak berpengemudi, sampai Deepfake.
Bidang A.I seakan menjadi primadona. Banyak mahasiswa teknologi informasi yang bercita-cita untuk bekerja di bidang ini. A.I terbagi menjadi beberapa buah sub-bidang lainnya. Salah satu yang paling terkenal adalah pembelajaran mesin atau dikenal dengan machine learning (ML). Pada tulisan kali ini saya akan mencoba membahas ML dengan menggunakan analogi. So without further ado, let’s get started!
1. Belajar
Beberapa waktu lalu, di grup tempat saya biasa bermain basket, kedatangan pendatang baru — sebut saja namanya Wulan. Wulan adalah seorang yang mau mencoba olahraga basket untuk pertama kalinya. Pada awalnya, dia tidak bisa melakukan gerakan menembak bola sama sekali. Namun Wulan punya keinginan untuk mempelajari caranya.
Kami tidak memberikan instruksi-instruksi yang persis kepada dia tentang bagaimana posisi tangan atau ketika menembak bola. Ya… kita kadang memberikan sedikit tips. Namun secara umum, dia sendiri yang belajar dengan cara mengamati orang lain secara berulang kali. Dengan melihat bagaimana orang lain melakukan gerakan menembak, Wulan mempraktekannya sendiri, lalu mengevaluasi apakah gerakan dia sudah benar pada pertandingan. Selang beberapa bulan, dia sudah bisa melakukan gerakan menembak bola dengan baik. Keseluruhan proses inilah yang disebut dengan machine learning.
Program komputer pada dasarnya adalah sekumpulan instruksi yang urut yang bisa dijalankan oleh komputer. Dengan kata lain, kita memberitahu komputer secara persis hal apa saja yang harus dia lakukan — satu demi satu. Sebaliknya di ML, alih-alih memberikan instruksi, kita meminta komputer untuk “belajar sendiri” tanpa memberikan instruksi yang persis. Sehingga munculnya istilah machine learning.
2. Kepintaran
Sama seperti si Wulan yang memiliki tujuan yaitu ingin belajar menembak bola basket, program ML pun memiliki tujuan terkait “kepintaran” apa yang ingin dicapai. Program ML dibuat dengan menjawab pertanyaan: “kepintaran apa yang mau kita tanamkan kepada program tersebut?”. Program ML yang sudah mencapai suatu kepintaran disebut sebagai model ML.
Pernah memakai filter Instagram? Didalamnya ada model ML untuk mendeteksi wajah manusia atau biasa disebut sebagai pengenalan citra (image recognition). Model tersebut memiliki kepintaran untuk mengenali dan memetakan kontur wajah.
Punya widget cuaca di gawai kamu yang bisa memberikan perkiraan cuaca? Didalamnya terdapat model ML untuk melakukan prediksi atau biasa disebut forecasting. Model tersebut memiliki kepintaran dalam memprediksi cuaca berdasarkan variabel-variabel seperti tekanan udara, suhu, dsb.
Pernah menggunakan chatbot di sosial media kamu? Didalamnya terdapat model ML yang pintar dalam mendeteksi “konteks” (context) dan “maksud” (intent) dari suatu kalimat yang kamu tulis atau biasa disebut dengan pengolahan tata bahasa (natural language processing). Bahasa.ai dan Kata.ai adalah contoh startup di Indonesia yang bergerak di bidang ini.
3. Materi Pembelajaran
Misal kita sudah tahu “kepintaran” apa yang mau kita tanamkan pada model yang mau kita buat. Lalu apa selanjutnya? Sama seperti Wulan yang mengamati gerakan-gerakan orang lain, kita perlu menyiapkan sekumpulan materi dimana program ML bisa belajar dari situ. Dengan kata lain — data.
Data berperan sangat penting dalam membuat model ML. Dikarenakan bukan kita yang memberikan instruksi kepada sebuah mesin, maka kita perlu memberikan sekumpulan data sehingga program kita bisa belajar dari mengamati sekumpulan data. Fase ini biasa disebut dengan pelatihan (training). Dengan memberikan sekumpulan data kepada program ML, kita melatih program kita untuk melihat pola-pola yang ada pada data tersebut. Data yang baik memiliki dua hal penting yang harus diperhatikan yakni keragaman dan banyaknya.
Sebuah model ML sangat ditentukan oleh keragaman data pembelajaran yang kita berikan. Misal kita mau membuat model ML yang mampu “mengenali hewan herbivora”. Data yang kita berikan antara lain: zebra, sapi, jerapah. Bisa saja model ML kita mendapatkan pembelajaran yang salah dengan menganggap “oh! ternyata semua hewan berkaki empat adalah herbivora” atau “oh! hewan yang bercorak adalah hewan herbivora”. Itu semua adalah hasil pembelajaran yang salah. Dengan kesimpulan tersebut, bisa saja model kita menyebut bahwa harimau adalah hewan herbivora. Pada kenyatannya, banyak sekali ragam jenis hewan herbivora seperti panda, kuda, domba, gajah, badak, dsb. Bagaimana dengan hewan herbivora yang hidup di laut? Seperti penyu atau ikan-ikan kecil yang memakan fitoplankton.
Untuk itulah keragaman data sangat penting supaya model ML yang kita buat tidak salah dalam membaca pola dan menarik kesimpulan.
Sementara itu, banyaknya data juga mempengaruhi model ML. Jika data yang tersedia hanya sedikit, bisa jadi model ML kita tidak sampai kepada kesimpulan yang mumpuni. Dalam bahasa komputer adalah rendahnya tingkat keyakinan (confidence level). Mana yang lebih membuatmu yakin? 1 orang yang bilang bahwa macan adalah hewan herbivora atau 100 orang yang bilang bahwa macan bukan hewan herbivora? Untuk itulah kita perlu menyiapkan data yang cukup banyak sehingga model ML bisa melakukan pembelajaran dengan lebih akurat karena banyaknya referensi yang diterima. Jumlah data yang biasa digunakan berkisar ribuan sampai jutaan data.
4. Tips
Sepintar apapun sebuah komputer dalam melihat pola, komputer tetaplah komputer. Sebuah perangkat bodoh yang tidak memiliki konteks tentang dunia. Untuk itulah komputer tetap memerlukan bantuan kita manusia untuk mengajari mereka bagaimana sebaiknya belajar.
Sama halnya dengan si Wulan, program ML pun membutuhkan tips. Kita masih perlu untuk mengajari program ML kita tentang bagaimana sebaiknya mempelajari sekumpulan data. Kita perlu memberitahu poin-poin apa saja yang penting pada sebuah data. Misal pada kasus Wulan, karena dia sedang belajar menembak bola basket, salah satu hal yang harus diperhatikan adalah posisi jari atau posisi siku. Dia tidak perlu memperhatikan kegesitan kakinya dalam berlari karena itu tidak dibutuhkan dalam keahlian “menembak bola basket”.
Sama halnya dengan program ML kita. Ada istilah fitur yakni sebuah sifat, karakteristik, atau nilai yang dapat diukur. Misal pada hewan, fitur-fitur yang tersedia adalah: jumlah kaki, warna kulit, berat, umur, dsb. Kita perlu memberikan fitur-fitur yang sekiranya berpengaruh langsung terhadap kepintaran model ML yang ingin kita buat. Jika kita ingin membuat model ML yang mampu mengenali hewan herbivora, bisa jadi fitur umur tidak terlalu penting karena mau seberapa lama pun umur seekor hewan, mereka akan selalu menjadi pemakan yang sama. Tidak mungkin ada seekor harimau yang suatu hari memutuskan untuk menjadi vegetarian, bukan?
Selain fitur, konfigurasi program ML juga sangatlah penting. Seperti: [1] metode regression yang dipakai [2] banyaknya tingkatan layer yang mau dipakai jika kamu memakai artificial neural network [3] banyaknya epoch [4] kapan harus melakukan early stopping… Pusing ya? Iya saya sengaja membuat kalian penasaran 😜 Silahkan dicari tahu sendiri ya jikalau penasaran, karena poin-poin yang saya sebutkan diatas bersifat teknis dan menurut saya akan terlalu panjang jika dibahas disini.
Tapi intinya adalah… poin-poin diatas adalah konfigurasi yang hanya bisa dilakukan oleh manusia. Dimana kita sebagai manusia, membantu sebuah mesin supaya dia bisa belajar lebih benar. Jadi tidak semudah memberikan data ke komputer kemudian mengharapkan hasil yang maksimal, sebuah model ML tentu masih perlu memerlukan otak manusia dalam mengenali dunia.
5. Pengujian
Semua proses belajar tidak terlepas dari yang namanya ujian. Ada belajar, ada ujian. Ada latihan, ada pertandingan. Begitu juga ada fase pelatihan, pun ada fase pengujian.
Sama halnya seperti Wulan yang menguji hasil tembakannya di sebuah pertandingan, sebuah model ML juga harus melewati fase tes untuk mengukur keakuratannya. Hal ini biasa dilakukan dengan membagi data yang kita punya menjadi dua bagian: 80% untuk materi pembelajaran, 20% lainnya untuk pengetesan. Sama halnya dengan materi pembelajaran, data tes yang bagus adalah data tes yang beragam. Kita tidak mau model ML kita hanya diberi soal-soal yang mudah, bukan? Semakin banyak hasil tes yang dapat dilalui oleh model ML kita, semakin bagus pula akurasi model ML. Dengan melakukan proses tes yang berulang-ulang inilah, maka kita dapat mencapai model ML yang optimal.
Secara garis besar, itulah apa yang disebut dengan machine learning. Machine learning atau pembelajaran mesin adalah sebuah sub-bidang di A.I yang menciptakan sebuah “kepintaran” yang disebut dengan model ML. Model ML dibuat dengan menyiapkan sejumlah data yang banyak dan beragam. Kemudian melakukan fase pelatihan dengan dibantu oleh manusia dalam pemilihan fitur dan sejumlah konfigurasi lainnya, lalu model tersebut akan memasuki fase uji untuk diukur keakuratan “kepintaran”nya.
Semoga tulisan kali ini bermanfaat. Saya berharap sekarang kamu memiliki sedikit gambaran tentang apa itu yang disebut sebagai machine learning.
Terima kasih sudah membaca 😃
See you in a bit 01 — Ferzos
Bonus
#1 Penjelasan ML di drama korea Startup
#2 Youtube Originals: Age of AI (Staring the Iron Man himself 😎)