sabato 27 maggio 2017

Intelligenza Artificiale: come funziona?



L’intelligenza artificiale è già intorno a noi in molti settori: dall’aeronautica al gaming, dal customer service ai mercati finanziari e ovviamente nelle linee produttive di alcune aziende. Lo sviluppo dell’intelligenza artificiale ha avuto una brusca accelerazione negli ultimi anni ed avrà conseguenze importanti in molti settori di business.

All’inizio l’intelligenza artificiale era innanzitutto una speculazione teorica e ruotava intorno alla domanda: “Le macchine possono pensare?”. Nel 1950 Alan Turing nel suo articolo "Computing Machinery and Intelligence" riformulò la domanda modificandola in modo significativo: "Le macchine sono in grado di imitare il comportamento intelligente di un essere umano?" (da qui il cosiddetto test di Turing ed il titolo del film "The imitation Game” del 2014).
Una definizione pragmatica di Intelligenza Artificiale prevede dunque la capacità di un computer di esibire comportamenti tipici della mente umana. In particolare un sistema intelligente deve essere in grado di elaborare conoscenze precedenti estrapolando le linee guida da utilizzare per risolvere con successo problemi che non ha mai affrontato.

Nel libro Artificial Intelligence: a modern approach di S.J. Russell (prima edizione con P. Norvig  del 1995, una vera bibbia dell'intelligenza artificiale) viene riportata una schematizzazione delle diverse aree applicative che costituiscono l’intelligenza artificiale.
Il tema è quanto mai ampio e complesso. Riporto di seguito una semplificazione di queste aree per fornire una prima base  per comprendere come funziona l’intelligenza artificiale.



Comunicare con linguaggio naturale
Un sistema intelligente è in grado di comunicare utilizzando un linguaggio naturale, cioè un linguaggio caratterizzato da una certa ambiguità intrinseca. Questo significa che il significato di ogni parola e frase può essere attribuito soltanto se il sistema è in grado di conoscere ed interpretare il contesto. Ad esempio la parola “dado” può significare dado da brodo, dado da gioco o dado per serrare le viti. Il corretto significato può dunque essere attribuito soltanto conoscendo il contesto del discorso.
Un agente intelligente in grado di utilizzare un linguaggio naturale può comunicare con le persone, con altri agenti intelligenti e può effettuare ricerche su internet.

Percepire
Un agente intelligente è in grado di rilevare informazioni dall’ambiente circostante tramite sensori di diverso tipo e di utilizzare i nuovi dati per migliorare la propria conoscenza dell'ambiente.

Rappresentare la conoscenza
Un agente intelligente è in grado di rappresentare oggetti, azioni, concetti e le rispettive relazioni. Conosce inoltre le regole per manipolarli, per inferire ragionamenti e per ampliare la propria conoscenza.
Un esempio ci viene dalle reti semantiche nelle quali i vertici rappresentano oggetti o concetti e sono collegati tra loro da legami semantici. Si possono allora costruire sillogismi ed altri ragionamenti logici semplicemente navigando la rete.



Pianificare i risultati delle azioni
I sistemi intelligenti sono in grado di comprendere i propri obiettivi, di prevedere gli stati futuri del loro universo conosciuto e di prendere decisioni al fine di raggiungere gli stati futuri maggiormente desiderabili, pianificando dunque le proprie azioni in modo da massimizzarne il “valore”.

Gestire l’incertezza
Gli ambienti dove gli agenti intelligenti operano, sono spesso estremamente complessi e prevedono la presenza contemporanea di più attori che agiscono in modo indipendente ed imprevedibile. In queste condizioni i sistemi intelligenti devono essere in grado di rappresentare l’incertezza, di prendere decisioni che ne tengano conto e che massimizzino la probabilità di raggiungere l’obiettivo desiderato, evitando allo stesso tempo i comportamenti con rischi troppo elevati.

Imparare (machine learning)
La definizione più pragmatica di machine learning è stata data da Tom M. Mitchell nel libro "Machine Learning" (1997). Semplificando la sua definizione formale si può dire che "un programma apprende se le sue performance migliorano con l'esperienza".
L'apprendimento automatico si basa sulla costruzione di algoritmi che possano riconoscere degli schemi in un insieme di dati e di comportamenti e sappiano quindi costruire in modo induttivo un modello in grado di "riconoscere" nuovi dati, adeguando in modo coerente il proprio comportamento.

Esistono due metodi fondamentali con i quali le macchine possono imparare:
  • Supervised learning: al sistema intelligente vengono forniti ingressi e corrispondenti uscite in modo che l’agente possa costruire euristicamente la funzione che trasforma gli ingressi in uscite. In questo modo al ricevimento di un ingresso mai ricevuto in precedenza, il sistema sarà in grado di determinarne l’uscita (un esempio è la classificazione di diversi input in classi predefinite dall'utilizzatore),
  • Unsupervised learning: al sistema intelligente vengono forniti soltanto dati di input tra i quali l'agente individua pattern e correlazioni (un esempio è il raggruppamento di diversi input in "gruppi" non definiti a priori dall'utilizzatore).

Per il continuo miglioramento del processo di apprendimento si possono utilizzare tecniche di:
  • Apprendimento per rinforzo: il sistema intelligente produce un output sulla base dell'input ricevuto, vi è poi un algoritmo in grado di misurare la bontà del risultato ottenuto assegnando una ricompensa o una punizione. Il sistema intelligente adatta quindi il proprio comportamento con l'obiettivo di massimizzare le proprie ricompense.
  • Deep learning: diversi meccanismi di apprendimento sono posti uno “sopra” l’altro, in modo che ognuno possa apprendere dai risultati del precedente. In questo modo si possono ottenere livelli di astrazione crescenti e conoscenze sempre più complesse.
Agire
La conoscenza permette di prendere decisioni, che nel caso dei robot diventano azioni. I robot devono dunque sapersi muovere in ambienti complessi ed interagire con oggetti diversi (e nuovi) ed in continuo movimento.

Questa schematizzazione è parziale, sintetica e semplificata, ma vuole essere un primo passo verso la comprensione del funzionamento dell'intelligenza artificiale, allo scopo di individuarne le possibili applicazioni nel mondo del business.

lunedì 15 maggio 2017

Creare valore con l'Internet of Things

Con l’arrivo dell’internet of things ogni prodotto può avere una propria vita sul web ed essere il nodo di un ecosistema in grado di gestire informazioni, anche complesse. 
L’introduzione di questa nuova tecnologia costituisce l’opportunità di creare più valore per i clienti e richiede alle imprese un cambiamento del modello di business. L’interazione tra cliente, prodotto ed azienda si protrae infatti nel tempo: ogni volta che il cliente utilizza un prodotto interconnesso, l’azienda viene coinvolta e deve “reagire”. Immaginiamo l’esempio, ormai classico, del termostato che impara: il produttore registra continuamente i dati sulla temperatura reale e desiderata in casa ed ogni volta che l’utilizzatore effettua una regolazione, l’azienda (un algoritmo) viene coinvolta e sceglie la strategia migliore per realizzarla.

Per la maggior parte delle imprese la vera sfida dell’IoT non è dunque tecnologica, ma è la ricerca di nuovi modi di creare valore per gli utilizzatori e di proporli attraverso business model adeguati.

Sulla base dell’esperienza fatta con alcuni progetti in settori diversi, riporto qui alcuni “paradigmi” a cui ispirarsi nella ricerca di modi di creare valore mediante l’interconnessione. Un’impresa che voglia avvicinarsi all’internet of things può provare ad immaginare se i propri prodotti possono:
  • Raccogliere informazioni: raccogliere dati istantanei sul funzionamento e/o sulla posizione e sullo stato dei prodotti e/o dell’ambiente circostante e riproporli sottoforma di grafici, mappe o altri strumenti che aiutino a comprendere meglio le modalità di utilizzo del prodotto (es. strumenti che registrano i dati di allenamento e li ripropongono su un portale o li condividono sui social),
  • Essere monitorati da remoto: raccogliere dati istantanei sul funzionamento e/o sulla posizione e sullo stato dei prodotti e/o dell’ambiente circostante ed effettuare il monitoraggio remoto del prodotto (es. manutenzione programmata basata sull'effettivo utilizzo),
  • Fornire informazioni durante il funzionamento: fornire suggerimenti sull’utilizzo dei prodotti basati sull’effettivo utilizzo e/o sullo stato attuale del prodotto e/o dell’ambiente (es. navigatore satellitare),
  • Essere comandati da remoto: eseguire tutte le funzioni di comando e regolazione da remoto (es. regolazione remota della temperatura),
  • Connettere più utenti: fornire informazioni istantanee a diversi utilizzatori che possano collaborare per il raggiungimento dell’obiettivo (ad es. sistema di allenamento che fornisca dati al preparatore atletico, che a sua volta possa modificare la resistenza o le regolazioni dell’apparecchio per ottimizzare l’allenamento),
  • Far giocare più utenti: connettere utenti che svolgono gli stessi compiti ed organizzare delle competizioni (ad es. conoscere i tempi e la posizione di tutti i ciclisti che in un determinato momento stanno facendo il mio stesso percorso),
  • Imparare dall’esperienza: interpretare le esigenze dell’utilizzatore e modificare il proprio comportamento sulla base dei risultati ottenuti nel passato in situazioni simili (ad es. termostato che impara a regolare la temperatura sulla base delle caratteristiche dell'ambiente e le abitudini dell'utilizzatore),
  • Imparare dall’esperienza condivisa: poter accedere alle informazioni su comportamenti e risultati ottenuti da prodotti simili in altri contesti (ad es. macchine utensili che imparano le regolazioni da altre macchine simili),
  • Automatizzare processi: ottimizzare processi sulla base di informazioni e decisioni locali (ad es. frenata automatica in caso di pericolo),
  • Collaborare: collaborare con altri prodotti intelligenti inviando e ricevendo richieste di modificare il proprio comportamento (ad es. smart grid per la distribuzione dell’energia elettrica).
Provare ad applicare questi modelli ai propri prodotti è spesso un punto di partenza efficace per immaginare come rendere più intelligenti i propri prodotti.

lunedì 1 maggio 2017

10 domande per sviluppare prodotti desiderabili

La scelta di un prodotto o di un servizio da parte dei clienti è un processo in gran parte inconscio, che coinvolge aspetti razionali ed emozionali. La valutazione si basa sia su aspetti tangibili (oggettivi, misurabili), che su aspetti intangibili (soggettivi, non misurabili).
Riprendendo e combinando numerosi studi e teorie (tra tutti cito: Emotional Design di Donald Norman, The meaning of things di Mihaly Csikszentmihaly, Jobs to be done: theory and practice di Anthony Ullwick), ho provato a riassumere le domande fondamentali che ognuno di noi si pone al momento di acquistare un prodotto o un servizio. 
Il processo di valutazione non è sequenziale e strutturato, ma le domande sono valide per ogni tipo di prodotto e di mercato. L’importanza relativa delle domande varia a seconda dei prodotti e dei potenziali acquirenti.

Ecco le domande che utilizziamo per valutare i prodotti e servizi:
  • Mi stupisce? L’attenzione è una risorsa scarsa, che viene dedicata soltanto ai prodotti che in qualche modo ci meravigliano. I prodotti “banali” rischiano infatti di non essere nemmeno presi in considerazione per una valutazione seria.
  • Mi serve? I prodotti aiutano gli utilizzatori a raggiungere i propri obiettivi: se voglio piantare un chiodo, mi servirà un martello. I prodotti vengono infatti scelti sulla base delle funzioni che possono eseguire.
  • Funziona bene? Quando acquista un prodotto, ogni cliente si chiede se sta scegliendo qualcosa che sarà veramente efficace, facile da utilizzare, sicuro ed affidabile.
  • Mi piace? Se sul mercato sono disponibili almeno due prodotti che svolgono le stesse funzioni in modo comparabile, la scelta si sposta sugli aspetti emozionali. Tutti noi cerchiamo infatti di acquistare prodotti belli da guardare, piacevoli da utilizzare e che ci facciano “stare bene”.
  • Che cosa dice di me? Ogni prodotto è anche inevitabilmente un “segno”, che comunica qualcosa di noi agli altri e che noi utilizziamo (consciamente o inconsciamente) per rappresentare noi stessi nella società.
  • Che cosa evoca? Per come funziona la nostra mente, ogni stimolo (quindi anche ogni prodotto) viene ricollegato ad esperienze pregresse per essere collocato nel nostro sistema di conoscenza. I prodotti che colleghiamo ad esperienze e conoscenze positive acquistano per noi più valore. Un esempio evidente di questo processo sono i souvenir che acquistiamo durante i viaggi e che hanno spesso soltanto valore evocativo.
  • È coerente con i miei valori? Indipendentemente da leggi, principi e religioni, ognuno di noi ha il senso di che cosa è giusto e che cosa è sbagliato. I prodotti che utilizziamo devono essere coerenti con il nostro senso di giustizia. In questi ultimi anni ad esempio la sostenibilità dei prodotti è un elemento sempre più importante nelle decisioni d’acquisto.
  • Come entrerà nella mia vita? Sarà un prodotto “impegnativo”, che dovrò tenere con me molti anni e che richiederà molta manutenzione (ad esempio una casa) oppure sarà un prodotto “leggero”, che non richiederà molto impegno e non mi porrà vincoli. È evidente che più un prodotto è leggero, più facile sarà la decisione di acquistarlo.
  • Che cosa rischio? I prodotti che acquistiamo devono essere rassicuranti verso quello che è importante per noi: la salute, le proprietà, ma anche le abitudini e le idee.
  • Posso permettermelo? Il prezzo non è mai il primo elemento di valutazione di un prodotto. La risposta positiva alle domande precedenti può infatti alzare significativamente la soglia oltre la quale decidiamo che il prodotto sia troppo costoso per noi.

Conoscere questi elementi di valutazione aiuta le imprese ad ideare e sviluppare prodotti e servizi desiderabili.