• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Machine Learning
 

Machine Learning

on

  • 460 views

 

Statistics

Views

Total Views
460
Views on SlideShare
460
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Deduzione = derivare da una premessa una conclusione
  • Induzione = Ricavare da osservazioni i principi generali in essi impliciti

Machine Learning Machine Learning Presentation Transcript

  • Machine Learning Come migliorarsi attraverso l’esperienza Rossi Fabio 2004-05-12
  • Indice
    • Apprendimento Automatico
      • Definizioni
      • Applicazioni
    • Alberi di decisione
      • Definizione, obbiettivi
      • Esempi
    • Inductive logic Programming
      • Definizioni, tassonomie
      • Alcune regole e tecniche
  • Definizioni di Apprendimento Automatico
    • Definizione1:
      • Learning is constructing or modifying representations of what is being experienced [Michalski 1986]
    • Definizione2:
      • Learning denotes changes in the system that are adaptive in the sense that they enable the system to do the same task or tasks drawn from the same population more efficiently and more effectively the next time [Simon 1984]
  • Definizioni di Apprendimento Automatico
    • Apprendere = migliorare la capacità di esecuzione di un certo compito, attraverso l’esperienza
        • Migliorare nel task T
        • Rispetto ad una misura di prestazione P
        • Basandosi sull’esperienza E
      • E = esempi di comportamenti “positivi” o “negativi” forniti da un istruttore, oppure un sistema di “ricompense”.
    • In A.I. : Tecniche che consentono ad agenti (o sistemi automatici ) di migliorare il proprio comportamento attraverso l’analisi delle proprie esperienze.
  • Impieghi dell’Apprendimento Automatico
    • Data Mining (estrazione di conoscenza) : scoprire regolarità e patterns in dati multi-dimensionali e complessi (es. cartelle cliniche).
    • Miglioramento delle performance : macchine che migliorano le loro capacità (es. movimenti di un robot).
    • Software adattabili : programmi che si adattano alle esigenze dell’utente (es. Letizia).
  • Scelte nella definizione di un sistema di apprendimento
    • Componenti Migliorabili : decidere quali sono le componenti sulle quali “lavorare”
    • Scelta e Rappresentazione di una “ funzione obiettivo ” che rappresenti il compito
    • Scelta di un algoritmo di apprendimento
    • Modalità di training : supervisionato, guidato da obiettivi
  • 2. funzione obiettivo
    • Funzione obiettivo : espressione formale della conoscenza appresa. Viene usata per determinare le prestazioni del programma di apprendimento.
      • Esempi di funzioni obiettivo: polinomi, alberi di decisione, reti neurali, insiemi di regole….
    peso altezza + + + + - - - A=bP
  • 2. funzione obiettivo e funzione appresa
    • Nota: Difficilmente un sistema riesce ad apprendere perfettamente una funzione obbiettivo f (l’esempio della funzione altezza-peso è un caso).
    • In genere viene appresa un funzione, avente la forma prescelta (polinomio, regole,..), che rappresenta una stima , o IPOTESI (indicata con h ), per la funzione obiettivo.
    • L’obiettivo è di apprendere una h che approssimi f “il meglio possibile”.
  • 3. algoritmo di apprendimento
    • Scelta dell’algoritmo e della funzione obiettivo ovviamente correlate
    • Metodi statistici
      • Bayesian learning
      • Markov models
    • Metodi algebrici
      • Gradient descent
      • Support Vector Machines
    • Metodi knowledge-based
      • Alberi di decisione
      • Regole di associazione
  • 4. Modalità di training
    • Basato sull’informazione a disposizione:
      • Supervisionato (esempi disponibili)
      • Con rinforzo (premi a fronte di comportamenti corretti)
      • Non supervisionato (senza esempi)
    • Basato sul ruolo dell’apprendista (learner)
      • Apprendimento passivo (apprende da esempi a-priori)
      • Apprendimento attivo (apprende anche durante il funzionamento)
  • 4.1.a. Supervisionato Back
    • Si ha a disposizione un insieme di esempi classificati x: < v1,v2,..vn,o > dove vi sono valori delle variabili di ingresso, ed O è l’uscita. Pendono anche il nome di attributi o features .
    • Implica l’esistenza di un istruttore che conosce la risposta corretta
    • Si apprende una funzione obiettivo
    • La misura della prestazione consiste nel minimizzare l’errore di approssimazione della funzione obiettivo sugli esempi a disposizione
  • 4.1.b. Con rinforzo
    • L’apprendista interagisce con l’ambiente e riceve una ricompensa (numerica) positiva o negativa (es. se un robot che fa goal il “peso” della sequenza di azioni che lo ha portato a fare goal viene aumentato)
    • Cosa si apprende: una strategia di comportamento (un “piano” o sequenza di azioni)
    • Misura della prestazione: si cerca di massimizzare “a lungo termine” la ricompensa complessivamente ottenuta.
    • Percepisco la valutazione ma non conosco l’azione
    Back
  • 4.1.c. Non supervisionato
    • Si percepisce solo l’evoluzione delle percezioni e non la bontà delle azioni.
    • L’esperienza di apprendimento è rappresentata da dati non classificati (ad esempio, scontrini fiscali, cartelle cliniche, pagine web).
    • Cosa si apprende: regole associative fra i dati (es: if cocacola then patatine ).
    Back
  • 4.2. Apprendimento attivo e passivo
    • Apprendimento passivo:
      • L’apprendista può apprendere solo dai dati che vengono messi a disposizione (E)
    • Apprendimento attivo:
      • L’apprendista può fare domande ed esperimenti
    Back
  • 4. Modalità di training
    • Definiamo: KB Conoscenza base KA Conoscenza aggiuntiva E Input Esterno M i Motore Inferenziale
    • Apprendimento Dichiarativo KB + E KB*
    Apprendimento
  • 4.3.a Apprendimento Deduttivo
    • Nel caso DICHIARATIVO si può avere:
    • Apprendimento Deduttivo: KB* = KB + KA con KB KA se KB Mi E KA = E KA Mi E
      • In genere aumento l’efficienza del sistema
  • 4.3.b Apprendimento Induttivo
    • Apprendimento Induttivo: KB* = KB + KA con KB  KA E
      • Con KB* non inconsistente e relazione debole di conseguenza logica
      • In genere aumento la conoscenza del sistema
  • Apprendimento Induttivo
    • Il sistema parte dai fatti e dalle osservazioni derivanti da un insegnante o dall’ambiente circostante e le generalizza, ottenendo conoscenza che, auspicabilmente, sia valida anche per casi non ancora osservati (induzione). Due tipi di apprendimento induttivo:
      • Apprendimento da esempi : la conoscenza è acquisita a partire da un insieme di esempi positivi che sono istanze del concetto da imparare e di esempi negativi che sono non-istanze del concetto.
      • Apprendimento di regolarità : non c’e’ un concetto da imparare, l’obiettivo e’ quello di trovare regolarità (ovvero caratteristiche comuni) nelle istanze date.
  • Apprendimento Induttivo
    • Problema: In generale possono esserci molte ipotesi per la funzione obiettivo, alle quali è possibile assegnare, al di là del semplice criterio di consistenza con gli esempi, un grado di preferenza detto inclinazione
    • Approccio Incrementale : Si cerca di modificare l’ipotesi corrente ad ogni nuovo esempio fornito
  • Apprendimento Induttivo Definizione formale del problema
    • Dato :
    • Un insieme di osservazioni (esempi, istanze) x  X (es: x feature vector): x: (a 1 ,a 2 ..a n ), a i assume valori su  0,1  )
    • Una funzione obiettivo o concetto da apprendere (indicata con f ) (es. valutazione dell’interesse di una pagina web per un utente): Interessante : X   0,1  dove X è l’insieme delle rappresentazioni feature-vector di pagine web
    • Uno spazio di ipotesi H (che dipende dalla modalità di rappresentazione di f)
    • Un insieme di apprendimento D:
        • D: <(x1,f(x 1 ))…(x, f(x m ))>
        • Dove f(x i )=1 se x i è un esempio positivo di f, 0 altrimenti
    • Determinare : un’ipotesi h in H tale che h(x) = f(x)  x in D
  • Apprendimento Induttivo Completezza e Consistenza
  • Alberi di Decisione Metodo di apprendimento di conoscenza simbolica
  • Alberi di Decisione
    • Un albero di decisione prende in ingresso un elemento x  X descritto mediante un insieme di proprietà (coppie attributo-valore) ed emette in uscita una &quot;decisione” binaria ( si o no)
    • Nodi ed Archi: corrispondono al test della proprietà che può avere come risultato uno dei V i
    PROPRIETA’ V 1 V 2 V k …
  • Alberi di Decisione Clienti? No Si No No Si Si No Si Si Si No Si Si 0 Alcuni Pieno Attesa stimata? Alternative? fame? Prenotazione? E' Venerdì o sabato? Alternative? Bar? Pioggia? >60 30-60 10-30 0-10 No Si No Si No Si No Si No Si No Si No Si Aspettare o meno?
  • Alberi di Decisione Obiettivo
    • Lo scopo è, come in tutti i modelli di apprendimento induttivo da esempi, imparare la definizione di una funzione obiettivo espressa in termini di albero di decisioni.
    • Un albero di decisione può essere espressa come una disgiunzione (OR) di implicazioni , aventi il valore della decisione come conclusione. Nell'esempio, la funzione obiettivo ( decisione ) è &quot;Attendo&quot; ed è implicata, fra l'altro, dalla implicazione:
    •  r Clienti(r,Pieno)  AttesaStimata(r,10-30)  Fame(r,N)  Attendo(r)
    • Dove r rappresenta l’istanza (di r istorante) da valutare
  • Alberi di Decisione
    • La decisione deve basarsi sull'esame di esempi D: x  X , così descritti:
        • ogni esempio è rappresentato da un vettore che rappresenta i valori degli attributi prescelti per descrivere le istanze del dominio x: <v 1 =val i ,v 2 =val j ,..v n =val m >
        • (utilizzando attributi booleani : <a 1 ,a 2 ,………..a N > a i ={0,1} )
        • gli attributi sono proprietà che descrivono gli esempi del dominio (es: fame=  si,no  Prezzo =  $,$$,$$$  Attesa =  0-10,10-30..,>60 
    • Gli alberi di decisione hanno il potere espressivo dei linguaggi proposizionali, ovvero
        • qualsiasi funzione booleana può essere scritta come un albero di decisione (e viceversa) .
  • Alberi di Decisione Quando è appropriato usarli?
    • Quando è appropriato usare alberi di decisione?
      • Gli esempi (istanze) sono rappresentabili in termini di coppie attributo-valore.
      • La funzione obiettivo assume valori nel discreto . Un albero di decisioni assegna classificazioni booleane ma può essere esteso al caso di funzioni a più valori. Non è comune, ma possibile, l'utilizzo di questa tecnica per apprendere funzioni nel continuo (discretizzando i valori di f(x)).
      • E’ appropriato rappresentare il concetto da apprendere mediante una forma normale disgiuntiva.
      • I dati di apprendimento possono contenere errori, oppure attributi di cui il valore è mancante.
  • Alberi di Decisione Come utilizzare gli esempi D? E s. A lt . Ba r V / S F a . Clien . P z . P io . Pr e. T i p. A tt . A tt ? X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 10 X 11 X 12 SI SI N O SI SI N O N O N O N O SI N O SI N O N O SI N O N O SI SI N O SI SI N O SI N O N O N O SI SI N O N O N O SI SI N O SI SI SI N O SI N O SI N O SI N O SI N O SI A lc P ien A lc P ie P ie A lc A lc N e s P ie P ie N e s P ie $$$ $ $ . . Fr T a il F . F T a il . . 0 - 10 30 - 60 S i N o S i S i …
  • Alberi di Decisione Come utilizzare gli esempi D?
    • L'insieme di addestramento D è l'insieme completo degli esempi sottoposti al sistema di apprendimento
    • Una soluzione semplice sarebbe creare una espressione congiuntiva per ogni esempio e costruire una disgiunzione: ma il sistema non avrebbe alcun potere predittivo su esempi non visti! Il problema è estrarre uno schema dagli esempi, che sia in grado di estrapolare esempi non visti
  • Alberi di Decisione Algoritmo
    • L'obiettivo è di estrarre uno schema coinciso .
    • Rasoio di Ockham: l'ipotesi più probabile è la più semplice che sia consistente con tutte le osservazioni .
    • Il problema di identificare l'albero più piccolo è intrattabile. Tuttavia esistono euristiche che consentono di trovare alberi &quot;abbastanza&quot; piccoli.
    • L'idea consiste nell’analizzare dapprima gli attributi più importanti , ovvero quelli che discriminano di più.
    • Supponendo per ora di poter fare questa scelta ad ogni passo i, l'algoritmo di creazione di un albero delle decisioni da un set di esempi D è il seguente:
  • Alberi di Decisione Algoritmo
    • Scelgo l’attributo più importante come radice e suddivido gli esempi
    • Per ogni nodo successore:
      • Se ci sono sia es. positivi che negativi ricorsivamente applico l’algoritmo con un attributo in meno
      • Se sono tutti es. positivi metto la foglia SI
      • Se sono tutti es. negativi metto la foglia NO
      • Se non ci sono esempi restituisco un valore di default calcolato in base alla maggioranza del nodo progenitore
      • Se non ci sono più attributi ma ho ancora esempi misti ho una situazione di errore (rumore) o di vero non determinismo
  • Inductive Logic Programming Per la rappresentazione degli esempi e dei concetti
  • Conoscenza e Apprendimento Come utilizzare la conoscenza a priori L’approccio induttivo “puro” cerca ipotesi: Ipotesi  Descrizioni Classificazioni. Ovviamente cerca Ipotesi “semplici” e consistenti con le descrizioni
  • Conoscenza e Apprendimento Come utilizzare la conoscenza a priori
    • Schema KBIL : knowledge Based Inductive Learning La conoscenza di fondo e le nuove ipotesi vengono combinate per spiegare gli esempi.
    • Fondo  Ipotesi  Descrizioni Classificazioni
    Approccio induttivo basato sulla Conoscenza osservazioni Ipotesi predizioni Conoscenza a priori
  • Inductive Logic Programming Definizione
    • E’ il settore dell’Apprendimento Automatico che impiega la programmazione logica come linguaggio di rappresentazione degli esempi e dei concetti
    • ML + LP = ILP
  • Inductive Logic Programming Definizione del problema
    • Dati:
      • un insieme P di possibili programmi
      • un insieme E+ di esempi positivi
      • un insieme E- di esempi negativi
      • un programma logico consistente B, tale che B e+, per almeno un e+  E+
    • Trovare: un programma logico P  P tale che
      •  e+  E+, B,P e+ (P è completo)
      •  e-  E-, B,P e- (P è consistente)
  • Inductive Logic Programming Terminologia
    • B: background knowledge, conoscenza a priori, predicati di cui conosciamo già la definizione.
    • E+ E- costituiscono il training set
    • P programma target, B,P è il programma ottenuto aggiungendo le clausole di P dopo quelle di B.
    • P viene detto hypothesis space. Definisce lo spazio di ricerca. La descrizione di tale spazio delle ipotesi prende il nome di language bias.
    • B,P e si dice &quot;P copre e&quot;
  • Inductive Logic Programming Esempio
    • Apprendimento del predicato father. Dati
      • P : programmi logici contenenti clausole father(X,Y) :- α con α congiunzione di letterali scelti fra
      • parent(X,Y),parent(Y,X),male(X),male(Y), female(X),female(Y)
    • B= { parent(john,mary),male(john), parent(david,steve),male(david), parent(kathy,ellen),female(kathy)}
  • Inductive Logic Programming Esempio
    • E+={father(john,mary),father(david,steve)}
    • E-={father(kathy,ellen),father(john,steve)}
    • Trovare:
      • un programma per calcolare il predicato father che sia consistente e completo rispetto ad E+, E-
    • Possibile soluzione:
      • father(X,Y):-parent(X,Y),male(X).
    Altro Esempio
  • Inductive Logic Programming Esempio (2)
    • Apprendimento di intersection Dati:
      • P : programmi logici contenenti clausole int(X,Y,Z):- α con α  {null(X),null(Y),null(Z),cons(X1,X2,X),int(X2,Y,W) int(X2,Y,Z),cons(X1,W,Z),member(X1,Y), notmember(X1,Y)}
      • E+={int([4,2,6],[5,2,8],[2])}
      • E-={int([4,2,6],[5,2,8],[2,6]), int([4,2,6],[5,2,8],[4,2,6])}
  • Inductive Logic Programming Esempio (2)
    • B:
      • null([]).
      • cons(X,Y,[X|Y]).
      • member(X,[X|Y]).
      • member(X,[Z|Y]):-member(X,Y).
      • notmember(X,[]).
      • notmember(X,[Z|Y]):-X≠Z,notmember(X,Y).
    • Trovare:
      • Un programma per calcolare l'intersezione che sia consistente e completo rispetto ad E+, E-
  • Inductive Logic Programming Esempio (2)
    • Possibile soluzione: P1:
      • int(X,Y,Z) :- null(X), null(Z).
      • int(X,Y,Z) :-cons(X1,X2,X),member(X1,Y),int(X2,Y,W),cons(X1,W,Z).
      • int(X,Y,Z) :- cons(X1,X2,X),int(X2,Y,Z).
    • Attenzione: P1 deriva int([1],[1],[]), che è falso.
    • Non è garantito che il programma sia consistente anche per gli esempi che non sono nel training set!
  • Inductive Logic Programming Aree di Applicazione
    • acquisizione di conoscenza per sistemi esperti
    • knowledge discovery nei database: scoperta di informazioni potenzialmente utili dai dati memorizzati in un database
    • scientific knowledge discovery: generazione di una teoria scientifica a partire da osservazioni + generazione di esperimenti discriminanti + test della teoria
    • software engineering: sintesi di programmi logici
    • inductive engineering: costruzione di un modello di un dispositivo partendo da esempi del suo comportamento.
  • Inductive Logic Programming Applicazioni di successo
    • predizione della relazione struttura - attività nella progettazione di medicine
    • predizione della struttura secondaria delle proteine, importante per determinare l'attività di una medicina.
    • classificazione dei documenti in base alla loro struttura
    • diagnosi di guasti in apparati elettromeccanici
    • regole temporali per la diagnosi di guasti ai componenti di satelliti
  • Inductive Logic Programming Classificazione dei sistemi
    • Esistono diverse dimensioni di classificazione dei sistemi di ILP.
    • Possono richiedere che tutti gli esempi siano dati all'inizio ( batch learners ) oppure possono accettarli uno ad uno ( incremental learners ).
    • Possono apprendere un solo predicato alla volta ( single predicate learners ) oppure più di uno ( multiple predicate learners ).
    • Durante l'apprendimento possono fare domande all’utente per chiedere la validità delle generalizzazioni e/o per classificare esempi generati dal sistema ( interactive learners ) oppure non avere interazione con l'esterno ( non-interactive learners ).
    • Infine, un sistema può imparare una teoria da zero oppure partendo da una teoria preesistente incompleta e/o inconsistente ( theory revisors ).
  • Inductive Logic Programming Classificazione dei sistemi
    • Sebbene si tratti di dimensioni indipendenti, i sistemi esistenti appartengono a due gruppi opposti.
    • Da una parte ci sono i sistemi batch, non interattivi che apprendono da zero un concetto alla volta (empirical systems);
    • dall'altro ci sono i sistemi incrementali, interattivi che fanno theory revision e imparano più predicati alla volta (interactive or incremental systems)
  • Inductive Logic Programming Relazione di generalità
    • I sistemi apprendono una teoria compiendo una ricerca nello spazio delle clausole ordinato secondo la relazione di generalità.
    • Nel caso della programmazione logica induttiva la relazione di generalità e’ basata su quella di θ -sussunzione:
      • La clausola C1 θ -sussume C2 se esiste una sostituzione θ tale che C1 θ  C2.
      • Si dice che una clausola C1 e’ almeno tanto generale quanto una clausola C2 (e si scrive C1 ≥ C2) se C1 θ -sussume C2
      • C1 e’ piu’ generale di C2 (C1>C2) se C1 ≥ C2 ma non C2 ≥ C1
  • Inductive Logic Programming Esempio di θ -sussunzione
    • C1=grandfather(X,Y)←father(X,Z).
    • C2=grandfather(X,Y)←father(X,Z),parent(Z,Y).
    • C3=grandfather(john,steve)←father(john,mary), parent(mary,steve).
      • C1 θ-sussume C2 con la sostituzione vuota θ= 
      • C1 θ-sussume C3 con la sostituzione θ={X/john,Y/steve,Z/mary}.
      • C2 θ-sussume C3 con la sostituzione θ={X/john,Y/steve,Z/mary}.
  • Inductive Logic Programming proprietà della θ -sussunzione
    • La θ -sussunzione ha l’importante proprietà che se C1 θ -sussume C2 allora C1 C2.
    • Non e’ pero’ vero viceversa.
    • Per questa ragione la θ -sussunzione viene utilizzata per rappresentare la relazione di generalità: essa approssima la relazione di generalità intuitiva che è basata sulla relazione di conseguenza logica.
  • Inductive Logic Programming Algoritmi
    • Gli algoritmi per ILP si dividono in bottom-up e top-down a seconda che utilizzino operatori di generalizzazione o specializzazione.
    • Gli algoritmi bottom-up partono dagli esempi (specifici o bottom) e li generalizzano ottenendo una teoria che li copre.
      • Vengono utilizzati degli operatori di generalizzazione ottenuti invertendo le regole deduttive di unificazione, risoluzione e implicazione
  • Inductive Logic Programming Algoritmi Top-Down
    • Gli algoritmi top-down imparano programmi generando le clausole in maniera sequenziale (una dopo l’altra). La generazione di una clausola avviene partendo da una clausola generale (con il body vuoto) e specializzandola (applicando un operatore di specializzazione o raffinamento) fino a che non copre più nessun esempio negativo.
  • Inductive Logic Programming Top-Down: criteri di terminazione
    • Gli algoritmo top-down differiscono tra di loro a seconda del criterio di necessita’ e di sufficienza.
    • In genere, il criterio di Sufficienza richiede che tutti gli esempi positivi siano coperti.
    • In genere, il criterio di Necessità richiede che nessun esempio negativo sia coperto dalla clausola. Nel caso di dati rumorosi, questo criterio può essere rilassato e si può ammettere la copertura di un certo numero di esempi negativi.
  • Inductive Logic Programming Top-Down: Esempio
    • P : father(X,Y) :- α con α  {parent(X,Y),parent(Y,X), male(X),male(Y),female(X),female(Y)}
    • B= { parent(john,mary),male(john), parent(david,steve),male(david), parent(kathy,ellen),female(kathy)}
    • E+={father(john,mary),father(david,steve)}
    • E-={father(kathy,ellen),father(john,steve)}
  • Inductive Logic Programming
    • 1° passo di specializzazione father(X,Y) :- true. copre tutti gli e+ ma anche gli e-
    • 2° passo father(X,Y) :- parent(X,Y). copre tutti gli e+ ma anche l'e- father(kathy,ellen).
    • 3° passo father(X,Y) :- parent(X,Y), male(X). copre tutti gli e+ e nessun e-
    • Gli esempi positivi coperti vengono rimossi, E+ diventa vuoto e l'algoritmo termina generando la teoria:
      • father(X,Y) :- parent(X,Y), male(X).
  • Bibliografia Fonti del seminario
  • Bibliografia Machine Learning
    • T. M. Mitchell, Machine Learning, McGraw-Hill,1997
    • J. R. Quinlan, C4.5: Programs for machine learning, Morgan Kaufmann Publishers, San Mateo, California, 1993
    • J. R. Quinlan, Improved Use of Continuous Attributes in C4.5, Journal of Artificial Intelligence Research, 4, pag. 77--90, 1996. ftp://ftp.cs.cmu.edu/project/jair/volume4/quinlan96a.ps
    • I.H. Witten, E. Frank, Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations, Morgan Kaufmann, 1999.
  • Bibliografia Inductive Logic Programming
    • S. Muggleton e C. Feng, Efficient induction of logic programs, Proceedings of the 1st Conference on Algorithmic Learning Theory Ohmsma, Tokyo, pag. 368-381, 1990.
    • G.D. Plotkin. A note on inductive generalisation.In B. Meltzer and D. Michie, editors, Machine Intelligence 5, pages 153-163. Edinburgh University Press, Edinburgh, 1969.
    • J. R. Quinlan, Determinate literals in inductive logic programming, Proceedings of Twelfth International Joint Conference on Artificial Intelligence, Morgan Kaufmann, 1991.