Che cos’è un motore di inferenza?

Un motore di inferenza è un sistema software progettato per trarre conclusioni analizzando i problemi alla luce di un database di conoscenze specialistiche su cui si basa. Raggiunge risultati logici in base alle premesse stabilite dai dati. A volte i motori di inferenza sono anche in grado di andare oltre la rigorosa elaborazione logica e utilizzano calcoli di probabilità per giungere a conclusioni che il database della conoscenza non supporta rigorosamente, ma implica semplicemente o suggerisce.

La maggior parte dei motori di inferenza progettati nel campo dell’intelligenza artificiale si basano sul concetto di sistema esperto. Viene creato un sistema esperto per risolvere i problemi in un campo specifico e talvolta definito in modo restrittivo, come alcune specialità mediche. La componente del motore di inferenza di un sistema esperto è la struttura di controllo che produce un output iniziale basato su qualsiasi dato attualmente presente nella knowledge base e sulle regole di programmazione del sistema esperto, quindi applicarlo in modo significativo al problema specifico. Poiché i risultati del motore di inferenza sono il risultato dei dati, cambiano man mano che i dati vengono aggiornati e possono anche cambiare quando i dati vengono cercati in modi diversi dal motore di inferenza stesso. Se i dati nel sistema sono ponderati verso una o più conclusioni rispetto a un’altra, ciò può cambiare i risultati generati dal motore di inferenza.

Il software che utilizza un motore di inferenza può essere visto come un meccanismo selettivo attivo, in cui le azioni di elaborazione sono dirette dallo stato più attuale dei dati. I sistemi esperti hanno due modi generali di elaborare questi dati memorizzati, denominati concatenamento in avanti o concatenamento all’indietro. Nel concatenamento diretto, le regole del sistema esperto analizzano i dati forniti dal motore di inferenza e i risultati vengono reimmessi nella memoria dati del sistema come nuovi dati. Ciò innesca nuove soluzioni ai problemi poiché il sistema perfeziona i dati e li pesa per inferenza induttiva, il che significa che le conclusioni raggiunte non rispecchieranno necessariamente i dati o le premesse originali utilizzati per avviare l’analisi.

Il concatenamento all’indietro è più orientato alla probabilità, con i dati memorizzati ponderati per il valore dall’inizio. Le regole vengono utilizzate per verificare la validità delle condizioni dei dati alla luce del problema dato e, in questo modo, vengono assegnati ai dati nuovi valori di probabilità. Definito anche incatenamento basato sull’ipotesi, il concatenamento all’indietro non trae conclusioni rigorose fino a quando il continuo test dei dati rispetto alle condizioni stabilite dalle regole del sistema di esperti non soddisfi un livello minimo di prova per la domanda o il problema oggetto di studio.

La logica bayesiana è una delle forme orientate alla probabilità del software del motore di inferenza che utilizza il concatenamento all’indietro, chiamato per Thomas Bayes, un matematico inglese della metà del XVIII secolo. Tale logica utilizza una base di conoscenza degli eventi precedenti per prevedere i risultati futuri attraverso ripetuti test delle conoscenze e inserisce ulteriori prove degli esiti delle prove in nuove prove, con l’obiettivo di produrre risultati sempre più accurati. L’architettura software di logica fuzzy può anche fare affidamento sul motore di inferenza come parte del suo sistema. La differenza con la logica fuzzy è che l’output è un insieme o una gamma fuzzy di possibili soluzioni che vengono poi aggregate in un gruppo e, attraverso la logica e la probabilità, ristrette a una conclusione o azione ottimale.