Gli approcci computazionali in ambito AI si possono dividere, a grandi linee, in quattro paradigmi, considerabili anche come modelli concettuali in grado di descrivere un certo tipo di computazione. Ogni paradigma è basato su un meccanismo di calcolo ispirato all’intelligenza umana e comprende una famiglia di algoritmi con varie specializzazioni.
Tipologie più famose:
evolutionary algorithm;
fuzzy logic;
machine learning, comprendente neural network e deep learning;
expert system
EVOLUTIONARY ALGORITHM
Un algoritmo genetico è basato su metodi euristici di ricerca e sul principio della selezione naturale. È chiamato genetico perché utilizza criteri simili a quelli utilizzati nella genetica per spiegare l’evoluzione biologica delle specie. Si applica in problemi di ottimizzazione per cercare le soluzioni ottimali a problemi complessi, in cui la funzione obiettivo è discontinua e non lineare, per i quali è inefficace o dispendioso l’utilizzo degli algoritmi lineari classici. Non assicura l’individuazione di una soluzione ottimale, ma contribuisce a determinare un insieme di soluzioni superiori rispetto alle soluzioni di origine.
EXPERT SYSTEM
Un expert system (sistema esperto) è un programma che cerca di riprodurre le prestazioni di una o più persone esperte in un determinato campo di attività.
È formato da una base di conoscenza e da un motore inferenziale. Così, quando riceve una serie di fatti, è in grado di dedurre nuovi fatti. Può trovare la soluzione ottimale a un problema specifico, senza dover far intervenire una persona esperta sul tema oggetto del problema.
Un paragone molto generico può essere fatto con la mente umana e il suo modo di ragionare, caratterizzato dalla capacità di effettuare concatenamenti logici (inferenza) e dalla conoscenza relativa al problema specifico.
Per fare un esempio, se si deve calcolare l’area di un triangolo, non si fornisce la formula esplicita della geometria. Bisogna creare un sistema esperto in grado di ragionare sulla geometria piana, spiegargli il concetto di area e metterlo in grado di ricavare in modo autonomo l’algoritmo risolutore. Pertanto, deve fare dei ragionamenti sulle conoscenze di cui dispone al fine di costruire da solo una soluzione.
Può essere facile capire come avviene il passaggio dall’input all’output, e ciò potrebbe favorirne l’accettazione in certi contesti.
FUZZY LOGIC
La fuzzy logic (logica fuzzy) è una logica in cui si può attribuire a ciascuna proposizione un grado di verità compreso tra 0 e 1, quindi con una gamma di valori più ampia rispetto ai soli 0 e 1 tipici della logica booleana. Viene usata per gestire sistemi reali in cui bisogna prendere decisioni tramite un ragionamento approssimato per ordini di grandezza invece che per quantità definite, per esempio: sistemi di controllo, impianti industriali automatizzati, regolazione di una grandezza fisica ecc.
MACHINE LEARNING
L’apprendimento automatico (machine learning) permette di acquisire conoscenza tramite diverse forme di apprendimento derivate dall’esperienza, realizzate su tanti esempi di input e output, oppure solo input. Con varie forme di apprendimento si possono prevedere nuovi dati, suddividere i dati in classi, creare nuove classi, generalizzare creando nuovi dati in base a quelli già noti ecc.
Un paragone molto generico può essere fatto con la struttura del cervello umano, nel caso del particolare contesto delle reti neurali ispirate ai neuroni umani, una famiglia molto ampia di questa tipologia di algoritmi. In questo contesto, si è recentemente sviluppato l’apprendimento profondo (deep learning), grazie a reti neurali molto ampie, pertanto si tratta di un sottoinsieme delle soluzioni generiche di apprendimento automatico.
Per fare un esempio, se si deve calcolare l’area di un triangolo un algoritmo tradizionale esegue la moltiplicazione delle misure di base per altezza e divide per due, mentre in questo paradigma bisogna fornirgli tante coppie del tipo (misura della base, misura dell’altezza, area) e, dopo un po’ di tempo, il sistema fornisce aree anche per misure mai considerate, ma senza avere nessuna nozione del concetto di area del triangolo.
Dimostra prestazioni interessanti quando si conoscono le associazioni tra input e output ma non esiste un algoritmo esplicito per trasformare l’input in output; il sistema deve essere adattivo, quando la decisione deve essere presa all’istante e in tempo reale, quando esistono più fonti complesse e un’enorme quantità di dati relativi alle serie storiche, quando è richiesta la generalizzazione dell’osservazione. Purtroppo, non è facile capire come avviene il passaggio dall’input all’output, e ciò potrebbe portare a difficoltà di accettazione in certi contesti.
NEURAL NETWORK
Nel vasto campo del machine learning, le neural network sono vagamente ispirate alla rete formata da neuroni biologici esistente nel cervello umano, da cui il modello computazionale composto di neuroni matematici piuttosto semplici. La collocazione dei neuroni in vari livelli operanti in parallelo e gli algoritmi di ottimizzazione forniscono interessanti opportunità per risolvere problemi di classificazione e predizione. Esiste un’ampia gamma di modelli, in grado di apprendere dagli esempi forniti con o senza supervisione dell’esperto.
Essi hanno il grosso difetto di non essere spiegabili nel linguaggio simbolico umano; bisogna prendere i risultati senza comprendere fino in fondo perché sono stati generati in quel modo.
DEEP LEARNING
È possibile aumentare notevolmente il numero di neuroni, il numero di livelli, usare particolari funzioni di ottimizzazione fino a creare le neural network dotate di apprendimento profondo, radunate nel settore denominato deep learning, che pertanto è una sottocategoria del machine learning.
La possibilità di avere diversi livelli di rappresentazione, corrispondenti a una gerarchia di caratteristiche e concetti, permette di creare concetti di alto livello sulla base di quelli a livello più basso. Per esempio, un volto umano è un concetto ad alto livello formato da concetti più semplici come occhio, naso, bocca, che, a loro volta, sono descrivibili con colore, forma, posizione ecc. La complessità di realizzazione e l’alto numero di esempi richiesti si ripagano con l’ampia capacità di classificazione delle immagini, dei testi ecc.
REINFORCEMENT LEARNING
Il reinforcement learning (apprendimento per rinforzo) è una tecnica di apprendimento automatico che punta a realizzare agenti autonomi in grado di scegliere azioni da compiere per raggiungere obiettivi, tramite l’interazione con l’ambiente in cui sono immersi e una ricompensa che ha lo scopo di incoraggiare comportamenti corretti. Viene usato in problemi di decisioni sequenziali, in cui l’azione da compiere dipende dallo stato attuale del sistema e ne determina quello futuro. Per esempio, un robot in cerca di funghi si muove nel bosco sconosciuto cercando di recuperare i funghi verdi (che danno una ricompensa positiva) e di evitare i funghi rossi (che danno una ricompensa negativa).
Cit. ROBERTO MARMO, Algoritmi per l’intelligenza artificiale




Rispondi Citando
