Apprendimento automatico e Reti Neurali - pagina 60

 

Lezione 16.3 — Ottimizzazione bayesiana di iperparametri



Lezione 16.3 — Ottimizzazione bayesiana di iperparametri [Reti Neurali per Machine Learning]

In questo video, discuterò alcuni lavori recenti che affrontano la questione di come determinare gli iperparametri nelle reti neurali. L'approccio presentato in questo lavoro utilizza un diverso tipo di apprendimento automatico per assistere nella selezione di valori appropriati per gli iperparametri. Invece di regolare manualmente le impostazioni degli iperparametri, questo metodo utilizza l'apprendimento automatico per automatizzare il processo. La tecnica si basa sui processi gaussiani, che sono efficaci nella modellazione di funzioni lisce. Sebbene i processi gaussiani fossero tradizionalmente considerati inadeguati per compiti come la parola e la visione, sono adatti per domini con conoscenze pregresse limitate, dove input simili tendono a produrre output simili.

Gli iperparametri, come il numero di unità nascoste, i livelli, la penalità di peso e l'uso del dropout, svolgono un ruolo cruciale nelle prestazioni della rete neurale. Trovare le giuste combinazioni di iperparametri può essere difficile, soprattutto quando si esplora lo spazio manualmente. I processi gaussiani eccellono nell'identificare le tendenze nei dati e possono identificare efficacemente buoni set di iperparametri. Molti ricercatori esitano a utilizzare le reti neurali a causa della difficoltà di impostare correttamente gli iperparametri, poiché un valore errato per un iperparametro può rendere inefficace la rete. La ricerca della griglia, un approccio comune, comporta il tentativo esaustivo di tutte le possibili combinazioni, che diventa irrealizzabile con numerosi iperparametri.

Tuttavia, un metodo più efficiente prevede il campionamento casuale di combinazioni di iperparametri. In questo modo si evitano esperimenti ridondanti e si presta maggiore attenzione agli iperparametri che hanno un impatto significativo. Tuttavia, le combinazioni casuali hanno dei limiti ed è qui che entra in gioco l'apprendimento automatico. Utilizzando l'apprendimento automatico, possiamo simulare il processo di uno studente laureato che seleziona i valori degli iperparametri. Piuttosto che fare affidamento su combinazioni casuali, esaminiamo i risultati ottenuti finora e prevediamo quali combinazioni probabilmente produrranno buoni risultati. Questa previsione richiede la determinazione delle regioni dello spazio degli iperparametri che dovrebbero fornire risultati favorevoli.

Per costruire un modello predittivo, presumiamo che la valutazione di una singola impostazione di iperparametro richieda notevoli risorse computazionali, come l'addestramento di una grande rete neurale su un enorme set di dati, che può richiedere giorni. D'altra parte, la costruzione di un modello per prevedere le prestazioni delle impostazioni degli iperparametri sulla base di esperimenti precedenti è computazionalmente meno impegnativa. I modelli di processo gaussiano, che presuppongono che input simili portino a output simili, sono adatti a tali previsioni. Questi modelli apprendono la scala appropriata per misurare la somiglianza in ogni dimensione di input, consentendoci di identificare valori di iperparametri simili e dissimili.

Inoltre, i modelli di processo gaussiano non solo prevedono il risultato atteso di un esperimento, ma forniscono anche una distribuzione delle previsioni, inclusa una varianza. Quando si prevedono le prestazioni di nuove impostazioni di iperparametri simili alle impostazioni precedenti, le previsioni dei modelli sono precise e hanno una varianza bassa. Al contrario, per le impostazioni degli iperparametri che differiscono in modo significativo da qualsiasi esperimento precedente, le previsioni hanno un'elevata varianza.

La strategia per l'utilizzo dei processi gaussiani per determinare la successiva impostazione dell'iperparametro prevede la selezione di un'impostazione che dovrebbe produrre un miglioramento sostanziale rispetto all'impostazione migliore osservata finora. Il rischio di incontrare un risultato scadente è accettabile in quanto non sostituirebbe la migliore impostazione ottenuta. Questa strategia è simile all'approccio utilizzato dai gestori di hedge fund, che hanno incentivi significativi ad assumersi rischi perché non vi è alcun ribasso significativo. Seguendo questa strategia, possiamo prendere decisioni informate su quali impostazioni dell'iperparametro esplorare successivamente.

Questa politica può essere adattata per eseguire più esperimenti in parallelo, rendendo il processo più efficiente. Come esseri umani, è difficile tenere traccia dei risultati di numerosi esperimenti e prevederne accuratamente i risultati. Tuttavia, i modelli di processo gaussiano possono gestire questa attività in modo efficace poiché possono rilevare tendenze e modelli nei dati. Infine, i modelli di processo gaussiano sono meno soggetti a bias rispetto agli esseri umani. Quando conducono ricerche, i ricercatori tendono spesso a impegnarsi maggiormente nella ricerca di buone impostazioni degli iperparametri per il loro nuovo metodo rispetto ai metodi consolidati. L'utilizzo di modelli di processo gaussiani elimina questo pregiudizio, in quanto ricercano buoni set di iperparametri allo stesso modo per tutti i modelli valutati. In conclusione, i modelli di processo gaussiano forniscono un approccio potente ed efficiente per determinare gli iperparametri nelle reti neurali. Sfruttando le capacità predittive dei processi gaussiani, possiamo automatizzare il processo di selezione dei valori degli iperparametri, riducendo la necessità di esplorazione manuale e congetture.

I metodi tradizionali come la ricerca sulla griglia possono essere poco pratici quando si ha a che fare con un numero elevato di iperparametri. Il campionamento casuale di combinazioni di iperparametri è un approccio più efficiente, ma presenta ancora dei limiti. Incorporando l'apprendimento automatico, possiamo simulare il processo decisionale di un ricercatore umano e fare previsioni più informate su quali combinazioni di iperparametri potrebbero produrre buoni risultati. I modelli di processo gaussiano sono particolarmente adatti a questo compito. Eccellono nell'identificare le tendenze nei dati e possono modellare efficacemente la relazione tra le impostazioni degli iperparametri e i risultati delle prestazioni. Questi modelli non solo prevedono le prestazioni previste delle nuove impostazioni degli iperparametri, ma forniscono anche una distribuzione delle previsioni, inclusa una misura dell'incertezza. Questo ci consente di valutare l'affidabilità delle previsioni e prendere decisioni più informate.

La strategia per l'utilizzo dei processi gaussiani comporta la selezione delle impostazioni degli iperparametri che dovrebbero produrre miglioramenti sostanziali rispetto alle migliori impostazioni osservate finora. Prendendo rischi calcolati ed esplorando impostazioni che differiscono in modo significativo dagli esperimenti precedenti, possiamo potenzialmente scoprire configurazioni ancora migliori. Inoltre, i modelli di processo gaussiano possono gestire più esperimenti in parallelo, rendendo il processo più efficiente. Possono rilevare tendenze e modelli nei dati, consentendo l'esplorazione simultanea di diverse impostazioni di iperparametri. Un altro vantaggio dell'utilizzo dei processi gaussiani è la loro capacità di ridurre al minimo i bias. I ricercatori spesso investono maggiori sforzi nella ricerca di buone impostazioni degli iperparametri per i loro nuovi metodi rispetto a quelli consolidati. I modelli di processo gaussiano eliminano questo pregiudizio cercando in modo uniforme i set di iperparametri ottimali in tutti i modelli valutati.

I modelli di processo gaussiano offrono un approccio potente ed efficiente per determinare gli iperparametri nelle reti neurali. Sfruttando le loro capacità predittive, possiamo automatizzare il processo e prendere decisioni più informate su quali impostazioni degli iperparametri esplorare. Questo approccio riduce la dipendenza dall'esplorazione manuale e migliora l'efficienza e l'efficacia della messa a punto degli iperparametri nella ricerca sulle reti neurali.

Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Lezione 16.4 — La nebbia del progresso



Lezione 16.4 — La nebbia del progresso [Reti neurali per l'apprendimento automatico]

In questo video finale, sono stato tentato di fare previsioni sul futuro della ricerca sulle reti neurali. Tuttavia, vorrei spiegare perché tentare previsioni a lungo termine sarebbe estremamente sciocco. Userò un'analogia per illustrare questo punto.

Immagina di guidare un'auto di notte e di concentrarti sulle luci posteriori dell'auto davanti a te. Il numero di fotoni che ricevi da quelle luci posteriori diminuisce con l'inverso del quadrato della distanza (1/d^2), assumendo aria limpida. Tuttavia, se c'è nebbia, il comportamento cambia. Su brevi distanze, il numero di fotoni scende ancora a 1/d^2 perché la nebbia non assorbe molta luce in quell'intervallo. Ma su distanze maggiori, la diminuzione segue una funzione esponenziale (e^(-d)) perché la nebbia ha un effetto esponenziale. Assorbe una frazione di fotoni per unità di distanza, rendendola più opaca all'aumentare della distanza. Ciò significa che l'auto davanti a te potrebbe diventare completamente invisibile a una distanza in cui il tuo modello a corto raggio ha previsto che sarebbe stata visibile. Questo fenomeno è responsabile degli incidenti causati da persone che si scontrano con il retro delle auto nella nebbia.

Allo stesso modo, lo sviluppo della tecnologia, inclusi l'apprendimento automatico e le reti neurali, è tipicamente esponenziale. A breve termine, i progressi sembrano essere relativamente lenti e prevedibili. Possiamo fare ipotesi ragionevoli sul prossimo futuro, come le caratteristiche del prossimo modello di iPhone. Tuttavia, quando guardiamo più avanti nel futuro a lungo termine, la nostra capacità di previsione colpisce un muro, proprio come con la nebbia. Semplicemente non sappiamo cosa accadrà tra 30 anni perché il progresso esponenziale può portare a cambiamenti inaspettati e trasformativi.

Pertanto, il futuro a lungo termine dell'apprendimento automatico e delle reti neurali rimane un mistero totale. Non possiamo prevederlo sulla base delle nostre attuali conoscenze. Tuttavia, nel breve periodo, diciamo da 3 a 10 anni, possiamo fare previsioni abbastanza accurate. Mi sembra evidente che nei prossimi cinque anni circa, le grandi reti neurali profonde continueranno a realizzare cose straordinarie.

Vorrei cogliere l'occasione per congratularmi con tutti voi per aver seguito il corso fino alla fine. Spero vi sia piaciuto e vi auguro buona fortuna per il test finale.

Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Un'introduzione amichevole al Deep Learning e alle reti neurali



Un'introduzione amichevole al Deep Learning e alle reti neurali

Benvenuto in un'introduzione al deep learning! Sono Luis Serrano e lavoro a Udacity. Iniziamo rispondendo alla domanda: cos'è l'apprendimento automatico?

Per spiegarlo, consideriamo un semplice esempio. Immagina di avere un umano e una torta, e il nostro obiettivo è dire all'umano di prendere la torta. Possiamo farlo facilmente dando un'istruzione: "Vai a prendere la torta". L'umano capisce e ottiene la torta. Ora proviamo a risolvere lo stesso problema con un robot. Non è così semplice perché dobbiamo dare al robot una serie di istruzioni. Ad esempio, "Gira a destra, fai dieci passi, gira a sinistra, fai quattro passi e poi prendi la torta". Questa soluzione è specifica per questo particolare scenario e non generalizzabile. Se il robot si trova in una posizione diversa, avremmo bisogno di un set di istruzioni completamente diverso.

Per risolvere questo problema in modo più generale, possiamo utilizzare il machine learning. Invece di fornire istruzioni esplicite, possiamo insegnare al computer a capire il modo migliore per trovare la torta. Lo facciamo chiedendo al computer di calcolare la distanza dalla torta e poi di spostarci nella direzione che minimizza la distanza. Il computer continua a ripetere finché non trova la torta. Questo concetto di minimizzare un errore o una distanza è al centro della maggior parte dei problemi di machine learning. Definiamo una metrica di errore, come la distanza dalla torta o l'altezza di una montagna, e quindi minimizziamo tale errore utilizzando la discesa del gradiente. Calcolando ripetutamente il gradiente e spostandosi nella direzione che riduce maggiormente l'errore, possiamo trovare soluzioni a vari problemi.

L'apprendimento automatico ha molte applicazioni, come insegnare a un computer a giocare a giochi come Go o Jeopardy, abilitare auto a guida autonoma, rilevare e-mail di spam, riconoscere i volti e altro ancora. Al centro di queste applicazioni c'è il concetto di reti neurali, che costituiscono la base del deep learning. Quando pensiamo alle reti neurali, potremmo immaginare strutture complesse con nodi, bordi e strati. Tuttavia, un modo più semplice di pensarli è come uno strumento per dividere i dati. Proprio come un bambino che gioca nella sabbia e traccia una linea per separare gusci rossi e blu, le reti neurali possono imparare a separare diversi tipi di punti dati.

Per addestrare una rete neurale, abbiamo bisogno di una funzione di errore che sia continua. Ridurre al minimo il numero di errori non è adatto perché è una funzione discreta. Invece, utilizziamo una funzione di errore che assegna penalità ai punti classificati in modo errato. Regolando i parametri della rete neurale, come la posizione della linea nel nostro esempio, possiamo minimizzare l'errore e trovare la soluzione migliore. Questo approccio, noto come regressione logistica, ci consente di costruire una funzione di probabilità che assegna verosimiglianze a diversi punti dati. I punti più vicini alla linea 50/50 hanno una maggiore possibilità di essere classificati come rossi o blu, mentre i punti più lontani sono classificati con maggiore sicurezza.

L'apprendimento automatico riguarda la riduzione al minimo degli errori o delle distanze per trovare le migliori soluzioni a vari problemi. Le reti neurali forniscono un modo per dividere i dati e fare classificazioni. Utilizzando le funzioni di errore continuo e la discesa del gradiente, possiamo addestrare le reti neurali e applicarle a un'ampia gamma di applicazioni.

A friendly introduction to Deep Learning and Neural Networks
A friendly introduction to Deep Learning and Neural Networks
  • 2016.12.26
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly introduction to neural networks an...
 

Un'introduzione amichevole alle reti neurali ricorrenti



Un'introduzione amichevole alle reti neurali ricorrenti

Benvenuto in un'amichevole introduzione alle reti neurali ricorrenti! Sono Luis Serrano, un istruttore di machine learning presso Udacity. Grazie per tutti i feedback sui miei video precedenti. Ho ricevuto molti suggerimenti e uno di questi riguardava le reti neurali ricorrenti, motivo per cui ho deciso di realizzare questo video.

Iniziamo con un semplice esempio. Immagina di avere un coinquilino perfetto che cucina tre tipi di cibo: torta di mele, hamburger e pollo. La sua decisione di cucinare si basa sul tempo. Se c'è il sole, cucina la torta di mele, e se piove, cucina un hamburger. Possiamo modellare questo scenario utilizzando una semplice rete neurale, dove l'input è il tempo (soleggiato o piovoso) e l'output è il cibo corrispondente (torta di mele o hamburger).

Per rappresentare il cibo e il tempo, usiamo i vettori. I vettori alimentari sono [1 0 0] per la torta di mele, [0 1 0] per l'hamburger e [0 0 1] per il pollo. I vettori meteorologici sono [1 0] per soleggiato e [0 1] per piovoso. Possiamo mappare questi vettori utilizzando una moltiplicazione di matrici, in cui il vettore di input viene moltiplicato per una matrice per ottenere il vettore di output.

Ora consideriamo un problema più complicato. Il nostro coinquilino perfetto cucina ancora in sequenza (torta di mele, hamburger, pollo), ma ora la sua decisione dipende da cosa ha cucinato il giorno prima. Questa è chiamata rete neurale ricorrente. L'output di ogni giorno diventa l'input per il giorno successivo. Possiamo rappresentare questa rete usando matrici e operazioni vettoriali.

Ad esempio, se il cibo del giorno precedente era una torta di mele e oggi il tempo è piovoso, utilizziamo la matrice del cibo e la matrice del tempo per calcolare l'output. La matrice del cibo prende il vettore del cibo precedente e restituisce i vettori del cibo corrente e successivo concatenati. La matrice meteorologica prende il vettore meteorologico e indica se dobbiamo cucinare il cibo attuale o quello del giorno successivo. Sommando i risultati di queste due matrici, possiamo determinare cosa cucinerà il coinquilino il giorno successivo.

Questo approccio combina i due esempi precedenti, in cui la decisione di cucinare del coinquilino si basa sia sul tempo che sul cibo del giorno precedente. Le matrici e le operazioni sui vettori ci aiutano a calcolare l'output della rete neurale ricorrente.

Le reti neurali ricorrenti sono modelli potenti in grado di gestire dati sequenziali considerando gli input precedenti. Sono utili in varie applicazioni, come l'elaborazione del linguaggio naturale e l'analisi delle serie temporali. Spero che questa introduzione ti abbia dato una buona comprensione delle reti neurali ricorrenti.

A friendly introduction to Recurrent Neural Networks
A friendly introduction to Recurrent Neural Networks
  • 2017.08.18
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly explanation of how computers predi...
 

Un'amichevole introduzione alle reti generative avversarie (GAN)



Un'amichevole introduzione alle reti generative avversarie (GAN)

Ciao, sono Luis Serrano e questo video parla di Generative Adversarial Networks (GAN). I GAN, sviluppati da Ian Goodfellow, rappresentano un progresso significativo nell'apprendimento automatico con numerose applicazioni. Una delle applicazioni più affascinanti dei GAN è la generazione dei volti. Puoi vederlo in azione sul sito web "thispersondoesnotexist.com", dove tutte le immagini delle persone sono generate da una rete neurale.

In questo video impareremo come generare volti utilizzando i GAN in modo semplice. Anche se preferisci non scrivere codice, questo video ti fornirà intuizioni ed equazioni. Codificheremo una coppia di reti neurali a un livello che generano immagini semplici e puoi trovare il codice su GitHub.

Lascia che ti spieghi cosa sono i GAN. I GAN sono costituiti da due reti neurali, un generatore e un discriminatore, che competono tra loro. Il generatore cerca di creare immagini false, mentre il discriminatore cerca di distinguere tra immagini vere e false. Quando il discriminatore cattura il generatore, il generatore migliora le sue immagini finché non può generare un'immagine perfetta che inganna il discriminatore. Per addestrare i GAN, utilizziamo una serie di immagini reali e una serie di immagini false generate dal generatore. Il discriminatore impara a identificare le immagini reali da quelle false, mentre il generatore impara a ingannare il discriminatore classificando le sue immagini come reali.

In questo video, costruiremo una semplice coppia di GAN utilizzando Python senza alcun pacchetto di deep learning. Il nostro compito è generare volti in un mondo chiamato "Slanted Land", dove tutti appaiono allungati e camminano con un angolo di 45 gradi. Il mondo di Slanted Land ha una tecnologia limitata, inclusi schermi 2x2 pixel che visualizzano immagini in bianco e nero. Creeremo reti neurali con un livello per generare i volti delle persone in Slanted Land.

La rete discriminatore analizza i valori dei pixel delle immagini per distinguere tra volti e non volti. Possiamo determinare se un'immagine è un volto confrontando i valori degli angoli in alto a sinistra e in basso a destra con gli altri due angoli. I volti avranno una differenza di valore maggiore, mentre i non volti o le immagini rumorose avranno una differenza inferiore. Applicando una soglia, possiamo classificare le immagini come volti o non volti. La rete del generatore crea facce assegnando valori più alti agli angoli in alto a sinistra e in basso a destra e valori più bassi agli angoli in alto a destra e in basso a sinistra. Applicando la funzione sigmoide, possiamo ottenere probabilità e generare valori di pixel per l'immagine. La rete del generatore è progettata per generare sempre una faccia, indipendentemente dai valori di input. Per addestrare le reti neurali, dobbiamo definire una funzione di errore. Usiamo la perdita logaritmica, che è il logaritmo naturale negativo, per misurare l'errore tra l'output previsto e l'output desiderato. La funzione di errore aiuta le reti a migliorare i loro pesi e ridurre l'errore attraverso un processo chiamato backpropagation.

La retropropagazione comporta il calcolo della derivata dell'errore rispetto ai pesi e la regolazione dei pesi di conseguenza per ridurre al minimo l'errore. Questo processo viene ripetuto in modo iterativo per addestrare le reti del generatore e del discriminatore. Addestrando le reti del generatore e del discriminatore utilizzando le funzioni di errore appropriate e la retropropagazione, possiamo generare volti realistici in Slanted Land. Il generatore impara a creare immagini che assomigliano a volti, mentre il discriminatore impara a distinguere tra volti reali e generati.

Questa panoramica fornisce un'idea generale dei GAN e di come possono generare volti. Nel video, approfondiremo i concetti e dimostreremo il processo di codifica passo dopo passo. Sia che tu voglia scrivere codice o acquisire intuizione e comprensione, questo video sarà prezioso per te. Quindi l'errore per il discriminatore in questo caso sarebbe il logaritmo negativo di 1 meno la previsione. Calcoliamo il gradiente di questo errore rispetto ai pesi del discriminatore utilizzando la retropropagazione, quindi aggiorniamo i pesi del discriminatore per minimizzare questo errore. Successivamente, consideriamo il generatore. L'obiettivo del generatore è produrre immagini che il discriminatore classifica come reali o volti. In altre parole, il generatore vuole indurre il discriminatore a emettere un'alta probabilità per le sue immagini generate. Pertanto, l'errore per il generatore è il logaritmo negativo della previsione del discriminatore per l'immagine generata.

Ancora una volta, calcoliamo il gradiente di questo errore rispetto ai pesi del generatore utilizzando la retropropagazione e aggiorniamo i pesi del generatore per minimizzare questo errore. Il generatore impara a regolare i suoi pesi in modo tale da produrre immagini che assomigliano a volti reali e aumentare la probabilità di essere classificato come volto dal discriminatore. Ripetiamo questo processo più volte, alternando l'addestramento del discriminatore e del generatore. Ogni iterazione aiuta entrambe le reti a migliorare le proprie prestazioni. Il discriminatore diventa più bravo a distinguere tra immagini reali e false, mentre il generatore diventa più bravo a generare immagini realistiche che possono ingannare il discriminatore.

Questo processo iterativo di addestramento del generatore e del discriminatore è ciò che rende potenti i GAN. Imparano a generare campioni altamente realistici e coerenti gareggiando l'uno contro l'altro. Il generatore impara a creare immagini più convincenti, mentre il discriminatore diventa più abile nel rilevare immagini false. Con una formazione sufficiente, i GAN possono generare immagini, testi, musica e persino video che assomigliano a dati reali.

I GAN sono costituiti da un generatore e un discriminatore che competono l'uno contro l'altro in modo simile a un gioco. Il generatore genera campioni falsi e il discriminatore cerca di distinguere tra campioni veri e falsi. Attraverso questo processo contraddittorio e la formazione con funzioni di errore appropriate, i GAN imparano a generare dati realistici e di alta qualità.

A Friendly Introduction to Generative Adversarial Networks (GANs)
A Friendly Introduction to Generative Adversarial Networks (GANs)
  • 2020.05.05
  • www.youtube.com
Code: http://www.github.com/luisguiserrano/gansWhat is the simplest pair of GANs one can build? In this video (with code included) we build a pair of ONE-lay...
 

Macchine Boltzmann limitate (RBM) - Un'introduzione amichevole



Macchine Boltzmann limitate (RBM) - Un'introduzione amichevole

Ciao, sono Luis Serrano e questo video riguarda le macchine Boltzmann limitate (RBM). Gli RBM sono potenti algoritmi utilizzati nell'apprendimento supervisionato, nella riduzione della dimensionalità e nell'apprendimento automatico generativo.

Cominciamo con un mistero. C'è una casa dall'altra parte della strada dove a volte le persone vengono a trovarci. Osserviamo che tre persone, Ayesha, Beto e Cameron, vengono spesso, ma non sempre insieme. A volte si presenta solo Ayesha, altre volte è Beto o Cameron, e talvolta ne arriva più di uno, compresi i giorni in cui nessuno di loro si fa vedere. Indaghiamo su questo modello e scopriamo che non si conoscono, quindi dobbiamo trovare un'altra ragione per le loro apparizioni.

Scopriamo che in casa ci sono animali domestici, un cane di nome Cartesio e un gatto di nome Eulero. Ayesha e Cameron adorano i cani, quindi si presentano quando c'è Descartes. D'altra parte, Beto è allergico ai cani ma adora i gatti, quindi si fa vedere solo quando Ayesha è presente. Assegniamo punteggi per rappresentare le loro preferenze, con punteggi positivi che indicano Mi piace e punteggi negativi che indicano Non mi piace. Ora vogliamo capire la probabilità che si verifichino diversi scenari. Assegniamo punteggi a ogni scenario e li convertiamo in probabilità. Un approccio consiste nell'utilizzare la funzione softmax per trasformare i punteggi in probabilità, assicurando che punteggi più alti corrispondano a probabilità più elevate.

Costruiamo una Restricted Boltzmann Machine (RBM) con strati visibili e nascosti. Il livello visibile rappresenta i dati osservati (persone), mentre il livello nascosto rappresenta i dati non osservati (animali domestici). L'RBM è costituito da nodi collegati da pesi, con punteggi assegnati a ciascuna connessione. Per addestrare l'RBM, dobbiamo trovare i pesi che si allineano con le probabilità che abbiamo ottenuto dai dati. Vogliamo che l'RBM assegni alte probabilità agli scenari in cui si presentano Ayesha e Cameron o solo Beto, e basse probabilità ad altri scenari. Regolando i pesi, possiamo influenzare le probabilità assegnate dall'RBM. L'obiettivo è allineare l'RBM con i dati osservati e imitare le probabilità desiderate.

Per raggiungere le nostre probabilità desiderate, dobbiamo regolare i pesi nel nostro RBM. I pesi determinano l'influenza di ogni connessione tra gli strati visibili e nascosti. Aggiornando i pesi, possiamo aumentare la probabilità di alcuni scenari e diminuire la probabilità di altri. Per aggiornare i pesi, utilizziamo una tecnica chiamata divergenza contrastiva. Implica il confronto delle probabilità degli stati del livello visibile prima e dopo alcune iterazioni dell'RBM. L'aggiornamento del peso si basa sulla differenza tra questi due insiemi di probabilità. Durante l'addestramento, presentiamo ripetutamente i dati di addestramento all'RBM e regoliamo i pesi per massimizzare la probabilità dei dati osservati. Questo processo è noto come apprendimento non supervisionato perché non abbiamo etichette esplicite per i dati di addestramento.

Dopo l'addestramento, l'RBM può essere utilizzato per generare nuovi dati campionando dalla distribuzione di probabilità appresa. Possiamo generare scenari simili a quelli osservati nei dati di addestramento. Per addestrare il nostro modello, utilizziamo un RBM (Restricted Boltzmann Machine) e seguiamo un processo di probabilità crescente e decrescente. Invece di considerare tutti i possibili scenari, selezioniamo a caso uno scenario e ne aumentiamo la probabilità, diminuendo al contempo la probabilità di uno scenario scelto a caso. Ripetiamo questo processo più volte, regolando gradualmente le probabilità per adattarle al risultato desiderato. Per ogni punto dati, selezioniamo uno scenario che lo estende e ne aumenta la probabilità, mentre selezioniamo casualmente un altro scenario e ne diminuiamo la probabilità. Continuiamo questo processo per l'intero set di dati, scorrendolo più volte. Le probabilità risultanti si allineano bene con i nostri dati, abbinando le occorrenze di diversi scenari.

Per modificare le probabilità, aggiustiamo i pesi dell'RBM. Ci concentriamo su vertici e bordi specifici che corrispondono agli scenari desiderati. Aumentando o diminuendo i pesi, influenziamo le probabilità di questi scenari. Il campionamento rappresenta una sfida poiché vogliamo scegliere gli scenari in base alle rispettive probabilità. Introduciamo il campionamento indipendente, in cui consideriamo solo i vertici e gli spigoli rilevanti collegati agli scenari desiderati. Calcolando le probabilità utilizzando la funzione sigmoide, possiamo selezionare casualmente scenari con probabilità proporzionali ai loro pesi. Per scegliere uno scenario che concorda con un dato punto dati, ci concentriamo sui partecipanti rilevanti e sulle loro connessioni, ignorando quelli irrilevanti. Calcoliamo le probabilità in base ai pesi e utilizziamo la funzione sigmoide per convertirle in probabilità. Questo ci consente di selezionare casualmente uno scenario con probabilità che ne riflettono i pesi.

Per scegliere uno scenario completamente casuale, lo approssimiamo effettuando passaggi casuali nella distribuzione, in modo simile all'esplorazione di diverse possibilità. Anche se potrebbe non essere una rappresentazione perfetta di uno scenario completamente casuale, serve come una buona approssimazione. Questo processo ci consente di addestrare l'RBM e regolare le probabilità in modo che corrispondano ai risultati desiderati, modellando efficacemente i nostri dati.

Le macchine Boltzmann limitate sono state applicate con successo a varie attività, come il filtraggio collaborativo, la riduzione della dimensionalità e l'apprendimento delle funzionalità. Sono anche usati come elementi costitutivi per modelli di apprendimento profondo più complessi, come le reti di credenze profonde.

Le macchine Boltzmann limitate sono potenti algoritmi utilizzati nell'apprendimento automatico. Coinvolgono uno strato visibile e uno nascosto collegati da pesi. Regolando i pesi attraverso l'addestramento, gli RBM possono apprendere la distribuzione di probabilità dei dati di addestramento e generare nuovi campioni di dati. Gli RBM hanno applicazioni in vari domini e sono una componente importante dei modelli di deep learning.

Restricted Boltzmann Machines (RBM) - A friendly introduction
Restricted Boltzmann Machines (RBM) - A friendly introduction
  • 2020.07.07
  • www.youtube.com
CORRECTION: The score for BE is 6 and for BD is -1.A simple introduction to Restricted Boltzmann Machines (RBM) and their training process, using a real-life...
 

Un'introduzione amichevole all'apprendimento per rinforzo profondo, ai Q-network e ai gradienti politici



Un'introduzione amichevole all'apprendimento per rinforzo profondo, ai Q-network e ai gradienti politici

Ciao, sono Luis Serrano e questa è un'amichevole introduzione all'apprendimento per rinforzo profondo e ai gradienti politici. L'apprendimento per rinforzo ha applicazioni nelle auto a guida autonoma, nella robotica e in giochi complessi come Go, scacchi e giochi Atari. La principale differenza tra l'apprendimento per rinforzo e l'apprendimento automatico predittivo è che nell'apprendimento per rinforzo abbiamo un agente che interagisce con un ambiente, raccogliendo ricompense e punizioni per creare dati, mentre l'apprendimento automatico predittivo si basa sui dati esistenti per addestrare un modello. In questo video, tratteremo concetti importanti come i processi decisionali di Markov (MDP), l'equazione di Bellman e come le reti neurali possono aiutare nell'apprendimento per rinforzo con reti Q e gradienti di policy.

Cominciamo con un esempio di apprendimento per rinforzo utilizzando un MDP chiamato Grid World. In Grid World, abbiamo una griglia che rappresenta l'universo e il nostro agente, raffigurato come un cerchio. La griglia contiene quadrati speciali, inclusi quelli con denaro e un quadrato con un drago che si traduce in game over. L'obiettivo dell'agente è massimizzare i punti spostandosi sulla griglia, raccogliendo premi o punizioni. Possiamo determinare la migliore strategia per l'agente utilizzando l'equazione di Bellman, che calcola il valore di ogni stato in base ai valori massimi degli stati vicini. Possiamo quindi derivare una politica, che fornisce istruzioni all'agente sul percorso migliore da intraprendere per massimizzare i punti.

Per migliorare l'efficienza della polizza, introduciamo premi e un fattore di sconto. I premi rappresentano i punti guadagnati o persi quando si fa un passo e il fattore di sconto tiene conto del valore dei premi futuri rispetto ai premi immediati. Considerando le ricompense e il fattore di sconto, possiamo regolare i valori degli stati e aggiornare di conseguenza l'equazione di Bellman. Iterando e aggiornando i valori, possiamo convergere sui valori ottimali per ogni stato e determinare la politica che guida l'agente verso i punti più alti.

Comprendendo l'equazione di Bellman e utilizzando premi e fattori di sconto, possiamo risolvere gli MDP e trovare la migliore politica per l'apprendimento per rinforzo. Il lato sinistro indica che l'agente dovrebbe spostarsi a destra per trovare il valore migliore. La politica istruisce l'agente a muoversi verso destra con probabilità 1 e verso altre direzioni con probabilità 0. Al contrario, una politica stocastica favorirebbe fortemente lo spostamento verso destra ma darebbe comunque una possibilità ad altre direzioni in base ai premi ottenuti . Ad esempio, la politica stocastica a destra dà la priorità allo stato a destra perché ha il valore più alto, mentre lo stato a sinistra ha la priorità più bassa a causa del suo punteggio basso. Tuttavia, le probabilità sono ancora diverse da zero, consentendo all'agente di esplorare lo spazio anche se non sempre riceve la migliore ricompensa.

Ora, discutiamo il ruolo delle reti neurali in questo processo. Invece di fare in modo che l'agente visiti ripetutamente tutti gli stati, il che è costoso, possiamo utilizzare una rete neurale per raccogliere informazioni da alcuni stati. La rete neurale può apprendere che gli stati con coordinate simili dovrebbero avere valori simili. Usiamo una rete di valori, dove l'input è le coordinate di un punto e l'output è il punteggio in quel punto. Allo stesso modo, possiamo usare una policy network per approssimare la policy in ogni stato. La policy network prende le coordinate come input e restituisce quattro numeri che rappresentano le probabilità di spostarsi in alto, a destra, in basso ea sinistra. Per addestrare la rete del valore, la costringiamo a soddisfare l'equazione di Bellman, che mette in relazione il valore di uno stato con gli stati vicini. Usiamo i valori della rete neurale negli stati vicini e regoliamo il valore nel mezzo per soddisfare l'equazione. Aggiornando ripetutamente la rete neurale basata sull'equazione di Bellman, possiamo approssimare i valori di tutti gli stati.

Per quanto riguarda la rete politica, la addestriamo prendendo percorsi basati sulla politica corrente ed etichettando ogni azione con il guadagno corrispondente. Creiamo un set di dati con il guadagno, le coordinate e le azioni e lo inviamo alla rete politica. Quindi incoraggiamo o scoraggiamo la rete a intraprendere determinate azioni in base al guadagno. Ripetendo questo processo con percorsi diversi, possiamo migliorare la rete politica nel tempo. Usiamo le reti neurali per approssimare i valori e la politica degli stati. La rete del valore ci aiuta a stimare il valore di ogni stato, mentre la rete della politica guida le azioni dell'agente. La formazione comporta l'aggiornamento ripetuto delle reti in base all'equazione di Bellman e all'etichettatura basata sul percorso.

Ora che abbiamo i valori per ogni stato e la politica corrispondente, possiamo usarli per prendere decisioni nel gioco. La politica ci dice l'azione migliore da intraprendere da ogni stato, in base ai valori che abbiamo calcolato. Ad esempio, se l'agente si trova in un determinato stato e desidera sapere quale azione intraprendere, guarda semplicemente la politica e segue la freccia che indica lo stato vicino con il valore più alto. Ciò garantisce che l'agente intraprenda il percorso ottimale per massimizzare i suoi premi. Nel caso del nostro gioco del mondo della griglia, la politica può guidare l'agente a evitare gli ostacoli e raggiungere gli stati terminali con le ricompense più alte il più rapidamente possibile. Seguendo la politica, l'agente può navigare nel mondo della griglia e raccogliere punti evitando premi negativi.

Algoritmi di apprendimento per rinforzo, come Q-learning o gradienti di policy, possono essere utilizzati per trovare la policy e i valori ottimali per ambienti più complessi. Questi algoritmi sfruttano i concetti dei processi decisionali di Markov e l'equazione di Bellman per aggiornare in modo iterativo i valori e migliorare la politica nel tempo. Le reti neurali possono anche essere impiegate per gestire spazi di stato ampi e complessi. I Q-network e i metodi del gradiente politico utilizzano le reti neurali per approssimare i valori o la funzione politica, consentendo un apprendimento più efficiente ed efficace nelle attività di apprendimento per rinforzo.

Combinando algoritmi di apprendimento per rinforzo e reti neurali, possiamo affrontare problemi impegnativi come auto a guida autonoma, robotica e giochi complessi. Queste tecniche hanno applicazioni ad ampio raggio e continuano a far progredire il campo dell'intelligenza artificiale.

L'apprendimento per rinforzo implica l'addestramento di un agente a prendere decisioni in un ambiente interagendo con esso e raccogliendo ricompense. L'agente utilizza i valori e la politica ottenuti dall'equazione di Bellman per navigare nell'ambiente e massimizzare i suoi benefici. Le reti neurali possono essere impiegate per gestire problemi più complessi nell'apprendimento per rinforzo.

A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
  • 2021.05.24
  • www.youtube.com
A video about reinforcement learning, Q-networks, and policy gradients, explained in a friendly tone with examples and figures.Introduction to neural network...
 

Un'introduzione amichevole all'apprendimento automatico



Un'introduzione amichevole all'apprendimento automatico

Ciao e benvenuto nel mondo del machine learning. Oggi esploreremo cos'è l'apprendimento automatico. In questo mondo, abbiamo esseri umani e computer, e una distinzione fondamentale tra loro è il modo in cui apprendono. Gli esseri umani imparano dalle esperienze passate, mentre i computer devono essere programmati e seguire le istruzioni. Tuttavia, possiamo insegnare anche ai computer a imparare dall'esperienza? La risposta è sì, ed è qui che entra in gioco l'apprendimento automatico. Nel regno dei computer, le esperienze passate vengono chiamate dati.

Nei minuti seguenti, ti presenterò alcuni esempi che dimostrano come possiamo insegnare ai computer a imparare dai dati precedenti. La parte interessante è che questi algoritmi sono abbastanza semplici e l'apprendimento automatico non è nulla di cui aver paura. Entriamo nel nostro primo esempio. Immagina di studiare il mercato immobiliare e il nostro compito è prevedere il prezzo di una casa in base alle sue dimensioni. Abbiamo raccolto dati su varie case, comprese le dimensioni e i prezzi. Tracciando questi dati su un grafico, con l'asse x che rappresenta la dimensione della casa in piedi quadrati e l'asse y che rappresenta il prezzo in dollari, possiamo visualizzare la relazione tra i due. Notiamo che i punti dati formano approssimativamente una linea.

Utilizzando un metodo chiamato regressione lineare, possiamo tracciare una linea che meglio si adatta ai punti dati. Questa linea rappresenta la nostra ipotesi migliore per prevedere il prezzo di una casa date le sue dimensioni. Esaminando il grafico, possiamo stimare il prezzo di una casa di medie dimensioni individuando il punto corrispondente sulla retta. La regressione lineare ci consente di trovare la linea più adatta minimizzando gli errori tra la linea e i punti dati. La regressione lineare è solo un esempio di un algoritmo di apprendimento automatico. È relativamente semplice ed efficace quando i dati formano una relazione lineare. Tuttavia, possiamo utilizzare metodi simili per adattare altri tipi di dati, come curve, cerchi o polinomi di grado superiore, a seconda della natura del problema.

Passiamo ora a un altro esempio. Supponiamo di voler creare un sistema di rilevamento dello spam nelle e-mail. Abbiamo raccolto dati sulle e-mail precedenti, incluso se sono state contrassegnate come spam o meno. Analizzando questi dati, possiamo identificare le caratteristiche che potrebbero indicare se un'e-mail è spam o meno. Ad esempio, potremmo scoprire che le e-mail contenenti la parola "economico" vengono spesso contrassegnate come spam. Usando l'ingenuo algoritmo di Bayes, possiamo associare le probabilità a queste caratteristiche. In questo caso, se un'e-mail contiene la parola "economico", scopriamo che l'80% di tali e-mail è contrassegnato come spam. Combinando più caratteristiche e le probabilità associate, possiamo creare un classificatore che prevede se un'e-mail è spam o meno in base alle sue caratteristiche.

Passando al nostro prossimo esempio, supponiamo che stiamo lavorando nell'App Store o in Google Play e il nostro obiettivo è consigliare le app agli utenti. Possiamo raccogliere dati sugli utenti, sulle loro caratteristiche e sulle app che hanno scaricato. Analizzando questi dati, possiamo costruire un albero decisionale che guida i nostri consigli. L'albero decisionale è costituito da domande basate sulle caratteristiche dell'utente, che portano alla raccomandazione di app specifiche. Ad esempio, potremmo chiedere se l'utente ha meno di 20 anni. In base alla risposta, possiamo consigliare un'app specifica. Se l'utente è più anziano, possiamo porre una domanda diversa, ad esempio il sesso, per perfezionare ulteriormente la nostra raccomandazione. L'albero delle decisioni ci aiuta a formulare consigli personalizzati sulle app in base agli attributi dell'utente.

Consideriamo infine l'ufficio ammissioni di un'università. Stanno cercando di determinare quali studenti ammettere sulla base di due informazioni: il punteggio di un esame di ammissione e i voti degli studenti. Analizzando i dati degli studenti precedentemente ammessi e respinti, possiamo creare un modello di regressione logistica.

Usando la regressione logistica, possiamo tracciare una linea che separa i punti dati degli studenti accettati e rifiutati. Questa linea rappresenta il limite decisionale per determinare se uno studente sarà ammesso o rifiutato. Il modello di regressione logistica calcola la probabilità di ammissione in base al punteggio e ai voti dell'esame di ammissione. Una volta stabilito il limite decisionale, i nuovi studenti possono essere valutati tracciando il punteggio e i voti dell'esame di ammissione su un grafico. Se il punto cade al di sopra del limite di decisione, il modello prevede l'ammissione; se scende al di sotto, il modello prevede il rifiuto. Questi sono solo alcuni esempi di algoritmi di apprendimento automatico e di come possono essere applicati a vari domini. L'apprendimento automatico consente ai computer di apprendere dai dati e fare previsioni o decisioni senza essere esplicitamente programmati per ogni scenario. Consente l'automazione, il riconoscimento di modelli e la capacità di gestire dati complessi e su larga scala.

È importante notare che l'apprendimento automatico richiede dati da cui imparare. La qualità e la pertinenza dei dati giocano un ruolo significativo nell'accuratezza e nell'efficacia dei modelli. Inoltre, i modelli di machine learning devono essere addestrati su un set di dati rappresentativo e convalidati per garantirne la generalizzabilità.

L'apprendimento automatico è un campo in rapida evoluzione con numerosi algoritmi, tecniche e applicazioni. Ricercatori e professionisti esplorano continuamente nuovi metodi e spingono i confini di ciò che è possibile. Man mano che la tecnologia avanza e più dati diventano disponibili, si prevede che l'apprendimento automatico avrà un impatto sempre più significativo su vari settori e aspetti della nostra vita.

A Friendly Introduction to Machine Learning
A Friendly Introduction to Machine Learning
  • 2016.09.09
  • www.youtube.com
Grokking Machine Learning Book: https://www.manning.com/books/grokking-machine-learning40% discount promo code: serranoytA friendly introduction to the main ...
 

Apprendimento automatico: test e metriche di errore



Apprendimento automatico: test e metriche di errore

Ciao e benvenuto in questo tutorial sui test di machine learning e sulle metriche di errore. Mi chiamo Luis Serrano e lavoro in Udacity, dove insegno machine learning. Questa è una mia foto. Oggi ci concentreremo su due domande: in primo luogo, quanto sta andando bene il mio modello? Una volta capito, come possiamo migliorarlo sulla base di queste metriche? Immergiamoci subito e guardiamo alcuni dati. Abbiamo punti blu e punti rossi e vogliamo addestrare un modello per separarli. Il nostro modello più semplice è un modello lineare, che è una linea che taglia i dati in blu e rosso. Commette alcuni errori ma è generalmente buono. Consideriamo anche un modello più complesso che utilizza un polinomio di grado più elevato. Questo modello fa meglio a separare i punti, ma quale modello è migliore tra i due?

Per rispondere a questa domanda, dobbiamo usare i test. Invece di utilizzare tutti i punti per l'allenamento, li abbiamo suddivisi in set di allenamento e test. I punti di addestramento vengono utilizzati per addestrare il modello, mentre i punti di test vengono utilizzati per valutare le prestazioni del modello. Nel nostro esempio, il modello lineare fa un errore sul set di test, mentre il modello polinomiale fa due errori. Pertanto, il modello lineare funziona meglio sul set di test perché generalizza meglio.

Quando si tratta di test, ci sono alcune regole importanti da seguire. La prima regola d'oro è non utilizzare mai i dati dei test per l'addestramento. Tieni separati i tuoi dati di test e utilizzali solo per la valutazione. La seconda regola è assicurarsi che anche i tuoi amici non utilizzino i loro dati di test per l'allenamento. Infine, la terza regola sottolinea di non utilizzare mai i dati di test per l'addestramento. È fondamentale evitare qualsiasi uso improprio accidentale dei dati di test.

Sebbene possa sembrare che stiamo sprecando dati separandoli in set di addestramento e test, esiste un modo per affrontare questo problema. Possiamo suddividere i dati in k insiemi uguali, tipicamente utilizzando una tecnica chiamata k-fold cross-validation. Ogni parte dei dati viene utilizzata sia per l'addestramento che per i test e alla fine viene calcolata la media dei risultati. Questo approccio ci consente di utilizzare meglio i dati pur continuando a valutare le prestazioni del modello.

Ora discutiamo le metriche che ci aiutano a valutare l'efficacia dei nostri modelli. Una metrica comune è l'accuratezza, che misura quante istanze il modello classifica correttamente rispetto al numero totale di istanze. Tuttavia, l'accuratezza da sola potrebbe non essere sempre la metrica migliore, come mostrato negli esempi di rilevamento delle frodi con carta di credito, diagnostica medica e classificazione dello spam. In questi casi, falsi negativi e falsi positivi hanno implicazioni diverse.

Per valutare i modelli in modo più efficace, utilizziamo una matrice di confusione. Questa matrice presenta quattro possibilità: veri positivi, veri negativi, falsi positivi e falsi negativi. Ciascuno di questi rappresenta risultati diversi in base alle previsioni del modello rispetto ai dati effettivi. Ad esempio, nella diagnostica medica, un falso negativo significa che una persona malata è classificata come sana, il che è peggio di un falso positivo. Allo stesso modo, nella classificazione dello spam, un falso positivo significa che un'e-mail non spam è contrassegnata come spam, il che è peggio di un falso negativo.

Considerando il contesto specifico e le conseguenze di falsi positivi e falsi negativi, possiamo scegliere metriche appropriate per valutare i nostri modelli. La precisione da sola potrebbe non catturare l'intero quadro e altre metriche come precisione, richiamo e punteggio F1 possono fornire ulteriori informazioni sulle prestazioni del modello.

Possiamo combinare questi due punteggi in uno? Un modo semplice per combinare i punteggi di precisione e richiamo è prendere la loro media. Calcoliamo la media per i punteggi di precisione e richiamo forniti. A sinistra, la precisione è 69,5 ea destra è 66,95. Facendo la media di questi due punteggi, otteniamo 68.225. Tuttavia, questa media potrebbe non fornire informazioni sufficienti e potrebbe non essere significativamente diversa dall'accuratezza. Per comprendere le implicazioni di questo punteggio medio, consideriamo un esempio estremo che coinvolge il rilevamento di frodi con carta di credito.

Nell'esempio, abbiamo due modelli: uno che classifica tutte le transazioni come buone e un altro che classifica tutte le transazioni come fraudolente. Calcoliamo la precisione e il richiamo per entrambi i modelli.

Per il modello che classifica tutte le transazioni come buone, la precisione è del 100% (poiché tutte classificate come cattive sono in realtà buone) e il richiamo è dello 0% (poiché nessuna di quelle fraudolente viene scoperta). Se prendiamo la media di precisione e richiamo, otterremmo il 50%. Tuttavia, dare un punteggio così alto a un modello che funziona male non sembra appropriato. Allo stesso modo, per il modello che classifica tutte le transazioni come fraudolente, la precisione è dello 0,16% (classificate correttamente 472 transazioni su tutte) e il richiamo è del 100% (poiché tutte le transazioni fraudolente vengono rilevate). Ancora una volta, la media tra precisione e richiamo sarebbe di circa il 50%, il che non riflette accuratamente le scarse prestazioni del modello.

Per superare questa limitazione, possiamo utilizzare un altro tipo di media chiamata media armonica, nota anche come punteggio F1. La media armonica viene calcolata utilizzando la formula 2 * (precisione * richiamo) / (precisione + richiamo). Il punteggio F1 fornisce una rappresentazione più equilibrata, soprattutto quando una metrica (precisione o richiamo) è significativamente diversa dall'altra.

Per il modello medico, la precisione è 55,7 e il richiamo è 83,3. Calcolando il punteggio F1 utilizzando la formula della media armonica, otteniamo il 66,76%. Per il modello di rilevamento dello spam, la precisione è 76,9 e il richiamo è 37. Il punteggio F1 è 49,96%. E per il modello lineare, la precisione è 75 e il richiamo è 85,7. Il punteggio F1 è dell'80%.

Nel caso dei modelli di frode con carta di credito, se preferiamo intercettare tutte le transazioni fraudolente, daremmo la priorità al richiamo. Quindi, una buona metrica in questo caso sarebbe più vicina al richiamo piuttosto che alla precisione.

I test e le metriche di errore sono fondamentali per valutare e migliorare i modelli di machine learning. Seguire le regole d'oro dei test, selezionare le metriche appropriate e considerare le conseguenze di falsi positivi e falsi negativi ci aiuta a prendere decisioni informate sui nostri modelli.

La combinazione di precisione e richiamo in un singolo punteggio può essere eseguita utilizzando il punteggio F1, che prende la media armonica delle due metriche. Ciò fornisce una valutazione più equilibrata ed è particolarmente utile quando una metrica è significativamente diversa dall'altra.

Machine Learning: Testing and Error Metrics
Machine Learning: Testing and Error Metrics
  • 2017.03.16
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly journey into the process of evalua...
 

Curva ROC (Receiver Operating Characteristic) in 10 minuti!



Curva ROC (Receiver Operating Characteristic) in 10 minuti!

Saluti! Sono Luis Serrano e in questo video parleremo della curva ROC (Receiver Operating Characteristic). La curva ROC è ampiamente utilizzata per valutare i modelli di machine learning e prendere decisioni importanti.

Iniziamo con un set di dati contenente punti blu e rossi, dove i punti blu sono etichettati come positivi e quelli rossi come negativi. Costruiremo un modello di machine learning che si adatta a questo set di dati. Ad esempio, considera questa linea. Si noti che il lato blu della linea classifica ogni punto su quel lato come blu o positivo, mentre il lato rosso classifica i punti su quel lato come rossi o negativi. Tuttavia, il modello commette alcuni errori. Un esempio è il punto rosso situato nell'area blu, che è un falso positivo. Un altro esempio è il punto blu sotto la linea nell'area rossa, che è un falso negativo. Per comprendere meglio i falsi positivi e i falsi negativi, guarda il mio altro video sui test di machine learning e sulle metriche di errore.

Consideriamo ora due diversi esempi per lo stesso tipo di modello. Il modello a sinistra è un modello medico, dove i punti positivi rappresentano i pazienti malati ei punti negativi rappresentano quelli sani. D'altra parte, il modello a destra è un modello di rilevamento dello spam, in cui i punti positivi sono messaggi spam e i punti negativi sono messaggi non spam o "ham".

Nel modello medico, un falso positivo si verifica quando una persona sana viene diagnosticata come malata, portando a test non necessari. Un falso negativo si verifica quando una persona malata viene diagnosticata come sana e non richiede alcun trattamento. In questo caso, i falsi negativi sono considerati peggiori perché è meglio mandare una persona sana per ulteriori test piuttosto che mandare a casa una persona malata senza cure. Pertanto, miriamo a modificare il modello per ridurre i falsi negativi.

Nel modello di rilevamento dello spam, i falsi positivi sono buone e-mail "ham" classificate come spam e inviate alla cartella spam. I falsi negativi sono e-mail di spam erroneamente classificate come "ham" e recapitate nella posta in arrivo. Qui, i falsi positivi sono considerati peggiori perché la ricezione occasionale di e-mail di spam nella posta in arrivo è preferibile rispetto a e-mail importanti contrassegnate come spam. Pertanto, ci concentriamo sulla riduzione dei falsi positivi in questo modello.

Questi due modelli rappresentano gli estremi e la maggior parte dei modelli si trova nel mezzo, tollerando alcuni falsi positivi o falsi negativi. Tuttavia, l'importanza assegnata a ciascun tipo di errore può variare. Pertanto, per ogni tipo di modello, è necessario determinare il punto ottimale per impostare la soglia di classificazione.

In questo video, ti mostrerò un metodo utile per aiutarti a prendere tali decisioni. Prenderemo in considerazione un ipotetico set di dati rappresentato da questa linea. I nostri modelli saranno traduzioni parallele di questa linea. Per ogni modello, registreremo il numero di punti rossi e blu correttamente classificati.

Iniziamo con la linea in basso, dove tutti i punti blu sono classificati correttamente e nessuno dei punti rossi è classificato correttamente. Questo ci dà 0 punti rossi corretti e 5 punti blu corretti. Tracciamo questi valori e spostiamo la linea per coprire un punto alla volta, registrando le classificazioni corrette. Questo processo continua fino alla fine. Alla fine, abbiamo sempre 5 punti blu corretti e 0 punti rossi corretti. Tracciamo questi punti e calcoliamo l'area sotto la curva. In questo caso, l'area è di 21 quadrati su 25, risultando in un'area sotto la curva di 0,84. L'area varia tra 0 e 1, con valori più alti che indicano migliori prestazioni del modello. Possiamo usare questa curva ROC per prendere decisioni sul nostro modello. Un buon modello sarebbe rappresentato da un punto sulla curva con pochi falsi positivi e falsi negativi. A seconda dei nostri requisiti specifici, come la riduzione al minimo dei falsi negativi nel modello medico o dei falsi positivi nel modello di rilevamento dello spam, possiamo selezionare i punti corrispondenti sulla curva.

In alternativa, possiamo visualizzare i punti dati con punteggi compresi tra 0 e 1 assegnati dal modello. Applicando una soglia, possiamo convertire questi punteggi in previsioni discrete. Regoliamo la soglia e osserviamo come si comporta il modello a diversi livelli. Questo processo crea la curva ROC. La scelta di un punto sulla curva ci aiuta a selezionare una soglia appropriata per le nostre previsioni. Inoltre, vale la pena notare che un'area sotto la curva inferiore a 0,5 non indica un modello peggiore. In effetti, può ancora essere un buon modello. Ad esempio, un modello con un'area pari a 0 corrisponde a un modello che commette tutti gli errori, ma se capovolgiamo le previsioni, diventa valido quasi quanto un modello che non commette errori. Pertanto, i modelli con aree inferiori a 0,5 possono ancora essere efficaci.

Grazie per l'attenzione! Se ti è piaciuto questo video, iscriviti per altri contenuti. Sentiti libero di mettere mi piace, condividere e commentare, soprattutto se hai suggerimenti per video futuri. Puoi anche contattarmi su Twitter @LuisLikesMath. Dai un'occhiata all'Accademia Luis Serrano per ulteriori informazioni su video, libri e corsi. Ci vediamo nel prossimo video!

ROC (Receiver Operating Characteristic) Curve in 10 minutes!
ROC (Receiver Operating Characteristic) Curve in 10 minutes!
  • 2020.07.14
  • www.youtube.com
The ROC curve is a very effective way to make decisions on your machine learning model based on how important is it to not allow false positives or false neg...