# data[].attributes.body
l’intelligenza artificiale è l’abilità di un sistema tecnologico di risolvere problemi o svolgere compiti e attività tipici della mente e dell’abilità umane. Guardando al settore informatico, potremmo identificare l’AI – Artificial Intelligence come la disciplina che si occupa di realizzare macchine (hardware e software) in grado di “agire” autonomamente (risolvere problemi, compiere azioni, ecc.).

Il fermento attuale attorno a questa disciplina si spiega con la maturità tecnologica raggiunta sia nel calcolo computazionale (oggi ci sono sistemi hardware molto potenti, di ridotte dimensioni e con bassi consumi energetici), sia nella capacità di analisi in real-time ed in tempi brevi di enormi quantità di dati e di qualsiasi forma (Analytics).

# data[].attributes.body
Guardando un po’ alla storia passata, è alla fine degli anni ’50 che risale il primo modello di rete neurale: si trattava del cosiddetto “percettrone”, proposto nel 1958 da Frank Rosenblatt (noto psicologo e computer scientist americano), una rete con uno strato di ingresso ed uno di uscita ed una regola di apprendimento intermedia basata sull’algoritmo ‘error back-propagation’ (minimizzazione degli errori); la funzione matematica, in sostanza, in base alla valutazione sui dati effettivi in uscita – rispetto ad un dato ingresso – altera i pesi delle connessioni (sinapsi) provocando una differenza tra l’uscita effettiva e quella desiderata. Alcuni esperti del settore fanno risalire proprio al percettrone di Rosenblatt la nascita della cibernetica e dell’Intelligenza Artificiale [Artificial Intelligence – AI: il termine in realtà fu coniato nel 1956 dal matematico statunitense John McCarthy, ed è del 1950 il primo assunto di Alan Turing nel quale spiega come un computer possa comportasri come un essere umano – ndr], anche se negli anni immediatamente successivi i due matematici Marvin Minsky e Seymour Papert dimostrarono i limiti del modello di rete neurale di Rosenblatt: il percettrone era in grado di riconoscere, dopo opportuno “addestramento” solo funzioni linearmente separabili (attraverso il training set – l’algoritmo di apprendimento – nello spazio vettoriale degli input, si riescono a separare quelli che richiedono un output positivo da quelli che richiedono un output negativo); inoltre, le capacità computazionali di un singolo percettrone erano limitate e le prestazioni fortemente dipendenti sia dalla scelta degli input sia dalla scelta degli algoritmi attraverso i quali ‘modificare’ le sinapsi e quindi gli output. I due matematici Minsky e Papert intuirono che costruire una rete a più livelli di percettroni avrebbe potuto risolvere problemi più complessi ma in quegli anni la crescente complessità computazionale richiesta dall’addestramento delle reti mediante gli algoritmi non aveva ancora trovato una risposta sul piano infrastrutturale (non esistevano sistemi hardware in grado di ‘reggere’ tali operazioni).

La prima svolta importante dal punto di vista tecnologico arriva tra la fine degli anni ’70 e il decennio degli anni ’80 con lo sviluppo delle Gpu che hanno ridotto notevolmente i tempi di addestramento delle reti, abbassandoli di 10/20 volte.

# data[].attributes.body
Rappresentazione grafica del test di Turing.

Il test di Turing è un criterio per determinare se una macchina sia in grado di pensare. Tale criterio è stato suggerito da Alan Turing nell'articolo Computing machinery and intelligence, apparso nel 1950 sulla rivista Mind.[1]

«Secondo la forma più estrema di questa opinione, il solo modo per cui si potrebbe essere sicuri che una macchina pensa è quello di essere la macchina stessa e sentire se si stesse pensando. [...] Allo stesso modo, la sola via per sapere che un uomo pensa è quello di essere quell'uomo in particolare. [...] Probabilmente A crederà "A pensa, mentre B no", mentre per B è l'esatto opposto "B pensa, ma A no". Invece di discutere in continuazione su questo punto, è normale attenersi alla educata convenzione che ognuno pensi.»

Le macchine di Turing sono macchine a stati finiti in grado di simulare altre macchine a stati discreti. Una macchina per sostenere il test dev'essere programmata considerando la descrizione di un uomo in termini discreti (stati interni, segnali, simboli). Dalla complessità del software, si legge tra le righe dell'articolo, emergeranno le funzioni intellettuali. Su questa aspettativa si fonda una disciplina nota come intelligenza artificiale il cui scopo è la costruzione di una macchina in grado di riprodurre le funzioni cognitive umane.