14

Click here to load reader

Pemrograman Logika Induktif (Inductive Logic Programming)

Embed Size (px)

Citation preview

Page 1: Pemrograman Logika Induktif (Inductive Logic Programming)

Inductive Logic Programming

Pemrograman Logika InduktifHendy Irawan

23214344TMDG 9 – STEI ITB

Page 2: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 3: Pemrograman Logika Induktif (Inductive Logic Programming)

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).

Page 4: Pemrograman Logika Induktif (Inductive Logic Programming)

Contoh

candra

gilang

wati

bobi

haris

eli

eyang_dari

ortu_dari

eyang_dari(X,Y) :- ???

Page 5: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 6: Pemrograman Logika Induktif (Inductive Logic Programming)

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).

Page 7: Pemrograman Logika Induktif (Inductive Logic Programming)

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).

Page 8: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 9: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 10: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 11: Pemrograman Logika Induktif (Inductive Logic Programming)

Demo

● Live JavaScript App

http://ceefour.github.io/foiljs/www/

● Video

https://www.youtube.com/watch?v=y6uKDnOVQSc

Page 12: Pemrograman Logika Induktif (Inductive Logic Programming)

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

Page 13: Pemrograman Logika Induktif (Inductive Logic Programming)

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.

Page 14: Pemrograman Logika Induktif (Inductive Logic Programming)

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