Machine learning con Python - Nozioni di base
Viviamo nell'era dei dati che si arricchisce di una migliore potenza di calcolo e di più risorse di archiviazione. Questi dati o informazioni aumentano di giorno in giorno, ma la vera sfida è dare un senso a tutti i dati. Le aziende e le organizzazioni stanno cercando di affrontarlo costruendo sistemi intelligenti utilizzando i concetti e le metodologie di Data science, Data mining e Machine learning. Tra questi, l'apprendimento automatico è il campo più interessante dell'informatica. Non sarebbe sbagliato se chiamassimo apprendimento automatico l'applicazione e la scienza degli algoritmi che forniscono un senso ai dati.
Cos'è l'apprendimento automatico?
L'apprendimento automatico (ML) è quel campo dell'informatica con l'aiuto del quale i sistemi informatici possono fornire un senso ai dati più o meno allo stesso modo degli esseri umani.
In parole semplici, ML è un tipo di intelligenza artificiale che estrae modelli da dati grezzi utilizzando un algoritmo o un metodo. L'obiettivo principale del ML è quello di consentire ai sistemi informatici di apprendere dall'esperienza senza essere programmati esplicitamente o l'intervento umano.
Necessità di machine learning
Gli esseri umani, in questo momento, sono le specie più intelligenti e avanzate della terra perché sanno pensare, valutare e risolvere problemi complessi. D'altra parte, l'intelligenza artificiale è ancora nella sua fase iniziale e non ha superato l'intelligenza umana in molti aspetti. Allora la domanda è: qual è la necessità di far apprendere alla macchina? La ragione più adatta per farlo è "prendere decisioni, basate sui dati, con efficienza e scalabilità".
Ultimamente, le organizzazioni stanno investendo molto in nuove tecnologie come Intelligenza Artificiale, Machine Learning e Deep Learning per ottenere le informazioni chiave dai dati per eseguire diverse attività del mondo reale e risolvere i problemi. Possiamo chiamarle decisioni guidate dai dati prese dalle macchine, in particolare per automatizzare il processo. Queste decisioni basate sui dati possono essere utilizzate, invece di utilizzare la logica di programmazione, nei problemi che non possono essere programmati intrinsecamente. Il fatto è che non possiamo fare a meno dell'intelligenza umana, ma un altro aspetto è che tutti noi dobbiamo risolvere i problemi del mondo reale con efficienza su vasta scala. Ecco perché nasce la necessità dell'apprendimento automatico.
Perché e quando far imparare le macchine?
Abbiamo già discusso la necessità del machine learning, ma sorge un'altra domanda: in quali scenari dobbiamo far apprendere alla macchina? Possono esserci diverse circostanze in cui abbiamo bisogno che le macchine prendano decisioni basate sui dati con efficienza e su vasta scala. Le seguenti sono alcune delle circostanze in cui fare in modo che le macchine apprendano sarebbe più efficace:
Mancanza di competenza umana
Il primo scenario in cui vogliamo che una macchina apprenda e prenda decisioni basate sui dati può essere il dominio in cui manca la competenza umana. Gli esempi possono essere navigazioni in territori sconosciuti o pianeti spaziali.
Scenari dinamici
Ci sono alcuni scenari di natura dinamica, ovvero continuano a cambiare nel tempo. In caso di questi scenari e comportamenti, vogliamo che una macchina apprenda e prenda decisioni basate sui dati. Alcuni degli esempi possono essere la connettività di rete e la disponibilità dell'infrastruttura in un'organizzazione.
Difficoltà nel tradurre le competenze in compiti computazionali
Ci possono essere vari domini in cui gli esseri umani hanno la loro esperienza; tuttavia, non sono in grado di tradurre questa esperienza in compiti computazionali. In tali circostanze, vogliamo l'apprendimento automatico. Gli esempi possono essere i domini del riconoscimento vocale, compiti cognitivi ecc.
Modello di machine learning
Prima di discutere il modello di apprendimento automatico, dobbiamo comprendere la seguente definizione formale di ML fornita dal professor Mitchell:
"Si dice che un programma per computer impari dall'esperienza E rispetto ad alcune classi di compiti T e misura delle prestazioni P, se le sue prestazioni nei compiti in T, misurate da P, migliorano con l'esperienza E."
La definizione di cui sopra si concentra fondamentalmente su tre parametri, anche i componenti principali di qualsiasi algoritmo di apprendimento, vale a dire Task (T), Performance (P) ed esperienza (E). In questo contesto, possiamo semplificare questa definizione come:
ML è un campo dell'IA costituito da algoritmi di apprendimento che:
Migliora le loro prestazioni (P)
Durante l'esecuzione di un compito (T)
Nel tempo con l'esperienza (E)
Sulla base di quanto sopra, il diagramma seguente rappresenta un modello di machine learning:
Discutiamoli più in dettaglio ora -
Compito (T)
Dal punto di vista del problema, possiamo definire il compito T come il problema del mondo reale da risolvere. Il problema può essere qualsiasi cosa come trovare il miglior prezzo della casa in una posizione specifica o trovare la migliore strategia di marketing ecc. D'altra parte, se parliamo di apprendimento automatico, la definizione di attività è diversa perché è difficile risolvere attività basate su ML approccio di programmazione convenzionale.
Si dice che un'attività T sia un'attività basata su ML quando è basata sul processo e il sistema deve seguire per operare sui punti dati. Gli esempi di attività basate su ML sono Classificazione, Regressione, Annotazione strutturata, Clustering, Trascrizione ecc.
Esperienza (E)
Come suggerisce il nome, è la conoscenza acquisita dai punti dati forniti all'algoritmo o al modello. Una volta fornito il set di dati, il modello verrà eseguito in modo iterativo e apprenderà alcuni pattern intrinseci. L'apprendimento così acquisito si chiama esperienza (E). Facendo un'analogia con l'apprendimento umano, possiamo pensare a questa situazione come in cui un essere umano sta imparando o acquisendo esperienza da vari attributi come situazione, relazioni, ecc. L'apprendimento supervisionato, non supervisionato e di rinforzo sono alcuni modi per apprendere o acquisire esperienza. L'esperienza acquisita dal nostro modello o algoritmo ML verrà utilizzata per risolvere il compito T.
Prestazioni (P)
Si suppone che un algoritmo ML svolga un'attività e acquisisca esperienza con il passare del tempo. La misura che indica se l'algoritmo ML sta funzionando come previsto o meno è la sua prestazione (P). P è fondamentalmente una metrica quantitativa che racconta come un modello sta eseguendo l'attività, T, usando la sua esperienza, E. Ci sono molte metriche che aiutano a comprendere le prestazioni di ML, come il punteggio di accuratezza, il punteggio F1, la matrice di confusione, la precisione, il richiamo , sensibilità ecc.
Sfide nell'apprendimento delle macchine
Mentre l'apprendimento automatico è in rapida evoluzione, facendo passi da gigante con la sicurezza informatica e le auto autonome, questo segmento dell'IA nel suo insieme ha ancora molta strada da fare. Il motivo è che il ML non è stato in grado di superare una serie di sfide. Le sfide che il ML sta affrontando attualmente sono:
Quality of data- Disporre di dati di buona qualità per gli algoritmi ML è una delle maggiori sfide. L'utilizzo di dati di bassa qualità porta ai problemi relativi alla pre-elaborazione dei dati e all'estrazione delle caratteristiche.
Time-Consuming task - Un'altra sfida affrontata dai modelli ML è il consumo di tempo soprattutto per l'acquisizione dei dati, l'estrazione e il recupero delle caratteristiche.
Lack of specialist persons - Poiché la tecnologia ML è ancora nella sua fase iniziale, la disponibilità di risorse esperte è un lavoro arduo.
No clear objective for formulating business problems - Non avere un obiettivo chiaro e ben definito per i problemi aziendali è un'altra sfida chiave per il ML perché questa tecnologia non è ancora così matura.
Issue of overfitting & underfitting - Se il modello è overfitting o underfitting, non può essere rappresentato bene per il problema.
Curse of dimensionality- Un'altra sfida che il modello ML deve affrontare sono le troppe funzionalità dei punti dati. Questo può essere un vero ostacolo.
Difficulty in deployment - La complessità del modello ML ne rende abbastanza difficile l'implementazione nella vita reale.
Applicazioni dell'apprendimento automatico
L'apprendimento automatico è la tecnologia in più rapida crescita e secondo i ricercatori siamo nell'anno d'oro dell'IA e del machine learning. Viene utilizzato per risolvere molti problemi complessi del mondo reale che non possono essere risolti con l'approccio tradizionale. Di seguito sono riportate alcune applicazioni del mondo reale di ML:
Analisi delle emozioni
Analisi del sentiment
Rilevamento e prevenzione degli errori
Previsioni e previsioni meteorologiche
Analisi e previsioni del mercato azionario
Sintesi vocale
Riconoscimento vocale
Segmentazione della clientela
Riconoscimento di oggetti
Intercettazione di una frode
Prevenzione frodi
Raccomandazione dei prodotti al cliente nello shopping online.