📚 Guarda il nostro tutorial che si immerge nella semplice regressione lineare con matematica e Python. 📚

Cos’è il machine learning?

Il professor Tom M. Mitchell ha ritratto spiegando la definizione operativa del machnine learning.
Il professor Tom M. Mitchell ha illustrato la definizione operativa dell'apprendimento machnino.
Fonte: Machine Learning Department at Carnegie Mellon

Si dice che un programma per computer impara dall’esperienza E rispetto a qualche classe di compiti T e alla misura delle prestazioni P, se le sue prestazioni ai compiti in T, misurate da P, migliorano con l’esperienza E. ~ Tom M. Mitchell

L’apprendimento del computer si comporta in modo simile alla crescita di un bambino. Man mano che un bambino cresce, la sua esperienza E nell’eseguire il compito T aumenta, il che si traduce in una misura di performance più alta (P).

Per esempio, diamo un giocattolo “shape sorting block” a un bambino. (Ora sappiamo tutti che in questo giocattolo ci sono diverse forme e buchi di forma). In questo caso, il nostro compito T è di trovare un foro di forma appropriato per una forma. In seguito, il bambino osserva la forma e cerca di inserirla in un buco di forma. Diciamo che questo giocattolo ha tre forme: un cerchio, un triangolo e un quadrato. Nel suo primo tentativo di trovare un buco sagomato, la sua misura di prestazione (P) è 1/3, il che significa che il bambino ha trovato 1 buco sagomato corretto su 3.

In secondo luogo, il bambino ci prova un’altra volta e nota che è un po’ esperto in questo compito. Considerando l’esperienza acquisita (E), la bambina prova questo compito un’altra volta, e misurando la prestazione (P), risulta essere 2/3. Dopo aver ripetuto questo compito (T) 100 volte, la bambina ora ha capito quale forma va in quale buco di forma.

Quindi la sua esperienza (E) è aumentata, la sua prestazione (P) è anche aumentata, e poi notiamo che all’aumentare del numero di tentativi di questo giocattolo. Anche la performance aumenta, il che si traduce in una maggiore accuratezza.

Questa esecuzione è simile all’apprendimento automatico. Quello che fa una macchina è prendere un compito (T), eseguirlo e misurarne le prestazioni (P). Ora una macchina ha un gran numero di dati, quindi man mano che elabora quei dati, la sua esperienza (E) aumenta nel tempo, risultando in una misura di performance più alta (P). Quindi, dopo aver esaminato tutti i dati, la precisione del nostro modello di apprendimento automatico aumenta, il che significa che le previsioni fatte dal nostro modello saranno molto accurate.

Un’altra definizione di apprendimento automatico di Arthur Samuel:

L’apprendimento automatico è il sottocampo dell’informatica che dà “ai computer la capacità di imparare senza essere esplicitamente programmati.” ~ Arthur Samuel

Cerchiamo di capire questa definizione: Si afferma “imparare senza essere esplicitamente programmati” – il che significa che non insegneremo al computer con una serie specifica di regole, ma invece, quello che faremo è alimentare il computer con abbastanza dati e dargli il tempo di imparare da essi, facendo i propri errori e migliorare su quelli. Per esempio, non abbiamo insegnato al bambino come inserire le forme, ma eseguendo lo stesso compito diverse volte, il bambino ha imparato a inserire le forme nel giocattolo da solo.

Quindi, possiamo dire che non abbiamo insegnato esplicitamente al bambino come inserire le forme. Facciamo la stessa cosa con le macchine. Gli diamo abbastanza dati su cui lavorare e gli diamo le informazioni che vogliamo. Così elabora i dati e li predice accuratamente.

Perché abbiamo bisogno del machine learning?

Per esempio, abbiamo una serie di immagini di cani e gatti. Quello che vogliamo fare è classificarle in un gruppo di cani e gatti. Per farlo abbiamo bisogno di scoprire diverse caratteristiche degli animali, come:

  1. Quanti occhi ha ogni animale?
  2. Qual è il colore degli occhi di ogni animale?
  3. Qual è l’altezza di ogni animale?
  4. Qual è il peso di ogni animale?
  5. Cosa mangia generalmente ogni animale?

Formiamo un vettore su ciascuna delle risposte a queste domande. Poi, applichiamo una serie di regole come:

Se l’altezza > 1 piede e il peso > 15 libbre, allora potrebbe essere un gatto.

Ora, dobbiamo fare un tale insieme di regole per ogni punto di dati. Inoltre, mettiamo un albero decisionale di dichiarazioni if, else if, else e controlliamo se rientra in una delle categorie.

Immaginiamo che il risultato di questo esperimento non sia stato fruttuoso perché ha classificato male molti degli animali, il che ci dà un’eccellente opportunità di usare il machine learning.

Quello che fa il machine learning è elaborare i dati con diversi tipi di algoritmi e ci dice quale caratteristica è più importante per determinare se è un gatto o un cane. Così, invece di applicare molte serie di regole, possiamo semplificare il tutto basandoci su due o tre caratteristiche, e come risultato, ci dà una maggiore precisione. Il metodo precedente non era abbastanza generalizzato per fare previsioni.

I modelli di machine learning ci aiutano in molti compiti, come:

  • Riconoscimento di oggetti
  • Sommarizzazione
  • Predizione
  • Classificazione
  • Clustering
  • Sistemi di raccomandazione
  • E altri

Cos’è un modello di machine learning?

Un modello di apprendimento automatico è un sistema di domande/risposte che si occupa di elaborare compiti relativi all’apprendimento automatico. Pensatelo come un sistema di algoritmi che rappresenta i dati quando si risolvono i problemi. I metodi che affronteremo di seguito sono utili per scopi legati all’industria per affrontare problemi di business.

Per esempio, immaginiamo di lavorare sul sistema ML di Google Adwords, e il nostro compito è quello di implementare un algoritmo ML per trasmettere un particolare demografico o area utilizzando i dati. Tale compito ha lo scopo di passare dall’uso dei dati alla raccolta di intuizioni preziose per migliorare i risultati di business.

I principali algoritmi di apprendimento automatico:

Utilizziamo algoritmi di regressione per prevedere valori continui.

Algoritmi di regressione:

  • Regressione lineare
  • Regressione polinomiale
  • Regressione esponenziale
  • Regressione logistica
  • Regressione logaritmica

Classificazione

Utilizziamo algoritmi di classificazione per prevedere la classe o la categoria di un insieme di elementi.

Algoritmi di classificazione:

  • K-Nearest Neighbors
  • Alberi di Decisione
  • Random Forest
  • Support Vector Machine
  • Naive Bayes

Clustering

Utilizziamo algoritmi di clustering per riassumere o per strutturare i dati.

Algoritmi di clustering:

  • K-means
  • DBSCAN
  • Mean Shift
  • Hierarchical

Associazione

Utilizziamo algoritmi di associazione per associare elementi o eventi co-occorrenti.

Algoritmi di associazione:

  • Apriori

Rilevamento di anomalie

Utilizziamo il rilevamento di anomalie per scoprire attività anomale e casi insoliti come il rilevamento di frodi.

Sequence Pattern Mining

Utilizziamo il sequential pattern mining per predire i prossimi eventi tra gli esempi di dati in una sequenza.

Riduzione della dimensionalità

Utilizziamo la riduzione della dimensionalità per ridurre la dimensione dei dati ed estrarre solo le caratteristiche utili da un set di dati.

Sistemi di raccomandazione

Utilizziamo algoritmi di raccomandazione per costruire motori di raccomandazione.

Esempi:

  • Sistema di raccomandazione Netflix.
  • Un sistema di raccomandazione di libri.
  • Un sistema di raccomandazione di prodotti su Amazon.

Al giorno d’oggi, sentiamo molte parole d’ordine come intelligenza artificiale, apprendimento automatico, apprendimento profondo e altre.

Quali sono le differenze fondamentali tra Intelligenza Artificiale, Machine Learning e Deep Learning?

📚 Guarda le nostre raccomandazioni editoriali sui migliori libri di apprendimento automatico. 📚

Intelligenza artificiale (AI):

L’intelligenza artificiale (AI), come definita dal professor Andrew Moore, è la scienza e l’ingegneria di far comportare i computer in modi che, fino a poco tempo fa, pensavamo richiedessero l’intelligenza umana.

Questi includono:

  • Visione del computer
  • Elaborazione del linguaggio
  • Creatività
  • Sommarizzazione

Apprendimento della macchina (ML):

Come definito dal professor Tom Mitchell, l’apprendimento automatico si riferisce a una branca scientifica dell’IA, che si concentra sullo studio degli algoritmi informatici che permettono ai programmi informatici di migliorare automaticamente attraverso l’esperienza.

Questi includono:

  • Classificazione
  • Rete neurale
  • Clustering

Deep Learning:

Deep learning è un sottoinsieme del machine learning in cui reti neurali stratificate, combinate con un’elevata potenza di calcolo e grandi set di dati, possono creare potenti modelli di apprendimento automatico.

Rappresentazione astratta delle reti neurali | Foto di Clink Adair via Unsplash

Rappresentazione astratta delle reti neurali | Foto di Clink Adair via Unsplash

Rappresentazione astratta delle reti neurali | Foto di Clink Adair via Unsplash

Perché preferiamo Python per implementare algoritmi di apprendimento automatico?

Python è un linguaggio di programmazione popolare e generico. Possiamo scrivere algoritmi di apprendimento automatico usando Python, e funziona bene. Il motivo per cui Python è così popolare tra gli scienziati dei dati è che Python ha una varietà di moduli e librerie già implementate che ci rendono la vita più comoda.

Diamo un breve sguardo ad alcune interessanti librerie Python.

  1. Numpy: È una libreria matematica per lavorare con array n-dimensionali in Python. Ci permette di fare calcoli in modo efficace ed efficiente.
  2. Scipy: Si tratta di una raccolta di algoritmi numerici e di strumenti specifici del dominio, tra cui l’elaborazione dei segnali, l’ottimizzazione, la statistica e molto altro. Scipy è una libreria funzionale per calcoli scientifici e ad alte prestazioni.
  3. Matplotlib: E’ un pacchetto di plotting alla moda che fornisce plotting 2D e 3D.
  4. Scikit-learn: È una libreria gratuita di apprendimento automatico per il linguaggio di programmazione Python. Ha la maggior parte degli algoritmi di classificazione, regressione e clustering, e funziona con le librerie numeriche Python come Numpy, Scipy.

Gli algoritmi di apprendimento automatico si classificano in due gruppi :

  • Algoritmi di apprendimento supervisionato
  • Algoritmi di apprendimento non supervisionato

I. Algoritmi di apprendimento supervisionato:

Obiettivo: predire l’etichetta della classe o del valore.

L’apprendimento supervisionato è un ramo dell’apprendimento automatico (forse è il mainstream dell’apprendimento automatico/apprendimento profondo per ora) relativo alla deduzione di una funzione dai dati di addestramento etichettati. I dati di addestramento consistono in un insieme di coppie *(input, target)*, dove l’input potrebbe essere un vettore di caratteristiche, e il target indica cosa desideriamo che la funzione emetta. A seconda del tipo di *obiettivo*, possiamo approssimativamente dividere l’apprendimento supervisionato in due categorie: classificazione e regressione. La classificazione coinvolge obiettivi categorici; gli esempi vanno da alcuni casi semplici, come la classificazione delle immagini, ad alcuni argomenti avanzati, come le traduzioni automatiche e le didascalie delle immagini. La regressione coinvolge obiettivi continui. Le sue applicazioni includono la previsione delle azioni, il mascheramento delle immagini, e altre, che rientrano tutte in questa categoria.

Per illustrare l’esempio di apprendimento supervisionato sotto | Fonte: Foto di Shirota Yuri, Unsplash

Per capire cos’è l’apprendimento supervisionato, useremo un esempio. Per esempio, diamo a un bambino 100 animali di peluche in cui ci sono dieci animali di ogni tipo come dieci leoni, dieci scimmie, dieci elefanti e altri. Poi, insegniamo al bambino a riconoscere i diversi tipi di animali in base alle diverse caratteristiche di un animale. Ad esempio, se il suo colore è arancione, allora potrebbe essere un leone. Se è un grande animale con una proboscide, allora potrebbe essere un elefante.

Insegniamo al bambino come differenziare gli animali, questo può essere un esempio di apprendimento supervisionato. Ora, quando diamo al bambino diversi animali, dovrebbe essere in grado di classificarli in un gruppo di animali appropriato.

Per il bene di questo esempio, notiamo che 8/10 delle sue classificazioni sono state corrette. Quindi possiamo dire che il bambino ha fatto un buon lavoro. Lo stesso vale per i computer. Gli forniamo migliaia di punti di dati con i loro valori reali etichettati (i dati etichettati sono dati classificati in diversi gruppi insieme ai loro valori di caratteristica). Poi impara dalle sue diverse caratteristiche nel suo periodo di allenamento. Dopo che il periodo di addestramento è finito, possiamo usare il nostro modello addestrato per fare previsioni. Tenete a mente che abbiamo già alimentato la macchina con dati etichettati, quindi il suo algoritmo di predizione è basato sull’apprendimento supervisionato. In breve, possiamo dire che le previsioni di questo esempio sono basate su dati etichettati.

Esempio di algoritmi di apprendimento supervisionato :

  • Regressione lineare
  • Regressione logistica
  • K-Nearest Neighbors
  • Albero di decisione
  • Random Forest
  • Support Vector Machine

II. Apprendimento non supervisionato:

Obiettivo: Determinare modelli/raggruppamenti di dati.

In contrasto con l’apprendimento supervisionato. L’apprendimento non supervisionato infonde dai dati non etichettati, una funzione che descrive le strutture nascoste nei dati.

Forse il tipo più basilare di apprendimento non supervisionato sono i metodi di riduzione delle dimensioni, come PCA, t-SNE, mentre PCA è generalmente usato nella pre-elaborazione dei dati, e t-SNE solitamente usato nella visualizzazione dei dati.

Un ramo più avanzato è il clustering, che esplora i modelli nascosti nei dati e poi fa previsioni su di essi; esempi includono il clustering K-mean, i modelli a miscela gaussiana, i modelli di Markov nascosti, e altri.

Insieme alla rinascita del deep learning, l’apprendimento non supervisionato guadagna sempre più attenzione perché ci libera dall’etichettatura manuale dei dati. Alla luce del deep learning, consideriamo due tipi di apprendimento non supervisionato: l’apprendimento di rappresentazione e i modelli generativi.

L’apprendimento di rappresentazione mira a distillare una caratteristica rappresentativa di alto livello che sia utile per alcuni compiti a valle, mentre i modelli generativi intendono riprodurre i dati di input da alcuni parametri nascosti.

Per illustrare l’esempio di apprendimento non supervisionato sotto | Fonte: Foto di Jelleke Vanooteghem, Unsplash

L’apprendimento non supervisionato funziona come sembra. In questo tipo di algoritmi, non abbiamo dati etichettati. Quindi la macchina deve elaborare i dati di input e cercare di trarre conclusioni sull’output. Per esempio, ricordate il bambino a cui abbiamo dato un giocattolo di forma? In questo caso, imparerebbe dai suoi stessi errori a trovare il buco perfetto per forme diverse.

Ma la fregatura è che non stiamo alimentando il bambino insegnando i metodi per adattare le forme (per scopi di apprendimento automatico chiamati dati etichettati). Tuttavia, il bambino impara dalle diverse caratteristiche del giocattolo e cerca di trarre conclusioni su di esse. In breve, le previsioni sono basate su dati non etichettati.

Esempi di algoritmi di apprendimento non supervisionato:

  • Riduzione delle dimensioni
  • Stima della densità
  • Analisi del paniere di mercato
  • Reti adversariali generative (GANs)
  • Clustering

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *