Sistemi adattivi e Situational Awareness

27/09/21

Il mondo cambia ad una velocità incredibile... in tutti i settori. 

Cosa direste se da un giorno all'altro non doveste più perdere tempo a capire le modifiche apportate dal produttore del foglio di calcolo che utilizzate per tenere la contabilità del vostro negozio? 

Che direste se di colpo non doveste più preoccuparvi del passaggio al nuovo Sistema Operativo Microsoft o alla nuova versione di Linux o al nuovo software di controllo della vostra lavasciuga intelligente?

Per essere chiari, non dico che non ci sarebbero più varianti o modifiche nei sistemi, soprattutto quando queste sono legate ad aspetti di sicurezza o a incrementi di funzionalità, parlo di quelle varianti che consistono nello spostamento di un pulsante o di una funzione da un menù ad un altro o della modifica del simbolo o della descrizione di un pulsante o alla visualizzazione di una finestra in basso a destra o in alto a sinistra... Parlo di tutte quelle varianti che, per chi non ha voglia o tempo da perdere, sono assolutamente deleterie e spesso non fanno altro che creare disamoramento verso il prodotto proprio da parte di chi quel prodotto lo impiega... magari da anni!

Se volessimo tradurre la domanda utilizzando il linguaggio scientifico potremmo dire: "Perché i sistemi informatici che utilizziamo non sono adattivi?", ed in questo contesto intendo dire che i sistemi informatici dovrebbero essere capaci di adattarsi all'utente o, ancora meglio, che Sistema Informatico e utente dovrebbero divenire un sistema adattivo.

Per far ciò, a mio parere, le tecnologie già esistono. Nel mondo dei videogames, per esempio, da tempo si fa uso dell'Intelligenza Artificiale per "adattare" la difficoltà del gioco al giocatore. Ma io parlo di altro.

L'Intelligenza Artificiale, sempre più diffusa, prima o poi comincerà ad essere parte dei sistemi informatici di base, come i sistemi operativi. 

Nel mio sistema ideale sarà suo il compito di studiare il mio comportamento, studiare le modifiche apportate nel tempo ai software che impiego e propormi, oppure no, spiegarmi o meno, l'utilità della nuova funzione. In pratica il sistema operativo dovrà prendersi cura di me (come utente) e adattare i sistemi che impiego al mio sistema di conoscenze in base all'uso che ne faccio.

Il secondo concetto importante che emerge è quello di situational awareness, che detto in italiano sarebbe consapevolezza della situazione. 

Il termine "Situational awareness" è di solito impiegato per descrivere lo stato di conoscenza e consapevolezza di una persona o di una organizzazione riguardo un determinato argomento o situazione operativa in un tempo ben preciso e riguardo degli obiettivi ben stabiliti. 

Nel caso specifico, dato che richiedo che il Sistema Operativo (messo a sistema con me in qualità di utente) sia un sistema adattivo presuppongo che il Sistema Operativo sia dotato di capacità di situational awareness, ovvero sia capace di creare e mantenere una certa conoscenza e consapevolezza relativa all'uso che l'utilizzatore (io) fa del sistema e dei software installati.

Per fare un esempio chiaro supponiamo che io sia l'unico utente di un computer portatile sul quale ho installato solo il Sistema Operativo (che chiamo WinAI giusto per dargli un nome), un browser per la navigazione su internet, un editor di testi e un antivirus. 

Il mio sistema operativo, l'amico fedele WinAI, comincia a studiare il mio comportamento dal momento stesso in cui accendo per la prima volta il pc e si fa un'idea di come io mi comporto, "registrando" nella sua "rete neurale" le mie abitudini, le mie interazioni con i software, le mie abitudini di navigazione, gli orari, la frequenza con cui utilizzo il tasto "enter" mentre digito un testo, la lunghezza delle frasi ma anche come mi comporto di fronte ad una nuova versione del mio browser o dell'antivirus. 

Dopo un breve periodo di apprendimento, il mio fedele WinAI dovrebbe, teoricamente essere pronto a suggerirmi delle scelte, influenzando così il mio comportamento, ma anche a prendere lui stesso delle decisioni sulla base della conoscenza di me che ha acquisito. Grazie alla conoscenza dei programmi che sono installati (e con i quali colloquia continuamente) dovrebbe anche essere in grado di aiutarmi, semplificandomi la vita, qualora si rendesse conto (e qui rientra il concetto di Situational Awareness applicato stavolta alla AI del mio sistema operativo) che io non voglio modificare il mio comportamento o che il periodo di adattamento al nuovo sistema potrebbe comportare un calo di produttività o semplicemente dello stress aggiuntivo.

Naturalmente sto semplificando molto. In effetti il sistema adattivo come è facile capire, comprende anche me come utente e tanti altri "oggetti" o "entità" che in qualche modo interagiscono col sistema stesso.

È chiaro che a raccontarla così sembra tutto facile, ma non è così e non è neppure detto che lo sarà mai. Vi sono dietro diversi tipi di motivazioni. 

Una di queste riguarda la sicurezza di un tale sistema, lasciata in fin dei conti, nelle mani di una WinAI qualunque, di cui sappiamo veramente troppo poco e sul quale la nostra capacità di controllo sarebbe molto bassa. La sicurezza (intesa come security e come safety) di un tale sistema sarebbe veramente molto difficile da gestire, in primo luogo perché tanto più è complesso un sistema tanto più è estesa la superficie di attacco, in secondo luogo perché una AI può essere soggetta a sua volta ad attacchi. Supponiamo che il mio carissimo tutor WinAI si accorga che in un certo momento io sono molto stressato (e come abbiamo visto è capace di farlo) e, all'arrivo di una comunicazione importante, magari l'annuncio di un incidente ad un parente, decida di non avvisarci in quanto ciò aumenterebbe il nostro livello di stress. Come prenderemo una simile ingerenza nella nostra vita privata? Oppure, per tornare a cose più semplici, supponiamo che l'antivirus richieda un aggiornamento di sicurezza di un nuovo tipo, non ancora catalogato da noi e quindi non conosciuto neppure dalla nostra WinAI. Supponiamo ora che sulla base del nostro comportamento abituale riguardo gli aggiornamenti software la nostra WinAI decida di non procedere perché tale aggiornamento stravolge soprattutto (secondo la sua esclusiva valutazione) l'aspetto grafico dell'interfaccia e non sia dunque rilevante. E che questa catena di eventi risulti infine causa di compromissione del sistema. Come la prenderemo? Come la prenderebbe un responsabile della sicurezza dell'azienda presso la quale lavoro? 

Un'altra motivazione è probabilmente legata alla imprevedibilità dell'utente, che in taluni momenti si comporta in un certo modo mentre in altri, sottoposto a spinte emotive o a stress, si comporta diversamente. Il nostro amico WinAI, dovrebbe conoscerci veramente molto bene per prendere delle decisioni che realmente ci agevolino e, forse, nessuno vorrebbe che una AI ci conoscesse troppo bene, anche perché fondamentalmente siamo degli esseri sospettosi e in fondo in fondo ci piace tenere dei segreti per noi.

In ogni caso, sempre dal punto di vista teorico, le tecnologie per fare queste cose già esistono, occorre solo capire se qualcuno le sta già usando per creare dei Sistemi Operativi adattivi, sempre che sia ciò che vogliamo, almeno in determinati settori.

Alessandro Rugolo

Vignetta: Simone Domini

Per approfondire:

Adaptive Systems - an overview | ScienceDirect Topics

(PDF) Endsley, M.R.: Toward a Theory of Situation Awareness in Dynamic Systems. Human Factors Journal 37(1), 32-64 (researchgate.net)