Pengenalan Pembelajaran Mesin: Cerita Tentang Penulisan


Download link (updated for newer version): https://wiragotama.github.io/

Sudah sekitar satu tahun saya menulis diktat pengenalan pembelajaran mesin dalam bahasa Indonesia. Sedikit background, saya kuliah S1 di Institut Teknologi Bandung (ITB) kemudian melanjutkan S2 di Tokyo Institute of Technology (Tokyo Tech). Tahun 2016 lalu, sewaktu saya baru masuk ke Tokyo Tech, saya mengambil kuliah pengenalan machine learning dari jurusan matematika, namanya statistical learning theory (recommended). Waktu itu saya terpatah-patah mengikuti kuliahnya, kemungkinan besar karena insufficient mathematical background. Jadi agar bisa mengikuti kuliahnya, saya nyatat banyak-banyak, kemudian me-review perkuliahan. Tetapi cara saya review agak beda (khusus kuliah ini saja), saya me-review dengan cara mencoba menuliskan kembali apa yang sudah saya pelajari. Di kuliah itu ada simbol matematika disana dan disini, tentunya di kuliah/slide bisa jadi beberapa langkah pembuktian tidak dideskripsikan secara mendetil karena keterbatasan waktu. Oleh karena itu, saya coba men-trace dan mengerti keseluruhan slide pelan-pelan. Mulai dari kuliah ini saya mendapat insight bahwa belajar machine learning itu mungkin tidak bisa hanya dari buku dengan cara penulisan deskriptif (lebih ke cerita-cerita). Tetapi kalau full matematis, mungkin relatif agak berat juga bagi anak ilmu komputer/informatika di Indonesia (atau mungkin bagi saya doang?). Sedikit pendapat bagi mereka yang menggap seorang siswa tidak harus jago matematika agar mampu masuk jurusan ilmu komputer/informatika. Saya rasanya pernyataan tersebut harus direvisi, kalau si siswa ingin mendalami machine learning atau artificial intelligence (dan varian turunannya), sangat disarankan untuk memiliki sufficient mathematical knowledge. Seperti yang saya ceritakan, bottleneck saya belajar machine learning itu karena insufficient mathematical background. Kalau dari sisi sejarah, machine learning munculnya dari matematika (klo gk salah dari mathematical optimization + probability and statistics + aljabar linear – CMIIW) .

Nah, berdasarkan catatan kuliah yang ditulis tersebut (beserta beberapa trace) saya berdiskusi dengan beberapa orang. Mereka menyarankan kalau memang saya mendapatkan insight, kenapa tidak dibagi agar lebih banyak manfaatnya? Disamping itu, suatu buku yang memuat materi introductory-level itu cukup tahan lama, dalam artian umurnya panjang dan bisa dibaca sampai beberapa tahun kedepan (karena isinya fondasi). Karena trigger ini, saya kemudian ingat-ingat lagi cerita di ITB. Saya banyak mendengar orang membicarakan “sebaik-baiknya manusia adalah iya yang bermanfaat”, lalu “mari berkontribusi untuk masyarakat” (dan cerita-cerita kontribusi lainnya ala ITB – komunitas ITB tahu sendirilah ya apa maksud kalimat ini). Tambahan lagi, dalam suatu event yang cukup serius saya ditanya: “kamu kan mau S2 ke luar negeri, apa kontribusimu bagi negara”. Saya jawab “saya mah gak muluk-muluk mau bikin ini bikin itu, minimal saya akan berusaha keras agar bisa berprestasi dalam segi akademik, nantinya bisa mengharumkan nama bangsa juga kan misal seperti Bpk XXX”. Waktu itu, saya lihat raut wajah interviewers tidak terlalu mengenakkan. Bagi interviewers, mungkin diktat ini adalah bentuk konkret kontribusi saya. Mohon maaf butuh 1 tahun lebih untuk memberikan jawaban yang konkret.

saya mah gak muluk-muluk mau bikin ini bikin itu, minimal saya akan berusaha keras agar bisa berprestasi dalam segi akademik, nantinya bisa mengharumkan nama bangsa juga kan misal seperti Bpk XXX

Dari catatan kuliah, saya ingat-ingat lagi materi-materi kuliah S1 terdahulu. Kebetulan sekarang saya masih kuliah S2. Saya rasa saya akan sangat sombong apabila menulis diktat untuk level pascasarjana. Yasudah, saya ingat materi kuliah S1 dulu, kemudian menambahkan materi diktat dengan materi S1 yang sudah dipelajari terlebih dahulu. Dari ringkasan catatan kuliah (Nov 2016), diupdate lagi penulisannya (Jan 2017), kemudian ditambah lagi materinya (May 2017), dan ditambah lagi materi dan disempurnakan penulisannya sampai sekarang (Oct 2017).

Bagi Anda-anda dan kamu-kamu yang mengikuti perkembangan diktat ini, mungkin penasaran kenapa versi 0.3 (May 2017) tiba2 menjadi versi 0.9 (Oct 2017). Awalnya saya ingin meng-cover materi selengkap mungkin. Tapi apa daya, resources ternyata tidak cukup untuk mewujudkan tujuan awal. Yang namanya project harus ada tujuan yang jelas. Yasudah, saya kurangi ambisi awal sesuai dengan kemampuan dan waktu luang yang ada. In short, diktat ini menjadi lebih pendek dari yang direncanakan. Mohon pembaca cukup puas dengan seluruh 11 bab yang ditawarkan. Untuk versi 1.0 nanti, kemungkinan besar adalah penyempurnaan versi 0.9 dari segi penulisan (segi cara bercerita) dan citation. Mudah-mudahan versi 1.0 nanti bisa lebih jelas mana ide orang lain dan mana ide penulis sehingga diktat ini bisa di-cite (tapi ini hitungannya adalah unpublished work walaupun ada reviewers).

EDIT (Maret 2018): versi 1.0 berisi materi yang jauh lebih lengkap (12 bab)!

EDIT (Juli 2018): versi 1.1 berisi materi yang jauh lebih lengkap (14 bab)!

Saya tahu mahasiswa di Indonesia banyak yang suka pdf gratisan (hayoo ngaku loh) karena dulu waktu S1 juga suka pdf yang gratisan (maaf kere). Dengan demikian, sangat masuk akal apabila saya menulis diktat kemudian digratiskan (kan ingin manfaatnya semaksimal mungkin). Disamping itu bagaimana mungkin saya meminta bayaran untuk seseorang yang belum terbukti kemampuan menulisnya. Tetapi, saya tidak munafik. Saya sadar bahwa saya tidak mendapatkan apa-apa secara materiil, tetapi saya mendapat manfaat lain secara psikologis (kepuasan pribadi maupun fame – kalo isinya bagus loh ya). Jadi bagi saya, diktat ini adalah win-win. Saya juga relatif merasa tidak banyak materi machine learning dalam bahasa Indonesia (bertambah lagilah alasan untuk menulis ya).

Sejauh pengetahuan saya sampai sekarang (boleh dikoreksi), algoritma machine learning itu bila dikategorikan, yaitu: rule-based (misal decision tree, apriori, dsb), linear model (regression, SVM, dsb), graphical model (Bayesian Belief Network, HMM, CRF, LDA), dan neural network (yang lagi populer gituuu – non linear). Awalnya saya ingin men-cover seluruh contoh algoritma machine learning untuk tiap kategori diatas. Tetapi sayang sekali, apa daya diri tidak bisa menulis SVM karena pengetahuan yang tidak sebegitu detailnya (EDIT: penjelasan kulit SVM pada versi 1.1).

Saya ingin sedikit berbagi cerita lain. Ternyata menulis diktat itu sangat susah ya. Jangankan diktat/buku yang beratus-ratus halaman. Saya menulis paper 10 halaman saja butuh waktu 1 bulan (bahkan lebih), hanya untuk penulisannya saja (belum lagi eksperimen). Saya awalnya tidak punya tim dalam menulis diktat ini, benar-benar sendiri saja. Lagi pula apa manfaat orang lain membantu saya, toh saya tidak bisa memberi mereka apa-apa (diktat ini gratis). Selain itu, saya sendiri belum membuktikan sepak terjang. Memang betul, menulis itu butuh komitmen dan konsistensi.

Awal-awal publish (versi pertama banget) itu tidak ada yang baca, tidak ada yang nge-review. Eh, tapi ternyata ada yang baca! Lalu beberapa pembaca awal ini ada yang mengontak saya. Sedikit demi sedikit ada kawan yang mau bantu me-review (beberapa menawarkan diri) dan bahkan ada yang mau membantu menyumbang materi (thanks to Arief and Candy). Atas niatnya saja, saya sudah sangat bersyukur. Kalau kata Candy, bisa dibilang “terinspirasi dari gerakannya (panutan ambis)”. Berhubung saya tidak bisa memberi apa-apa kepada para kontributor, tolong puas dulu lah ya saya mention di ucapan terima kasih (preface) diktatnya. Kritik dan saran sedikit demi sedikit berdatangan semakin menambah materi, list revisi juga semakin panjang. Diktat juga jadi makin warna-warni (kebanyakan kuning dan merah) setelah dibaca reviewers. Makasih buat semua reviewers atas waktu yang diluangkan. Kemudian saya entah kenapa beride untuk membuat subscriber list. Rupanya ada juga yang mau subscribe, terima kasih para subscriber! Makasih juga kawan-kawan karena candaannya saat musim hujan, dingin, sedih (#naon). FYI: kalau weekend gak ada kerjaan, lumayan waktunya dipake nulis diktat aja (ketahuan jombs).

Tak lupa terima kasih pada aqours dan seiyuu-nya yang lucu-lucu atas kisah perjalanana anak-anak SMA yang inspiratif. ゼロから一へ! (dari 0 menjadi 1). Karena aqours ini saya tetap bersemangat melanjutkan diktat, percaya bahwa suatu hari nanti ada yang men-download diktat ini. Diktat saya seperti kisah aqours, dari 0 reviewer lalu bertambah menjadi 1, 2, 3, dst. Dari 0 view, ada 1 view, 10, 100, 200, dst.. (EDIT 14 March: 1000++ and still counting!)  Dari 0 halamanbertambah jadi 1 halaman, 10 halaman, sampai sekarang 120~ halaman (versi 0.9).

EDIT: versi 1.0 berisi 189 halaman!

EDIT: versi 1.1 berisi 221 halaman!

Ya akhir kata mudah-mudahan diktat yang ditulis (download link ada di atas) bisa bermanfaat. Walaupun dari segi penulisan masih banyak kurang lengkap, ada logical gap disana disini, formulanya loncat-loncat, misal materinya shallow, bahasanya tingkat tinggi banget, dan apalah. Dengan semua kekurangannya itu mudah-mudahan tetap bisa bermanfaat dalam satu dua hal (demi menghargai para reviewers yang sudah mau meluangkan waktu juga). Moga-moga versi 1.0 bisa keluar di tahun 2018!

EDIT: Versi 1.0 keluar Maret 2018 🙂

EDIT: Versi 1.1 keluar Juli 2018 🙂

Sedikit snippet diktat, ingin tahu lebih lanjut? Silahkan download 🙂

Tujuan machine learning minimal ada dua: memprediksi masa depan (unobserved event) dan/ atau memperoleh ilmu pengetahuan (knowledge discovery/ discovering unknown structure). Untuk mencapai tujuan tersebut, kita menggunakan data (sampel), kemudian membuat model untuk menggeneralisasi “aturan” atau “pola” data sehingga kita dapat menggunakannya untuk mendapatkan informasi/membuat keputusan. Basis pembelajaran memanfaatkan data, juga menggunakan banyak teori statistik untuk melakukan inferensi (misal saat memprediksi unobserved event). Jadi, machine learning adalah cara untuk memprediksi masa depan dan/atau menyimpulkan/mendapatkan pengetahuan dari data secara rasional dan non-paranormal. Hal ini sesuai dengan konsep intelligent agent, yaitu bertingkah berdasarkan lingkungan. Dalam hal ini, lingkungannya adalah data. Performance measure-nya adalah seberapa akurat prediksi agen tersebut, atau seberapa mirip “pola” data yang ditemukan terhadap data asli.

Gallery

5 thoughts on “Pengenalan Pembelajaran Mesin: Cerita Tentang Penulisan

  1. ibdskusuma says:

    Terima kasih, Mas. Kebetulan saya juga sedang melakukan hal yang sama; mengingat kembali dan ‘menajamkan’ pengetahuan saya dalam beberapa bidang di informatika dengan cara menulis kembali materi-materi tersebut. Dari cerita mas ini, saya jadi semakin yakin apa yang saya lakukan tidak akan sia-sia. Sekali lagi terima kasih atas inspirasinya. Semoga sukses, Mas 🙂

  2. Speechless, membaca note Pak Jan Wira Gotama Putra mengenai pengalaman belajar, menulis diktat, berkontribusi dalam ranah ilmiah terutama dalam bidang Ilmu Komputer dan Informatika (machine learning)…
    Saya mantan mahasiswa komputer yg hanya asal belajar saat di bangku kuliah (dan merasa kayak gak dapat apa2 saat kuliah) jadi malu, melihat pengalaman dan usaha Pak Jan Wira Gotama Putra…
    Terima kasih Pak atas pengalaman yang telah dibagikan dan ebook diktat yang telah dibuat (gratis lagi). Pastinya akan sangat berguna & bermanfaat bagi insan2 yang sedang mempelajari machine learning..
    Tetap semangat & berjuang Pak. Gambar template..Faitto..!!!
    Sekalian ijin download Pak…(^_^)v

Leave a comment