Rivista #229: “Sensori e Intelligenza Artificiale”

Tra i contenuti del fascicolo 229 (Ottobre 2018), attualmente in edicola, c’è anche la prima puntata di una panoramica sulle soluzioni adottate nell’interazione tra robot e ambiente e integrate nel concetto di Machine Learning e in quello più ampio di Intelligenza Artificiale.

I robot amatoriali o didattici ed in particolare quelli semoventi (detti “rover”) utilizzano, per muoversi autonomamente nell’ambiente, sensori che comunemente sono del tipo con uscita digitale; con questo termine intendiamo che forniscono un’informazione sulla semplice presenza o assenza di ostacoli, quindi non sulla distanza da essi. Con questo tipo di interazione con l’ambiente, l’algoritmo di guida difficilmente può avvicinarsi ad un approccio AI (Artificial Intelligence, ovvero Intelligenza Artificiale), rimanendo piuttosto nell’ambito della programmazione tradizionale. Per chiarire questa premessa occorre tentare di schematizzare la natura della AI, per cui introdurremo brevemente questo concetto di cui ultimamente si parla tanto.

INTELLIGENZA ARTIFICIALE: COS’È?

Tutti sanno che un computer può essere idealizzato come uno scatolotto che riceve dei dati, da tastiera o tramite la selezione con il mouse, e produce il risultato dell’elaborazione di questi dati su schermo o stampante. In questo tipo di utilizzo l’essere umano, che inserisce i dati e riceve il risultato, è la fondamentale interfaccia del computer.

Ma in diverse situazioni è possibile, ed anche più utile, eliminare questa mediazione umana e far agire il computer sulla base di input raccolti direttamente dall’ambiente. In questo caso, in genere, il computer produrrà un output che agirà sull’ambiente e l’uomo sarà solo uno spettatore che ne raccoglie i risultati in termini di modifiche fatte alla sua realtà. In genere è proprio questo il futuro immaginato, dall’informatica e dall’elettronica, per il computer. Non è un caso se ultimamente l’elettronica si è molto concentrata sulla produzione di sensori ed attuatori. Un sistema autonomo di questo genere dovrà, per definizione, essere “intelligente”, nel senso che dovrà comportarsi in maniera tale da raggiungere uno scopo per il quale è stato creato.

Concentriamoci ora sull’algoritmo che lega funzionalmente l’output all’input di un sistema intelligente autonomo. La capacità di soddisfare più o meno bene gli obiettivi, a prescindere dalla variabilità dell’input, definisce il grado di “intelligenza” dell’algoritmo. In realtà anche un algoritmo molto sofisticato non può ovviare ad una povera qualità dell’input e, in seconda battuta, ad una scarsa qualità dell’output.

Questo vale anche per l’uomo, dove la deprivazione sensoriale non permette uno sviluppo adeguato o confonde il comportamento di un adulto. Viceversa, un sistema sensoriale sofisticato necessita di un algoritmo sofisticato per esprimere bene le potenzialità del sistema autonomo.

Ecco che un input digitale ON/OFF non permette un comportamento particolarmente intelligente ed occorre passare almeno a sensori con risposta continua (para-analogica). Nel caso di sistemi autonomi semoventi, per esempio, un sensore di valori di distanza su diversi angoli è il minimo necessario per semplici compiti di orientamento e ricerca; ma avendo un tal genere di sensori, sorge subito il problema di interfacciarli con un algoritmo che gira su un elaboratore digitale.

Dunque, come gestire questa ricca quantità di informazioni?

Non sono praticabili serie infinite di “if … then” e perciò occorre utilizzare altri paradigmi. Ed è qui che si comincia a parlare di Intelligenza Artificiale.

Occorre innanzitutto fare una distinzione di base fra questi due tipi di algoritmi: algoritmi programmati ed algoritmi che imparano.

Addestramento supervisionato

ALGORITMI PROGRAMMATI

I sistemi a logica fuzzy sono algoritmi che in un certo senso fanno in modo da adattare la sensoristica continua al mondo digitale del computer. La logica fuzzy se la cava simulando un computer virtuale con logica non booleana ma continua, ovvero facendogli trattare variabili che possono avere un grado di verità continuo tra 0 ed 1 (vedi rivista 169). È stata utilizzata con successo anche nei microcontrollori, perché permette di gestire sensori continui in modo efficiente anche con hardware limitato.

Tale tecnica è il modo più semplice per realizzare, ad esempio, sistemi di controllo automatico semplificati o per comandare robot semoventi con sensori complessi e a risposta continua.

Siamo dunque entrati nel campo dell’AI? Non è detto, perché dipende dalla complessità dell’algoritmo che utilizza la fuzzy logic. Definire il settore dell’AI è infatti complesso. In prima approssimazione, possiamo dire che un sistema rientra nell’AI se il suo comportamento simula il comportamento umano (vedi “Test di Turing”). Ma a questo punto si tratta di definire il “comportamento umano”.

Ce la possiamo cavare affermando che un comportamento umano è sostanzialmente adattativo, cioè capace di adattare la propria risposta al variare della risposta ambientale. Esempi di applicazioni di AI, sono i sistemi esperti e i programmi di esplorazione euristica; si tratta di algoritmi che trattano comunque dati digitali, quindi poco adatti a a gestire sensori che forniscono segnali analogici. I sistemi esperti tentano di simulare il comportamento di un essere umano descrivendo una grande serie di regole (booleane del tipo “if … then” dette “basi della conoscenza”), ricavate interpellando gli esseri umani per ogni possibile situazione di input. Chiaramente questo approccio è limitato ad argomenti molto circoscritti della realtà ed è stato uno dei primi tentativi di AI che ha ottenuto qualche significativo risultato ma che ormai è in fase di superamento. Gli algoritmi euristici hanno ambiti ristretti e specialistici come per esempio i programmi di gioco.

L’articolo prosegue con i seguenti argomenti:

ALGORITMI CHE IMPARANO

APPRENDIMENTO SUPERVISIONATO

APPRENDIMENTO NON SUPERVISIONATO

SENSORI TOF

SENSORI LIDAR

Nel prossimo articolo cominceremo ad affrontare la problematica partendo da sistemi leggeri da utilizzare su hardware limitato come Arduino, fino ad impegnare le maggiori capacità di calcolo presenti in Raspberry Pi. In particolare, nel prossimo articolo, parleremo di Reti Neurali e di una semplice realizzazione per guidare un rover come Ardusumo.

L’articolo completo è pubblicato sul numero 229, Ottobre 2018, acquistabile in tutte le edicole.

 

 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Main Menu