Click here to load reader
Upload
hendy-irawan
View
149
Download
4
Embed Size (px)
Citation preview
Inductive Logic Programming
Pemrograman Logika InduktifHendy Irawan
23214344TMDG 9 – STEI ITB
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
Pemrograman Logika
● Paradigma pemrograman berdasarkan logika formal, terdiri dari kalimat-kalimat berbentuk logika yang mengekspresikan fakta dan aturan (Wikipedia)
● Contohprogram logika:
● Dari program tersebut,kita dapat menanyakantentang 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).
Contoh
candra
gilang
wati
bobi
haris
eli
eyang_dari
ortu_dari
eyang_dari(X,Y) :- ???
Bentuk-bentuk Penalaran
● Deduksi: Dari sebab ke efek (Prediksi)
– fakta a, aturan a => bDUGA b ( Logika order-pertama )
● Abduksi: Dari efek ke kemungkinan penyebab (Penjelasan)
– aturan a => b, diketahui bPENJELASAN a
● Induksi: Dari pengamatan terkorelasi ke aturan (Belajar)
– amati korelasi antara a1, b1, ..., an, bn
BELAJAR a -> b
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).
Contoh
● Pengetahuanlatar belakang B:
● Contoh-contohpositif 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).
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
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
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
Demo
● Live JavaScript App
http://ceefour.github.io/foiljs/www/
● Video
https://www.youtube.com/watch?v=y6uKDnOVQSc
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
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.
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/ilp