2. Latar Belakang dan Pengertian
Umum
● a subfield of machine learning which uses logic
programming as a uniform representation for examples,
background knowledge and hypotheses (Wikipedia)
● Menggunakan pemrograman logika sebagai representasi
seragam untuk
– Contoh
– Pengetahuan latar belakang
– Dugaan
3. Pemrograman Logika
● Paradigma pemrograman berdasarkan logika formal, terdiri dari
kalimat-kalimat berbentuk logika yang mengekspresikan fakta
dan aturan (Wikipedia)
● Contoh
program logika:
● Dari program tersebut,
kita dapat menanyakan
tentang eyang:
ortu_dari(candra,gilang).
ortu_dari(gilang,wati).
ortu_dari(bobi,haris).
ortu_dari(haris,eli).
eyang_dari(X,Y) :- ortu_dari(X,Z),
ortu_dari(Z,Y).
Query: eyang_dari(X,Y)?
Answers:
eyang_dari(candra,wati).
eyang_dari(bobi,eli).
4. Bentuk-bentuk Penalaran
● Deduksi: Dari sebab ke efek (Prediksi)
– fakta a, aturan a => b
DUGA b ( Logika order-pertama )
● Abduksi: Dari efek ke kemungkinan penyebab (Penjelasan)
– aturan a => b, diketahui b
PENJELASAN a
● Induksi: Dari pengamatan terkorelasi ke aturan (Belajar)
– amati korelasi antara a1, b1, ..., an, bn
BELAJAR a -> b
5. Konsep Dasar ILP
● Mempelajari aturan logika secara otomatis dari contoh-contoh dan
pengetahuan latar belakang
● Misalnya: Pelajari aturan eyang_dari(A, B), bila diberikan
pengetahuan latar belakang ortu-ortunya beserta contoh-contoh eyang
● Contoh positif + contoh negatif + pengetahuan latar belakang => dugaan
● Dapat digunakan untuk:
– Klasifikasi
– Prediksi
● Kelebihan ILP: dapat menggunakan lebih dari satu relasi:
istri(X,Y) :- wanita(X), menikah(X,Y).
6. Contoh
● Pengetahuan
latar belakang B:
● Contoh-contoh
positif E+:
● Buat dugaan H:
eyang_dari(X,Y) :- ortu_dari(X,Z),
ortu_dari(Z,Y).
ortu_dari(candra,gilang).
ortu_dari(gilang,wati).
ortu_dari(bobi,haris).
ortu_dari(haris,eli).
eyang_dari(candra,wati).
eyang_dari(bobi,eli).
7. Algoritma
● Relative Least General Generalization (rlgg)
Plotkin, Gordon D. (1970). Meltzer, B.; Michie, D., eds. "A Note on Inductive Generalization". Machine Intelligence (Edinburgh
University Press) 5: 153–163.
● Progol
Muggleton, S. (1991). "Inductive logic programming". New Generation Computing 8 (4): 295–318. doi:10.1007/BF03037089.
Learning from positive data, S. Muggleton, "Proceedings of the Sixth International Workshop on Inductive Logic progrramming",
Springer-Verlag, LNAI 1314, 1997.
● FOIL
http://en.wikipedia.org/wiki/First_Order_Inductive_Learner
● Hail
Ray, O., Broda, K., & Russo, A. M. (2003). Hybrid abductive inductive learning. In LNCS: Vol. 2835. Proceedings of the 13th
international conference on inductive logic programming (pp. 311–328). Berlin: Springer.
● Imparo
Kimber, T., Broda, K., & Russo, A. (2009). Induction on failure: learning connected Horn theories. In LNCS: Vol. 5753.
Proceedings of the 10th international conference on logic programing and nonmonotonic reasoning (pp. 169–181). Berlin:
Springer.
● Tilde
http://www-ai.ijs.si/~ilpnet/systems/tilde.html
8. Algoritma: Relative Least General Generalization (rlgg)
1)Merelatifkan tiap literal contoh positif dengan pengetahuan
latar belakang lengkap
2)Ubah dari bentuk Horn menjadi bentuk normal klausa
3)Anti-unifikasi tiap pasangan literal yang cocok
4)Hapus semua literal ternegasi yang mengandung variabel
yang tidak muncul di literal positif
5)Ubah kembali tiap klausa menjadi bentuk Horn
9. Algoritma FOIL
● Masukan Daftar contoh
● Keluaran Aturan dalam bentuk logika predikat order-pertama
● FOIL (Contoh-contoh)
– Anggap Pos adalah contoh-contoh positif
– Anggap Pred adalah predikat yang hendak dipelajari
– Ulang sampai Pos kosong:
● Anggap Neg adalah contoh-contoh negatif
● Set Body menjadi kosong
● Panggil LearnClauseBody
● Tambahkan Pred ← Body ke dalam aturan
● Hapus dari Pos semua contoh yang sesuai Body
● Prosedur LearnClauseBody
– Ulang sampai Neg kosong:
● Pilih literal L
● Gabungkan L ke Body
● Hapus dari Neg contoh-contoh yang tidak sesuai L
http://en.wikipedia.org/wiki/First_Order_Inductive_Learner
10. Demo
● Live JavaScript App
http://ceefour.github.io/foiljs/www/
● Video
https://www.youtube.com/watch?v=y6uKDnOVQSc
11. Contoh Penggunaan / Aplikasi
● Constructing Biological Knowledge Bases by Extracting Information from Text
Sources (M. Craven & J. Kumlien) [Craven99]
● The automatic discovery of structural principles describing protein fold space
(A. Cootes, S.H. Muggleton, and M.J.E. Sternberg) [Cootes03]
● Mining Library Specifications
Mempelajari spesifikasi antarmuka pemrograman aplikasi (API) sebagai relasi dan pola.
Sriram Sankaranarayanan. ICSE 2008.
http://www.cs.colorado.edu/~srirams/papers/icse2008.pdf
● Pola kehamilan yang memburuk berdasarkan mammogram
● Pola virus HIV
● Contoh-contoh lain dari kelompok UT-ML (Ray Mooney)
http://www.cs.utexas.edu/~ml/publication/ilp.html
12. Tren Mendatang dan Tantangan
● Mengkombinasikan pemrograman logika dengan probabilistik /
ketidakpastian => Pembelajaran Relasional Statistik (Statistical Relational
Learning)
● Menggunakan pengukuran jarak relasional untuk klasifikasi dan klusterisasi,
sehingga dapat memperhatikan ukuran kemiripan sekaligus struktur logika
Bruynooghe [1998], Kirsten et al. [2001]
● Memadukan representasi logika atau relasional dalam reinforcement
learning => relational reinforcement learning
[Dzeroski et al., 2001]
Inductive Logic Programming. Luc De Raedt.
13. Daftar Pustaka
● Inductive Logic Programming. T.K. Prasad.
http://www.knoesis.org/tkprasad/
● Wikipedia
● https://class.coursera.org/machlearning-001/lecture/195
● Inductive Logic Programming. Luc De Raedt.
https://lirias.kuleuven.be/bitstream/123456789/301407/1/il
p