|
|
Tra le varie caratteristiche per cui un sistema può essere definito intelligente, vi è la capacità di effettuare un ragionamento deduttivo. La Programmazione Logica permette di rappresentare, attraverso una sequenza di implicazioni, le componenti di tale ragionamento. Questo approccio, permette di produrre sistemi comprensibili che approssimano l'intelligenza umana, ma risulta limitato nella gestione di teorie ad alta complessità. Le moderne reti neurali artificiali, invece, consentono di modellare automaticamente la conoscenza in seguito a un processo di apprendimento automatico basato sull'esperienza.
Questo metodo risulta maggiormente scalabile in quanto non richiede che le relazioni logiche siano espresse direttamente dal programmatore, tuttavia produce sistemi non interpretabili e necessita di una preliminare raccolta di dati.I due approcci presentano quindi caratteristiche complementari: integrandoli è possibile ottenere sistemi che, modellando un processo deduttivo ibrido, possano risolvere problemi complessi e mantenere componenti di comprensibilità. In questa tesi si propone un'interfaccia (Application Programming Interface) logica per apprendimento supervisionato che permetta di definire, allenare, ed utilizzare reti neurali tramite Programmazione Logica.
Tale interfaccia rappresenta un importante avanzamento tecnologico nella direzione dell'integrazione tra Intelligenza Artificiale simbolica e sub-simbolica.
keywords
Reti Neurali,Programmazione Logica,Prolog,Machine Learning,Deep Learning,2P-Kt,Kotlin