Inductive Logic Programming
Pemrograman Logika Induktif
Hendy Irawan
23214344
TMDG 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)
●
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).
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 => 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
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
● 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).
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/il
p

Pemrograman Logika Induktif (Inductive Logic Programming)

  • 1.
    Inductive Logic Programming PemrogramanLogika Induktif Hendy Irawan 23214344 TMDG 9 – STEI ITB
  • 2.
    Latar Belakang danPengertian 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 ● Paradigmapemrograman 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.
  • 5.
    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
  • 6.
    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).
  • 7.
    Contoh ● Pengetahuan latar belakangB: ● 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).
  • 8.
    Algoritma ● Relative LeastGeneral 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
  • 9.
    Algoritma: Relative LeastGeneral 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
  • 10.
    Algoritma FOIL ● MasukanDaftar 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
  • 11.
    Demo ● Live JavaScriptApp http://ceefour.github.io/foiljs/www/ ● Video https://www.youtube.com/watch?v=y6uKDnOVQSc
  • 12.
    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
  • 13.
    Tren Mendatang danTantangan ● 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.
  • 14.
    Daftar Pustaka ● InductiveLogic 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