(Seri #2) Machine Learning dari nol

Sebagai ilustrasi, akan diperagakan jenis machine learning sederhana dengan pasokan input yang menghasilkan output. Cara kerja machine learning ini kira-kira sebagai berikut.

Pandanglah sebuah hubungan antara x dan y melalui y = f(wx) dengan w disebut bobot yang nilainya bisa diubah-ubah. Variabel x disebut input yang nilainya tetap, sedangkan variabel y disebut predicted output dengan f() akan disebut sebagai mesin. Bila input x dimasukkan ke dalam mesin f() untuk suatu w tertentu maka akan dihasilkan predicted output y.

Sampai tahap ini belum terlihat mesin f() mengalami proses learning. Mesin f() ini masih nampak berperanan seperti fungsi di matematika biasa.

Mesin akan disebut sudah pintar bila ia bisa menghasilkan predicted output y yang menyerupai actual output yo yang sudah diketahui nilainya. Ini dicapai bila jarak antara y dan yo atau d(y, yo) menjadi kecil. Jarak d(y, yo) disebut error function atau loss function.

Loss function d(y, yo) akan mengukur kualitas w tatkala memberikan bobot pada input x agar dihasilkan predicted output y. Semakin kecil nilai d(y, yo) maka semakin berkualitas bobot w.

Ini menjadi masalah optimasi: pilihlah w untuk meminimumkan error function d(y, yo).

Mesin diatur supaya mampu belajar (learning) melalui proses pengecilan loss function d(y, yo) dengan mengubah nilai w. Proses ini akan membuat mesin semakin lama semakin pintar sehingga kelak ia bisa menghasilkan predicted output y yang mirip dengan actual output yo, atau d(y, yo) yang kecil.

Caranya, mula-mula diberikan sembarang nilai w lalu dihitung d(y, yo). Nilai w yang sembarang ini akan membuat mesin kemungkinan masih bodoh, belum pintar memberikan predicted output y yang akurat.

Pada tahap berikutnya akan dihitung d(y, yo) untuk masing-masing w yang baru hasil dari perubahan w yang lama. Pemilihan w yang baru ini bisa dilakukan dengan coba-coba, yang penting akan dipilih w yang akan memberikan d(y, yo) yang semakin kecil. Inilah proses mesin melakukan pembelajaran (learning) melalui _trial and error._ Tentu saja hasil belajar yang demikian tidak akan efisien.

Kelak mesin f() akan dilatih oleh algoritma komputer agar mau menjelajahi berbagai perubahan nilai w itu secara sistematik yang disebut gradient descent atau pun metode optimasi lainnya.

Dengan kata lain, algoritma akan dimulai dengan pilihan w yang boleh dilakukan secara acak dan kemudian secara iteratif w diubah seiring waktu untuk mendapatkan loss function d(y, yo) yang semakin lama nilainya akan semakin kecil.

Bila w sudah diperoleh dengan kualitas yang bagus sehingga loss function d(y, yo) akan kecil nilainya maka mesin disebut sudah pintar.

Dengan w ini, bila diberikan x yang lain (tidak ada di dalam sampel sebelumnya) maka mesin diharapkan mampu menghasilkan predicted output y yang baik.

Itulah gambaran pembelajaran mesin atau Machine Learning.

Note:
Tulisan ini dan tulisan lainnya bisa dibaca di ringkasankutipan.wordpress.com. Koleksi tulisan ini diklasifikasikan menurut *Categories* dan *Tags*.

Leave a comment