PENGENALAN PEMBELAJARAN MESIN · PDF fileadalah orang yang hanya belajar pembelajaran mesin...
Transcript of PENGENALAN PEMBELAJARAN MESIN · PDF fileadalah orang yang hanya belajar pembelajaran mesin...
PENGENALAN
PEMBELAJARAN
MESIN
Dijelaskan menggunakan contoh dan banyak gambar
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 2
Tentang Catatan Ini
Saya banyak mendengar baik dari teman, junior, senior, dsb; kalimat berikut ini “kuliah mengajari
teori saja, prakteknya kurang, tidak relevan dengan industri”. Menurut saya di suatu sisi itu benar;
tapi di sisi lain, karena pemikiran tersebutlah kita banyak merasakan hal seperti pada meme berikut
https://s-media-cache-ak0.pinimg.com/236x/4f/54/29/4f5429df5ea6361fa8d3f08dfcdccdf9.jpg
Banyak yang buru-buru “langsung ajalah kasi tahu cara menggunakan, kan lebih practical”.
Barangkali lebih asyik membaca buku yang berjudul “pembelajaran mesin menggunakan
<bahasa_pemrograman>”. Saya ingin menyampaikan satu hal, apakah menurut Anda mereka yang
bekerja dalam tim Google Translate, IBM Watson, Google Tensor Flow, Deep Mind (bukan promosi)
adalah orang yang hanya belajar pembelajaran mesin dengan mindset “yang penting bisa memakai”?
Sepengetahuan saya, banyak PhD dalam tim inti tersebut. Jadi marilah kita mampu memahami dan
juga memanfaatkan.
Lecture note/buku ini ditujukan sebagai penunjang mata kuliah machine learning/pembelajaran mesin
untuk mahasiswa tingkat sarjana di Indonesia. Seperti yang kita ketahui, kebanyakan buku
perkuliahan berasal dari luar negeri. Konsumsi mahasiswa adalah buku dengan bahasa
asing/terjemahan. Kadang kala, mahasiswa menganggap belajar dengan bahasa asing cukup sulit. Di
lain pihak, (with all my respect) buku terjemahan terkadang kurang pas karena belum tentu maksud
pengarang aslinya dapat diterjemahkan 100% oleh penerjemah, ke bahasa lainnya.
Untuk itu, pada masa luang saya, saya ingin berkontribusi pada pendidikan melalui lecture note ini
(catatan kuliah saya). Lecture note/buku ini adalah ringkasan kuliah di universitas-universitas saya
belajar yang disesuaikan penyampaiannya untuk tingkat pendidikan sarjana. Tentunya Lecture
note/buku ini memiliki banyak kekurangan. Kritik dan saran akan sangat membantu pengembangan
buku ini. Lecture note/buku ini tidak dapat dijadikan sebagai acuan utama pada perkuliahan
machine learning karena hanya bersifat sebagai pengantar. Tetapi, mudah-mudahan lecture
note/buku ini dapat membantu proses belajar. Anggap saja sedang baca novel.
Disarankan pembaca mengerti/sudah mengambil kuliah tentang statistika, kalkulus, aljabar
linier/geometri, pengenalan kecerdasan buatan (artificial intelligence). Hati-hati membedakan vektor
(bold), dan bukan. Saat membaca buku ini, disarankan membaca dari bagian pendahuluan (jangan
diabaikan ya). Gaya penulisan lecture note/buku ini diusahakan santai, mudah-mudahan melibatkan
hanya sesedikit mungkin notasi matematis. Kadang kala penjelasan dengan deskripsi saja tidak
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 3
cukup kuat untuk memahami materi. Terlalu banyak penjelasan matematis juga bisa membuat pusing
beberapa orang. Istilah/jargon dalam lecture note/buku ini akan menggunakan bahasa Inggris. Saya
sendiri sadar tentunya catatan ini tidak sempurna, kritik dan saran akan sangat dihargai (silahkan
email).
Saya mengucapkan terima kasih yang sebesar-besarnya pada Bapak/Ibu/Saudara/i, karena telah
memberikan masukan/semangat untuk penulisan buku ini. Mohon maaf apabila ada penulisan gelar
yang salah.
1) I Gede Mahendra Darmawiguna, S.Kom., M.Sc. (Universitas Pendidikan Ganesha)S
2) Fabiola Maria, S.T. (Institut Teknologi Bandung)
3) Chairuni Aulia Nusapati, Erick Chandra, Joshua Beezaleel Abednego (Institut Teknologi
Bandung)ah
Best Regards,
Jan Wira Gotama Putra
Email: gotama(dot)w(dot)aa(at)m(dot)titech(dot)ac(dot)jp
https://icemerly.wordpress.com
http://www.cl.cs.titech.ac.jp/en/
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 4
Notasi
Pembelajaran mesin banyak mengadopsi teori statistika, akan tetapi notasi antar buku dapat berbeda-
beda. Untuk buku ini, berikut adalah beberapa catatan notasi penting.
• P(x) adalah probabilitas x; “P” kapital.
• p(x) adalah probabilitas densitas (probability density function) x. “p” tidak kapital.
• Tentang x (mengacu pada dua hal diatas) adalah random variable atau sampel, harap
disesuaikan dengan konteks. Secara umum, “x” atau “X” mengacu pada random
variable/variable, xn (dengan indeks tertentu) mengacu pada sampel/suatu nilai random
variable/event. Hal ini berlaku kecuali diberikan catatan khusus.
• Vektor x (di-bold).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 5
Daftar Isi
Tentang Catatan Ini .............................................................................................................................. 2
Notasi ................................................................................................................................................... 4
1 Statistical Learning Theory .......................................................................................................... 6
1.1 Apa itu Pembelajaran ........................................................................................................... 6
1.2 Intelligent Agent ................................................................................................................... 6
1.3 Konsep Statistical Machine Learning .................................................................................. 7
1.4 Supervised Learning ............................................................................................................. 9
1.5 Unsupervised Learning ...................................................................................................... 11
1.6 Proses Belajar (Training) ................................................................................................... 12
1.7 Tipe Permasalahan di Dunia (debateable) ......................................................................... 12
1.8 Tips Menjadi Master .......................................................................................................... 13
1.9 Contoh Aplikasi.................................................................................................................. 13
2 Pengetahuan Dasar ..................................................................................................................... 14
2.1 Probabilitas ......................................................................................................................... 14
2.2 Probability Density Function ............................................................................................. 15
2.3 Expectations dan Variance ................................................................................................. 16
2.4 Probabilitas Bayesian ......................................................................................................... 17
2.5 Probabilitas Gaussian ......................................................................................................... 17
2.6 Teori Keputusan ................................................................................................................. 21
2.7 Teori Informasi ................................................................................................................... 22
2.7.1 Entropy ....................................................................................................................... 23
2.7.2 Relative Entropy dan Mutual Information ................................................................. 24
2.8 Bacaan Lanjutan ................................................................................................................. 25
3 Curve Fitting, Error Function & Gradient Descent .................................................................. 26
3.1 Curve Fitting dan Error Function ....................................................................................... 26
3.2 Steepest Gradient Descent .................................................................................................. 28
3.3 Bacaan Lanjutan ................................................................................................................. 30
4 Artificial Neural Network ........................................................................................................... 31
4.1 Definisi ............................................................................................................................... 31
4.2 Single Perceptron ............................................................................................................... 31
4.3 Multilayer Perceptron & Backpropagation ........................................................................ 33
4.3.1 Binary Classification .................................................................................................. 36
4.3.2 Multi-label Classification ........................................................................................... 36
4.4 Deep Neural Network......................................................................................................... 36
4.5 Recurrent Neural Network ................................................................................................. 38
4.6 Tips for Neural Network .................................................................................................... 40
4.7 Bacaan Lanjutan ................................................................................................................. 41
Indeks ................................................................................................................................................. 42
Refrensi .............................................................................................................................................. 43
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 6
1 Statistical Learning Theory
Bab ini adalah bab paling penting pada lecture note ini, karena memuat ide paling utama tentang
machine learning.
1.1 Apa itu Pembelajaran
Bayangkan kamu berada di suatu negara asing, kamu tidak tahu norma yang ada di negara tersebut.
Apa yang kamu lakukan agar bisa menjadi orang “normal” di tempat tersebut? Tentunya kamu harus
belajar! Kemudian kamu mengamati bagaimana orang bertingkah laku di negara tersebut dan
perlahan-lahan mengerti norma di tempat itu. Begitulah belajar. Belajar adalah berusaha memperoleh
kepandaian atau ilmu; berlatih; berubah tingkah laku atau tanggapan yang disebabkan oleh
pengalaman (KBBI, 2016). Pembelajaran adalah proses, cara, perbuatan atau menjadikan orang atau
makhluk hidup belajar. Akan tetapi, pada kasus ini, yang diajarkan/yang belajar bukanlah makhluk
hidup, tapi mesin.
1.2 Intelligent Agent
Sebuah agen cerdas (intelligent agent) memiliki empat macam dimensi (Russel and Norvig, 1995):
1) Acting Humanly
Pada dimensi ini, kita ingin agen mampu bertingkah sebagai manusia. Misalnya adalah agen yang
mampu berinteraksi seperti manusia (baca: turing test).
2) Acting Rationally
Pada dimensi ini, kita ingin agen mampu bertingkat dengan optimal. Tindakan optimal belum tentu
menyerupai tindakan manusia, karena tindakan manusia belum tentu optimal. Misalnya, agen yang
mampu memilih rute terpendek dari suatu kota A ke kota B untuk mengoptimalkan penggunaan
sumber daya. Apabila manusia, kita bisa basa memilih rute lain yang pemandangannya lebih indah.
3) Thinking Humanly
Pada dimensi ini, kita ingin proses berpikir agen, sama dengan proses berpikir manusia (secara
kognitif).
4) Thinking Rationally
Pada dimensi ini, kita ingin proses berpikir agen rasional, sederhananya sesuai dengan konsep logika
matematika.
Untuk mewujudkan interaksi manusia-komputer seperti manusia-manusia, tentunya kita ingin
intelligence agent bisa mewujudkan dimensi acting humanly, dan thinking humanly. Sayangnya,
manusia tidak konsisten (Gratch and Marsella, 2014). Sampai saat ini konsep kecerdasan buatan
adalah untuk meniru manusia; apabila manusia tidak konsisten, kita pun tidak dapat memodelkan cara
berpikir/tingkah laku manusia ke dalam bentuk deterministik. Dengan hal itu, saat ini kita hanya
mampu mengoptimalkan agen yang mempunyai dimensi acting rationally, dan thinking rationally.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 7
Perhatikan Gambar 1.1. Agen mengumpulkan informasi dari lingkungannya, kemudian memberikan
respons berupa aksi. Kita ingin agen melakukan aksi yang “benar”. Tentu saja kita perlu
mendefinisikan secara detil, teliti, tepat (precise), apa maksud dari “aksi yang benar”. Dengan
demikian, lebih baik apabila kita mengukur kinerja agen, menggunakan performance measure.
Misalnya untuk robot pembersih rumah, performance measure-nya adalah seberapa persen debu yang
bisa ia bersihkan.
Gambar 1.1. Agent vs Environment (Khodra & Lestari, 2015).
Performance measure, secara matematis didefinisikan sebagai utility function, yaitu fungsi apa yang
ingin dimaksimalkan oleh agen tersebut. Setiap tindakan yang dilakukan agen yang rasional, harus
memaksimalkan performance measure atau utility function
1.3 Konsep Statistical Machine Learning
Pada masa sekarang ini data bertebaran sangat banyak dimana-mana. Pemrosesan data secara manual
tentu adalah hal yang kurang bijaksana. Beberapa pemrosesan yang dilakukan, misal kategorisasi
(kategorisasi teks berita), peringkasan dokumen, ekstraksi informasi (mencari 5W+1H pada teks
berita), rekomendasi produk berdasarkan catatan transaksi, dll (Khodra & Lestari, 2015). Tujuan
machine learning minimal ada dua yaitu: memprediksi masa depan (unobserved); 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 (Bishop, 2006; Watanabe, 2016). Disebut statistical
karena basis pembelajarannya memanfaatkan data, juga menggunakan banyak teori statistik untuk
melakukan inferensi (misal memprediksi unobserved event). Jadi, statistical 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.
Perhatikan Gambar 1.2 (permasalahan yang disederhanakan). Misalkan kamu diundang ke suatu pesta.
Pada pesta tersebut ada 3 jenis kue yang disajikan. Kamu ingin mengetahui berapa rasio kue yang
disajikan dibandingkan masing-masing jenisnya (seluruh populasi). Tapi kamu terlalu malas untuk
menghitung semua kue yang ada. Karena itu, kamu mengambil beberapa sampel. Dari sampel tersebut,
kamu mendapati bahwa ada 4 buah kue segi empat, 3 buah kue hati, dan 2 buah kue segitiga. Lalu
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 8
kamu menyimpulkan (model) bahwa perbandingan kuenya adalah 4:3:2 (segiempat:hati:segitiga).
Perbandingan tersebut hampir menyerupai kenyataan seluruh kue yaitu 4:2,67:2. Tentu saja kondisi
ini terlalu ideal.
Perhatikan Gambar 1.3, temanmu Ari datang juga ke pesta yang sama dan ingin melakukan hal yang
sama (rasio kue). Kemudian ia mengambil beberapa sampel kue. Dari sampel tersebut ia mendapati
bahwa ada 3 buah segiempat, 3 buah hati, dan 3 buah segitiga, sehingga perbandingannya adalah 3:3:3.
Tentunya hal ini sangat melenceng dari populasi.
Dari kedua contoh tersebut, kita menyimpulkan, menginferensi (infer) atau mengeneralisasi sampel.
Kesimpulan yang kita buat berdasarkan sampel tersebut, kita anggap merefleksikan populasi,
kemudian kita menganggap populasi memiliki aturan/pola seperti kesimpulan yang telah kita ciptakan
(Caffo, 2015). Baik pada statistika maupun statistical machine learning, pemilihan sampel
(selanjutnya disebut training data) adalah hal yang sangat penting. Apabila training data tidak
mampu melambangkan populasi, maka model yang dihasilkan pembelajaran (training) tidak bagus.
Untuk itu, biasanya terdapat juga test data sebagai penyeimbang. Mesin dilatih menggunakan training
data, kemudian diuji dengan test data. Seiring dengan membaca buku ini, konsep training data dan
test data akan menjadi lebih jelas.
Gambar 1.2. Ilustrasi Makanan Pesta 1.
Gambar 1.3. Ilustrasi Makanan Pesta 2.
Seperti halnya contoh sederhana ini, persoalan machine learning sesungguhnya menyerupai persoalan
statistical inference (Caffo, 2015). Kita berusaha mencari tahu populasi dengan cara menyelidiki
features (sifat-sifat) yang dimiliki oleh sampel. Kemudian, menginferensi unobserved data
berdasarkan kecocokan features dengan model/aturan yang kita bangun berdasarkan features dari
sampel.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 9
1.4 Supervised Learning
Jika diterjemahkan secara literal, supervised learning adalah pembalajaran terarah. Artinya, pada
pembelajaran ini, ada guru yang mengajar, dan ada siswa yang diajar. Kita disini berperan sebagai
guru, kemudian mesin berperan sebagai siswa. Perhatikan Gambar 1.4 sebagai ilustrasi! Pada Gambar
1.4 seorang guru menuliskan angka di papan “8, 6, 2” sebagai contoh untuk siswanya, kemudian
gurunya memberikan cara membaca yang benar untuk masing-masing angka. Contoh angka
melambangkan input, kemudian cara membaca melambangkan desired output. Pasangan input-
desired output ini disebut sebagai training data (untuk kasus supervised learning). Perhatikan
Gambar 1.5 dan Gambar 1.6! Kita akan masuk ke ilustrasi yang lebih matematis.
Gambar 1.4. Supervised Learning.
Gambar 1.5. Supervised Learning - Math Explained 1.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 10
Gambar 1.6. Supervised Learning - Math Explained 2.
Perhatikan Gambar 1.5 dan Gambar 1.6. x adalah event, untuk event tertentu dapat dinotasikan sebagai
{x1, x2, x3, ... , xn}. Seorang guru sudah mempunyai jawaban yang benar untuk masing-masing contoh
dengan suatu fungsi distribusi probabilitas kondisional (conditional probability density function)
q(y|x) baca: function q for y given x. Hasil yang benar/diharapkan untuk suatu event. Siswanya (mesin)
mempelajari tiap pasang pasangan input-desired output (training data) dengan suatu fungsi
conditional probability density function p(y|x,w), dimana y adalah target (output), x adalah input dan
vector w adalah learning parameter. Proses belajar ini, yaitu mengoptimalkan w disebut sebagai
training.
Gambar 1.7. Supevised Learning Framework.
Perhatikan kembali Gambar 1.5 dan Gambar 1.6! Secara formal (supervised learning), information
source dan guru direpresentasikan dengan q(x) dan q(y|x), kemudian learning machine p(y|x,w)
dengan parameter vector w. Himpunan training data terdiri atas {(xi,yi); i=1,2,3,…,n} yang secara
independently subject to q(x)q(y|x). n disebut sebagai banyaknya training data (ruang sampel).
Sebuah learning machine mengoptimasi parameter w sehingga p(y|x,w) dapat mengaproksimasi
(approximates) q(y|x).
Perhatikan Gambar 1.7! q(x)q(y|x) = q(x,y) memiliki panah ke training data dan test data, artinya
model hasil training sangat bergantung pada data dan guru. Model yang dihasilkan training (hasil
pembelajaran – kemampuan siswa) untuk data yang sama bisa berbeda untuk guru yang berbeda.
𝑝(𝑦|𝑥,𝒘) Persamaan 1.1. Learning Machine – Supervised Learning (Watanabe, 2016).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 11
Selain supervised learning, masih ada metode pembelajaran lainnya yaitu unsupervised learning,
semi-supervised learning, dan reinforcement learning. Tetapi lecture note/buku ini berfokus pada
pembahasan supervised learning dan unsupervised learning.
Tujuan supervised learning, secara umum untuk melakukan klasifikasi (classification). Misalkan
mengklasifikasikan teks berita menjadi salah satu kategori {olah raga, politik, nasional, regional,
hiburan, teknologi}. Apabila hanya ada dua kategori, disebut binary classification. Sedangkan bila
terdapat lebih dari dua kategori, disebut multi-label classification. Ada tipe klasifikasi lain, tetapi
lecture note ini hanya akan membahas dua kategori tersebut.
1.5 Unsupervised Learning
Jika pada supevised learning ada guru yang mengajar, maka pada unsupevised learning tidak ada guru
yang mengajar. Contoh permasalahan unsupervised learning adalah clustering. Misalnya kamu
membuka sebuah toko serba ada, agar pelanggan mudah belanja, kamu mengelompokkan barang-
barang, tetapi definisi “kelompoknya” belum ada. Yang kamu lakukan adalah membuat kelompok-
kelompok berdasarkan karakteristik barang-barang.
Gambar 1.8. Unsupervised Learning Framework.
Gambar 1.9. Generalization Error of Unsupervised Learning.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 12
Perhatikan Gambar 1.8 dan Gambar 1.9! Berbeda dengan supervised learning yang memiliki desired
output, pada unsupervised learning tidak ada desired output (jelas, tidak ada gurunya). Populasi
mempunyai distribusi q(x), kita ingin mengestimasi q(x) tersebut dengan mengambil beberapa sampel,
lalu melakukan learning. Learning dilakukan dengan menggunakan p(x|w) yang mengoptimasi
parameter w. Perbedaan antara estimasi dan fungsi asli disebut sebagai loss.
𝑝(𝑥|𝒘) Persamaan 1.2. Learning Machine - Unsupervised Learning (Watanabe, 2016).
1.6 Proses Belajar (Training)
Seperti yang sudah dijelaskan pada sub bab sebelumnya, pada supervised maupun unsupervised
learning, kita ingin mengestimasi sesuatu dengan teknik machine learning. Kinerja learning machine
berubah-ubah sesuai dengan parameter w (parameter belajar). Kinerja learning machine diukur oleh
fungsi tujuan (utility function), yaitu mengoptimalkan nilai fungsi tertentu; misalnya meminimalkan
nilai error, atau meminimalkan loss (dijelaskan kemudian). Secara intuitif, learning machine sama
seperti manusia belajar. Kita awalnya membuat banyak kesalahan, tetapi kita mengetahui/diberi tahu
mana yang benar. Untuk itu kita menyesuaikan diri secara perlahan agar menjadi benar (iteratif).
Inilah yang juga dilakukan learning machine, yaitu mengubah-ubah parameter w untuk
mengoptimalkan suatu fungsi tujuan.
Secara bahasa lebih matematis, kami beri contoh supervised learning. Kita mempunyai distribusi data
asli q(y|x). Dari distribusi tersebut, kita diberikan beberapa sampel pasangan input-output z1,z2,z3,...zn;
z={x,y}. Kita membuat learning machine p(y|x,w). Awalnya kita disodorkan x1, sehingga learning
machine mengestimasi fungsi asli dengan mengoptimalkan parameter w sesuai dengan data yang ada.
Seiring berjalannya waktu, kita diberikan data observasi lainnya, sehingga learning machine semakin
menyesuaikan dirinya terhadap observasi yang ada. Semakin lama, kita jadi makin percaya bahwa
learning machine semakin optimal (mampu memprediksi fungsi aslinya).
1.7 Tipe Permasalahan di Dunia (debateable)
Ada dua tipe permasalahan, yaitu klasifikasi dan konstruksi. Permasalahan klasifikasi adalah
mengkategorikan sesuatu sesuai kelompok yang telah ditentukan sebelumnya. Contohnya klasifikasi
buku di perpustakaan. Perpustakaan sudah menentukan kelompok-kelompok buku, misalnya teknik,
sains, dan seni. Saat ada buku baru, perpustakaan nantinya menaruh buku pada tempat dengan
kelompok bersesuaian. Contoh lainnya adalah klasifikasi makhluk hidup berdasarkan kingdom.
Jenis permasalahan kedua adalah konstruksi. Permasalahan konstruksi misalnya kita memiliki banyak
buku di rumah, agar bukunya rapi kita ingin mengelompokkan buku-buku tersebut sesuai dengan
kecocokan satu sama lain (clustering). Contoh lainnya adalah bagaimana cara menyusun
kelompok/susunan/struktur kingdom makhkluk hidup (ontologi). Menurut pendapat saya, regresi
dapat dikategorikan sebagai permasalahan konstruksi, karena harus membangun (menebak) suatu
fungsi yang mampu memprediksi output.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 13
1.8 Tips Menjadi Master
Jujur, saya sendiri belum master pada bidang ini, tetapi berdasarkan pengalaman pribadi (dan
membaca), dan beberapa rekan; ada beberapa materi wajib yang harus dipahami untuk mengerti
bidang machine learning. Sederhananya, kamu harus menguasai banyak teori matematika &
probabilitas agar dapat mengerti machine learning sampai tulang dan jeroannya. Saya tidak
menyebutkan bahwa mengerti machile learning secara intuitif (atau belajar dengan pendekatan
deskriptif) itu buruk, tetapi untuk mengerti sampai dalam memang perlu mengerti matematikanya
(menurut pengalaman saya). Disarankan untuk belajar materi berikut:
1) Matematika Diskrit & Teori Bilangan
2) Aljabar Linier & Geometri (vektor, matriks, skalar, decomposition, transformasi, tensor)
3) Calculus (diferensial & integral)
4) Optimasi (Lagrange Multiplier, Convex, Gradient Descent, Integer Linear Problem, dsb)
5) Probabilitas & Statistika (Probabilitas, Probability Densities, Hypothesis Testing, Inter-rater
agreement, Bayesian, Statistical Mechanics)
1.9 Contoh Aplikasi
Sebenarnya, aplikasi pemanfaatan machine learning sudah terasa dalam kehidupan sehari-hari.
Contoh mudahnya adalah produk-produk Google, misalnya google translate (machine translation,
handwritten recognition, speech recognition). Berikut adalah beberapa artikel berita menarik:
1) https://techcrunch.com/2016/03/15/google-ai-beats-go-world-champion-again-to-complete-
historic-4-1-series-victory/
2) http://www-formal.stanford.edu/jmc/whatisai/node3.html
3) https://www.google.com/selfdrivingcar/
4) http://www.osnews.com/story/26838/Palm_I_m_ready_to_wallow_now/page2/
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 14
2 Pengetahuan Dasar
Mungkin saat pertama kali membaca bab ini, Anda merasa bab ini tidak masuk akal/kurang
dibutuhkan. Seiring membaca buku ini, mungkin bab ini akan sering dikunjungi kembali. Bab ini
hanyalah pengantar saja, tentunya untuk mengerti probabilitas, sebaiknya Anda mengambil kuliah
khusus tentang materi itu. Karena Anda diharapkan sudah memiliki “cukup latar pengetahuan”, bab
ini sebenarnya hanyalah sekilas pengingat. Sebenarnya kami agak ragu mau meletakkan bab ini
sebagai bab 1 atau bab 2, tapi yasudahlah dibuat jadi bab 2 saja agar bab 1 tidak membosankan. Kami
akan banyak memakai contoh-contoh dari buku Bishop (2006) untuk bab ini.
2.1 Probabilitas
Kita tahu bahwa banyak hal yang tidak pasti (uncertain), sebetulnya pada machine learning, kita
juga berurusan dengan ketidakpastian (uncertainty). Dengan hal itu, machine learning memiliki
kaitan yang sangat erat dengan statistika. Probabilitas menyediakan framework untuk kuantifikasi dan
manipulasi ketidakpastian (Bishop, 2006). Mari kita lihat contoh sederhana, terdapat dua buah kotak
berwarna merah dan berwarna biru. Pada kotak merah terdapat 3 apel dan 1 jeruk. Pada kotak biru,
terdapat 2 apel dan 4 jeruk. Bila kita ingin mengambil buah dari salah satu kotak tersebut, dalam hal
ini, kotak adalah random variable. Random variable b (melambangkan kotak) dapat bernilai merah,
atau biru. Begitu pula dengan buah, dilambangkan dengan variabel f, dapat bernilai apel atau jeruk.
Saat kita mengambil buah dari kotak biru, peluang untuk memilih apel bernilai 2/6, sedangkan
peluang untuk memilih jeruk bernilai 4/6; kita tulis probabilitas ini sebagai 𝑃(𝑓 = 𝑎𝑝𝑒𝑙) = 2/6; dan
𝑃(𝑓 = 𝑗𝑒𝑟𝑢𝑘) = 4/6 . Nilai suatu probabilitas haruslah berada diantara [0,1]. Artinya, jika kita
mengambil buah dari kotak biru, lebih banyak kejadian saat kita mendapat jeruk.
Lalu sekarang ada pertanyaan baru; pada suatu percobaan, berapakah probabilitas mengambil sebuah
apel dari kotak biru, atau sebuah jeruk dari kotak merah. Hal ini dituliskan sebagai 𝑃((𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 =
𝑎𝑝𝑒𝑙) 𝑎𝑡𝑎𝑢 (𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘)). Nilai probabilitas tersebut dapat dihitung dengan
𝑃((𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙) 𝑎𝑡𝑎𝑢 (𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘))
= 𝑃(𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙) + 𝑃(𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘)
𝑃(𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙) disebut joint probability, yaitu probabilitas untuk dua variabel.
𝑃(𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙1) + 𝑃(𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘) ini disebut sebagai sum rule (aturan tambah).
Misalkan terdapat percobaan lain, kali ini kamu mengambil 1 buah. Kamu ingin mengetahui
berapakah probabilitas untuk mengambil buah apel kotak mana saja. Hal ini dihitung dengan
𝑃(𝑓 = 𝑎𝑝𝑒𝑙) = ∑𝑃(𝑓 = 𝑎𝑝𝑒𝑙, 𝑏 = 𝑏𝑘)
𝐾
𝑘=1
Persamaan 2.1. Marginal Probability.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 15
Kadang kala sum rule disebut marginal probability, karena hasilnya didapat dengan menjumlahkan
probabilitas seluruh kemungkinan nilai pada variable tertentu, dengan mengontrol variable lainnya.
Kemudian, kamu ingin melakukan percobaan lain. Kali ini kamu mengambil 2 buah sekaligus dari
kedua kotak. Kamu ingin mengetahui berapakah probabilitas mengambil buah apel yang berasal dari
kotak biru; dan buah jeruk yang berasal dari kotak merah. Hal ini dihitung dengan
𝑃((𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙), (𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘))
= 𝑃(𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙) ∗ 𝑃(𝑏 = 𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘)
Aturan ini disebut production rule (aturan kali). Perhatikan kembali 𝑃((𝑏 = 𝑏𝑖𝑟𝑢, 𝑓 = 𝑎𝑝𝑒𝑙), (𝑏 =
𝑚𝑒𝑟𝑎ℎ, 𝑓 = 𝑗𝑒𝑟𝑢𝑘)) adalah bentuk joint probability. Kita dapat tulis kembali sebagai 𝑃(𝑋, 𝑌) ,
apabila X dan Y independent maka 𝑃(𝑋, 𝑌) = 𝑃(𝑋) ∗ 𝑃(𝑌). Dalam kasus ini, kita kejadiannya
adalah saling lepas, artinya mengambil bola dari kotak biru, pada saat yang bersamaan tidak akan
mempengaruhi hasil pengambilan kotak merah. Sebaliknya, apabila X tidak saling lepas Y, maka
keduanya disebut dependent. Artinya X dan Y saling mempengaruhi.
Apabila suatu variabel (X) dikondisikan (conditioned) oleh variabel lain (misal Y). Maka probabilitas
X adalah conditional probability function, ditulis 𝑃(𝑋|𝑌). Artinya probabilitas x yang dikondisikan
oleh Y. Apabila X ternyata tidak dikondisikan oleh variabel Y, maka P(X|Y) = P(X). Contoh kasus
ini adalah gempa bumi, tidak dikondisikan oleh kegiatan menabung.
2.2 Probability Density Function
Kali ini tentang pelajaran di sekolah. Terdapat ujian mata pelajaran di kelas yang beranggotakan N
siswa. Guru ingin mengetahui persebaran (distribusi/distribution) nilai ujian untuk menentukan batas
kelas nilai (misal nilai “A” adalah >=85), jadi ia membuat grafik nilai ujian untuk tiap-tiap siswa.
Sebut saja variabel nilai siswa adalah X. Sumbu horizontal menandakan nomor urut siswa.
Grafik 2.1. Nilai Siswa.
Perhatikan Grafik 2.1. Terdapat 3 orang anak mendapatkan nilai 50, 2 orang anak mendapat nilai 75
dan 80, 1 orang anak mendapat nilai 100, 1 orang anak mendapat nilai 40, serta 1 orang anak mendapat
nilai 10. Grafik probabilitas nilai dapat dilihat pada Grafik 2.2.
50
75 80
100
50 50
75 80
40
10
0
20
40
60
80
100
120
1 2 3 4 5 6 7 8 9 10
Nilai
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 16
Grafik 2.2. Grafik Probabilitas Nilai Ujian.
Ini adalah contoh untuk data diskrit, tetapi sering kali kita berurusan dengan data kontinu. Untuk
mengetahui nilai probabilitas dari himpunan event/kejadian, kita dapat mengintegralkan kurva
distribusi kejadian pada interval tertentu. Nilai dibawah kurva pada interval −∞ sampai ∞ adalah 1.
2.3 Expectations dan Variance
Salah satu operasi paling penting dalam probabilitas adalah menemukan nilai rata-rata terbobot
(weighted average) sebuah fungsi (Bishop, 2006). Hal ini disebut menghitung ekspektasi
(expectation). Untuk sebuah fungsi f(x) berdasar distribusi probabilitas p(x), nilai expectation adalah
𝐸(𝑓)
{
∑𝑝(𝑥)𝑓(𝑥); 𝑑𝑖𝑠𝑘𝑟𝑖𝑡
𝑥
∫𝑝(𝑥)𝑓(𝑥)𝑑𝑥; 𝑘𝑜𝑛𝑡𝑖𝑛𝑢
Dalam kasus nyata, misalkan diberikan N buah sampel x dan f(x), dimana sampel tersebut diambil
dengan distribusi tertentu, maka fungsi untuk menghitung nilai expectation menjadi
𝐸(𝑓) ≅1
𝑁 ∑𝑓(𝑥𝑖)
𝑁
𝑖=1
Persamaan 2.2. Expectation.
Perhatikan, persamaan tersebut sama dengan persamaan untuk menghitung rata-rata (𝑚𝑒𝑎𝑛 / 𝜇)
seperti yang sudah Anda pelajari di SMA. Untuk mengetahui seberapa variabilitas (perbeda-bedaan
nilai) pada f(x) di sekitar nilai rata-ratanya, kita menghitungnya mengunakan variance, disimbolkan
dengan var[f] atau 𝜎2.
𝑣𝑎𝑟[𝑓] = 𝐸(𝑓(𝑥) − 𝐸[𝑓(𝑥)]2)
Ekspresi tersebut juga dapat ditulis sebagai
𝑣𝑎𝑟[𝑓] = 𝐸[𝑓(𝑥)]2 − 𝐸(𝑓(𝑥)2
Bila nilai variance tinggi, secara umum banyak variabel yang nilainya jauh dari nilai rata-rata.
Interpretasi geometrisnya dari sisi distribusi, kurnya semakin “lebar”. Untuk fungsi dengan parameter
0
0.1
0.2
0.3
0.4
0 10 20 30 40 50 60 70 80 90 100
Probabilitas
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 17
lebih dari satu variabel, misal f(x,y) kita menghitung covariance (untuk lebih dari satu variabel).
Covariance adalah variance untuk random variable berdimensi lebih dari satu. Covariance adalah
cara untuk menghitung tingkat korelasi (Wolfram, 2016)
2.4 Probabilitas Bayesian
Dalam sub bab sebelumnya, kita menghitung probabilitas dengan frekuensi kejadian yang dapat
diulang. Pada pandangan Bayesian, kita ingin menguantifikasi ketidakpastian. Misalkan kita ingin
tahu, seberapa peluang Mars dapat dihuni. Ini adalah sesuatu yang tidak dapat dihitung dengan
frekuensi, maupun sebuah kejadian yang dapat diulangi (pergi ke mars, lihat berapa orang yang hidup).
Akan tetapi, tentunya kita memiliki sebuah asumsi awal (prior). Dengan sebuah alat canggih yang
baru, kita dapat mengumpulkan data baru tentang Mars. Dengan data tersebut, kita mengoreksi
pendapat kita tentang Mars (posterior). Hal ini menyebabkan perubahan dalam pengambilan
keputusan.
Pada keadaan ini, kita ingin mampu menguantifikasi ekspresi ketidakpastian; dan membuat revisi
tentang ketidakpastian menggunakan bukti baru (Bishop, 2006). Dalam Bayesian, nilai numerik
digunakan untuk merepresentasikan derajat kepercayaan/ketidakpastian.
𝑃(𝐴|𝐵) = 𝑃(𝐵|𝐴)𝑃(𝐴)
𝑃(𝐵)
Persamaan 2.3. Probabilitas Bayesian.
𝑃(𝐴) disebut prior, yaitu pengetahuan/asumsi awal kita. Setelah kita mengobservasi data B, kita
mengubah asumsi kita. 𝑃(𝐵|𝐴) disebut likelihood function. Likelihood function mendeskripsikan
peluang data, untuk asumsi/pengetahuan tentang A yang berubah-ubah (A sebagai parameter yang
dapat diatur). Dengan likelihood function tersebut, kita mengoreksi pendapat akhir kita yang nantinya
digunakan untuk mengambil keputusan (posterior).
𝑝𝑜𝑠𝑡𝑒𝑟𝑖𝑜𝑟 ∝ 𝑙𝑖𝑘𝑒𝑙𝑖ℎ𝑜𝑜𝑑 ∗ 𝑝𝑟𝑖𝑜𝑟
Pada umumnya, untuk mengestimasi likelihood, digunakan maximum likelihood estimator; yang
berarti mengatur nilai A untuk memaksimalkan nilai 𝑃(𝐵|𝐴). Dalam literatur machine elearning,
banyak menggunakan negative log of likelihood function (Bishop, 2006); karena nilai logaritma
negatif, secara monotonik menurun, maka memaksimalkan nilai likelihood ekuivalen dengan
meminimalkan negatifnya (contoh nyata akan diberikan pada sub bab berikutnya).
Perhatikan kembali Persamaan 2.3, secara intuitif, posterior dipengaruhi prior, artinya bergantung
pada sampel yang kita punya. Hal ini berlaku pada machine learning, kualitas model yang dihasilkan
bergantung pada kualitas training data.
2.5 Probabilitas Gaussian
Anda harusnya sudah mengetahui distribusi ini. Ini adalah distribusi yang sangat terkenal yaitu bell
curve/distribusi normal. Distribusi normal adalah bentuk khusus dari Gaussian distribution. Ada
beberapa macam distribusi yang akan dibahas pada bab ini, yaitu: univariate Gaussian, multivariate
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 18
Gaussian, dan Gaussian mixture model. Pertama kita bahas univariate Gaussian terlebih dahulu.
Disebut univariate karena distribusinya bergantung pada satu variable skalar. Dalam hal ini adalah
x. Distribusi sebenarnya adalah fenomena random atau deskripsi matematis suatu random variable.
Berikut adalah formula distribusi univariate Gaussian dikarakteristikkan oleh mean (𝜇) dan variance
(𝜎2)
𝑁(𝑥|𝜇, 𝜎2) = 1
√2𝜋𝜎2exp (−
(𝑥 − 𝜇)2
2𝜎2)
Persamaan 2.4. Univariate Gaussian (Bishop, 2006)
Gambar 2.1. Distribusi Univariate Gaussian
(https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Normal_Distribution_PDF.svg/720px-
Normal_Distribution_PDF.svg.png)
Perhatikan Gambar 2.1, nilai N (Persamaan 2.4) adalah ordinat pada kurva ini. Bentuk distribusi
berubah-ubah sesuai dengan nilai rata-rata (mean), serta variance. Semakin besar variance-nya, maka
kurva distribusi semakin lebar (seperti yang dijelaskan pada sub bab sebelumnya). Untuk menggeser-
geser kurva ke kiri maupun ke kanan, dapat dilakukan dengan menggeser nilai mean. Untuk mencari
nilai pada suatu interval tertentu, cukup mengintegralkan fungsi pada interval tersebut. Nilai integral
fungsi dari minus tak hingga, hingga tak hingga adalah satu.
∫ 𝑁(𝑥|𝜇, 𝜎2)𝑑𝑥∞
−∞
= 1
Sekarang bayangkan kita diberikan N buah data hasil observasi. Diasumsikan observasi dihasilkan
oleh distribusi univariate Gaussian dengan rata-rata 𝜇 dan variance 𝜎2.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 19
Setiap data diambil secara independen dari distribusi yang sama, disebut independent and identically
distributed. Kita tahu bahwa data yang idependen, apabila dihitung probabilitasnya maka tersusun
atas probabilitas masing-masing data. Artinya,
𝑝(𝒙|𝜇, 𝜎2) = ∏𝑁(𝑥|𝜇, 𝜎2)
𝑁
𝑖=1
x (bold) adalah himpunan data (observasi). Apabila dipandang dari sisi mean dan variance, p
sebenarnya adalah fungsi likelihood (likelihood function) (Bishop, 2006).
Gambar 2.2. Ilustrasi likelihood function (Bishop, 2006)
Kita ingin mencari tahu bagaimana distribusi Gaussian yang sebenarnya. Untuk itu, kita ingin
memaksimalkan fungsi likelihood; agar prior berubah menjadi posterior (fungsi Gaussian yang
sebenarnya). Ini disebut maximum likelihood estimation Ingat kembali sub bab sebelumnya
(Bayesian)! Sayangnya hal ini agak sulit dilakukan, malah sebaliknya, kita memaksimalkan log
likelihood function berdasarkan data yang kita miliki. Logaritma secara monotonik akan bertambah
nilainya, dan memaksimalkan fungsi logaritma sebanding dengan meminimalkan error, bentuknya
seperti pada persamaan matematis berikut (dipakai logiritma bilangan natural)
ln 𝑝(𝒙|𝜇, 𝜎2) = −1
2𝜎2∑(𝑥𝑖 − 𝜇)
2
𝑁
𝑖=1
−𝑁
2ln 𝜎2 −
𝑁
2ln 2𝜋
Solusi persamaan tersebut adalah
𝜇 = 1
𝑁∑𝑥𝑖
𝑁
𝑖=1
; 𝜎2 = 1
𝑁∑(𝑥𝑖 − 𝜇)
2
𝑁
𝑖=1
Perhatikan baik baik interpretasi berikut! Artinya kita dapat mengestimasi distribusi asli
menggunakan sampel data yang kita miliki. Mean distribusi asli diestimasi dengan mean sampel.
Variance distribusi asli diestimasi dengan variance sampel. Inilah jantung machine learning! Masih
ingat materi bab 1? Pada machine learning, kita mengestimasi sesuatu yang kita tidak ketahui, dengan
sampel data yang kita miliki. Proses estimasi akan dibahas lebih lanjut pada bab 3.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 20
Lanjut ke topik berikutnya. Multivariate Gaussian adalah distribusi Gaussian untuk suatu random
variable non-skalar (vektor/mempunyai dimensi). Berikut adalah fungsinya
𝑁(𝒙|𝝁, Σ) = 1
2𝜋𝐷2Σ
12
exp (−1
2(𝑥 − 𝜇)𝑇Σ−1(𝑥 − 𝜇))
Persamaan 2.5. Multivariate Gaussian (Jurafsky & Martin, 2009).
Perhatikan! x dan 𝝁 (di-bold) adalah vektor. Σ adalah covariance (matriks). Untuk multivariate
Gaussian, silahkan kamu membaca lebih lanjut sendiri. Untuk vektor berdimensi 2, multivariate
Gaussian diilustrasikan pada Gambar 2.3.
Gambar 2.3. Multivariate Gaussian
(http://archive.cnx.org/resources/4e9f9a101e73795705f86b26f6f9bfefc9e67e10/gaussian_0.6_0_0.6.png)
Sedangkan Gaussian Mixture Model (GMM) adalah gabungan dari satu atau lebih distribusi Gaussian
(bisa univariate maupun multivariate). Secara umum, bentuknya sebagai pada persamaan berikut
𝑁(𝑥|𝜇, Σ) = ∑𝑐𝑖1
√2𝜋|Σ|exp [(𝑥 − 𝜇𝑖)
𝑇Σ−1(𝑥 − 𝜇𝑖)]
𝑀
𝑖=1
ci adalah konstanta, artinya setiap distribusi Gaussian diberikan bobot. Konon katanya, GMM dapat
memodelkan fungsi apapun (Jurafsky & Martin, 2009). Ilustrasinya seperti pada Gambar 2.4. Pada
gambar tersebut, fungsi asli berwarna merah, fungsi tersebut diestimasi menggunakan mixture dari 3
buah univariate Gaussian (biru).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 21
Gambar 2.4. Gaussian Mixture Model
(http://dirichletprocess.weebly.com/uploads/1/9/8/4/19847957/3346416.png?1367446693)
2.6 Teori Keputusan
Diberikan himpunan pasangan data input-output {(xi,yi)}; x=input, y=output/target; walaupun tidak
pasti, kita ingin mengestimasi hubungan antara input dan output. Untuk itu kita melakukan estimasi
p(x|y,w). Pada bab pertama, kamu telah mempelajari bahwa kita mampu melakukan hal ini dengan
teknik machine learning. Selangkah lebih jauh, kita juga harus mampu untuk membuat keputusan
berbasiskan perkiraan nilai y, aspek ini adalah decision theory (Bishop, 2006).
Dalam machine learning kita dapat membangun model untuk dua tujuan: meminimalkan error, atau
meminimalkan loss; konsep meminimalkan error dijelaskan pada bab curve fitting. Ibratnya untuk
sebuah robot, kita ingin robot tersebut tidak melakukan tindakan yang salah. Tetapi, kadang kala
meminimalkan error belum tentu membuat model menjadi “bagus”. Kami ilustrasikan menggunakan
contoh dari Bishop (2006).
Misalkan kita diminta untuk membuat model klasifikasi kanker. Kita dapat mengklasifikasikan pasien
menjadi dua kelas C = {C1,C2}. C1 = kanker, C2 = normal.
Apabila kita ingin meminimalkan error, maka kita ingin mengklasifikasikan secara tepat orang yang
kanker dianggap memiliki kanker, dan yang tidak dianggap sebagai tidak. Akan tetapi, terdapat
tradeoff yang berbeda saat salah klasifikasi. Apabila kita mengklasifikasikan orang yang normal
sebagai kanker, konseuensi yang mungkin adalah membuat pasien menjadi stres, atau perlu
melakukan pemeriksaan ulang. Tetapi bayangkan, apabila kita mengklasifikasikan orang kanker
sebagai normal, konsekuensinya adalah penanganan medis yang salah. Tentunya kedua kasus ini
memiliki beban yang berbeda. Secara formal, kasus ini disebut loss. Fungsi tujuan pembelajaran
(secara umum untuk merepresentasikan error atau loss) disebut utility function. Sekali lagi kami
tekankan, tujuan machine learning adalah memaksimalkan performance. Performance diukur
berdasarkan utility function (Bishop, 2006; Russel and Norvig, 1995).
Tabel 2.1. Penalti Klasifikasi Kanker (Bishop, 2006)
Kanker Normal
Kanker 0 1000
Normal 1 0
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 22
Tujuan machine learning, selain meminimalkan error, dapat juga untuk meminimalkan loss.
Misalkan kita berikan penalti untuk kasus diatas seperti pada Tabel 2.1. Apabila kita
mengklasifikasikan orang kanker sebagai orang kanker, maka tidak ada penalti. Apabila kita
mengklasifikasikan orang normal sebagai kanker maka diberikan penalti sebesar 1. Apabila kita
mengklasifikasikan orang kanker sebagai normal, maka penaltinya 1000.
Untuk mengukur nilai loss; dapat diekspresikan dengan loss function. Secara umum, ada dua macam
loss, yaitu: generalization loss/error, dan training loss/error. Generalization loss/error adalah
ukuran sebagaimana algoritma mampu memprediksi unobserved data dengan tepat, karena kita hanya
membangun model dengan data yang terbatas, tentunya bisa saja terdapat ketidakcocokan dengan
data yang asli. Sedangkan training loss/error seperti namanya, ukuran loss saat training. Misalkan
q(x) adalah distribusi data asli. Menggunakan sampel data dengan distribusi p(x). Maka
generalization loss dan training loss seperti yang didefinisikan pada Persamaan 2.6 dan Persamaan
2.7.
𝐺 = ∫𝑞(𝑥) log 𝑝(𝑥)𝑑𝑥
Persamaan 2.6. Generalization Loss.
𝑇 = 1
𝑁∑log𝑝(𝑥)
𝑁
𝑖=1
Persamaan 2.7. Training Loss.
Tentunya sekarang kamu bertanya-tanya. Kita tidak mengetahui bagaimana q(x) aslinya, bagaimana
cara menghitung generalization loss? Nah, untuk itulah ada teknik-teknik aproksimasi distribusi asli
q(x), misalnya maximimum likelihood method, maximum posterior method, Bayesian method
(silahkan dieksplorasi).
Secara lebih filosofis, berkaitan dengan meminimalkan loss; tugas machine learning adalah untuk
menemukan struktur tersembunyi (discover hidden structure). Hal ini sangat erat kaitannya dengan
knowledge discovery, dan data mining. Bila Anda membuka forum di internet, kebanyakan akan
membahas perihal learning machine yang memaksimalkan akurasi (meminimalkan error).
2.7 Teori Informasi
Kami tidak akan membahas bagian ini terlalu detil, jika kamu membaca buku, topik ini sendiri bisa
mencapai satu buku (baca Cover & Thomas, 1991). Mudah-mudahan bab ini dapat memberikan
gambaran (serius, ini sekedar gambaran!). Information Theory menjawab dua pertanyaan
fundamental, pertama: bagaimana cara kompresi data terbaik (jawab: entropy); kedua: apakah cara
transimisi komunikasi terbaik (jawab: channel capacity) (Cover & Thomas, 1991). Dalam statistical
learning theory, fokus utama adalah menjawab pertanyaan pertama, yaitu bagaimana melakukan
kompresi. Contoh aplikasi entropy adalah decision tree learning.
Pada machine learning, kita ingin features pembelajaran yang digunakan mampu melambangkan
information source properties. Artinya, kita ingin memilih features yang memuat informasi terbanyak
(relatif terhadap information source). Karena hal tersebut, mengerti entropy menjadi penting. Ada
sebuah strategi pemilihan feature feature selection) dengan membangun decision tree. Awalnya kita
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 23
bentuk training data dengan semua kemungkinan features, kemudian mengambil beberapa features
yang dekat dengan root. Hal tersebut dimaksudkan untuk mencari features yang memuat banyak
informasi. Kemudian, features tersebut dapat dicoba pada algorithma learning lainnya.
2.7.1 Entropy
Diberikan sebuah random variable x, kita ingin mengetahui seberapa banyak informasi yang kita
dapatkan ketika kita mengobservasi sebuah nilai spesifik x. Kuantitas informasi yang kita dapatkan
bisa dipandang sebagai “degree of surprise” (Bishop, 2006). Misalkan kita mengetahu seorang teman
A sering makan es krim. Suatu ketika kita diberitahu bahwa dia sedang makan es krim, tentu kita
tidak heran lagi karena hal tersebut sudah lumrah. Tetapi, apabila kita diberitahu bahwa teman A tidak
memakan es krim yang diberikan teman B (padahal kita tahu dia suka), maka akan ada efek “kaget”.
Kasus kedua memuat lebih banyak informasi karena suatu kejadian yang seharusnya tidak mungkin,
terjadi. Persamaan 2.8 adalah rumus entropy oleh Shannon untuk data diskrit, sedangkan Persamaan
2.9 untuk data kontinu. Rumus ini banyak digunakan pada information processing)
𝑆(𝑥) ≅ − ∑𝑝(𝑥𝑖) log 𝑝(𝑥𝑖); 𝑁 = 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑡𝑟𝑎𝑖𝑛𝑖𝑛𝑔 𝑑𝑎𝑡𝑎
𝑁
𝑖=1
Persamaan 2.8. Entropy – Shannon Entropy (Cover & Thomas, 1991).
𝑆(𝑥) = −∫𝑝(𝑥) log 𝑝(𝑥)𝑑𝑥
Persamaan 2.9. Entropy - Data Kontinu (Bishop, 2006).
Mari kita ambil contoh dari Bishop (2006). Misalkan sebuah random variable x memiliki 8
kemungkinan event yang kemungkinannya sama (yaitu 1/8). Entropy untuk kasus ini adalah (log
dalam basis 2)
𝑆 = −8 × 1
8log (
1
8) = 3
Sekarang kita ambil contoh dari Cover dan Thomas (1991). Misalkan sebuah random variable x
memiliki 8 kemungkinan event {a,b,c,d,...,h} dengan peluang {1
2,1
4,1
8,1
16,1
64,1
64,1
64,1
64} . Entropy-nya
adalah (log dalam basis 2)
𝑆 = −1
2log (
1
2) −
1
4log (
1
4) −
1
8log (
1
8) −
1
16log (
1
16) −
4
64log (
1
64) = 2
Dari contoh ini, kita tahu bahwa distribusi yang tidak uniform, memiliki entropy yang lebih besar
dibanding distribusi yang uniform. Dari sisi information transmission, dapat diinterpretasikan kita
dapat mengirimkan data sebuah distribusi dengan jumlah bit lebih sedikit. Distribusi yang
memberikan nilai entropy maksimal adalah distribusi Gaussian (Bishop, 2006). Nilai entropy
bertambah seiring variance distribusi bertambah. Dari sisi fisika, Anda dapat mempelajari entropy
pada statistical mechanics (microstate, macrostate).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 24
2.7.2 Relative Entropy dan Mutual Information
Gambar 2.5. Information Source vs Learning Machine.
Perhatikan Gambar 2.5! Kami harap Anda masih ingat materi bab 1, karena materi bagian ini juga
menyinggung kembali materi bab 1. Misalkan kita mempunyai data dengan probability density
function q(x). Sebuah learning machine mengaproksimasi data tersebut dengan probability density
function p(x). Ingat! Learning machine adalah aproksimasi. Ketika kita melakukan aproksimasi,
seringkali aproksimasi yang dilakukan tidaklah tepat. Tentunya kita ingin tahu seberapa bagus
aproksimasi kita, untuk mengukurnya terdapat sebuah perhitungan yang bernama Kullback-Leibler
Divergence (KL-divergence). Secara konseptual, dirumuskan sebagai Persamaan 2.10. Dari sisi
information processing, KL-divergence dapat diinterpretasikan sebagai berapa informasi tambahan
rata-rata untuk mengirimkan data distribusi dengan menggunakan fungsi aproksimasi, dibanding
menggunakan distribusi sebenarnya.
𝐾𝐿(𝑞||𝑝) = −∫𝑞(𝑥) log𝑞(𝑥)
𝑝(𝑥) 𝑑(𝑥)
Persamaan 2.10. Kullback-Leibler Divergence (Bishop, 2006).
KL-divergence disebut juga sebagai relative entropy. Tentunya, persamaan tersebut dapat
diminimalkan jika dan hanya jika q(x) = p(x). Kita dapat menganggap KL-divergence sebagai ukuran
seberapa jauh aproksimasi terhadap distribusi asli. Akan tetapi, kita tidak mengetahui q(x). Karena
itu, kita dapat mengaproksimasi KL-Divergence. Misalkan kita diberikan training data x1,x2,...xn yang
kita asumsikan diambil dari q(x). Lalu kita membuat learning machine p(x|w). Ekspektasi terhadap
q(x) dapat diaproksimasi dengan menggunakan data sampel ini, sehingga menjadi persamaan berikut
(Bishop, 2006)
𝐾𝐿(𝑞||𝑝) ≅1
𝑁∑{− log 𝑝(𝑥𝑛|𝒘)
𝑁
𝑛=1
+ log 𝑞(𝑥𝑛)}
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 25
Ingat kembali p(x|w) adalah bentuk likelihood. Kita dapat interpretasikan hasil ini; meminimalkan
KL-divergence sama dengan memaksimalkan nilai likelihood.
Misalkan terdapat joint probability distribution p(x,y). Apabila x dan y independen, maka p(x,y) =
p(x)p(y). Kita dapat mencari tahu apakah mereka cukup “dependent” dengan menggunakan KL-
divergence
𝐼[𝑥, 𝑦] ≡ 𝐾𝐿(𝑝(𝑥, 𝑦)||𝑝(𝑥)𝑝(𝑦)) = −∫∫𝑝(𝑥, 𝑦) ln(𝑝(𝑥)𝑝(𝑦)
𝑝(𝑥, 𝑦))𝑑𝑥𝑑𝑦
I[x,y] disebut mutual information. I[x,y] = S[x] – S[x|y] = S[y] – S[y|x]; S adalah entropy. Mutual
information dapat dipandang sebagai pengurangan ketidakyakinan terhadap posterior, seiring
diberikannya data observasi yang baru. Seiring diberikannya ada observasi yang baru, kita
semakin yakin terhadap posterior.
2.8 Bacaan Lanjutan
1) Caffo, Brian. 2015. Statistical Inference for Data Science. Learn Publishing.
2) Freedman, David, Pisani, Robert & Purves, Roger. 2007. Statistics Fourth Edition. New York:
W.W. Norton & Company, Inc.
3) Nishimori, Hidetoshi. 2001. Statistical Physics of Spin Glasses and Information Processing: An
Introduction. Oxford: Clarendon Press.
4) Walpole, Ronald E., Myers, Raymond H., Myres, Sharon L, and Ya, Keying. 2012. Probability
& Statistics for Engineers & Scientists. New Jersey: Prentice Hall.
5) https://www.quora.com/What-are-some-good-books-for-learning-probability-and-statistics
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 26
3 Curve Fitting, Error Function & Gradient Descent
Bab ini akan membahas tentang curve fitting problem (regresi), sebagai contoh pembelajaran yang
sederhana karena cukup mudah dipahami idenya. Bab ini juga membahas error function yang
merupakan salah satu utility function dalam machine learning. Gradient Descent dapat diterapkan
pada proses pembelajaran untuk mencapai konfigurasi model yang optimal.
3.1 Curve Fitting dan Error Function
Masih ingat contoh bab sebelumnya tentang estimasi distribusi univariate Gaussian? Ingat kembali
konsep tersebut untuk mengerti bab ini. Diberikan (x,y) sebagai random variable berdimensi RM dan
RN (keduanya adalah Euclidiean Space), which is subject to a simultaneous probability density
function q(x,y). Terdapat sebuah fungsi f(x) ⟶ y, yang memetakan x ke y. Approksimasi f(x), sebut
saja sebagai g(x) adalah fungsi hasil regresi. Fungsi regresi g: RM ⟶ RN didefinisikan secara
konseptual sebagai Persamaan 3.1.
𝑔(𝑥) = ∫𝑦 𝑞(𝑦|𝑥)𝑑𝑦
Persamaan 3.1. Bentuk Konseptual Regresi (Watanabe, 2016).
Persamaan 3.1 dibaca sebagai expectation of y, with the distribution of q. Secara statistik, regresi
dapat disebut sebagai expectation untuk y berdasarkan/dengan input x. Regresi adalah approksimasi,
dan approksimasi belum tentu 100% tepat sasaran. (Ingat kembali bab sebelumnya!)
Sebagai ilustrasi curve fitting problem, kamu diberikan fungsi f(a) seperti pada gambar 3.1. sekarang
fungsi f(a) tersebut disembunyikan (tidak diketahui), diberikan contoh-contoh pasangan (ai,bi);
i=1,2,…,6 adalah titik pada dua dimensi (titik sampel), seperti tanda bulat warna biru. Tugasmu
adalah untuk menentukan f(a)!
Gambar 3.1. Contoh fungsi (sigmoid).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 27
Gambar 3.2 Fungsi Approksimasi.
Anggap metode regresi, kamu berhasil melakukan approksimasi dan menghasilkan fungsi seperti
gambar 3.2 (garis berwarna hijau). Akan tetapi, fungsi approksimasi ini tidak 100% tepat sesuai
dengan fungsi aslinya (ini perlu sangat ditekankan). Jarak antara titik biru terhadap garis hijau
disebut error.
Salah satu cara menghitung error fungsi g(x) menggunakan square error function dengan bentuk
konseptual pada Persamaan 3.2. Estimasi terhadap persamaan tersebut disajikan dalam bentuk diskrit
pada persamaan 3.3. {(xi, yi); i=1,2,3,…,n} adalah himpunan training data. Nilai square error menjadi
tolak ukur untuk membandingkan kinerja suatu learning machine. Secara umum, bila nilainya tinggi,
maka kinerja relatif dianggap buruk; sebaliknya bila rendah, kinerja relatif dianggap baik. Hal ini
sesuai dengan konsep intelligent agent (Russel and Norvig, 1995).
𝐸(𝑔) = ∫∫‖𝑦 − 𝑔(𝑥)‖2 𝑞(𝑥, 𝑦)𝑑𝑥𝑑𝑦
Persamaan 3.2. Square Error Function (Watanabe, 2016).
𝐸(𝒘) = ∑‖𝑦𝑖 − 𝑔(𝑥𝑖 ,𝒘)‖2
𝑛
𝑖=1
; 𝒘 = 𝑙𝑒𝑎𝑟𝑛𝑖𝑛𝑔 𝑝𝑎𝑟𝑎𝑚𝑒𝑡𝑒𝑟𝑠
Persamaan 3.3. Square Error Function Estimator (Watanabe , 2016).
Perhatikan baik-baik Persamaan 3.3, secara filosofis ia sama dengan Persamaan 3.2. Ingat bab 1,
tentunya learning machine yang direpresentasikan dengan fungsi g bisa diatur kinerjanya dengan
parameter training w. Square error untuk learning machine dengan parameter training w diberikan
oleh Persamaan 3.3. (xi,yi) adalah pasangan input-desired output. Selain untuk menghitung square
error pada training data, Persamaan 3.3 juga dapat digunakan untuk menghitung square error pada
testing data. Tujuan dari regresi/machine learning in general adalah meminimalkan nilai error
function. Akan tetapi, fenomena overfitting dapat terjadi apabila nilai error function saat training
kecil, tetapi besar saat testing. Learning machine terlalu menyesuaikan diri terhadap tarining data.
Ingat kembali, fungsi pembelajaran ditulis sebagai p(y|x,w), yaitu mengaproksimasi fungsi target,
dengan parameter w. Untuk menghindari overfitting, kadang ditambahkan fungsi noise/bias
(selanjutnya disebut noise/bias saja). Fungsi belajar dapat ditulis kembali sebagai p(y|x,w,s), dimana
s adalah noise/bias. Seiring membaca lecture note ini, Anda akan lebih mengerti tentang noise/bias
yang langsung diaplikasikan pada algoritma machine learning (untuk sekarang harap bersabar).
𝑝(𝑦|𝑥, 𝒘, 𝑠) Persamaan 3.4. Learning Machine with Noise (Watanabe, 2016)
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 28
3.2 Steepest Gradient Descent
Pada bab ini tujuan dari pembelajaran adalah untuk meminimalkan error, sehingga kinerja learning
machine diukur oleh square error. Dengan kata lain, utility function adalah meminimalkan square
error. Secara matematis, yang kita lakukan adalah mengestimasi minimum square error, dengan
mencari nilai w yang meminimalkan nilai error, E(w) = E(w1, w2, w3, … wn). Terdapat beberapa cara
untuk memimalkan square error (steepest gradient descent, stochastic gradient descent, dsb), tetapi
pada lecture note ini, hanya akan dibahas steepest gradient descent.
Bayangkan kamu sedang berada di puncak pegunungan, kamu ingin mencari titik terendah
pegunungan tersebut. Kamu tidak dapat melihat keseluruhan pegunungan, jadi yang kamu lakukan
adalah mencari titik terendah sejauh mata memandang, kemudian menuju titik tersebut dan
menganggapnya sebagai titik terendah. Layaknya asumsi sebelumnya, kamu juga turun menuju titik
terendah dengan cara melalui jalanan dengan kemiringan paling tajam, dengan anggapan bisa
lebih cepat menuju ke titik terendah (Watanabe, 2016). Sebagai ilustrasi, perhatikan gambar 3.3!
Gambar 3.3. Ilustrasi Steepest Gradient Descent
Jalanan dengan kemiringan paling tajam adalah –grad E(w). Dengan definisi grad E(w) diberikan
pada Persamaan 3.5.
𝑔𝑟𝑎𝑑 𝐸(𝒘) = (𝜕𝐸
𝜕𝑤1,𝜕𝐸
𝜕𝑤2,𝜕𝐸
𝜕𝑤3, … ,
𝜕𝐸
𝜕𝑤𝑛)
Persamaan 3.5. Gradient Square Error.
𝑑𝒘
𝑑𝑡= −𝑔𝑟𝑎𝑑 𝐸(𝒘)
Persamaan 3.6. Steepest Gradient Descent.
Ingat kembali materi diferensial. Gradient adalah turunan (diferensial) fungsi. Apabila suatu fungsi
turun (ke bawah secara interpretasi mata), maka nilai turunannya (diferensial) memiliki tanda minus.
Untuk mencari turunan tertajam, sama halnya mencari nilai –gradient terbesar. Dengan demikian,
menghitung –grad E(w) terbesar sama dengan jalanan turun paling terjal.
Tentunya seiring berjalannya waktu, kita mengubah-ubah parameter w agar kinerja model optimal.
Nilai optimal diberikan oleh turunan w terhadap waktu, yang bernilai sama dengan –grad E(w).
Bentuk diskrit Persamaan 3.6 diberikan pada Persamaan 3.7.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 29
𝒘(𝑡 + 1) − 𝒘(𝑡) = −𝜂 𝑔𝑟𝑎𝑑 𝐸(𝒘(𝑡)); 𝑡 = 0,1,2,3, …
Persamaan 3.7. Bentuk Diskrit Steepest Gradient Descent.
Eta (𝜂) disebut learning rate. Learning rate digunakan untuk mengatur seberapa pengaruh keterjalan
terhadap pembelajaran. Silahkan mencari sumber tambahan lagi agar dapat mengerti learning rate
secara lebih dalam.
Walaupun kamu berharap bisa menuju titik terendah dengan menelusuri jalan terdekat dengan
kemiringan paling tajam, tapi kenyataanya hal tersebut bisa jadi bukanlah jalan tercepat, seperti yang
diilustrasikan pada Gambar 3.4.
Gambar 3.4. Ilustrasi Geometris Steepest Gradient Descent (Watabane, 2016).
Pandangan kita yang terbatas layaknya kita tidak bisa melihat keseluruhan pengunungan secara
keseluruhan, kita juga tidak bisa melihat keseluruhan nilai error untuk semua parameter w pada ruang
yang tidak terbatas. Secara filosifis, hal tersebut juga berlaku saat membaca buku, oleh karena itu
sebaiknya membaca beberapa buku saat belajar.
Dalam local point of view, steepest gradient descent adalah cara tercepat menuju titik terendah, tetapi
tidak dalam global point of view. Apabila nilai learning rate (𝜂) pada Persamaan 3.7 relatif kecil,
maka dinamika perubahan parameter w juga kecil, tetapi bila nilainya besar, maka jalanan menuju
local minima (titik terendah dalam local point of view) akan bergoyang-goyang (swing), seperti pada
Gambar 3.5.
Untuk kontrol tambahan proses mengestimasi w sehingga memberikan nilai E(w) terendah,
persamaan steepest gradient descent dapat ditambahkan dengan momentum (alfa pada Persamaan
3.8). Alfa sangat jelas merupakan momentum, karena dikalikan dengan hasil descent pada tahap
sebelumnya. Alfa adalah parameter kontrol tambahan untuk mengandalikan swing yang sudah
dibahas sebelumnya.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 30
Gambar 3.5. Ilustrasi Nilai Learning Rate Besar Pada Steepest Gradient Descent.
Bila swing yang disebabkan pada Persamaan 3.7 relatif kecil, maka alfa akan membuatnya semakin
kecil. Sebaliknya bila besar maka alfa akan membuatnya semakin besar.
𝒘(𝑡 + 1) − 𝒘(𝑡) = −𝜂 𝑔𝑟𝑎𝑑 𝐸(𝒘(𝑡)) + 𝛼(𝒘(𝑡) − 𝒘(𝑡 − 1)); 𝑡 = 0,1,2,3, …
Persamaan 3.8. Bentuk Diskrit Steepest Gradient Descent Dengan Momentum.
3.3 Bacaan Lanjutan
Karena penggunaan learning rate dan momentum paling kentara di Neural Network, silahkan baca
artikel menarik berikut untuk tamabahan lanjutan.
1) Lecture Note in Neural Network
http://users.ics.aalto.fi/jhollmen/dippa/node22.html
2) Lecture Note in Neural Network
http://www.willamette.edu/~gorr/classes/cs449/momrate.html
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 31
4 Artificial Neural Network
Bab ini membahas salah satu algorithma machine learning yang sedang popular belakangan ini, yaitu
artificial neural network. Pembahasan akan dimulai dari hal-hal sederhana sampai yang lebih
kompleks. Bab ini juga mencakup variasi neural network seperti deep learning dan recurrent neural
network.
4.1 Definisi
Masih ingatkah Anda materi pada bab-bab sebelumnya? Machine learning sebenarnya ingin meniru
bagaimana proses manusia belajar. Pada bagian ini, peneliti ingin meniru proses belajar tersebut
dengan mensimulasikan jaringan saraf biologis (artificial neural network) (Mikolov, 2012; Cripps,
1996; Atiya, 1991; Cowan, 1989). Kami yakin banyak yang sudah tidak asing dengan istilah ini,
berhubung deep learning sedang populer dan banyak yang membicarakannya (dan digunakan sebagai
trik pemasaran). Silahkan belajar biologi untuk lebih mengerti tentang saraf manusia. Artificial neural
network adalah salah satu algoritma supervised learning yang populer, dan bisa juga digunakan untuk
unsupervised learning (Mikolov et al., 2013; Yu, 2013; Mikolov, 2012; Atiya, 1991). Pada lecture
note ini, kami hanya membahas neural network untuk supervised learning. Objektif pembelajaran
adalah memilimalkan error.
Artificial Neural Network (selanjutnya disingkat ANN), menghasilkan model yang sulit dibaca dan
dimengerti oleh manusia. ANN menggunakan relatif banyak parameter, kita tidak tahu apa saja yang
terjadi saat proses pembelajaran. Pada bidang riset ini, ANN disebut agnostik (kita percaya, tetapi
sulit membuktikan kenapa bisa benar). Secara matematis, ANN ibarat sebuah graf. ANN memiliki
neuron/node (vertex), dan sinapsis (edge). Topologi ANN akan dibahas lebih detil upabab berikutnya.
Sebagai gambaran, ANN berbentuk seperti Gambar 4.1 (multilayer perceptron).
Gambar 4.1. Ilustrasi ANN (Khodra & Lestari, 2015)
4.2 Single Perceptron
Bentuk terkecil (minimal) sebuah ANN adalah single perceptron yang hanya terdiri dari sebuah
neuron. Sebuah neuron diilustrasikan pada Gambar 4.2. Secara matematis, terdapat sebuah vektor x
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 32
yang menjadi input bagi neuron tersebut. Neuron akan memproses input x melalui perhitungan jumlah
perkalian antara nilai input dan synapse weight. Pada training, yang dioptimasi adalah synapse weight
ini (learning parameter). Selain itu, terdapat juga bias 𝜽 sebagai kontrol tambahan (ingat materi
steepest gradient descent). Output dari neuron adalah hasil fungsi aktivasi dari “perhitungan jumlah
perkalian antara nilai input dan synapse weight”. Ada beberapa macam fungsi aktivasi, misal step
function, sign function, dan sigmoid function. Untuk selanjutnya, pada lecture note ini, fungsi aktivasi
berarti yang dimaksud adalah sigmoid function. Silahkan eksplorasi sendiri untuk fungsi aktivasi
lainnya.
Gambar 4.2. Single Perceptron.
Sigmoid function diberikan oleh Persamaan 4.1, dengan u merupakan bilangan real. Secara geometris,
sigmoid function diilustrasikan pada Gambar 4.3.
𝜎(𝑢) = 1
(1 + 𝑒−𝑢)
Persamaan 4.1. Sigmoid Function.
Gambar 4.3. Sigmoid Function.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 33
Untuk melakukan pembelajaran single perceptron, training dilakukan berdasarkan perceptron
training rule. Prosesnya adalah tahapan-tahapan berikut (Mitchel, 1997):
1. Lewatkan input pada perceptron, kemudian kita akan mendapatkan nilai output.
2. Nilai output tersebut dibandingkan dengan desired output.
3. Apabila nilai output sesuai dengan desired output, tidak perlu mengubah apa-apa.
4. Apabila nilai output tidak sesuai dengan desired output, maka lakukan perubahan terhadap
learning parameter (synapse weight).
Secara matematis, hal tersebut dirumuskan pada Persamaan 4.2. y melambangkan desired output, o
melambangkan output. 𝜂 disebut sebagai learning rate.
∆𝑤𝑖 = 𝜂(𝑦 − 𝑜)𝑥𝑖 Persamaan 4.2. Perceptron Training Rule (Mitchel, 1997)
Berikut adalah pseudo-code untuk perceptron training rule (Mitchel, 1997) – naskah asli.
Given K training pairs (xi,yi) arranged in the training set, i=1,2,3,...,K. K is an finite number.
Step 1 : choose 𝜂 > 0
Step 2 : all weights w are initialized at small random values, the running error E(w) is set to 0 at
first.
Step 3 : compute the actual output.
Step 4 : weights are updated. 𝑤𝑖(𝑡 + 1) = 𝑤𝑖(𝑡) + 𝜂(𝑦 − 𝑜)𝑥𝑖 ; 𝑖 = 1,2, …𝑛; 𝑡 = 𝑡𝑖𝑚𝑒
Step 5 : cumulative cycle error is computed by 𝐸(𝒘) =1
2 ∑ (𝑦𝑑 − 𝑜𝑑)
2𝐾𝑑=1 ; 𝑦𝑑=desired output for
training data-d; od= output for training data-d. *) ½ just to make math easier.
Step 6 : The training cycle is completed. For E = 0 terminate the training session. If E > 0, repeat
new training cycle by going to step 3.
Hasil akhir pembelajaran adalah konfigurasi synapse weight. Saat melakukan klasifikasi, kita
melewatkan input baru pada jaringan yang telah dibangun, kemudian tinggal mengambil hasilnya.
Pada contoh kali ini, seolah-olah single perceptron hanya dapat digunakan untuk melakukan binary
classification (hanya ada dua kelas, disimbolkan 0 dan 1). Untuk multi-label classification, kita dapat
menerapkan strategi. Salah satu strategi sederhana adalah membagi-bagi kelas menjadi range nilai.
Seumpama kita mempunyai lima kelas. Kelas pertama direpresentasikan dengan nilai output 0.0-0.2,
kelas kedua 0.2-0.4, dst.
4.3 Multilayer Perceptron & Backpropagation
Anda sudah belajar training bagi single perceptron. Selanjutnya kita akan mempelajari multilayer
perceptron (MLP). Seperti ilustrasi pada Gambar 4.1, multilayer perceptron secara literal memiliki
beberapa layers. Pada lecture note ini, kita batasi permasalahan menjadi 3 layers saja: input, hidden,
dan output. Perhatikan Gambar 4.4! Input layer menerima input, kemudian nilai input (tanpa dilewati
ke fungsi aktivasi) diberikan ke hidden units. Pada hidden units, input diproses dan dilakukan
perhitungan hasil fungsi aktivasi untuk tiap-tiap neuron, lalu hasilnya diberikan ke layer berikutnya.
Hasil dari input layer akan diterima sebagai input bagi hidden layer. Begitupula seterusnya hidden
layer akan mengirimkan hasilnya untuk output layer. Kegiatan dinamakan feed forward (Mitchel,
1997; Atiya, 1991). Hal serupa berlaku untuk artificial neural network dengan lebih dari 3 layers.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 34
Gambar 4.4. Struktur Matematis MLP.
Output of hidden unit 𝑜𝑗 = 𝜎(∑ 𝑤𝑗𝑘𝑥𝑘 + 𝜃𝑗𝑀𝑘=1 )
Output of output unit 𝑓𝑗 = 𝜎(∑ 𝑢𝑖𝑗𝑜𝑗 + 𝛾𝑖𝐻𝑗=1 ) = 𝜎(∑ 𝑢𝑖𝑗 𝜎(∑ 𝑤𝑗𝑘𝑥𝑘 + 𝜃𝑗
𝑀𝑘=1 ) + 𝛾𝑖
𝐻𝑗=1 )
u, w, , adalah learning parameter. , melambangkan noise/bias. M adalah banyaknya hidden
units, H adalah banyaknya output units.
Untuk melatih multilayer perceptron, algoritma yang umumnya digunakan adalah backpropagation.
Arti kata backpropagation sulit untuk diterjemahkan ke dalam bahasa Indonesia. Idenya adalah, dari
output layer tentu bisa ada error dibandingkan desired output; dari error tersebut, kita perbaharui
parameter (utamanya synapse weights). Intinya adalah mengkoreksi synapse weight dari output layer
ke hidden layer, kemudian error tersebut dipropagasi ke layer berikut-berikutnya. Artinya,
perubahan synapse weight pada suatu layer dipengaruhi oleh perubahan synapse weight pada layer
sebelumnya.
Ingat kembali materi pada bab gradient descent. Untuk meminimalkan error, kita menggunakan
prinsip gradient descent. Kita akan memperlajari bagaimana cara menurunkan backpropagation
menggunakan gradient descent yaitu menghitung – 𝑔𝑟𝑎𝑑{(𝑦𝑖 − 𝑓𝑖(𝒙,𝒘)2} ; untuk semua output
neurons.
Ingat kembali chain rule in derivative (diferensial)? Perhatikan contoh berikut,
𝑓(𝑔(𝑥))′= 𝑓′(𝑔(𝑥))𝑔′(𝑥)
𝑓(𝑔(ℎ(𝑥)))′= 𝑓′(𝑔(ℎ(𝑥)))𝑔′(ℎ(𝑥))ℎ′(𝑥))
Ingat kembali pseudo-code perceptron training rule pada sub bab sebelumnya. Error pada suatu
output diberikan oleh persamaan
𝐸(𝒘) =1
2 ∑ (𝑦𝑖 − 𝑓𝑖)
2𝑁𝑖=1 ;
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 35
N adalah banyaknya output neuron, yi adalah desired output, fi adalah output. Ingat kembali cara
menghitung output untuk masing-masing layer. Perhatikan proses penurunan berikut.
Output of hidden unit 𝑜𝑗 = 𝜎(∑ 𝑤𝑗𝑘𝑥𝑘 + 𝜃𝑗𝑀𝑘=1 )
Output of output unit 𝑓𝑗 = 𝜎(∑ 𝑢𝑖𝑗𝑜𝑗 + 𝛾𝑖𝐻𝑗=1 )
Diferensial untuk uij diberikan oleh (khusus fungsi aktivasi menggunakan sigmoid function)
𝜕𝐸(𝒘)
𝜕𝑢𝑖𝑗= (𝑦𝑖 − 𝑓𝑖)
𝜕𝑓𝑖
𝜕𝑢𝑖𝑗
= (𝑦𝑖 − 𝑓𝑖) 𝑓𝑖(1 − 𝑓𝑖)𝑜𝑗
Diferensial untuk wjk diberikan oleh (khusus fungsi aktivasi menggunakan sigmoid function) 𝜕𝐸(𝒘)
𝜕𝑤𝑗𝑘 = ∑ (𝑦𝑖 − 𝑓𝑖)
𝐻𝑖=1
𝜕𝑓𝑖
𝜕𝑤𝑗𝑘
Turunan parsial 𝜕𝑓𝑖
𝜕𝑤𝑗𝑘
𝜕𝑓𝑖
𝜕𝑤𝑗𝑘 =
𝜕𝑓𝑖
𝜕𝑜𝑗
𝜕𝑜𝑗
𝜕𝑤𝑗𝑘
𝜕𝑓𝑖
𝜕𝑜𝑗 = 𝑓𝑖(1 − 𝑓𝑖)𝑢𝑖𝑗
𝜕𝑜𝑗
𝜕𝑤𝑗𝑘 = 𝑜𝑗(1 − 𝑜𝑗)𝑥𝑘
𝜕𝐸(𝒘)
𝜕𝑤𝑗𝑘 = ∑ (𝑦𝑖 − 𝑓𝑖)
𝐻𝑖=1 𝑓𝑖(1 − 𝑓𝑖)𝑢𝑖𝑗𝑜𝑗(1 − 𝑜𝑗)𝑥𝑘
*) metode serupa juga dapat dipergunakan untuk menurunkan perubahan j
Jadi, proses backpropagation (kasus Gambar 4.4) dapat dikerjakan seperti pada Gambar 4.5. Untuk
artificial neural network dengan lebih dari 3 layers, silahkan turunkan sendiri persamaannya.
Gambar 4.5. Proses Backpropagation.
Seringkali, perubahan synapse weight mengikutsertakan momentum untuk mempercepat training
menuju titik konvergen (ingat kembali materi steepest gradient descent).
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 36
∆𝑤𝑖𝑗(𝑡) = −𝜂(𝑡)𝛾𝑗𝑥𝑘 + 𝛼∆𝑤𝑖𝑗(𝑡 − 1); 𝑡 = 𝑡𝑖𝑚𝑒 (1,2,3, . . )
Persamaan 4.3. Perubahan Synapse Weight Dengan Momentum.
4.3.1 Binary Classification
Salah satu strategi untuk binary classification adalah dengan menyediakan hanya satu output unit di
multilayer perceptron. Kelas pertama direpresentasikan dengan 0, kelas kedua direpresentasikan
dengan 1.
4.3.2 Multi-label Classification
Multilayer perceptron dapat memiliki output unit berjumlah lebih dari satu. Oleh karena itu, terdapat
keuntungan saat melakukan multi-label classification. Salah satu strategi sederhana adalah dengan
menggunakan encoding. Seumpama kita mempunyai empat kelas, dengan demikian kita dapat
merepresentasikan keempat kelas tersebut dengan 2log(4) output units = 2. Kelas pertama
direpresentasikan dengan output layer memberikan hasil 00, kelas kedua 01, kelas ketika 10, dan
kelas keempat 11. Untuk X kelas, kita dapat merepresentasikannya dengan 2log(X) output units.
4.4 Deep Neural Network
Deep Neural Network adalah artificial neural network yang memiliki banyak layer. Pada umumnya,
deep neural network memiliki >= 4 layers (input layer, N hidden layers, output layer). Proses
pembelajaran pada deep network disebut sebagai deep learning (Watanabe, 2016).
Gambar 4.6. Contoh Deep Neural Network.
Perhatikan Gambar 4.6, deep network tersebut memiliki 4 layers. Cara menghitung output sama saja
dengan neural network biasa (kasus fungsi sigmoid) diberikan pada Persamaan 4.4.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 37
𝑓𝑖 = 𝜎 (∑𝑤𝑖𝑗
𝐻2
𝑗=1
𝜎(∑𝑤𝑗𝑘 𝜎 (∑ 𝑤𝑘𝑚𝑥𝑚
𝑀
𝑚=1
+ 𝜃𝑘) + 𝜑𝑗
𝐻1
𝑘=1
) + 𝜆𝑖)
Persamaan 4.4. Deep Neural Network (Feed Foward).
𝜽,𝝋, 𝝀 adalah noise/bias. Untuk pembelajaran pada deep neural network, salah satu caranya adalah
dengan backpropagation. Seperti pada sub bab sebelumnya, kita hanya perlu menurunkan rumusnya
saja (Wtanabe, 2016). Wij adalah synapse weight dari layer H2 ke layer output yaitu berasal dari node
pada layer H2 urutan ke-j ke output node ke-i. Wjk adalah synapse weight dari layer H1 ke layer H2.
Wkm adalah synapse weight dari layer input ke layer H1.
Square error function ∶ 𝐸(𝒘) =1
2 ∑ (𝑦𝑖 − 𝑓𝑖)
2𝑁𝑖=1 ; yi adalah desired output.
Hidden Layer 2 – Output Layer 𝜕𝐸
𝜕𝑤𝑖𝑗 = (𝑦𝑖 − 𝑓𝑖)
𝜕𝑓𝑖
𝜕𝑤𝑖𝑗
= (𝑦𝑖 − 𝑓𝑖)𝑓𝑖(1 − 𝑓𝑖)𝑔𝑗; 𝛿𝑖 = (𝑦𝑖 − 𝑓𝑖)𝑓𝑖(1 − 𝑓𝑖)𝑔𝑗
Hidden Layer 2 – Hidden Layer 1
𝜕𝐸
𝜕𝑤𝑗𝑘 = ∑ (𝑦𝑖 − 𝑓𝑖)
𝑁𝑖=1
𝜕𝑓𝑖
𝜕𝑔𝑗
𝜕𝑔𝑗
𝜕𝑤𝑗𝑘
= ∑ (𝑦𝑖 − 𝑓𝑖)𝑓𝑖(1 − 𝑓𝑖)𝑤𝑖𝑗𝑔𝑗(1 − 𝑔𝑗)𝑜𝑘𝑁𝑖=1 ; 𝛾𝑗 = ∑ 𝛿𝑖𝑤𝑖𝑗𝑖 𝑔𝑗(1 − 𝑔𝑗)
Hidden Layer 1 – Input Layer
𝜕𝐸
𝜕𝑤𝑘𝑚 = ∑ ∑ (𝑦𝑖 − 𝑓𝑖)
𝐻2𝑗=1
𝑁𝑖=1
𝜕𝑓𝑖
𝜕𝑔𝑗
𝜕𝑔𝑗
𝜕𝑜𝑘
𝜕𝑜𝑘
𝜕𝑤𝑘𝑚
= ∑ ∑ (𝑦𝑖 − 𝑓𝑖)𝑓𝑖(1 − 𝑓𝑖)𝑤𝑖𝑗𝑔𝑗(1 − 𝑔𝑗) 𝑤𝑗𝑘𝑜𝑘(1 − 𝑜𝑘)𝑥𝑚𝐻2𝑗=1
𝑁𝑖=1 ;
𝑁𝑜𝑡𝑒: 𝛽𝑘 = ∑ 𝛾𝑗𝑤𝑗𝑘𝑗 𝑜𝑘(1 − 𝑜𝑘)
Dengan itu, deep learning framework dapat diilustrasikan pada Gambar 4.7.
Karena deep network terdiri dari banyak layer dan synapse weight, estimasi parameter susah
dilakukan. Arti filosofisnya adalah susah/lama untuk menentukan relasi antara input dan output.
Walaupun deep learning sepertinya kompleks, tetapi entah kenapa dapat bekerja dengan baik untuk
permasalahan praktis (Watanabe, 2016). Deep learning dapat menemukan relasi unknown antara
input dan output, yang tidak dapat diselesaikan menggunakan neural network biasa (3 layers).
Ada beberapa strategi untuk mempercepat pembelajaran menggunakan deep learning, misalnya:
Lasso atau Ridge, successive learning, dan penggunaan Autocoder (Watanabe, 2016). Sebagai contoh,
saya akan menceritakan successive learning. Arti successive learning adalah network yang dibangun
secara bertahap. Misal kita latih network dengan 3 layers, kemudian kita lanjutkan 3 layers tersebut
menjadi 4 layers, lalu kita latih lagi menjadi 5 layers, dst. Hal ini sesuai dengan Elman (1993) yaitu
mulai dari hal kecil. Ilustrasinya dapat dilihat pada Gambar 4.8.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 38
Gambar 4.7. Deep Learning Framework.
Gambar 4.8. Successive Learning.
Menggunakan deep learning harus hati-hati, karena pembelajaran cenderung divergen. Artinya
minimum square error belum tentu semakin rendah seiring berjalannya waktu (swing relatif sering).
4.5 Recurrent Neural Network
Sub bab ini hanya akan menjelaskan konsep garis besar, tanpa penurunan rumus. Recurrent Neural
Network (RNN) adalah salah satu variasi topologi neural network. Idenya adalah membuat topologi
jaringan yang mampu merepresentasikan sequence. Konsepnya adalah menggunakan hasil
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 39
pembelajaran pada tahap sebelumnya (t-1) di tahap sekarang (t) (Mikolov, 2012). Perhatikan Gambar
4.9. V, U, dan W merepresentasikan synapse weight. Pada neural network sederhana ini, hasil output
fungsi aktivasi hidden layer pada tahap sebelumnya diingat, kemudian digunakan sebagai input pada
tahap berikutnya (pada tahap pertama, hasil fungsi aktivasi dapat dianggap 1 untuk semua hidden
units). Hal ini sesuai dengan ide RNN yang mampu “mengingat” kejadian sebelum-sebelumnya,
direpresentasikan dengan menggunakan previous state of hidden layer (Mikolov, 2012).
Gambar 4.9. Recurrent Neural Network Sederhana (Mikolov, 2012).
Training dapat dilakukan dengan menggunakan metode backpropagation seperti yang sudah
dijelaskan pada sub bab sebelumnya. Akan tetapi, backpropagation kurang intuitif untuk recurrent
karena tidak mampu mengakomodasi training yang sifatnya time series. Untuk itu, terdapat metode
lain seperti backpropagation through time. Awalnya kita melakukan feedforward seperti biasa,
kemudian sama propagasi error, idenya melakukan unfolding pada neural network. Beberapa previous
states of hidden layer diingat, kemudian saat melakukan backpropagation, dilakukan
backpropagation secara batch. Perhatikan ilustrasi pada Gambar 4.10. Kita mempropagasi error
dengan adanya efek dari previous states of hidden layer. Synapse weight diperbaharui secara large
update (pada Gambar 4.10 setelah propagasi error mencapai ujung gambar paling kiri). Synapse
weight tidak diperbaharui per layer. Hal ini untuk merepresentasikan neural network yang mampu
mengingat beberapa kejadian masa lampau, dan keputusan saat ini dipengaruhi oleh keputusan pada
masa lampau juga (ingatan).
RNN berhasil dibuktikan oleh Mikolov et al. (2013) untuk word embeddings (merepresentasikan kata
sebagai vektor bilangan riil). Singkatnya, RNN digunakan untuk memprediksi kata yang akan muncul,
diberikan beberapa kata yang sudah diketahui. Seumpama kalimat “petani menanam padi”, kita
diberikan input “petani menanam”, kemudian RNN dapat menebak kata berikutnya dengan benar,
yaitu “padi”. Training dengan objektif tersebut, juga membuahkan hasil RNN yang mampu mengerti
hubungan kata. Misalkan pasangan “Jepang-Tokyo”. Ketika ditanya kata “Prancis”, maka ia mampu
memberikan jawaban “Prancis”. Hasil penelitian ini dikenal sebagai word2vec.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 40
Gambar 4.10. Backpropagation Through Time (Mikolov, 2012).
4.6 Tips for Neural Network
Proses perubahan topologi artificial neural network pada training, secara umum mengikuti tahapan
sebagai berikut:
1. Earlier State
Pada tahap ini, struktur global (kasar) diestimasi.
2. Medium State
Pada tahap ini, learning berubah dari tahapan global menjadi lokal (ingat steepest gradient
descent).
3. Last State
Pada tahap ini, struktur lokal dan detil akhirnya diestimasi.
Akan tetapi, learning machine yang bisa menentukan hidden structure sering menjadi ke overtraining.
Menentukan batasan antara structure discovery dan overtraining bukanlah hal yang mudah.
Perhatikan Gambar 4.11 sebagai ilustrasi. Secara umum, training untuk artificial neural network
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 41
berlangsung cukup lama, tetapi ia cepat saat melakukan klasifikasi. Masalah paling sulit saat training,
sesungguhnya adalah menentukan topologinya.
Gambar 4.11. Discovery vs Overtraining.
4.7 Bacaan Lanjutan
Selain topologi yang sudah dijelaskan, masih banyak lagi topologi artificial neural network, seperti
convolutional network dan long-short-term memory network. Silahkan mencari sumber lain untuk
membaca lebih lanjut.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 42
Indeks
binary classification, 3, 8, 11
conditional probability function, 8
covariance, 10, 13
deep learning, 6
expectation, 9
feed forward, 8
feedforward, 14
gaussian mixture model, 11
independent and identically distributed, 12
learning rate, 3
likelihood function, 10, 12
local minima, 4
log likelihood function, 12
loss function, 15
marginal probability, 8
momentum, 4
multi-label classification, 3, 8, 11
multivariate gaussian, 11
overfitting, 2
performance measure, 2
posterior, 10, 18
prior, 10, 12
production rule, 8
recurrent neural network, 6, 13, 14
relative entropy, 18
square error, 2
sum rule, 7, 8
univariate gaussian, 11, 12
utility function, 2, 5, 14
variance, 9
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 43
Refrensi
Atiya, Amir. 1991. PhD Thesis: Learning Algorithms for Neural Network. California: California
Institute of Technology.
Bishop, Christopher M. 2006. Pattern Recognition and Machine Learning. New York, USA: Springer.
Caffo, Brian. 2015. Statistical Inference for Data Science. Learn Publishing.
Cover, Thomas M., and Thomas, Joy A. 1991. Elements of Information Theory. New Jersey, USA:
Wiley.
Cowan, Jack D. 1989. Neural Networks: The Early Days. In Proceedings of Advances in Neural
Information Processing Systems 2.
Cripps, Al. 1996. Using Artificial Neural Nets to Predict Academic Performance. In Proceedings of
the 1996 ACM Symposium on Applied Computing, pp 33-37.
Elman, Jeffrey L. 1993. Learning and Development in Neural Networks: The Importance of Starting
Small. Journal of Cognition (48), pp. 71-99.
Freedman, David, Pisani, Robert and Purves, Roger. 2007. Statistics Fourth Edition. New York: W.W.
Norton & Company, Inc.
Gratch, Jonathan and Marsella, Stacell. 2014. “Computationally Modelling Human Emotion”.
Communications of the ACM, Vol. 57, No 12, pages 56-67.
Jurafsky, Daniel and Martin, James H. 2009. Speech and Language Processing Second Edition. New
Jersey: Prentice Hall.
KBBI web. 2016. Available at http://kbbi.web.id/. Accessed on 10 October 2016.
Khodra, Masayu Leylia and Lestari, Dessi Puji. 2015. Odd Semester Lecture Note: Pembelajaran
Mesin. Institut Teknologi Bandung.
Mikolov, Tomas. 2012. Statistical Language Models Based on Neural Networks. PhD thesis, Brno
University of Technology.
Mikolov, Tomas, Sutskever Ilya, Chen, Kai, Corrado, Greg, and Dean, Jeffrey. 2013. Distributed
Representations of Words and Phrases and their Compositionality. In CoRR abs/1310.4546.
Mitchell, Tom M. 1997. Machine Learning. New York, USA: McGraw-Hill.
Nishimori, Hidetoshi. 2001. Statistical Physics of Spin Glasses and Information Processing: An
Introduction. Oxford: Clarendon Press.
Russel, Stuart and Norvig, Peter. 1995. Artificial Intelligence: A Modern Approach. New Jersey:
Prentice Hall.
Walpole, Ronald E., Myers, Raymond H., Myres, Sharon L, and Ya, Keying. 2012. Probability &
Statistics for Engineers & Scientists. New Jersey: Prentice Hall.
Watanabe, Sumio. 2016. Fall Lecture Note: Statistical Learning Theory Part I. Tokyo Institute of
Technology.
Draft, 1/16/2017 – TIDAK UNTUK DIJUAL 44
Wolfram. 2016. Covariance. Available at http://mathworld.wolfram.com/Covariance.html. Accessed
on 17 January 2017.
Yu, Kai. 2013. Large-Scale Deep Learning at Baidu. In Proceedings of the 22nd ACM International
Conference on Information & Knowledge Management, pp. 2211-2212.