JavaRush /Java Blog /Random-IT /Deep Learning, intelligenza artificiale e machine learnin...

Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio

Pubblicato nel gruppo Random-IT
Vuoi brillare con il tuo intelletto in compagnia dei colleghi o stupire i tuoi amici in una conversazione su argomenti tecnici attuali? Menziona “Intelligenza Artificiale” o “Apprendimento automatico” in una conversazione e il gioco è fatto. Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 1Il termine “Intelligenza Artificiale” è ormai ampiamente diffuso. I programmatori vogliono imparare l'intelligenza artificiale. I leader vogliono implementare l’intelligenza artificiale nei loro servizi. Ma in pratica, anche i professionisti non sempre capiscono cosa sia l’“intelligenza artificiale”. Questo articolo ha lo scopo di aiutarti a comprendere i termini “intelligenza artificiale” e “apprendimento automatico”. Imparerai anche come funziona il Deep Learning, il tipo più popolare di machine learning. E, ciò che è importante, queste istruzioni sono scritte in un linguaggio abbastanza accessibile. La matematica qui non sarà troppo difficile da capire.

Nozioni di base

Il primo passo per capire cos’è il Deep Learning è capire la differenza tra i termini chiave.
Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 2
Immagine: Datanami

Intelligenza artificiale contro apprendimento automatico

L'intelligenza artificiale (AI o AI agnl.) è un tentativo di copiare il processo di pensiero umano tramite un computer. Quando la ricerca nel campo dell'intelligenza artificiale era appena iniziata, gli scienziati hanno cercato di copiare rigorosamente il comportamento dell'intelligenza umana in determinate condizioni, cioè di affinarlo per risolvere determinati problemi. Ad esempio, in modo che la macchina possa giocare. Stabilirono una serie di regole che la macchina informatica doveva seguire. Il computer aveva un elenco di azioni possibili e prendeva decisioni in base alle regole e alle restrizioni stabilite durante la fase di progettazione.
Per machine learning (ML o ML in inglese) si intende la capacità di una macchina di apprendere elaborando grandi insiemi di informazioni anziché regole chiaramente definite.
Il machine learning consente ai computer di apprendere da soli. Questo tipo di apprendimento sfrutta la moderna tecnologia informatica, che può facilmente elaborare enormi quantità di dati.

Apprendimento supervisionato vs apprendimento non supervisionato

L'apprendimento supervisionato utilizza set di dati etichettati costituiti da input e output attesi. Quando addestri l'intelligenza artificiale utilizzando l'apprendimento supervisionato, fornisci dati come input e specifichi quale dovrebbe essere l'output. Se il risultato prodotto dall’IA è diverso da quanto previsto, allora l’IA deve correggere i suoi calcoli. Il processo viene ripetuto più volte sull’array di dati finché l’IA commette errori. Un esempio di apprendimento supervisionato sarebbe l’intelligenza artificiale che prevede il tempo. Impara a prevedere il tempo utilizzando i dati storici. I dati di input sono pressione, umidità e velocità del vento e di conseguenza dovremmo ottenere la temperatura. L’apprendimento non supervisionato è un compito che consiste nell’addestrare l’intelligenza artificiale utilizzando dati non strutturati. Quando addestri l’intelligenza artificiale utilizzando l’apprendimento non supervisionato, consenti all’IA di effettuare classificazioni logiche dei dati. Un esempio di intelligenza artificiale che utilizza l’apprendimento automatico senza supervisione è un robot che prevede il comportamento dei clienti in un negozio online. Apprende senza utilizzare input e output preconosciuti. Invece, deve classificare esso stesso i dati di input. L'algoritmo dovrebbe identificare e dirti quale tipo di utenti preferisce quali prodotti.

Come funziona l'apprendimento automatico

Quindi, il Deep Learning è uno degli approcci all’apprendimento automatico. Ti consente di prevedere i risultati da determinati dati di input. Per addestrare l’intelligenza artificiale, puoi utilizzare entrambe le opzioni di cui sopra: apprendimento supervisionato e non supervisionato. Capiremo come funziona il Deep Learning utilizzando un chiaro esempio: diciamo che dobbiamo sviluppare un servizio per prevedere i prezzi dei viaggi aerei. Addestreremo il nostro algoritmo utilizzando un metodo supervisionato. Vogliamo che il nostro servizio di previsione dei prezzi per i viaggi aerei preveda il prezzo sulla base dei seguenti dati di input (non prendiamo in considerazione il volo di ritorno per facilità di presentazione):
  • aeroporto di partenza;
  • aeroporto di arrivo;
  • data di partenza prevista;
  • compagnia aerea.
Reti neurali Diamo uno sguardo al cervello dell'intelligenza artificiale. Come nel caso degli esseri viventi biologici, il nostro predittore ha dei neuroni nella sua “testa”. Nella foto sono presentati sotto forma di cerchi. I neuroni sono collegati tra loro.
Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 3
Nell'immagine, i neuroni sono combinati in tre gruppi di strati:
  • livello di input;
  • livello nascosto 1 (livello nascosto 1) e livello nascosto 2 (livello nascosto 2);
  • strato di uscita.
Alcuni dati entrano nel livello di input. Nel nostro caso abbiamo quattro neuroni sul livello di input: aeroporto di partenza, aeroporto di arrivo, data di partenza, compagnia aerea. Il livello di input passa i dati al primo livello nascosto. I livelli nascosti eseguono calcoli matematici in base ai dati di input ricevuti. Uno dei problemi principali quando si costruiscono reti neurali è la scelta del numero di strati nascosti e del numero di neuroni in ciascuno strato.
La parola Deep nella frase Deep Learning indica la presenza di più di uno strato nascosto.
Il livello di output ci restituisce le informazioni risultanti. Nel nostro caso, il prezzo previsto del volo.
Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 4
Finora ci siamo persi la cosa più interessante: come viene calcolato esattamente il prezzo previsto? È qui che inizia la magia del Deep Learning. Ad ogni connessione tra neuroni viene assegnato un certo peso (coefficiente). Questo peso determina l'importanza del valore di input. I pesi iniziali sono impostati in modo casuale. Quando si prevede il costo del viaggio aereo, la data di partenza influisce maggiormente sul prezzo. Pertanto, le connessioni del neurone “data di partenza” hanno più peso.
Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 5
Ogni neurone ha una funzione di attivazione ad esso collegata. È difficile capire quale sia questa funzione senza conoscenze matematiche. Facciamo quindi qualche semplificazione: lo scopo della funzione di attivazione è “standardizzare” l'output del neurone. Dopo che il set di dati ha attraversato tutti gli strati della rete neurale, restituisce il risultato attraverso lo strato di output. Finora è tutto chiaro, vero?

Formazione sulla rete neurale

Addestrare una rete neurale è la parte più difficile del Deep Learning! Perché? Perché hai bisogno di una grande quantità di dati. Perché hai bisogno di più potenza di calcolo. Per il nostro progetto, abbiamo bisogno di trovare dati storici sulle tariffe aeree. Inoltre, per tutte le possibili combinazioni di aeroporti di partenza e di destinazione, date di partenza e diverse compagnie aeree. Abbiamo bisogno di una grande quantità di dati con i prezzi dei biglietti. Dobbiamo fornire i dati di input dal nostro set agli input della nostra rete neurale e verificare se corrispondono ai risultati che già abbiamo. Se i risultati ottenuti dall’intelligenza artificiale differiscono da quelli attesi, significa che non si è ancora allenata abbastanza. Una volta che abbiamo eseguito l'intera quantità di dati attraverso la nostra rete neurale, possiamo creare una funzione che indicherà quanto diversi sono i risultati dell'intelligenza artificiale dai risultati effettivi nel nostro set di dati. Tale funzione è detta funzione di costo . Nel caso ideale, a cui aspiriamo con tutte le nostre forze, i valori della nostra funzione di costo sono pari a zero. Ciò significa che i risultati dei costi selezionati dalla rete neurale non differiscono dal costo effettivo dei biglietti nel nostro set di dati.

Come possiamo ridurre il valore della funzione di costo?

Cambiamo i pesi delle connessioni tra i neuroni. Questo può essere fatto in modo casuale, ma questo approccio non è efficiente. Utilizzeremo invece un metodo chiamato Gradient Descent .
La discesa del gradiente è un metodo che ci permette di trovare il minimo di una funzione. Nel nostro caso, stiamo cercando il minimo della funzione di costo.
Questo algoritmo funziona aumentando gradualmente i pesi dopo ogni nuova iterazione dell'elaborazione del nostro set di dati. Calcolando la derivata (o gradiente) della funzione di costo per determinati insiemi di pesi, possiamo vedere in quale direzione si trova il minimo.
Deep Learning, intelligenza artificiale e machine learning for dummies: spiegato con un esempio - 6
Nella figura: Peso iniziale - peso iniziale, Minimo di costo globale - minimo globale della funzione di costo. Per ridurre al minimo la funzione di costo, dobbiamo eseguire i calcoli sul nostro set di dati molte volte. Questo è il motivo per cui hai bisogno di molta potenza di calcolo. I pesi vengono aggiornati automaticamente utilizzando il metodo della discesa del gradiente. Questa è la magia del Deep Learning! Una volta addestrato il nostro servizio di previsione dei prezzi dei voli basato sull'intelligenza artificiale, possiamo utilizzarlo in tutta sicurezza per prevedere i prezzi nella realtà.

Riassumiamo...

  • Il deep learning utilizza le reti neurali per simulare l’intelligenza.
  • Esistono tre tipi di neuroni in una rete neurale: strato di input, strati nascosti, strato di output.
  • Ogni connessione tra neuroni ha il suo peso, indicando l'importanza di quell'input.
  • I neuroni utilizzano una funzione di attivazione per “standardizzare” l’output del neurone.
  • Per addestrare una rete neurale è necessaria una grande quantità di dati.
  • Se elaboriamo un array di dati utilizzando una rete neurale e confrontiamo i dati di output con i dati effettivi, otterremo una funzione di costo che mostra quanto l’intelligenza artificiale è sbagliata.
  • Dopo ogni elaborazione dei dati, i pesi tra i neuroni vengono adeguati utilizzando il metodo della discesa del gradiente per ottenere una riduzione della funzione di costo.
Collegamento all'originale
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION