[#2] Dasar Pembelajaran Mesin

Feryandi Nurdiantoro
5 min readJul 3, 2018

--

Pembelajaran mesin (machine learning) adalah salah satu bidang pada ilmu komputer yang bertujuan untuk membuat sistem dimana komputer dapat ‘belajar’ untuk melakukan suatu hal tanpa perlu diprogram oleh manusia.

Kebanyakan cara ‘belajar’ ini, biasanya merupakan pengenalan pola, dimana diberikan suatu set data latih (training dataset) untuk dipelajari kemudian komputer akan diberikan suatu data lain dan diminta untuk menentukan hasil dari pola yang telah dipelajari dari set data latih.

Kasus Sederhana

Untuk dapat mendapatkan gambaran yang lebih jelas mengenai pembelajaran mesin ini. Lihat contoh kasus dibawah ini,

Diketahui data mengenai uang yang harus diberikan ke abang angkot dalam rupiah dan jarak tempuh angkot dalam kilometer.

Tabel hubungan antara jarak dan ongkos angkot

Dengan data tersebut, kita ingin membuat sebuah program pembelajaran mesin sederhana untuk memprediksi ongkos angkot jika diketahui jarak yang sudah ditempuh.

Fungsi Prediksi / Hipotesis

Dengan mempelajari m buah data, kita ingin hasil akhir dari pembelajaran ini adalah program dapat memprediksi ongkos (dinotasikan sebagai y) jika diberikan jarak (dinotasikan sebagai x).

Dapat juga dikatakan bahwa program berhasil membuat sebuah fungsi hipotesis H yang menerima x dan menghasilkan nilai ypred. Dapat kita notasikan secara formal sebagai berikut,

Kita perlu menentukan perkiraan bentuk dari fungsi ini. Dengan melihat data yang kita miliki, kita dapat lihat bahwa data tersebut hanya memiliki 1 atribut yakni jarak (ongkos adalah keluaran sehingga tidak dihitung).

Dari sana kita bisa simpulkan bahwa kemungkinan besar fungsi H(x) akan memiliki 1 parameter (dengan notasi θ1) yang akan mempengaruhi masukan jarak.

Selain parameter tersebut, bisa saja ada faktor luar selain jarak yang mempengaruhi hasil fungsi hipotesis. Kita anggap faktor luar itu selalu bernilai 1 dan memiliki parameter dengan notasi θo (cari: intercept term).

Secara formal fungsi H(x) dapat dituliskan,

Selanjutnya, kita ingin agar fungsi hipotesis cukup baik untuk menghasilnya hasil yang mirip dengan nilai yang sesungguhnya.

Seberapa Bagus Prediksi Kita

Untuk menentukan apakah fungsi hipotesis sudah baik atau belum diperlukan cost function (dinotasikan sebagai J(θ))

Untuk kasus sederhana ini, kita bisa menggunakan fungsi mean squared error dimana kita menilai kedekatan hasil prediksi dengan mengukur jarak antara ypred dan y, dengan cara mengurangi y dengan ypred. Jika hasilnya mendekati 0, maka nilai y dan ypred adalah sama. Maka, semakin dekat dengan 0 semakin baik.

Secara formal rumus dari mean squared error adalah sebagai berikut,

Dengan notasi sebagai berikut,

  • m adalah jumlah data yang kita miliki
  • y pangkat dalam kurung i diartikan sebagai nilai y untuk data ke-i
  • H(x) adalah hasil prediksi untuk data ke-i

Jika kita ingin agar fungsi hipotesis H(x) kita sebaik mungkin, maka kita perlu mendapatkan nilai θ sehingga cost function menghasilkan angka error sekecil mungkin.

Mendaki Gunung, Menuruni Lembah

Pertanyaan selanjutnya adalah, bagaimana cara mendapatkan cost function sekecil mungkin? Salah satu cara yang sering digunakan adalah bernama gradient descent.

Gradient descent adalah cara untuk mencapai titik terendah dengan cara melihat gradien atau kemiringan.

Katakanlah Anda sedang berada di gunung. Setelah Anda selesai mendaki gunung, Anda ingin turun dari gunung tersebut, kemanakah Anda akan pergi? Pastinya Anda mencari jalur yang menurun dengan melihat kemiringan tanah.

Seberapa Anda yakin bahwa semakin curam / miring jalur tersebut ke bawah, bahwa semakin tinggi kemungkinan jalur tersebut membawa Anda dengan cepat ke kaki gunung? Cukup tinggi pastinya.

Sumber: https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch04.html

Hal ini menjadi dasar dari algortime gradient descent dimana dengan melihat gradien atau kemiringan dari sebuah fungsi, kita bisa mengetahui ke arah mana kita harus menuju ke titik terendah fungsi tersebut. Selain itu, semakin besar kemiringan fungsi itu, artinya semakin besar pula kemungkinan arah tersebut membawa ke titik minimum.

Secara formal, gradient descent dapat dituliskan sebagai berikut,

Perhitungan tersebut mencari nilai θ baru dengan cara mengurangi nilai θ lama dengan perkalian antara α (disebut learning rate, seberapa jauh akan ‘turun’) dengan gradien dari J(θ).

Gradien dari J(θ) dapat dicari dengan melakukan partial derivation atau turunan sebagian untuk setiap θj terhadap J(θ). Dengan sedikit kalkulus, didapatkan bahwa,

Lakukan pencarian nilai θj menggunakan formula diatas hingga konvergen atau nilai θj berubah sangat kecil sehingga perubahannya tidak berarti.

Setelah didapatkan nilai θ untuk masing-masing fitur / atribut j, maka kita bisa kembalikan masukkan ke dalam fungsi hipotesis H(θ) untuk kemudian digunakan untuk memprediksi.

Jadi, Berapa Ongkosnya?

Kembali ke persoalan ongkos angkot diawal, berapakah fungsi H(θ) yang bisa diperoleh menggunakan 6 data latih dibawah ini?

Tabel hubungan antara jarak dan ongkos angkot

Menggunakan python, dengan cepat dapat dibuat program untuk membantu perhitungan ini. Beberapa asumsi atau nilai awal didefinisikan untuk menyelesaikan perhitungan, yakni:

  • Semua theta diset menjadi 10 pada awalnya
  • Nilai alpha diset 0.001

Berikut adalah hasil iterasi beberapa iterasi,

Iterasi pertama
Iterasi kedua
Iterasi kesepuluh
Iterasi terakhir

Di iterasi terakhir didapatkan nilai

H(x) = 1840.7237623404806 + 929.1647055475246 * x

Jika kita gunakan fungsi tersebut untuk memprediksi, untuk jarak 6 km maka ongkos yang harus dibayar adalah 7415 rupiah. Cukup dekatkan?

Perlu diketahui juga bahwa fungsi tersebut juga merupakan hasil dari regresi linear. Jika Anda mencoba menggunakan regresi linear untuk menyelesaikan persoalan diatas, maka kemungkinan besar Anda mendapatkan fungsi serupa. Metode diatas ini disebut juga least mean square.

Akhirnya…

Pendekatan, notasi, dan perhitungan yang dilakukan disini, akan banyak digunakan untuk menurunkan berbagai metode pembelajaran mesin.

Setiap metode akan memiliki pendekatan fungsi H(x)-nya sendiri, cost function yang berbeda (log-likelihood, …), dan pencarian minima yang berbeda (stocasthic gradient descent, …).

Namun secara umum, akan memiliki struktur perhitungan yang sama.

Referensi

  • [1] Standford University’s Public Class — CS229, Andrew Ng.

--

--