16287 Letture
Intelligenza artificiale, cos'è e qual è la differenza con il machine learning

Intelligenza artificiale, cos'è e qual è la differenza con il machine learning

Quali sono le principali differenze tra intelligenza artificiale e machine learning? Cosa sono le reti neurali e che cos'è il deep learning?

L'intelligenza artificiale (o IA, nella sigla che si utilizza nella nostra lingua) è una disciplina appartenente all'informatica che studia i fondamenti teorici, le metodologie e le tecniche che consentono la progettazione di sistemi hardware e sistemi di programmi software capaci di fornire all’elaboratore elettronico prestazioni che, a un osservatore comune, sembrerebbero essere di pertinenza esclusiva dell’intelligenza umana.

La definizione è di Marco Somalvico, ingegnere e docente presso il Politecnico di Milano, una delle figure che in Italia si è maggiormente occupato di intelligenza artificiale e, nello specifico, di risoluzione automatica dei problemi, riconoscimento del linguaggio naturale, sistemi di visione, sistemi a molti agenti intelligenti.

Sull'intelligenza artificiale si iniziò a lavorare già dagli anni '40 e i ricercatori si mostrarono forti di grandi aspettative fino agli anni '70 quando cominciarono a incontrare serie difficoltà e gli investimenti vennero fortemente ridotti.


Intelligenza artificiale, cos'è e qual è la differenza con il machine learning

Da allora iniziò un lungo periodo conosciuto come l'"inverno dell'intelligenza artificiale": nonostante alcuni grandi successi come il sistema Deep Blue di IBM che a fine anni '90 sconfisse l'allora campione del mondo di scacchi Garri Kasparov, lo studio di soluzioni per l'intelligenza artificiale è tornato d'attualità solamente da qualche anno.
Il mondo della tecnologia, però, è cambiato radicalmente rispetto a fine anni '90 ed è stato quindi necessario coniare nuovi termini.

Molti dei nuovi termini si trovano per esempio nello studio pubblicato da Gartner - società di consulenza, ricerca e analisi nel campo dell'Information Technology (IT) - e consultabile a questo indirizzo.
L'Hype Cycle di Gartner fotografa graficamente la maturità, l'adozione e l'applicazione di specifiche tecnologie.
Con l'indicazione Technology Trigger si fa riferimento a tutte quelle tecnologie che sono "potenzialmente dirompenti" ma per le quali, in molti casi, non si hanno ancora prove circa la loro validità commerciale.
Nella zona del grafico denominata Peak of Inflated Expectations si trovano quelle innovazioni in cui si sono riposte grandi aspettative e per le quali si sono registrate molti casi di successo (ma anche imprese che sono fallite).
Nel Trough of Disillusionment gli analisti di Gartner annoverano quelle tecnologie che non hanno al momento prodotto i risultati sperati (momento della "disillusione").
Con Slope of Enlightenment, invece, ci si riferisce a quelle tecnologie che iniziano a diffondersi anche grazie alla consapevolezza di come esse possano portare un reale vantaggio.
Infine, in corrispondenza di Plateau of Productivity vengono inserite quelle tecnologie che iniziano a produrre frutti anche sul mercato di massa.

Intelligenza artificiale, cos'è e qual è la differenza con il machine learning

Come si può verificare nel grafico (Hype Cycle), il machine learning è in cima al Peak of Inflated Expectations: ciò significa che siamo arrivati ormai a un "punto di non ritorno". Su queste tecnologie hanno investito moltissimo tutti i principali player e, a questo punto, ci si aspetta il lancio di prodotti e servizi concretamente utilizzabili o scatterà il momento della disillusione.

Cos'è il machine learning e quali le differenze rispetto all'intelligenza artificiale

Nonostante fosse stato coniato a fine anni '50, il termine machine learning è ad oggi quello più "popolare".

Quando si usa l'espressione machine learning ci si riferisce a un sottoinsieme dell'intelligenza artificiale in cui il software analizza i dati, ne riconosce le caratteristiche e "impara" dal loro esame. La macchina può così stabilire legami fra i dati e fare delle predizioni senza essere espressamente programmata per compiere queste attività.
In italiano il termine machine learning è tradotto come apprendimento automatico ma di solito si preferisce ricorrere all'espressione inglese.

Il machine learning viene usato in quegli ambiti e in quelle applicazioni pratiche in cui progettare e programmare algoritmi espliciti è impraticabile: la macchina riesce quindi a costruire in modo induttivo un modello basato su dei campioni riuscendo così anche a prendere delle "decisioni".
Non bisogna necessariamente pensare alla robotica, alla guida autonoma o alle partite vinte da DeepMind (L'intelligenza artificiale di Google batte i campioni di Go) quando si parla di machine learning: questi sistemi di apprendimento automatico possono essere utilizzati anche per combattere lo spam (riconoscendo più efficacemente le email indesiderate), per rilevare i tentativi di intrusione in una rete informatica, per migliorare le abilità nel riconoscimento ottico dei caratteri (OCR), per la visione artificiale e gli stessi motori di ricerca ne fanno ampiamente uso per proporre agli utenti risultati ancora più pertinenti analizzando il significato (semantica) dell'interrogazione.

Commercialmente, quando ci si riferisce al machine learning, si usa spesso il termine analisi predittiva per riferirsi ai meccanismi che, esaminando fatti storici e attuali, fanno predizioni sul futuro o su eventi sconosciuti.
L'analisi predittiva consente di estrapolare dai dati (anche "big data") informazioni utili anche per il proprio business (ne abbiamo parlato, ad esempio, negli articoli Azure: machine learning, analisi dei dati anche in tempo reale e big data e Azure e Power BI per la visualizzazione dinamica e interattiva dei dati).


Altri esempi di esperimenti e progetti che sono stati condotti, ad esempio, da Google sul versante del machine learning sono descritti in queste pagine.

Com'è noto, il machine learning è poi già entrato a far parte di Windows 10 con l'assistente digitale Cortana: Cortana ricorderà gli appuntamenti leggendo gli impegni presi via email.

Molto interessante anche il traguardo raggiunto nei laboratori Microsoft: Microsoft, riconoscimento vocale preciso come quello umano.

Cos'è il cognitive computing

Altro termine molto "in voga" è cognitive computing.
Si utilizza per riferirsi a quegli algoritmi che permettono di abilitare funzionalità di intelligenza artificiale per visione, sintesi vocale, linguaggio e conoscenza all'interno delle varie applicazioni.

Cognitive computing è un'espressione piuttosto cara a IBM che circa sei anni fa presentò il suo sistema Watson, capace di far segnare la vittoria dell'intelligenza artificiale su quella umana nel corso del popolare gioco a quiz americano Jeopardy.

Alcuni esperti non gradiscono usare questo termine perché implica un sistema di ragionamento simile a quello umano quando, in realtà, non è direttamente paragonabile ai meccanismi che governano il funzionamento del nostro cervello.
Di fatto, però, i sistemi di cognitive computing si rivelano estremamente versatili e possono essere adattivi, interattivi, iterativi e contestuali.
Nel primo caso, "la macchina" evidenzia un processo simile a quello dell'apprendimento mano a mano che le informazioni disponibili cambiano e vengono forniti nuovi campioni di dati.
I sistemi interattivi riescono a interagire con gli utenti in maniera piuttosto naturale per questi ultimi: possono altresì interagire con altre macchine appoggiandosi eventualmente a servizi cloud.
Il cognitive computing iterativo, invece, può aiutare nella definizione e nella risoluzione di un problema per successivi passaggi. Grazie a un'impostazione di tipo stateful, il sistema ha memoria su ciò che è accaduto in precedenza e può così restituire le informazioni più utili in un determinato momento.
Infine, i sistemi contestuali sono abili nel "comprendere", individuare ed estrarre elementi come il significato di una frase, la sintassi, il tempo, la posizione geografica, il profilo dell'utente, attività e obiettivi da perseguire. Questo tipo di strumenti cognitivi possono servirsi di una molteplicità di sorgenti di informazione, contenenti sia dati strutturati che non strutturati, così come i dati provenienti da sensori di vario genere.


Di recente abbiamo visto un esempio di servizi cognitivi che possono essere usati da qualunque utente senza installare nulla in locale. Si tratta dei Cognitive Services della piattaforma Azure (Applicazioni più intelligenti con Azure Cognitive Services e Bot Framework): essi permettono di attivare funzionalità di riconoscimento dei volti, del testo in linguaggio naturale, del parlato, delle immagini appoggiandosi alle risorse computazionali disponibili sul cloud.

E le reti neurali?

Una rete neurale artificiale può essere pensata come una forma di machine learning progettata per replicare i principi con cui funzionano i neuroni del cervello umano.

Nell'ambito dell'apprendimento automatico, una rete neurale è un modello matematico-informatico chiamato a risolvere problemi ingegneristici in diversi campi applicativi. Si riesce così a creare un sistema adattivo che cambia la sua struttura basandosi sul flusso di informazioni esterne o interne che scorre attraverso la rete durante la fase di apprendimento.

Le reti neurali sono strutture non lineari utilizzabili per simulare relazioni complesse tra ingressi e uscite che altre funzioni analitiche non riescono a rappresentare.
I segnali esterni vengono trattati ed elaborati da un insieme di noti d'ingresso, a loro volta collegati con molteplici nodi interni (organizzati a livelli): ciascun nodo elabora i segnali ricevuti e trasmette il risultato ai nodi successivi.

Dal momento che le reti neurali sono addestrate utilizzando dati, le connessioni fra i neuroni vengono così rafforzate e l'output va via a via a formare pattern ossia schemi ben definiti utilizzabili dalla macchina per prendere decisioni.

Largamente accantonate durante l'"inverno dell'intelligenza artificiale", le reti neurali sono oggi al centro della maggior parte di progetti incentrati su intelligenza artificiale e machine learning in particolare.


Nell'articolo Traduttore Google, al debutto l'utilizzo delle reti neurali abbiamo visto proprio come Google abbia recentemente fatto ricorso alle reti neurali per migliorare il comportamente sul suo traduttore online.
Esempi come quelli descritti negli articoli L'intelligenza artificiale Google ha inventato una sua lingua e L'intelligenza artificiale Google crea un sistema di cifratura ben evidenziano come una rete neurale possa "godere di vita propria" portando a risultati e scoperte che non ci si sarebbe immaginati nella fase di progettazione.

Che cos'è il deep learning

È forse il "tema più caldo" del momento. Utilizzando il termine deep learning ci si riferisce, nella maggior parte dei casi, a più livelli di reti neurali combinati assieme.
Il deep learning trae vantaggio dall'utilizzo della potenza di calcolo delle moderne GPU e dai servizi cloud che permettono di svolgere compiti complessi sfruttando la potenza computazionale offerta dai provider.

Microsoft con Azure, Amazon con AWS e Google con la sua Cloud Platform offrono framework per il deep learning anche agli utenti finali.

Lo strumento ad oggi più evoluto è considerato Google TensorFlow, software che funge da "cuore pulsante" per tutti i servizi e le applicazioni Google che usano il deep learning: vedere Google spinge sul machine learning con il chip TPU e Machine learning: Google presenta TensorFlow.


Google ha anche presentato un corso avanzato (gratuito) sul deep learning che in tre mesi spiega come usare TensorFlow e creare progetti evoluti: Deep learning, Google presenta il suo corso avanzato.
Si tratta di un'occasione fantastica per formarsi su una delle branche dell'intelligenza artificiale sulle quale si concentreranno più investimenti in futuro.