La crescita dei dati ha richiesto una potenza
di calcolo aggiuntiva, che a sua volta ha stimolato lo sviluppo di metodi
statistici per analizzare set di dati di grandi dimensioni. Ciò ha consentito la
raccolta di dati ancora più abbondanti e interessanti. Una tecnica strettamente
correlata all'apprendimento automatico, il data mining, si
occupa invece della generazione di nuove informazioni da grandi database. Il
data mining prevede uno scavo sistematico delle pepite di “intelligenza
utilizzabili” nelle miniere dei dati disponibili. Sebbene vi sia un certo disaccordo
su quanto l'apprendimento automatico e il data mining si sovrappongano, un
potenziale punto di distinzione è che l'apprendimento automatico si concentra
sull'insegnamento ai computer su come utilizzare i dati per prevedere cosa
succedera’ in futuro, mentre il data mining si concentra sull'insegnamento ai
computer su come utilizzare i dati per capire cosa e’ successo nel passato.
Praticamente tutto il data mining
implica l'uso del machine learning, ma non tutto il machine learning coinvolge
il data mining. Per esempio e’ possibile applicare l'apprendimento automatico
ai dati sul traffico automobilistico per individuare grazie ai modelli di data
mining i pattern interessanti relativi ai tassi di incidenti; d'altra parte, se
il computer sta imparando a guidare l'auto da solo, si tratta di un puro
apprendimento automatico senza data mining.
La maggior parte delle persone ha
sentito parlare del computer Deep Blu che
gioca a scacchi, il primo a vincere una partita contro un campione del mondo, o
di Watson, il
computer che ha sconfitto due avversari umani nel programma televisivo Jeopardy. Sulla base di
questi straordinari risultati, alcuni hanno ipotizzato che l'intelligenza artificiale
sostituirà gli esseri umani in molte occupazioni di tecnologia
dell'informazione, proprio come le macchine hanno sostituito gli umani nei
campi e i robot hanno sostituito gli umani sulla catena di montaggio.
La verità è che anche quando le
macchine raggiungono traguardi così impressionanti, sono ancora relativamente
limitate nella loro capacità di comprendere a fondo un problema. Sono pura
potenza intellettuale ma senza direzione. Un computer può essere più capace di
un essere umano a trovare schemi in grandi database, ma ha comunque bisogno di
un essere umano per motivare l'analisi e trasformare il risultato in un'azione
significativa.
Le macchine non sono brave a fare
domande, e non sanno quali domande porre. Sono molto più brave a rispondere, a
condizione che la domanda sia formulata in un modo che esse possono comprendere.
Gli attuali algoritmi di machine learning collaborano con le persone in modo
simile ai segugi che aiutano i loro padroni; l'olfatto del cane può essere di
gran lunga più sviluppato di quello del suo padrone, ma senza essere diretto
con attenzione, il cane può finire a rincorrersi la coda.
L'apprendimento automatico ha più
successo quando aumenta, anziché sostituisce, la conoscenza specializzata di un
esperto in materia. Lavora con medici in prima linea nella lotta per sradicare
il cancro, assiste ingegneri e programmatori per creare case e automobili più
intelligenti e aiuta gli scienziati sociali a costruire la conoscenza di come
funzionano le società. A tal fine, è impiegato in innumerevoli aziende,
laboratori scientifici, ospedali e organizzazioni governative. Qualsiasi
organizzazione che genera o aggrega dati probabilmente utilizza almeno un
algoritmo di apprendimento automatico per dare un senso alla grande mole di
dati.
Sebbene sia impossibile elencare
tutti i casi d'uso dell'apprendimento automatico, un sondaggio sulle recenti
storie di successo include diverse applicazioni importanti:
Identificazione di messaggi spam nella posta
elettronica Segmentazione del comportamento dei
clienti per pubblicità mirata
Previsioni del tempo meteorologico e dei
cambiamenti climatici a lungo termine
Riduzione delle transazioni fraudolente
con carta di credito
Stime attuariali dei danni finanziari di
tempeste e calamità naturali
Previsione dei risultati delle elezioni
popolare
Sviluppo di algoritmi per droni a
pilotaggio automatico e auto a guida autonoma
Proiezione delle aree in cui l'attività
criminale è più probabile
Scoperta di sequenze genetiche legate a
malattie
Indipendentemente dal contesto,
il processo di apprendimento automatico è lo stesso. Un algoritmo infatti prende
i dati e identifica i modelli che costituiscono la base per ulteriori azioni.
Sebbene l'apprendimento
automatico sia ampiamente utilizzato e abbia un enorme potenziale, è importante
comprenderne i limiti. L'apprendimento automatico, in questo momento, non è in
alcun modo un sostituto del cervello umano. Ha pochissima flessibilità a fare
estrapolazioni al di fuori dei rigidi parametri che ha appreso e non conosce il
buon senso. Con questo in mente, si dovrebbe essere estremamente attenti a
riconoscere esattamente ciò che l'algoritmo ha appreso prima di lasciarlo
libero nel mondo reale.
Senza una vita di esperienze
passate su cui basarsi, i computer sono anche limitati nella loro capacità di
fare semplici inferenze di buon senso sui passaggi logici successivi.
Molti hanno familiarità con le
carenze della capacità dell'apprendimento automatico di comprendere o tradurre una
lingua o di riconoscere parole e
scrittura a mano. Forse il primo esempio di questo tipo di fallimento è in un
episodio del 1994 della serie televisiva, I Simpsons, che mostrava una parodia
del tablet Apple
Newton.
La capacità delle macchine di
comprendere il linguaggio è migliorata abbastanza dal 1994, tanto che Google,
Apple e Microsoft sono tutte abbastanza sicure da offrire servizi virtuali
gestiti tramite riconoscimento vocale. Tuttavia, anche questi servizi fanno
regolarmente fatica a rispondere a domande relativamente semplici. Inoltre, i
servizi di traduzione online a volte interpretano erroneamente frasi che un
bambino potrebbe facilmente capire. La funzione di scrittura predittiva su
molti dispositivi ha anche portato a una serie di divertenti siti di errore di
correzione automatica che illustrano la capacità del computer di comprendere il
linguaggio di base ma di fraintendere completamente il contesto.
Una definizione formale di
apprendimento automatico proposta dallo scienziato informatico Tom M. Mitchell afferma
che una macchina impara ogni volta che è in grado di utilizzare la sua
esperienza per migliorare le sue prestazioni future su esperienze simili.
Sebbene questa definizione sia intuitiva, ignora completamente il processo di
come esattamente l'esperienza può essere tradotta in azioni future e,
naturalmente, l'apprendimento è sempre più facile a dirsi che a farsi!
Contrariamente ai cervelli umani
naturalmente in grado di apprendere fin dalla nascita, le condizioni necessarie
affinché i computer apprendano devono essere rese esplicite. Per questo motivo,
sebbene non sia strettamente necessario comprendere le basi teoriche
dell'apprendimento, questa base aiuta a comprendere, distinguere e implementare
algoritmi di apprendimento automatico. Indipendentemente dal fatto che lo
studente sia un essere umano o una macchina, il processo di apprendimento di
base è simile. Esso può essere suddiviso in quattro componenti correlate.
La memorizzazione dei dati
utilizza l'osservazione, la memoria e il richiamo per fornire una base fattuale
per ulteriori ragionamenti.
L'astrazione implica la
traduzione dei dati memorizzati in rappresentazioni e concetti più ampi.
La generalizzazione utilizza dati
astratti per creare conoscenze e inferenze che guidano l'azione in nuovi
contesti.
La valutazione fornisce un
meccanismo di feedback per misurare l'utilità della conoscenza acquisita e
informare potenziali miglioramenti.
La figura seguente illustra le quattro
fasi alla base del processo di apprendimento:
Tenere presente che, il processo
di apprendimento e’ stato concettualizzato in quattro componenti distinte, solo
per uno scopo illustrativo. In realtà, l'intero processo di apprendimento è
indissolubilmente inter-correlato. Negli esseri umani, il processo avviene
inconsciamente. Ricordiamo, deduciamo, induciamo e intuiamo con i confini
dell'occhio della nostra mente, e poiché questo processo è nascosto, eventuali
differenze da persona a persona sono attribuite a una vaga nozione di
soggettività. Al contrario, con i computer questi processi sono espliciti e
poiché l'intero processo è trasparente, le conoscenze apprese possono essere
esaminate, trasferite e utilizzate per azioni future. Tutto l'apprendimento ovviamente deve iniziare
con i dati. Sia gli esseri umani che i computer utilizzano l'archiviazione dei
dati come base per ragionamenti più avanzati. In un essere umano, questo è
costituito da un cervello che utilizza segnali elettrochimici in una rete di
cellule biologiche per memorizzare ed elaborare le osservazioni per il richiamo
futuro a breve e lungo termine. I computer hanno capacità simili di richiamo a
breve e lungo termine utilizzando l’unità di disco rigido, la memoria flash e la
memoria ad accesso casuale (RAM) in
combinazione con un'unità di elaborazione centrale (CPU).
Può sembrare ovvio, ma la
capacità di archiviare e recuperare i dati da sola non è sufficiente per
l'apprendimento. Senza un livello di comprensione superiore, la conoscenza è
limitata esclusivamente al richiamo, intendendo esclusivamente ciò che si vede
prima e nient'altro. I dati dopo tutto sono solo una successione di uno e zero
su un disco. Sono ricordi immagazzinati senza un significato più ampio. Per
comprendere meglio le sfumature di questa idea, può essere utile pensare
all'ultima volta che abbiamo studiato per una prova difficile, magari per un
esame finale universitario o la discussione della Tesi. Nel caso in cui sia
stata utilizzata quella che si chiama una memoria eidetica (fotografica) si potrebbe
rimanere delusi nell'apprendere che è improbabile che il richiamo perfetto sia
di grande aiuto. Anche se si potesse memorizzare perfettamente tutto il
materiale, l’apprendimento meccanico non sarebbe di alcuna utilità, a meno che non
si conoscano in anticipo le domande e le risposte esatte. Altrimenti, si rimarebbe bloccati nel tentativo di memorizzare le
risposte a ogni domanda che si potrebbe plausibilmente fare. Ovviamente, questa
è una strategia insostenibile.
Un approccio migliore invece è
quello di trascorrere il tempo in modo selettivo, memorizzando un piccolo
insieme di idee rappresentative mentre si sviluppano strategie su come le idee
si relazionano e su come utilizzare le informazioni memorizzate. In questo
modo, le idee di grandi dimensioni possono essere comprese senza bisogno di
memorizzarle a memoria.
Questo lavoro di assegnazione di un
significato ai dati memorizzati si verifica durante il cosiddetto processo di
astrazione, in cui i dati grezzi assumono un significato più astratto. Questo
tipo di connessione, tra un oggetto e la sua rappresentazione, è semplificato
dal famoso dipinto di René Magritte, The Treachery of
Images:
Il dipinto raffigura una pipa con
la dicitura “Ceci n'est pas une pipe” (questa non è una pipa). Il punto che
Magritte ha cercato di illustrare è che la rappresentazione di una pipa non è
veramente una pipa. Tuttavia, nonostante il fatto che la pipa non sia reale,
chiunque veda il dipinto lo riconosce facilmente come una pipa. Ciò suggerisce
che la mente dell'osservatore è in grado di collegare l'immagine di una pipa
all'idea di una pipa, al ricordo di una pipa fisica che potrebbe essere tenuta
in mano. Connessioni astratte come queste sono la base della rappresentazione
della conoscenza, la formazione di strutture logiche che aiutano a trasformare
le informazioni sensoriali grezze in una visione significativa. Durante il
processo di rappresentazione della conoscenza di una macchina, il computer
riassume i dati memorizzati utilizzando un modello, una descrizione esplicita
dei modelli all'interno dei dati. Proprio come la pipa di Magritte, il modello assume
una vita al di là dei dati. Rappresenta un'idea più grande della somma delle
sue parti. Esistono molti tipi diversi di
modelli.
Equazioni
matematiche
Diagrammi
relazionali come alberi e grafici
Regole
logiche if/else
Raggruppamenti
di dati noti come clusters
La scelta del modello in genere
non è lasciata alla macchina. E’ l'attività di apprendimento dei dati a
disposizione, invece che aiuta nella selezione del modello.
Il processo di adattamento di un
modello a un set di dati è noto come addestramento (training). Quando il
modello è stato addestrato, i dati vengono trasformati in una forma astratta
che riassume le informazioni originali.
La rappresentazione assume una
vita al di là dei dati.
La maggior parte dei modelli sviluppati
non portano a grandi scoperte scientifiche. Alcuni di essi comunque portano
alla scoperta di relazioni mai viste prima tra i dati. Un modello addestrato su
dati genomici potrebbe trovare diversi geni che, se combinati, potrebbero
essere responsabili dell'insorgenza del diabete; le banche potrebbero scoprire
un tipo di transazione apparentemente innocuo che appare sistematicamente prima
di un'attività fraudolenta; gli psicologi potrebbero identificare una
combinazione di caratteristiche della personalità che indicano un nuovo
disturbo. Questi modelli sottostanti ai dati sono stati sempre li, e’ solo un
modo di presentare le informazioni in un formato diverso, viene concettualizzato
in una nuova idea.
Il processo di apprendimento non
è completo finché lo studente/computer non è in grado di utilizzare la sua
conoscenza astratta per azioni future. Tuttavia, tra gli innumerevoli modelli
sottostanti che potrebbero essere identificati durante il processo di
astrazione e la miriade di modi per costruire questi modelli, alcuni saranno
più utili di altri. A meno che il processo di astrazione non sia limitato, lo
studente/computer non sarà in grado di procedere. Sarebbe bloccato dove è
iniziato, con un ampio pool di informazioni, ma nessuna intuizione
utilizzabile.
Il termine generalizzazione
descrive il processo di trasformazione della conoscenza astratta in una forma
che può essere utilizzata per azioni future, su compiti simili, ma non
identici, a quelli visti prima. La generalizzazione è un processo difficile da
descrivere. Tradizionalmente, è stato immaginato come una ricerca attraverso
l'intero insieme di modelli (cioè teorie o inferenze) che potrebbero essere
astratte durante l'allenamento. In altre parole, se puoi immaginare un
ipotetico set contenente ogni possibile teoria che potrebbe essere stabilita
dai dati, la generalizzazione implica la riduzione di questo insieme ad un
numero gestibile di scoperte.
Nella generalizzazione, lo
studente/computer ha il compito di limitare i modelli che scopre solo a quelli
che saranno più rilevanti per i suoi compiti futuri. In generale, non è
possibile ridurre il numero di modelli esaminandoli uno ad uno e
classificandoli in base all'utilità futura. Invece, gli algoritmi di
apprendimento automatico utilizzano generalmente scorciatoie che riducono
velocemente lo spazio di ricerca. A tal fine, l'algoritmo utilizza le cosiddette
euristiche, cioe’ le ipotesi plausibili con cui trovare le inferenze più utili.
L'euristica viene abitualmente utilizzata dagli esseri umani per generalizzare
rapidamente l'esperienza a nuovi scenari. L'incredibile capacità umana di
prendere decisioni rapide spesso non si basa sulla logica del computer, ma
piuttosto su euristiche guidate dalle emozioni. A volte, questo può portare a
conclusioni illogiche. Ad esempio, più persone esprimono paura dei viaggi aerei
rispetto ai viaggi in automobile, nonostante le automobili siano
statisticamente più pericolose. Ciò può essere spiegato dalla disponibilità
euristica, che è la tendenza delle persone a stimare la probabilità di un
evento in base alla facilità con cui i suoi esempi possono essere richiamati.
Gli incidenti che coinvolgono i viaggi aerei sono molto pubblicizzati.
Trattandosi di eventi traumatici, è probabile che vengano ricordati molto
facilmente, mentre gli incidenti automobilistici meritano a malapena una
menzione sul giornale.
La follia delle euristiche
applicate in modo errato non è limitata agli esseri umani. Anche le euristiche
impiegate dagli algoritmi di apprendimento automatico a volte portano a
conclusioni errate. Si dice che l'algoritmo abbia un pregiudizio se le
conclusioni sono sistematicamente errate o sbagliate in modo prevedibile.
Ad esempio, supponiamo che un
algoritmo di apprendimento automatico abbia imparato a identificare i volti
trovando due cerchi scuri che rappresentano gli occhi, posizionati sopra una
linea retta che indica una bocca. L'algoritmo potrebbe quindi avere problemi, o
essere prevenuto, con volti che non sono conformi al suo modello. I volti con
gli occhiali, girati ad angolo, che guardano di lato o con varie tonalità della
pelle potrebbero non essere rilevati dall'algoritmo. Allo stesso modo, potrebbe
essere prevenuto verso volti con determinate tonalità della pelle, viso forme o
altre caratteristiche che non sono conformi alla sua comprensione del mondo.
Nell'uso moderno, la parola bias
ha assunto connotazioni piuttosto negative. Varie forme di mass media affermano
spesso di essere liberi da pregiudizi e affermano di riferire i fatti in modo
obiettivo, non contaminato dalle emozioni. Tuttavia, supponiamo per un momento
la possibilità che un piccolo pregiudizio possa essere utile. Senza un po' di arbitrarietà,
potrebbe essere difficile decidere tra diverse scelte concorrenti, ognuna con
punti di forza e di debolezza distinti? In effetti, alcuni studi recenti nel
campo della psicologia hanno suggerito che le persone nate con danni a parti
del cervello responsabili delle emozioni sono inefficaci nel processo decisionale
e potrebbero passare ore a discutere di decisioni semplici come il colore della
camicia da indossare o dove pranzare. Paradossalmente, il pregiudizio è ciò che
ci rende ciechi ad alcune informazioni e ci consente anche di utilizzare altre
informazioni per l'azione. È il modo in cui gli algoritmi di apprendimento
automatico scelgono tra gli innumerevoli modi per comprendere un insieme di
dati.
Il bias è un male necessario
associato ai processi di astrazione e generalizzazione inerenti a qualsiasi compito
di apprendimento. Per guidare l'azione di fronte a possibilità illimitate, ogni
studente/computer deve essere prevenuto in un modo particolare. Di conseguenza,
ogni studente ha i suoi punti deboli e non esiste un unico algoritmo di
apprendimento per dominarli tutti. Pertanto, il passaggio finale nel processo
di generalizzazione è valutare o misurare il successo dello studente/computer
nonostante i suoi pregiudizi e utilizzare queste informazioni per fornire informazione
aggiuntiva, se necessario.
In genere, la valutazione avviene
dopo che un modello è stato addestrato su un set di dati di training iniziale.
Quindi, il modello viene valutato su un nuovo set di dati di test per giudicare
quanto bene la sua caratterizzazione dei dati di addestramento si generalizza a
dati nuovi e mai visti prima. Vale la pena notare che è estremamente raro che
un modello generalizzi perfettamente a ogni caso imprevisto. In alcune parti, i
modelli non riescono a generalizzare perfettamente a causa del problema del rumore,
un termine che descrive variazioni inspiegabili o inspiegabili nei dati. I dati
rumorosi sono causati da eventi apparentemente casuali, come:
Errore
di misurazione dovuto a sensori imprecisi che a volte aggiungono o sottraggono
un po' dalle letture
Problemi
con soggetti umani, come i rispondenti al sondaggio che riportano risposte
casuali alle domande del sondaggio, al fine di terminare più rapidamente
Problemi
di qualità dei dati, inclusi valori mancanti, nulli, troncati, codificati in
modo errato o danneggiati
Fenomeni
così complessi o così poco compresi da influire sui dati in modi che sembrano
non sistematici
Cercare di modellare il rumore è
alla base di un problema chiamato overfitting. Poiché
la maggior parte dei dati rumorosi è inspiegabile per definizione, il tentativo
di spiegare il rumore porterà a conclusioni errate che non si generalizzano
bene a nuovi casi. Gli sforzi per spiegare il rumore si tradurranno anche in
modelli più complessi che mancheranno il vero modello che lo studente/computer
cerca di identificare. Un modello che sembra funzionare bene durante
l'addestramento, ma scarsamente durante la valutazione, si dice che sia troppo
adattato al set di dati di addestramento, in quanto non generalizza bene al set
di dati di test.
Le soluzioni al problema
dell'overfitting sono specifiche per particolari approcci di machine learning.
Per ora, il punto importante è essere consapevoli del problema. La capacità dei
modelli di gestire dati rumorosi è un'importante fonte di distinzione tra di
loro.
Finora, ci siamo concentrati su
come funziona l'apprendimento automatico in teoria. Per applicare il processo
di apprendimento alle attività del mondo reale, in genere si utilizza un processo
in cinque fasi. Indipendentemente dall'attività in corso, qualsiasi algoritmo
di apprendimento automatico può essere distribuito seguendo questi passaggi:
Raccolta
dei dati: la fase di raccolta dei dati implica la raccolta del
materiale di apprendimento che un algoritmo utilizzerà per generare conoscenza
utilizzabile. Nella maggior parte dei casi, i dati dovranno essere combinati in
un'unica fonte come un file di testo, un foglio di calcolo o un database.
Esplorazione
e preparazione dei dati: la qualità di qualsiasi progetto di
machine learning si basa in gran parte sulla qualità dei suoi dati di input.
Pertanto, è importante saperne di più sui dati e sulle loro sfumature durante
una pratica chiamata esplorazione dei dati. È necessario un lavoro aggiuntivo
per preparare i dati per il processo di apprendimento. Ciò comporta la
correzione o la pulizia dei cosiddetti dati "disordinati",
l'eliminazione dei dati non necessari e la ricodifica dei dati per conformarli
agli input previsti dallo studente.
Formazione
del modello: nel momento in cui i dati sono stati preparati per
l'analisi, è probabile che tu abbia un'idea di ciò che sei in grado di
apprendere dai dati. Il compito specifico di apprendimento automatico scelto
informerà la selezione di un algoritmo appropriato e l'algoritmo rappresenterà
i dati sotto forma di un modello.
Valutazione del modello: poiché ogni modello di apprendimento automatico
risulta in una soluzione parziale al problema di apprendimento, è importante
valutare quanto bene l'algoritmo apprende dalla sua esperienza. A seconda del
tipo di modello utilizzato, potrebbe essere possibile valutare l'accuratezza
del modello utilizzando un set di dati di test oppure potrebbe essere
necessario sviluppare misure di prestazioni specifiche per l'applicazione
prevista.
Miglioramento
del modello: se sono necessarie prestazioni migliori, diventa
necessario utilizzare strategie più avanzate per aumentare le prestazioni del
modello. A volte, potrebbe essere necessario passare a un tipo di modello
completamente diverso. Potrebbe essere necessario integrare i dati con dati
aggiuntivi o eseguire lavori preparatori aggiuntivi come nella fase due di
questo processo.
Dopo aver completato questi
passaggi, se il modello sembra funzionare bene, può essere distribuito per
l'attività prevista. A seconda dei casi, si potrebbe utilizzare il modello per
fornire dati sulle previsioni (possibilmente in tempo reale), per proiezioni di
dati finanziari, per generare informazioni utili per il marketing o la ricerca
o per automatizzare attività come la consegna della posta o l'aereo in volo . I
successi e gli insuccessi del modello distribuito potrebbero persino fornire
dati aggiuntivi per formare lo studente di prossima generazione.
La pratica dell'apprendimento
automatico implica l'abbinamento delle caratteristiche dei dati di input ai
pregiudizi degli approcci disponibili. Pertanto, prima di applicare
l'apprendimento automatico ai problemi del mondo reale, è importante
comprendere la terminologia che distingue tra i set di dati di input.
La frase unità di osservazione
viene utilizzata per descrivere l'entità più piccola con proprietà misurate di
interesse per uno studio. Comunemente, l'unità di osservazione è sotto forma di
persone, oggetti o cose, transazioni, punti temporali, regioni geografiche o
misurazioni. A volte, le unità di osservazione sono combinate per formare unità
come anni-persona, che denotano casi in cui la stessa persona viene monitorata
per più anni; ogni anno-persona comprende i dati di una persona per un anno. I set di dati che memorizzano le
unità di osservazione e le loro proprietà possono essere immaginati come
raccolte di dati costituite da:
Esempi: istanze dell'unità di
osservazione per cui sono state registrate le proprietà
Caratteristiche: proprietà
registrate o attributi di esempi che possono essere utili per l'apprendimento
È più facile comprendere le
caratteristiche e gli esempi attraverso casi del mondo reale. Per costruire un
algoritmo di apprendimento per identificare la posta indesiderata, l'unità di
osservazione potrebbe essere i messaggi di posta elettronica, gli esempi
sarebbero messaggi specifici e le caratteristiche potrebbero consistere nelle
parole utilizzate nei messaggi. Per un algoritmo di rilevamento del cancro,
l'unità di osservazione potrebbe essere i pazienti, gli esempi potrebbero
includere un campione casuale di pazienti affetti da cancro e le
caratteristiche potrebbero essere i marcatori genomici delle cellule biopsiate
nonché le caratteristiche del paziente come peso, altezza o pressione
sanguigna.
Sebbene gli esempi e le funzionalità
non debbano essere raccolti in una forma specifica, sono comunemente raccolti
in formato matrice, il che significa che ogni esempio ha esattamente le stesse
caratteristiche.
Il seguente foglio di calcolo
mostra un set di dati in formato matrice. Nei dati a matrice, ogni riga del
foglio di calcolo è un esempio e ogni colonna è una caratteristica. Qui, le
righe indicano esempi di automobili, mentre le colonne registrano varie
caratteristiche di ciascuna automobile, come il prezzo, chilometraggio, colore
e tipo di trasmissione. I dati in formato matrice sono di gran lunga la forma
più comune utilizzata nell'apprendimento automatico. Tuttavia, ci sono anche altre
forme che vengono utilizzate occasionalmente in casi speciali.
Le funzionalità sono disponibili
anche in varie forme. Se una caratteristica rappresenta una variabile misurata,
non sorprende che venga chiamata numerica. In alternativa, se un elemento è un
attributo costituito da un insieme di categorie, l'elemento è chiamato categorico
o nominale. Un caso speciale di variabili categoriche è chiamato ordinale, che
designa una variabile nominale con categorie che rientrano in un elenco
ordinato. Alcuni esempi di variabili ordinali includono taglie di abbigliamento
come piccola, media e grande; o una misurazione della soddisfazione del cliente
su una scala da "per niente felice" a "molto felice". È
importante considerare ciò che rappresentano le funzionalità, come il tipo e il
numero nel set di dati che aiuterà a determinare un algoritmo di apprendimento
automatico appropriato.
Gli algoritmi di apprendimento
automatico sono suddivisi in categorie in base al loro scopo. Comprendere le
categorie di algoritmi di apprendimento è un primo passo essenziale verso
l'utilizzo dei dati per guidare l'azione desiderata.
Un modello predittivo viene
utilizzato per attività che implicano, come suggerisce il nome, la previsione
di un valore utilizzando altri valori nel set di dati. L'algoritmo di
apprendimento tenta di scoprire e modellare la relazione tra la caratteristica
di destinazione (la caratteristica da prevedere) e le altre caratteristiche.
Nonostante l'uso comune della parola "previsione", i modelli
predittivi non devono necessariamente prevedere eventi futuri. Ad esempio, un
modello predittivo potrebbe essere utilizzato per prevedere eventi passati,
come la data del concepimento di un bambino utilizzando i livelli ormonali
attuali della madre. I modelli predittivi possono anche essere utilizzati in
tempo reale per controllare i semafori nelle ore di punta.
Poiché ai modelli predittivi
vengono fornite istruzioni chiare su ciò che devono apprendere e su come
intendono apprenderlo, il processo di formazione di un modello predittivo è
noto come apprendimento
supervisionato. La supervisione non si riferisce al coinvolgimento
umano, ma piuttosto al fatto che i valori target forniscono allo studente un
modo per conoscere quanto bene ha imparato il compito desiderato. Detto in modo
più formale, dato un insieme di dati, un algoritmo di apprendimento
supervisionato tenta di ottimizzare una funzione (il modello) per trovare la
combinazione dei valori delle caratteristiche (predictors) che risultano nell'output
di destinazione (response).
L'attività di apprendimento
automatico supervisionato spesso utilizzata per prevedere a quale categoria
appartiene un esempio è nota come classificazione. È facile pensare ai
potenziali usi di un classificatore.
Stabilire se un messaggio di
posta elettronica è spam
Stabilire se una persona e’
ammalata di cancro
Stabilire se una squadra di
calcio vincerà o perderà una partita
Stabilire se un richiedente andrà
in negativo su un prestito
Nella classificazione, l'elemento
target da prevedere è un elemento categorico noto come classe ed è suddiviso in
categorie chiamate livelli. Una classe può avere due o più livelli e i livelli
possono o non possono essere ordinali. Poiché la classificazione è così
ampiamente utilizzata nell'apprendimento automatico, esistono molti tipi di
algoritmi di classificazione, con punti di forza e di debolezza adatti a
diversi tipi di dati di input.
Gli algoritmi supervisionati
possono essere utilizzati anche per prevedere dati numerici come reddito,
valori di laboratorio, punteggi di test o conteggi di elementi. Per prevedere
tali valori numerici, una forma comune di previsione numerica adatta modelli di
regressione lineare ai dati di input.
Sebbene i modelli di regressione non siano l'unico tipo di modello numerico,
sono di gran lunga i più utilizzati. I metodi di regressione sono ampiamente
utilizzati per la previsione, poiché quantificano in termini esatti
l'associazione tra input e target, inclusi entrambi, l'entità e l'incertezza
della relazione.
Un modello descrittivo invece viene
utilizzato per attività che devono trarre vantaggio dal mettere insieme tutte
le informazioni acquisite e analizzate in modo nuovo e interessante. A
differenza dei modelli predittivi che prevedono un obiettivo di interesse, in
un modello descrittivo nessuna singola caratteristica è più importante di
qualsiasi altra. Poiché non vi è alcun obiettivo da apprendere, il processo di
formazione di un modello descrittivo è chiamato apprendimento senza
supervisione (unsupervised).
Sebbene possa essere più difficile pensare ad applicazioni per modelli
descrittivi - dopotutto a cosa serve uno studente che non sta imparando nulla
in particolare - vengono utilizzati abbastanza regolarmente per attivita’ di data
mining. Ad esempio, l'attività di modellizzazione descrittiva chiamata pattern
discovery utilizzata per identificare associazioni utili all'interno dei dati. Per
esempio nel caso di un Supermercato, l'obiettivo è quello di identificare quegli
articoli che vengono acquistati insieme di frequente, in modo che le
informazioni apprese possano essere utilizzate per perfezionare le tattiche di
marketing. Ad esempio, se un rivenditore
viene a sapere che i costumi da bagno vengono comunemente acquistati
contemporaneamente agli occhiali da sole, potrebbe posizionare gli articoli vicino
nel negozio o eseguire una promozione per "vendere" ai clienti gli
articoli associati. Il compito di modellizzazione descrittiva di dividere un
set di dati in gruppi omogenei è chiamato clustering. A
volte viene utilizzato per l'analisi della segmentazione che identifica gruppi
di individui con comportamenti o informazioni demografiche simili, in modo che
le campagne pubblicitarie possano essere adattate a un pubblico particolare.
Sebbene la macchina sia in grado di identificare i cluster, è necessario
l'intervento umano per interpretarli. Ad esempio, dato cinque diversi gruppi di
acquirenti in un negozio di alimentari il team di marketing dovrà comprendere
le differenze tra i gruppi al fine di creare una promozione che meglio si
adatti a ciascun gruppo.
Infine, c’e’ un’altra classe di
algoritmi che vanno sotto il nome di algoritmi di
re-inforcement. L'apprendimento
per rinforzo è un metodo di apprendimento automatico basato sulla ricompensa
dei comportamenti desiderati e/o sulla punizione di quelli indesiderati. In
generale, un agente di apprendimento per rinforzo è in grado di percepire e
interpretare il suo ambiente, intraprendere azioni e apprendere attraverso
tentativi ed errori. Nell'apprendimento
per rinforzo, gli sviluppatori escogitano un metodo per premiare i
comportamenti desiderati e punire i comportamenti indesiderati. Questo metodo
assegna valori positivi alle azioni desiderate per incoraggiare l'agente e
valori negativi a comportamenti indesiderati. Questo fa si che l'agente cerca
continuamente di ottenere la massima ricompensa possibile per ottenere alla
fine una soluzione ottimale. Questi obiettivi a lungo termine aiutano a
prevenire che l'agente si blocchi su obiettivi minori. Con il tempo, l'agente
impara a evitare il negativo e a cercare il positivo. Questo metodo di
apprendimento è stato adottato nell'intelligenza artificiale (AI) come un modo
per dirigere l'apprendimento automatico senza supervisione attraverso
ricompense e penalità.
I videogiochi sono probabilmente
il campo di utilizzo più comune per l'apprendimento per rinforzo. Esso e’ in
grado di raggiungere prestazioni sovrumane in numerosi giochi. Un esempio
comune riguarda il gioco
del Pac-Man. Un algoritmo di apprendimento che gioca a Pac-Man deve avere
la capacità di muoversi in una delle quattro possibili direzioni, escludendo
l'ostruzione. Dai dati dei pixel, un agente puo’ ricevere una ricompensa
numerica per il risultato di un'unità di viaggio: 0 per lo spazio vuoto, 1 per
i pellet, 2 per la frutta, 3 per i power pellet, 4 per i fantasmi dopo i power
pellets, 5 per la raccolta di tutte le pallottole e il completamento di un
livello e una detrazione di 5 punti per la collisione con un fantasma. L'agente
inizia dal gioco casuale e passa a un gioco più sofisticato, imparando
l'obiettivo per ottenere tutte le palline per completare il livello. Con il
tempo, un agente potrebbe persino imparare tattiche come conservare i
proiettili energetici fino a quando non saranno necessari per l'autodifesa. Nella
robotica, l'apprendimento per rinforzo ha trovato la sua applicazione in test
limitati. Questo tipo di apprendimento automatico può fornire ai robot la
capacità di apprendere compiti che un insegnante umano non può dimostrare, di
adattare un'abilità appresa a un nuovo compito o di ottenere l'ottimizzazione
nonostante la mancanza di una formulazione analitica disponibile. L'apprendimento
per rinforzo viene utilizzato anche nella ricerca operativa, nella teoria
dell'informazione, nella teoria dei giochi, nella teoria del controllo,
nell'ottimizzazione basata sulla simulazione, nei sistemi multiagente,
nell'intelligenza degli sciami, nelle statistiche e negli algoritmi genetici.