Applicato AI Strategia e Consulenza | InnoArchiTech
Articoli in Questa Serie
-
Panoramica, obiettivi, metodologie di apprendimento, e gli algoritmi
-
Data la selezione, la preparazione e la modellazione
-
Modello di valutazione, la convalida, la complessità e il miglioramento
-
prestazioni dei modelli e analisi degli errori
-
Unsupervised learning e campi correlati, e di apprendimento automatico, in pratica,
Introduzione
Benvenuti! Questo è il primo articolo di una serie in cinque parti sull’apprendimento automatico.
L’apprendimento automatico è un argomento molto caldo per molte ragioni chiave e perché fornisce la capacità di ottenere automaticamente approfondimenti profondi, riconoscere modelli sconosciuti e creare modelli predittivi ad alte prestazioni dai dati, il tutto senza richiedere istruzioni di programmazione esplicite.
Nonostante la popolarità del soggetto, il vero scopo e i dettagli dell’apprendimento automatico non sono ben compresi, tranne che da persone molto tecniche e/o scienziati di dati.
Questa serie è destinata ad essere una guida completa e approfondita all’apprendimento automatico e dovrebbe essere utile a tutti, dai dirigenti aziendali ai professionisti dell’apprendimento automatico. Copre praticamente tutti gli aspetti dell’apprendimento automatico (e molti campi correlati) ad un livello elevato e dovrebbe servire come introduzione o riferimento sufficiente alla terminologia, ai concetti, agli strumenti, alle considerazioni e alle tecniche del campo.
Questa comprensione di alto livello è fondamentale se mai coinvolta in un processo decisionale che circonda l’uso dell’apprendimento automatico, come può aiutare a raggiungere gli obiettivi di business e di progetto, quali tecniche di apprendimento automatico utilizzare, potenziali insidie e come interpretare i risultati.
Si noti che la maggior parte degli argomenti discussi in questa serie sono anche direttamente applicabili a campi come l’analisi predittiva, il data mining, l’apprendimento statistico, l’intelligenza artificiale e così via.
Macchina di Apprendimento Definiti
La spesso citata e ampiamente accettata definizione formale di apprendimento automatico, come dichiarato dal campo, pioneer Tom M. Mitchell è:
Un programma per computer è detto di imparare dall’esperienza E con riferimento a una classe di attività T e misura della prestazione P se le sue prestazioni in compiti in T, come misurato da P, migliora con l’esperienza E
il seguente è Il mio meno formale per descrivere una macchina di apprendimento.
L’apprendimento automatico è un sottocampo dell’informatica, ma viene spesso indicato anche come analisi predittiva o modellazione predittiva. Il suo obiettivo e l’utilizzo è quello di costruire nuovi e/o sfruttare algoritmi esistenti per imparare dai dati, al fine di costruire modelli generalizzabili che danno previsioni accurate, o per trovare modelli, in particolare con dati simili nuovi e invisibili.
Panoramica del processo di apprendimento automatico
Immagina un set di dati come una tabella, in cui le righe sono ciascuna osservazione (ovvero misurazione, punto dati, ecc.), e le colonne per ogni osservazione rappresentano le caratteristiche di tale osservazione e i loro valori.
All’inizio di un progetto di apprendimento automatico, un set di dati viene solitamente suddiviso in due o tre sottoinsiemi. I sottoinsiemi minimi sono i set di dati di addestramento e test e spesso viene creato anche un terzo set di dati di convalida opzionale.
Una volta creati questi sottoinsiemi di dati dal set di dati primario, un modello predittivo o un classificatore viene addestrato utilizzando i dati di addestramento e quindi l’accuratezza predittiva del modello viene determinata utilizzando i dati di test.
Come accennato, l’apprendimento automatico sfrutta gli algoritmi per modellare e trovare automaticamente i modelli nei dati, di solito con l’obiettivo di prevedere un output o una risposta target. Questi algoritmi sono fortemente basati su statistiche e ottimizzazione matematica.
Ottimizzazione è il processo di trovare il valore più piccolo o più grande (minimi o massimi) di una funzione, spesso indicato come una perdita, o funzione di costo nel caso di minimizzazione. Uno degli algoritmi di ottimizzazione più popolari utilizzati nell’apprendimento automatico è chiamato discesa del gradiente e un altro è noto come equazione normale.
In poche parole, l’apprendimento automatico consiste nell’apprendere automaticamente un modello predittivo o classificatore altamente accurato o nella ricerca di modelli sconosciuti nei dati, sfruttando algoritmi di apprendimento e tecniche di ottimizzazione.
Tipi di apprendimento
Le categorie principali dell’apprendimento automatico sono supervisionate, non supervisionate e semi-supervisionate. Ci concentreremo sui primi due in questo articolo.
Nell’apprendimento supervisionato, i dati contengono la variabile di risposta (etichetta) che viene modellata e con l’obiettivo di prevedere il valore o la classe dei dati invisibili. L’apprendimento non supervisionato implica l’apprendimento da un set di dati che non ha etichetta o variabile di risposta, e quindi è più sulla ricerca di modelli che sulla previsione.
Dato che sono un grande fan della NFL e dei Chicago Bears, il mio team aiuterà a esemplificare questi tipi di apprendimento! Supponiamo di avere una tonnellata di dati e statistiche di Chicago Bears risalenti a quando la squadra è diventata un membro noleggiato della NFL (1920) fino ad oggi (2016).
Immagina che ogni riga dei dati sia essenzialmente un’istantanea (o osservazione) di statistiche rilevanti per ogni partita dal 1920. Le colonne in questo caso, e i dati contenuti in ciascuna, rappresentano le caratteristiche (valori) dei dati, e possono includere funzionalità di dati quali la data, il gioco avversario, la stagione di vittorie in una stagione, perdite, stagione finale divisionale posizione, post-season di attracco (Y/N), post-season statistiche, e, forse, statistiche specifiche per le tre fasi di gioco: attacco, difesa e squadre speciali.
Nel caso supervisionato, il tuo obiettivo potrebbe essere quello di utilizzare questi dati per prevedere se i Bears vinceranno o perderanno contro una determinata squadra durante una determinata partita e in un dato campo (in casa o in trasferta). Tieni presente che tutto può accadere nel calcio in termini di infortuni pre e di gioco, condizioni meteorologiche, chiamate arbitrali cattive e così via, quindi prendi questo semplicemente come esempio di un’applicazione di apprendimento supervisionato con una risposta sì o no (previsione), al contrario di determinare la probabilità o la probabilità che “Da Bears” ottenga la vittoria.
Poiché hai dati storici di vittorie e sconfitte (la risposta) contro alcune squadre in determinati campi di calcio, puoi sfruttare l’apprendimento supervisionato per creare un modello per fare quella previsione.
Ora supponiamo che il tuo obiettivo sia trovare modelli nei dati storici e imparare qualcosa che non conosci già, o raggruppare il team in determinati modi nel corso della storia. A tale scopo, si esegue un algoritmo di apprendimento automatico non supervisionato che raggruppa (raggruppa) automaticamente i dati e quindi analizza i risultati del clustering.
Con un po ‘ di analisi, si potrebbe scoprire che questi cluster generati automaticamente raggruppano apparentemente il team nelle seguenti categorie di esempio nel tempo:
-
difesa Forte, debole esecuzione di reato, forte passaggio offesa, debole delle squadre speciali, i playoff
-
difesa Forte, forte in esecuzione offesa, debole passaggio di reato, la media delle squadre speciali, i playoff
-
difesa Debole, molto forte offesa, forte delle squadre speciali, hanno perso i playoff
-
e così via
Un esempio di supervisionato l’analisi di cluster, sarebbe quello di trovare un potenziale motivo per cui hanno perso i playoff nel terzo cluster di cui sopra. Forse a causa della difesa debole? Gli orsi sono stati tradizionalmente una forte squadra difensiva, e alcuni dicono che la difesa vince i campionati. Solo dicendo
In entrambi i casi, ciascuna delle classificazioni di cui sopra può essere trovata in relazione a un determinato intervallo di tempo, che ci si aspetterebbe. Forse la squadra è stata caratterizzata da uno di questi raggruppamenti più di una volta nel corso della loro storia e per diversi periodi di tempo.
Per caratterizzare il team in questo modo senza tecniche di apprendimento automatico, si dovrebbe scorrere tutti i dati storici e le statistiche, trovare manualmente i modelli e assegnare le classificazioni (cluster) per ogni anno tenendo conto di tutti i dati e compilare le informazioni. Questo non sarebbe sicuramente un compito facile e veloce.
In alternativa, puoi scrivere un programma esplicitamente codificato per riversare i dati, e questo deve sapere quali statistiche di squadra considerare, quali soglie prendere in considerazione per ogni statistica e così via. Ci vorrebbe una notevole quantità di tempo per scrivere il codice e dovrebbero essere scritti diversi programmi per ogni problema che necessita di una risposta.
O… puoi utilizzare un algoritmo di apprendimento automatico per fare tutto questo automaticamente per te in pochi secondi.
Obiettivi e output di apprendimento automatico
Gli algoritmi di apprendimento automatico sono utilizzati principalmente per i seguenti tipi di output:
-
Clustering (non supervisionato)
-
Classificazione a due classi e multi-classe (supervisionata)
-
Regressione: univariata, multivariata, ecc. (Supervisionato)
-
Rilevamento delle anomalie (non supervisionato e supervisionato)
-
Sistemi di raccomandazione (aka recommendation engine)
Gli algoritmi specifici utilizzati per ogni tipo di output sono discussi nella sezione successiva, ma prima, diamo una panoramica generale di ciascuno degli output sopra, o tipi di problema.
Come discusso, il clustering è una tecnica non supervisionata per scoprire la composizione e la struttura di un dato insieme di dati. È un processo di aggregazione dei dati in cluster per vedere quali raggruppamenti emergono, se ce ne sono. Ogni cluster è caratterizzato da un insieme contenuto di punti dati e un centroide del cluster. Il centroide del cluster è fondamentalmente la media (media) di tutti i punti dati che il cluster contiene, in tutte le funzionalità.
I problemi di classificazione comportano l’inserimento di un punto dati (ovvero l’osservazione) in una classe o categoria predefinita. A volte i problemi di classificazione assegnano semplicemente una classe a un’osservazione, e in altri casi l’obiettivo è stimare le probabilità che un’osservazione appartenga a ciascuna delle classi date.
Un ottimo esempio di classificazione a due classi è l’assegnazione della classe di Spam o Ham a un’e-mail in arrivo, dove ham significa semplicemente “non spam”. Classificazione multi-classe significa solo più di due classi possibili. Quindi nell’esempio dello spam, forse una terza classe sarebbe “Sconosciuta”.
La regressione è solo una parola di fantasia per dire che un modello assegnerà un valore continuo (risposta) a un’osservazione dei dati, al contrario di una classe discreta. Un grande esempio di questo sarebbe prevedere il prezzo di chiusura del Dow Jones Industrial Average in un dato giorno. Questo valore potrebbe essere qualsiasi numero e sarebbe quindi un candidato perfetto per la regressione.
Si noti che a volte la parola regressione viene utilizzata nel nome di un algoritmo che viene effettivamente utilizzato per problemi di classificazione o per prevedere una risposta categoriale discreta (ad esempio, spam o ham). Un buon esempio è la regressione logistica, che predice le probabilità di un dato valore discreto.
Un altro tipo di problema è il rilevamento delle anomalie. Mentre ci piacerebbe pensare che i dati siano ben educati e sensibili, sfortunatamente questo spesso non è il caso. A volte ci sono punti dati errati a causa di malfunzionamenti o errori di misurazione, o talvolta a causa di frodi. Altre volte potrebbe essere che le misurazioni anomale sono indicativi di un pezzo guasto di hardware o elettronica.
A volte le anomalie sono indicative di un problema reale e non sono facilmente spiegabili, come un difetto di fabbricazione, e in questo caso, la rilevazione delle anomalie fornisce una misura del controllo di qualità, nonché informazioni sul fatto che le misure adottate per ridurre i difetti abbiano funzionato o meno. In entrambi i casi, ci sono momenti in cui è utile trovare questi valori anomali e alcuni algoritmi di apprendimento automatico possono essere utilizzati per fare proprio questo.
Il tipo finale di problema viene risolto con un sistema di raccomandazione, o anche chiamato motore di raccomandazione. I sistemi di raccomandazione sono un tipo di sistema di filtraggio delle informazioni e hanno lo scopo di formulare raccomandazioni in molte applicazioni, tra cui film, musica, libri, ristoranti, articoli, prodotti e così via. I due approcci più comuni sono il filtraggio basato sui contenuti e collaborativo.
Due grandi esempi di motori di raccomandazione popolari sono quelli offerti da Netflix e Amazon. Netflix fa raccomandazioni al fine di mantenere gli spettatori impegnati e fornito con un sacco di contenuti da guardare. In altre parole, per mantenere le persone che utilizzano Netflix. Lo fanno con le loro raccomandazioni ” Perché hai guardato…”,” Prime scelte per Alex “e” Suggerimenti per te”.
Amazon fa una cosa simile al fine di aumentare le vendite attraverso up-selling, mantenere le vendite attraverso il coinvolgimento degli utenti, e così via. Lo fanno attraverso i loro” I clienti che hanno acquistato questo articolo hanno comprato anche”,” Consigli per te, Alex”,” Relativi agli articoli che hai visualizzato “e” Altri articoli da considerare” raccomandazioni.
Algoritmi di apprendimento automatico
Ora abbiamo coperto i tipi di problemi di apprendimento automatico e gli output desiderati. Ora forniremo una panoramica di alto livello degli algoritmi di apprendimento automatico pertinenti.
Ecco un elenco di algoritmi, supervisionati e non supervisionati, che sono molto popolari e che vale la pena conoscere ad alto livello. Si noti che alcuni di questi algoritmi saranno discussi in modo più approfondito più avanti in questa serie.
Regressione supervisionata
-
Regressione lineare semplice e multipla
-
Regressione dell’albero decisionale o della foresta
-
Reti neurali artificiali
-
Regressione ordinale
-
Regressione di Poisson
-
Metodi vicini più vicini (ad es., k-NN o k-Nearest Neighbors)
Supervisionato Due classi & Multi-Classificazione di classe
-
la regressione Logistica e di regressione multinomiale
-
reti Neurali Artificiali
-
l’albero delle Decisioni, foresta, e giungle
-
SVM (support vector machine)
-
Perceptron metodi
-
classificatori Bayesiani (ad esempio, Naive Bayes)
-
vicino più prossimo metodi (ad es., k-NN o k-Nearest Neighbors)
-
Uno contro tutti i multiclasse
Incustoditi
-
K-means clustering
-
clustering Gerarchico
Anomaly Detection
-
Support vector machine (una classe)
-
PCA (Principio component analysis)
si noti che una tecnica spesso utilizzata per migliorare le prestazioni dei modelli è quello di combinare i risultati di molteplici modelli. Questo approccio sfrutta ciò che è noto come metodi di ensemble e le foreste casuali sono un ottimo esempio (discusso più avanti).
Se non altro, è una buona idea almeno familiarizzare con i nomi di questi algoritmi popolari e avere un’idea di base sul tipo di problema di apprendimento automatico e sull’output per cui potrebbero essere adatti.
Riepilogo
L’apprendimento automatico, l’analisi predittiva e altri argomenti correlati sono campi molto interessanti e potenti.
Mentre questi argomenti possono essere molto tecnici, molti dei concetti coinvolti sono relativamente semplici da capire ad un livello elevato. In molti casi, una semplice comprensione è tutto ciò che è necessario per avere discussioni basate su problemi di apprendimento automatico, progetti, tecniche e così via.
La seconda parte di questa serie fornirà un’introduzione alle prestazioni del modello, coprirà il processo di apprendimento automatico e discuterà dettagliatamente la selezione del modello e i compromessi associati.
Rimanete sintonizzati!
Informazioni sull’autore
Alex è il fondatore di InnoArchiTech e InnoArchiTech Institute, nonché l’autore di AI for People and Business pubblicato da O’Reilly Media.