Approcci all'IA

L'IA simbolica, nota anche come good old-fashioned AI (GOFAI) e quella subsimbolica, nota anche come connettivista, sono due approcci diversi alla ricerca sull'intelligenza artificiale.

Per cominciare, vediamo alcune differenze di massima.

  • Rappresentazione e ragionamento

    • Nell'IA simbolica la conoscenza viene rappresentata utilizzando simboli - rappresentazioni astratte di concetti - e relazioni tra simboli. Il processo di ragionamento utilizza assiomi e regole logiche. Simboli e regole sono codificati esplicitamente da esperti umani.

    • Nell'IA subsimbolica le informazioni sono spesso rappresentate da pesi e connessioni in una rete neurale artificiale. Si concentra sull'apprendimento a partire dai dati piuttosto che affidarsi a regole predefinite e scritte dall'uomo.

  • Esempi

    • I sistemi esperti sono esempi di IA simbolica. Questi sistemi manipolano simboli e applicano regole per eseguire compiti che implicano il ragionamento e il processo decisionale.

    • Le reti neurali artificiali, che si ispirano alla struttura del cervello umano, sono un esempio di IA subsimbolica. Imparano dai dati e regolano i loro pesi interni per riconoscere i modelli. Altri esempi sono gli algoritmi evolutivi.

  • Vantaggi

    • L'IA simbolica è spesso trasparente e interpretabile, poiché i programmatori umani possono comprendere e articolare le regole in modo esplicito. È anche più facile da correggere e verificare. Richiede meno dati e risorse computazionali.

    • L'IA subsimbolica è efficace nella gestione di compiti complessi che coinvolgono grandi quantità di dati che prevedono un certo grado di incertezza. Inoltre, può imparare dai dati e adattarsi a nuove situazioni.

  • Limitazioni

    • Una delle sfide dell'IA simbolica è la sua dipendenza da regole create appositamente da umani. Lo sviluppo di insiemi di regole completi per compiti complessi può richiedere molto lavoro e non essere praticamente possibile. Inoltre, prevede un mondo privo di incertezza. Non generalizza bene a nuove situazioni e ambiti.

    • Una sfida con l'IA subsimbolica è spiegare e interpretare il loro funzionamento, affinché possano essere adottate in sicurezza. Richiede molti dati e risorse computazionali. Manca di capacità di ragionamento astratto e logico.

Nella ricerca e nelle applicazioni contemporanee dell'IA, si registra una tendenza crescente a combinare approcci simbolici e subsimbolici. I sistemi ibridi sfruttano i punti di forza di entrambi i paradigmi, consentendo soluzioni più flessibili e robuste. Ad esempio, un sistema potrebbe utilizzare una rete neurale per il riconoscimento dei pattern ricorrenti nei dati e un sistema di ragionamento simbolico per interpretare e spiegare le decisioni prese dalla rete neurale.

Requisiti software

Nell'approccio simbolico all'intelligenza artificiale, che si concentra sulla rappresentazione della conoscenza e sul ragionamento logico, i linguaggi di programmazione utilizzati per programmare sistemi esperti includono:

  1. Prolog: È uno dei linguaggi più noti e utilizzati in questo campo. Prolog (Programming in Logic) è basato sulla logica del primo ordine e permette di esprimere fatti e regole all'interno di un database, su cui poi eseguire query e inferenze.

  2. LISP (soprattutto Common Lisp e Scheme): È uno dei primi linguaggi di programmazione utilizzati in IA. LISP supporta la programmazione funzionale e simbolica ed è noto per la sua capacità di manipolare facilmente le strutture dati simboliche.

Nell'approccio subsimbolico all'intelligenza artificiale, che si concentra sull'apprendimento automatico e le reti neurali artificiali, i linguaggi di programmazione più utilizzati includono:

  1. Python: È il linguaggio più popolare per la programmazione di reti neurali artificiali, grazie alla sua sintassi semplice, leggibilità e la vasta gamma di librerie scientifiche e di apprendimento automatico come TensorFlow, Keras, PyTorch, e SciKit-Learn. Queste librerie forniscono strumenti e funzioni pre-costruite che facilitano la creazione, l'addestramento e la validazione di modelli di reti neurali.

  2. R: Anche se meno utilizzato rispetto a Python per le reti neurali, R è ancora scelto per analisi statistiche e modellazione predittiva, specialmente in ambiti accademici e di ricerca. Dispone di pacchetti come nnet e caret che supportano l'apprendimento automatico.

Requisiti hardware

Per i sistemi esperti nell'approccio simbolico all'intelligenza artificiale, l'hardware specifico non è generalmente richiesto. I sistemi esperti, essendo basati su regole e logica piuttosto che su calcoli matematici intensivi, possono funzionare efficacemente su hardware di calcolo generico ma con alte prestazioni in termini di velocità e memoria.

Viceversa, per implementare le reti neurali artificiali nell'approccio subsimbolico all'intelligenza artificiale, si utilizza spesso hardware specifico per migliorare l'efficienza e la velocità di addestramento e inferenza, ad esempio:

  1. GPU (Graphics Processing Unit): Le GPU sono ampiamente utilizzate per l'addestramento delle reti neurali grazie alla loro capacità di eseguire contemporaneamente molti calcoli in parallelo, rendendo l'addestramento più veloce rispetto all'uso di CPU tradizionali.

  2. TPU (Tensor Processing Unit): Sviluppate da Google, le TPU sono progettate specificamente per accelerare i calcoli necessari per l'apprendimento profondo. Il circuito è stato appositamente progettato per la libreria open source TensorFlow. Rispetto alle GPU, le TPU sono progettate per un elevato volume di calcoli a bassa precisione (ad esempio, precisione a 8 bit) con un maggior numero di operazioni di input/output per joule.

Last updated