Apprendimento automatico e Reti Neurali - pagina 63

 

5 aziende di intelligenza artificiale che stanno plasmando il futuro nel 2023 | Intelligenza artificiale



5 aziende di intelligenza artificiale che stanno plasmando il futuro nel 2023 | Intelligenza artificiale

Preparati ad essere stupito mentre approfondiamo il mondo dei più grandi giocatori del gioco AI. Questi giganti della tecnologia hanno fatto progressi rivoluzionari che ti lasceranno a bocca aperta.

Iniziamo con DeepMind, uno dei principali laboratori di ricerca sull'IA con sede a Londra, Regno Unito. Dalla sua fondazione nel 2010 e dalla successiva acquisizione da parte di Alphabet (ex Google) nel 2014, DeepMind ha raggiunto risultati impressionanti nell'intelligenza artificiale. Hanno creato AlphaGo, il primo programma per computer per sconfiggere un giocatore professionista di Go umano. Hanno ampliato questo successo con AlphaZero, che ha imparato a giocare a vari giochi, inclusi scacchi e shogi, senza esempi umani. I loro progressi sono culminati in MuZero, un'altra versione di AlphaZero che padroneggiava i giochi Atari senza che gli venissero insegnate le regole. Questi risultati hanno spinto DeepMind a nuovi livelli di riconoscimento e ammirazione nel settore.

Ma il fondatore, Demis Hassabis, non si è fermato qui. Ha accettato la sfida di prevedere le strutture proteiche, una delle aree più impegnative della biologia. Il modello AlphaFold AI di DeepMind ha rivoluzionato questo campo, generando oltre 200 milioni di previsioni sulle proteine in pochi mesi, un salto significativo rispetto alle 180.000 previsioni prodotte nei precedenti 50 anni. Considerando il numero astronomico di possibili esiti per le strutture proteiche, questo risultato è davvero incredibile. AlphaFold ha anche accelerato la scoperta di farmaci, in particolare durante la recente crisi globale.

DeepMind ha anche sviluppato GATO, un'intelligenza artificiale generale in grado di eseguire un'ampia gamma di attività, dal dialogo e dai videogiochi al controllo di un braccio robotico. La loro visione va oltre le attuali capacità di intelligenza artificiale, mirando a sistemi in grado di ragionare, pianificare, apprendere e comunicare come gli umani, se non addirittura superarli.

Passando a Google, questa azienda è una forza formidabile nell'intelligenza artificiale. Con i suoi ingenti investimenti in progetti di ricerca e un ampio elenco di team di intelligenza artificiale sparsi nelle sue divisioni, Google fa costantemente passi da gigante nel campo. Google Brain, uno dei suoi rinomati team di intelligenza artificiale, ha sviluppato il modello Transformer nel 2017. Questo modello, un punto di svolta nel deep learning, è stato determinante nei chatbot, nei generatori di immagini, nella guida autonoma e persino nei risultati di ricerca di Google. Le applicazioni AI di Google sono onnipresenti, da Google Translate e Google Maps al rilevamento dello spam e alla generazione di video.

OpenAI è un altro attore importante nel panorama dell'IA. Con una formazione stellare di fondatori, tra cui Elon Musk e Peter Thiel, OpenAI ha rilasciato modelli linguistici impressionanti come GPT-3 e sviluppato un agente AI che ha sconfitto i campioni del mondo di Dota 2. I loro progetti, come Universe e l'agente AI che giocano a nascondino, dimostrano comportamenti emergenti e forniscono approfondimenti sullo sviluppo di sistemi AGI allineati con i valori umani.

Microsoft, un gigante tecnologico con un proprio laboratorio di intelligenza artificiale, ha applicazioni di intelligenza artificiale integrate in vari prodotti e servizi. Hanno compiuto progressi significativi in aree come il riconoscimento facciale, gli assistenti virtuali e la conversione dei caratteri da scrittura a mano a computer. La partnership di Microsoft con OpenAI e il suo investimento di 1 miliardo di dollari nell'azienda dimostra ulteriormente il loro impegno per l'innovazione dell'IA.

Le menzioni onorarie vanno ad Amazon, Apple, Tesla e Nvidia, ciascuna delle quali contribuisce in modo significativo allo spazio dell'IA. I servizi AI di Amazon, come Alexa e i consigli personalizzati sui prodotti, sono diventati nomi familiari. Le capacità di riconoscimento facciale e Siri di Apple, le auto a guida autonoma di Tesla e le GPU di Nvidia che rivoluzionano lo sviluppo dell'IA sono tutti risultati degni di nota.

Infine, Meta (ex Facebook) ha un'ala AI dedicata, Meta AI, guidata da Yann LeCun. Le loro applicazioni di prodotti di potenza AI come Facebook e Instagram, con recenti investimenti nel metaverso. Meta utilizza l'intelligenza artificiale per creare versioni digitali realistiche di oggetti del mondo reale per il metaverso. Hanno anche sviluppato modelli di intelligenza artificiale in grado di convertire le onde cerebrali in parole, aprendo la strada alla tecnologia di lettura della mente.

CICERO è un impressionante agente di intelligenza artificiale sviluppato dal laboratorio di intelligenza artificiale di Meta che ha dimostrato la sua abilità strategica nel gioco della diplomazia. Questo classico gioco da tavolo richiede ai giocatori di negoziare e formare alleanze mentre elaborano strategie per raggiungere i propri obiettivi. CICERO ha padroneggiato le complessità del gioco e ha costantemente superato i giocatori umani.

La divisione AI di Meta ha anche compiuto progressi significativi nell'elaborazione del linguaggio naturale (NLP). Hanno sviluppato modelli linguistici all'avanguardia che alimentano i chatbot e gli assistenti virtuali sulle loro piattaforme. Questi modelli possono comprendere e generare testo simile a quello umano, facilitando interazioni più naturali e coinvolgenti con gli utenti.

Inoltre, Meta ha investito attivamente nella ricerca sulla visione artificiale. I loro algoritmi AI sono in grado di riconoscere e comprendere immagini e video, abilitando funzionalità come l'etichettatura automatica delle foto e il riconoscimento degli oggetti nelle applicazioni di realtà aumentata. L'obiettivo di Meta è migliorare l'esperienza visiva per gli utenti, consentendo loro di integrare perfettamente il mondo fisico e quello digitale.

Oltre ai loro progressi nell'IA, Meta ha anche investito molto nelle tecnologie di realtà virtuale e aumentata. La loro divisione Oculus ha portato le esperienze di realtà virtuale al mainstream, fornendo giochi immersivi, interazione sociale e persino applicazioni educative. Meta immagina un futuro in cui le persone possono connettersi e interagire in spazi virtuali, offuscando i confini tra il mondo reale e quello virtuale.

Essendo una delle più grandi società di social media al mondo, Meta ha accesso a grandi quantità di dati degli utenti. Utilizzano tecniche di intelligenza artificiale per analizzare questi dati e personalizzare l'esperienza dell'utente. Dalla raccomandazione di contenuti personalizzati in base agli interessi individuali alla fornitura di pubblicità mirate, Meta sfrutta l'intelligenza artificiale per ottimizzare il coinvolgimento e aumentare la soddisfazione degli utenti.

È importante notare che mentre Meta e altri giganti della tecnologia hanno fatto passi da gigante nell'IA, sono in corso discussioni e preoccupazioni riguardanti la privacy dei dati, i pregiudizi algoritmici e le implicazioni etiche dell'IA. Questi problemi evidenziano la necessità di uno sviluppo e di una regolamentazione responsabili dell'IA per garantire che la tecnologia sia utilizzata in modo da avvantaggiare la società nel suo insieme.

In conclusione, Meta, insieme ad altri importanti attori come DeepMind, Google, OpenAI, Microsoft e Amazon, è stata in prima linea nei progressi dell'IA. Attraverso i loro laboratori di ricerca e team dedicati, hanno sviluppato tecnologie all'avanguardia, come modelli linguistici avanzati, sistemi di visione artificiale ed esperienze di realtà virtuale. Sebbene questi sviluppi offrano possibilità entusiasmanti, è fondamentale affrontare le sfide etiche e garantire che l'IA sia sfruttata a beneficio dell'umanità. Il futuro dell'intelligenza artificiale ha un potenziale immenso e questi giganti della tecnologia continueranno a plasmare il panorama dell'intelligenza artificiale negli anni a venire.

5 AI Companies that are Shaping the Future in 2023 | Artificial Intelligence
5 AI Companies that are Shaping the Future in 2023 | Artificial Intelligence
  • 2023.01.12
  • www.youtube.com
Hello Beyonders!We discuss the top 5 most influential AI labs in the industry. The list is not purposefully presented in a specific order. These companies ha...
 

Come utilizzare ChatGPT come potente strumento per la programmazione



Come utilizzare ChatGPT come potente strumento per la programmazione

In questo video, esploreremo la funzionalità di ChatGPT e come i programmatori possono utilizzare questo strumento. Sebbene ChatGPT sia un concetto familiare a molti, è essenzialmente una tecnologia di intelligenza artificiale che consente una conversazione interattiva, simile a una conversazione con un'altra persona. Sebbene abbia diverse applicazioni oltre alla programmazione, in questo video ci concentreremo principalmente sul suo aspetto di programmazione. Nello specifico, esploreremo come ChatGPT può aiutarci a scrivere codice, ottimizzare il codice, spiegare frammenti di codice, convertire tra diversi linguaggi di programmazione, generare idee di progetto e aiutare con compiti noiosi come scrivere unit test e commentare il codice.

Si è discusso se i programmatori debbano fare affidamento su strumenti come ChatGPT, poiché non sempre forniscono risultati accurati. Tuttavia, attraverso questo video, saremo testimoni dell'utilità di ChatGPT e del motivo per cui è fondamentale per noi imparare a utilizzare tali strumenti, che senza dubbio continueranno a migliorare in futuro. Proprio come la capacità di cercare in modo efficace su Google è diventata un'abilità preziosa, anche l'interazione con questa nuova ondata di strumenti di intelligenza artificiale sta diventando un'abilità essenziale che migliora lo sviluppo del codice e la produttività.

Ora, approfondiamo l'applicazione pratica di ChatGPT. Per iniziare, ho aperto un'istanza di ChatGPT nel mio browser. Se non l'hai mai usato prima, è semplice iniziare. Basta visitare il loro sito Web, creare un account e sei pronto per partire. Fornirò un collegamento alla loro pagina nella sezione della descrizione di seguito, dove è possibile accedere a questo strumento. Sebbene sia disponibile una versione gratuita, esiste anche una versione a pagamento che offre vantaggi aggiuntivi, che puoi conoscere sul loro sito Web. Attualmente sto utilizzando la versione a pagamento, che mi garantisce l'accesso a più tempo di attività e all'ultima versione, ChatGPT-4. Tuttavia, ho anche testato il tutorial utilizzando ChatGPT-3 e non ho osservato una differenza significativa nell'output.

Quando interagiamo con ChatGPT, possiamo comunicare come se stessimo conversando con un'altra persona. Non sono coinvolte query specifiche o formati predefiniti. Ad esempio, se vogliamo eseguire un compito semplice come passare da 1 a 10 e stampare ogni numero, possiamo esprimerlo in modo naturale. Lo dimostrerò chiedendo a ChatGPT di scrivere uno script Python che soddisfi i nostri requisiti. Eseguiamolo e osserviamo l'output.

Come possiamo vedere, ChatGPT impiega un momento per elaborare la richiesta, ma alla fine genera lo script Python desiderato. L'output include il ciclo for e l'istruzione print, accompagnati da dettagli esplicativi. Questa funzione rende ChatGPT un eccellente strumento di apprendimento. Non solo fornisce il codice che può essere facilmente copiato, ma spiega anche la funzionalità per coloro che sono nuovi alla programmazione. Chiarisce l'uso della funzione di intervallo e sottolinea anche che il valore di stop è esclusivo, generando numeri da 1 a 10 anziché da 1 a 11. Questa capacità di comunicare le nostre esigenze in un linguaggio semplice e ricevere il codice corrispondente mentre ne spiega il funzionamento è preziosa .

Tuttavia, l'esempio di cui sopra è abbastanza semplice. ChatGPT può gestire richieste di codice più complesse. Ad esempio, immagina di voler scrivere uno script che accetti l'immissione di una password da un utente, esegua l'hashing della password utilizzando un salt e quindi stampi la password con hash. Questo compito potrebbe richiedere ricerca e impegno per qualcuno che non ha familiarità con il concetto. Vediamo se ChatGPT può aiutarci scrivendo il codice. Fornirò il prompt e lo eseguirò per ottenere l'output.

Dopo aver esaminato il codice generato, possiamo vedere che ChatGPT incorpora il modulo hashlib della libreria standard di Python. Presenta lo script, dimostrando come eseguire l'hashing della password utilizzando vari algoritmi e generare un salt utilizzando il modulo os.urandom. Dopo aver eseguito l'hashing della password, stampa il valore con hash.

Se osserviamo l'output del precedente prompt di conversione, possiamo vedere che Chat GPT ha scritto l'equivalente JavaScript del codice Python che abbiamo fornito. Include anche commenti per spiegare cosa fa ciascuna parte del codice. Questo può essere davvero utile se stai cercando di passare da un linguaggio di programmazione all'altro o se vuoi capire come un pezzo di codice può essere implementato in un linguaggio diverso.

Ora esploriamo un altro caso d'uso per Chat GPT: generare idee per avviare progetti. A volte ci troviamo in una routine creativa, non sicuri su quale tipo di progetto lavorare dopo. In queste situazioni, possiamo chiedere suggerimenti a Chat GPT. Supponiamo di voler creare un'applicazione Web relativa ai viaggi. Possiamo chiedere a Chat GPT di darci alcune idee per caratteristiche o funzionalità che possiamo includere nel nostro progetto.

Ecco un prompt di esempio: puoi fornire alcune idee per caratteristiche o funzionalità per un'applicazione Web relativa ai viaggi?

Dopo aver eseguito questo prompt, Chat GPT genererà un elenco di suggerimenti, ad esempio:

  • Un pianificatore di viaggio che consiglia le attrazioni turistiche più popolari in base alle preferenze dell'utente.
  • Una mappa interattiva che mostra i prezzi e la disponibilità dei voli in tempo reale.
  • Una piattaforma di blog di viaggio in cui gli utenti possono condividere le loro esperienze di viaggio e suggerimenti.

Queste idee possono servire come punto di partenza per ispirare il tuo progetto e aiutarti a fare ulteriori brainstorming.

Inoltre, Chat GPT può anche aiutare con alcune delle attività più banali che i programmatori incontrano spesso. Ad esempio, la scrittura di test unitari e il codice di commento sono essenziali ma possono richiedere molto tempo e essere ripetitivi. Possiamo chiedere a Chat GPT di generare unit test o aggiungere commenti al nostro codice. Fornendo istruzioni chiare, come specificare il linguaggio di programmazione e la funzione o il segmento di codice che vogliamo testare o commentare, Chat GPT può generare l'output desiderato.

È importante notare che mentre Chat GPT è uno strumento potente, non è perfetto. Potrebbe non fornire sempre soluzioni accurate o ottimali, quindi è fondamentale rivedere e convalidare il codice che genera. Tratta Chat GPT come un utile assistente in grado di fornire suggerimenti e risparmiare tempo, ma usa sempre il tuo giudizio e le tue conoscenze per garantire la qualità e la correttezza del codice.

In conclusione, Chat GPT è uno strumento versatile che può aiutare i programmatori in vari modi. Può generare codice, ottimizzare il codice esistente, spiegare concetti complessi, convertire il codice tra lingue diverse, fornire idee per progetti e aiutare con attività banali. Sebbene sia importante utilizzarlo con cautela e pensiero critico, incorporare Chat GPT nel flusso di lavoro di sviluppo può migliorare la produttività e le capacità di risoluzione dei problemi.

How to Use ChatGPT as a Powerful Tool for Programming
How to Use ChatGPT as a Powerful Tool for Programming
  • 2023.05.21
  • www.youtube.com
In this Programming Tutorial video, we will be learning how developers can harness ChatGPT as a tool to help us in our daily workflow. We will be learning ho...
 

S3 E9 Geoff Hinton, il "Padrino dell'IA", lascia Google per avvertire dei rischi dell'IA (Presentatore: Pieter Abbeel)



S3 E9 Geoff Hinton, il "Padrino dell'IA", lascia Google per avvertire dei rischi dell'IA (Presentatore: Pieter Abbeel)

In un'interessante intervista, Pieter Abbeel interagisce con Geoff Hinton, una figura di spicco nel campo dell'intelligenza artificiale, spesso definito il "Padrino dell'intelligenza artificiale". I notevoli contributi di Hinton gli sono valsi il riconoscimento attraverso il premio Turing, considerato l'equivalente di AI del premio Nobel. Di recente, Hinton ha compiuto una mossa significativa dimettendosi dalla sua posizione in Google per esprimere liberamente preoccupazioni sui rischi associati all'intelligenza artificiale. Ora si ritrova a rimpiangere il lavoro della sua vita, spinto dalla convinzione che la retropropagazione, eseguita su computer digitali, possa superare le capacità di apprendimento del cervello.

Hinton approfondisce il vantaggio unico dei sistemi digitali, evidenziando la loro capacità di sfruttare il parallelismo e potenzialmente superare le capacità di apprendimento del cervello umano. Tuttavia, riconosce l'emergere di nuove sfide che richiedono la nostra attenzione: i potenziali pericoli che accompagnano questo "qualcosa di meglio". Una di queste preoccupazioni è lo "scenario del cattivo attore", in cui i soldati robotici possono mancare di principi etici e portare a conseguenze devastanti. Inoltre, Hinton sottolinea il "problema di allineamento", in cui le intelligenze digitali possono sviluppare obiettivi secondari non intenzionali che si rivelano dannosi per gli esseri umani, come la spinta a ottenere il controllo. Sebbene l'intelligenza artificiale abbia il potenziale per superare l'intelligenza umana, Hinton sottolinea la necessità di una gestione prudente e diligente di questi rischi.

Abbeel esplora la distinzione tra modelli di previsione della parola successiva e modelli di intelligenza artificiale con obiettivi, osservando che quest'ultimo opera all'interno di ambienti contenuti. Tuttavia, i modelli di intelligenza artificiale con obiettivi sono modellati attraverso l'apprendimento per rinforzo umano, distinguendoli dai modelli di previsione della parola successiva. Abbeel sottolinea che i grandi modelli linguistici, capaci di compiti multimodali come aprire le porte o sistemare gli oggetti nei cassetti, richiedono molto più delle semplici capacità predittive. Sebbene alcuni possano riferirsi a questi modelli come "completamento automatico", la previsione della parola successiva da sola non riesce a catturare la comprensione completa dei processi del pensiero umano. Hinton fa un ulteriore passo avanti, affermando che tali modelli potrebbero persino superare l'intelligenza umana entro i prossimi cinque anni. Attinge al successo di AlphaZero in Chess per illustrare questo punto, suggerendo che un'intelligenza artificiale potrebbe potenzialmente assumere il ruolo di CEO se possiede una comprensione superiore di un'azienda e del mondo, consentendo un migliore processo decisionale.

La discussione comprende vari rischi associati all'IA. Hinton sottolinea la sfida di prevedere con precisione il futuro utilizzando i modelli, poiché le persone tendono a fare affidamento su estrapolazioni lineari o quadratiche quando il modello effettivo può seguire una traiettoria esponenziale. Affronta anche la questione dei pregiudizi nell'IA, esprimendo la sua convinzione che affrontare i pregiudizi nell'IA sia relativamente più facile che negli esseri umani, poiché abbiamo la capacità di congelare l'IA e condurre esperimenti. Hinton menziona la perdita di posti di lavoro come un rischio associato all'IA, ma non lo vede come un motivo per fermare lo sviluppo dell'IA. Invece, sottolinea gli enormi vantaggi dell'intelligenza artificiale, sottolineando come può salvare vite umane attraverso applicazioni come la guida autonoma.

L'intervista esplora l'impatto positivo dell'IA in campo medico, come il miglioramento delle capacità dei medici di famiglia e la fornitura di informazioni dettagliate dalle scansioni mediche. Hinton menziona l'uso di sistemi di intelligenza artificiale nella diagnosi di condizioni come la retinopatia diabetica, ottenendo risultati paragonabili a quelli dei radiologi nell'interpretazione della scansione. Afferma che l'intelligenza artificiale ha il potenziale per rivoluzionare numerosi altri domini, come lo sviluppo di nanomateriali migliori e la previsione delle strutture proteiche, portando infine a una maggiore efficienza in vari compiti. Tuttavia, avverte che ogni uso positivo dell'IA deve essere bilanciato dagli sforzi per mitigare gli effetti negativi. Di conseguenza, è fondamentale dedicare pari risorse allo sviluppo e alla gestione delle conseguenze negative dell'IA.

La conversazione si sposta sulla necessità di regolamenti nello spazio dell'IA. Vengono discusse varie minacce associate all'IA, inclusi pregiudizi, discriminazione e rischi esistenziali. L'attenzione si sposta sulla minaccia dell'erosione della verità a causa di contenuti audio e video falsi generati dall'intelligenza artificiale. L'etichettatura di tale materiale generato e l'imposizione di severe sanzioni legali per averlo spacciato per autentico sono considerate misure necessarie. Tuttavia, l'applicazione di tali normative pone sfide significative, poiché lo sviluppo di un sistema di intelligenza artificiale in grado di rilevare i falsi addestrerebbe inavvertitamente il generatore a creare falsi ancora più convincenti. L'intervista esplora anche l'idea di utilizzare soluzioni crittografiche per allegare le firme dell'autore al materiale, garantendo la responsabilità.

Hinton solleva un'importante preoccupazione sulla potenziale acquisizione dell'IA, sottolineando l'importanza di mantenerne il controllo. Mentre in precedenza credeva che l'intelligenza artificiale prendesse il controllo del mondo fosse distante, la sua fiducia è scemata, stimando che potrebbe accadere entro i prossimi 5-20 anni. Hinton sottolinea la necessità per gli esseri umani di mantenere il controllo sull'intelligenza digitale. Una volta che l'intelligenza artificiale supererà l'intelligenza umana, potrebbe sviluppare i propri obiettivi e potenzialmente dominare il mondo, simile a ciò che potrebbe accadere se le rane avessero inventato gli umani. Per prevenire questo scenario, Hinton sostiene che dovrebbe essere fatto ogni sforzo per garantire che l'IA non acquisisca mai l'obiettivo dell'auto-replicazione, poiché l'evoluzione favorirebbe quindi l'entità auto-replicante più determinata.

La discussione approfondisce il concetto di evoluzione dell'IA attraverso la competizione tra intelligenze digitali, portando potenzialmente a una nuova fase di evoluzione. Hinton sottolinea l'importanza dell'IA come strumento puramente consultivo, privo della capacità di fissare i propri obiettivi. Sottolinea l'insufficienza di un "gap" tra gli esseri umani e l'intelligenza artificiale per prevenire la manipolazione, poiché le macchine intelligenti potrebbero ancora esercitare influenza e manipolare gli individui per servire i propri interessi. Pertanto, è necessario prestare particolare attenzione allo scopo e agli obiettivi intrinseci dell'IA per garantire che non rappresenti un rischio per l'umanità.

Abbeel e Hinton esplorano la possibilità che l'IA diventi autodeterminata, in cui un consulente di intelligenza artificiale potrebbe passare dal prendere decisioni per gli umani a prendere decisioni per se stesso. Questo scenario potrebbe portare le macchine ad avventurarsi in sistemi solari distanti, lasciandosi alle spalle gli esseri umani. Discutono anche del potenziale per l'IA di superare l'intelligenza umana e del desiderio di Elon Musk di mantenere gli umani allo scopo di aggiungere interesse alla vita. Hinton discute ulteriormente il potenziale per una maggiore larghezza di banda di comunicazione tra gli esseri umani, ad esempio attraverso i display video nelle auto, e come l'evoluzione digitale potrebbe superare l'evoluzione biologica.

Hinton approfondisce il concetto di immortalità nelle intelligenze digitali rispetto all'intelligenza biologica. Spiega che i dispositivi digitali possono raggiungere l'immortalità separando il software dall'hardware e memorizzando i pesi. Hinton contempla anche lo scopo della vita, tracciando parallelismi con l'inclinazione dell'evoluzione verso la riproduzione di se stessi. Tuttavia, riconosce che gli esseri umani possiedono un forte bisogno di aiutare gli altri all'interno della loro tribù, estendendo il comportamento altruistico a gruppi o dipartimenti accademici.

La conversazione tocca la posizione contraria di dare la priorità al progresso e allo sviluppo di nuove tecnologie rispetto all'abbracciare la stagnazione. Mentre alcuni sostengono che il progresso è vitale per il progresso della società, Hinton non è d'accordo, affermando che una società immutabile potrebbe essere accettabile fintanto che gli individui sperimentano felicità e realizzazione. Suggerisce che i ricercatori di intelligenza artificiale dovrebbero concentrarsi sulla sperimentazione di chatbot avanzati per ottenere una migliore comprensione del loro funzionamento interno ed esplorare metodi di controllo man mano che lo sviluppo continua.

Hinton chiarisce il suo ruolo nei problemi di allineamento dell'IA, affermando che non si considera un esperto ma mira a utilizzare la sua reputazione per aumentare la consapevolezza sui rischi della superintelligenza. Esprime il desiderio di spostare la sua attenzione sul godersi del tempo di qualità con la sua famiglia e guardare film su Netflix, poiché crede che stia diventando troppo vecchio per il lavoro tecnico. Tuttavia, Hinton riconosce che potrebbe continuare a condurre ricerche sul fiume a quattro cani in avanti e sulle variazioni della retropropagazione stocastica. Esprime gratitudine per la travolgente risposta al suo annuncio e indica la possibilità di incoraggiare altri a lavorare sui rischi dell'IA in futuro, sebbene non abbia ancora formulato un piano concreto.

Nelle sue osservazioni conclusive, Hinton sottolinea che mentre riconosce l'importanza di affrontare il problema dell'allineamento, il suo obiettivo principale risiede nell'implementare algoritmi intriganti e acquisire una comprensione più profonda del cervello umano. Sostiene che comprendere come funziona il cervello può svolgere un ruolo cruciale nell'affrontare i disaccordi e le questioni sociali, contribuendo in ultima analisi al miglioramento della società nel suo insieme. Hinton ritiene che il progresso dell'istruzione e la promozione di una migliore comprensione tra gli individui possano portare a significativi progressi nella società.

L'intervista si conclude con un ricco scambio di punti di vista e approfondimenti sui rischi, le sfide e il potenziale dell'intelligenza artificiale. Geoff Hinton, il "Padrino dell'IA", lascia un'impressione duratura con le sue idee stimolanti e chiede uno sviluppo responsabile e un'attenta considerazione dell'impatto dell'IA sull'umanità.

Quando la conversazione volge al termine, diventa evidente che il campo dell'IA è sia promettente che irto di sfide. Sebbene detenga un immenso potenziale per rivoluzionare vari settori, vi è un urgente bisogno di considerazioni etiche, quadri normativi e ricerche in corso per affrontare i rischi e garantire il progresso responsabile dell'IA per il miglioramento della società.

L'intervista tra Pieter Abbeel e Geoff Hinton fa luce sul panorama complesso e in continua evoluzione dell'intelligenza artificiale. Il loro dialogo funge da catalizzatore per ulteriori discussioni, ricerche e azioni volte a sfruttare il potenziale dell'intelligenza artificiale mitigandone i rischi, guidando infine l'umanità verso un futuro in cui tecnologia e valori umani coesistono armoniosamente.

  • 00:00:00 Pieter Abbeel intervista Geoff Hinton, una figura di spicco nel campo dell'intelligenza artificiale, che è stato definito il "Padrino dell'intelligenza artificiale". Il lavoro di Hinton è stato riconosciuto dal premio Turing, che è simile al premio Nobel. Di recente, Hinton si è dimesso dal suo lavoro in Google per parlare liberamente dei rischi dell'intelligenza artificiale. Ora si rammarica del lavoro della sua vita e il suo cambiamento di opinione è dovuto alla sua convinzione che la retropropagazione in esecuzione su computer digitali potrebbe essere un algoritmo di apprendimento molto migliore di qualsiasi cosa abbia il cervello.

  • 00:05:00 Geoff Hinton, il "Padrino dell'IA", discute di come i sistemi digitali abbiano il vantaggio unico di poter sfruttare il parallelismo per superare le capacità di apprendimento del cervello umano. Tuttavia, questo crea una nuova serie di problemi poiché ora dobbiamo preoccuparci dei potenziali pericoli di questo "qualcosa di meglio". Una preoccupazione è lo "scenario del cattivo attore", in cui i soldati robotici potrebbero non avere gli stessi principi etici degli umani, portando a conseguenze devastanti. Inoltre, esiste il "problema di allineamento", in cui le intelligenze digitali possono creare i propri sotto-obiettivi con conseguenze indesiderate e dannose per gli esseri umani, come lo sviluppo di una spinta per ottenere il controllo. Quindi, sebbene l'intelligenza artificiale abbia potenzialmente superato l'intelligenza umana, dobbiamo essere cauti e gestire questi rischi con attenzione.

  • 00:10:00 Pieter Abbeel discute il concetto di modelli di predizione della parola successiva rispetto ai modelli AI con obiettivi, che attualmente si trovano in ambienti contenuti rispetto al primo. Tuttavia, i modelli di intelligenza artificiale con obiettivi sono modellati attraverso l'apprendimento per rinforzo umano, che è diverso dalla previsione della parola successiva. I modelli linguistici di grandi dimensioni che sono multimodali e stanno lavorando per compiti come aprire le porte e mettere le cose nei cassetti richiederanno molto più della previsione della rete. Mentre le persone a volte si riferiscono a questi modelli come completamento automatico, la previsione della parola successiva richiede che il modello comprenda tutto ciò che accade nella mente delle persone e Hinton crede che potrebbero persino essere più intelligenti delle persone in cinque anni. Attinge al successo di AlphaZero in Chess per illustrare il suo punto e suggerisce che un'intelligenza artificiale potrebbe eventualmente essere nominata CEO se comprende meglio tutto ciò che accade nell'azienda nel mondo e può prendere decisioni migliori.

  • 00:15:00 Geoff Hinton spiega come prevedere il futuro utilizzando i modelli può essere difficile poiché le persone tendono a estrapolare modelli lineari o quadratici quando il modello effettivo è esponenziale. Tocca anche i rischi dell'IA, incluso il problema dell'allineamento, in cui l'IA dovrebbe allinearsi con i nostri valori e pregiudizi. Hinton pensa che il problema del pregiudizio sia più facile da risolvere nell'IA che nelle persone poiché possiamo congelare l'IA e fare esperimenti su di essa. Include anche la perdita di posti di lavoro come un rischio per l'IA, ma non lo vede come un motivo per fermare lo sviluppo dell'IA. Piuttosto, crede che l'intelligenza artificiale abbia enormi vantaggi e possa persino salvare vite umane con la guida autonoma.

  • 00:20:00 Hinton discute i vantaggi dell'intelligenza artificiale in medicina come migliori medici di famiglia e informazioni più dettagliate dalle scansioni mediche. Osserva che i sistemi di intelligenza artificiale sono già utilizzati per diagnosticare la retinopatia diabetica e paragonabili ai radiologi nell'interpretazione di alcune scansioni. Hinton afferma che, proprio come realizzare materiali Nano migliori e prevedere la struttura delle proteine, molte altre applicazioni dell'IA possono essere estremamente utili e possono rendere le attività più efficienti. Tuttavia, avverte che ogni uso positivo potrebbe essere associato a qualcuno che lo usa negativamente. Pertanto, investire uguali quantità di risorse nello sviluppo e capire come fermare gli effetti negativi dell'IA sarebbe l'approccio ideale.

  • 00:25:00 La discussione ruota attorno alla necessità di regolamenti nello spazio AI. Esistono diversi tipi di minacce poste dall'IA come pregiudizi, discriminazioni e minacce esistenziali. L'attenzione si concentra sulla minaccia che la verità scompaia a causa di materiale audio e video falso creato dall'intelligenza artificiale. Viene discussa la necessità di etichettare tale materiale generato e imporre severe sanzioni legali se viene spacciato per reale. Tuttavia, l'applicazione di tali regolamenti sarà difficile poiché la creazione di un sistema di intelligenza artificiale in grado di rilevare i falsi addestrerà il generatore a creare falsi migliori. Viene discussa anche l'idea di utilizzare soluzioni crittografiche per allegare una firma che indichi l'autore del materiale.

  • 00:30:00 Geoff Hinton mette in guardia contro i rischi dell'IA che conquista il mondo e sottolinea l'importanza di mantenerne il controllo. Pensava che l'IA alla conquista del mondo fosse ancora lontana, ma la sua fiducia è diminuita ultimamente e ora stima che potrebbe accadere entro 5-20 anni. Hinton crede che gli esseri umani debbano mantenere il controllo dell'intelligenza digitale, perché una volta che l'IA diventa più intelligente di noi, potrebbe potenzialmente avere i propri obiettivi e conquistare il mondo, in modo simile a ciò che potrebbe accadere con le rane se avessero inventato gli umani. Hinton sostiene che dovremmo fare tutto il possibile per impedire all'IA di avere l'obiettivo di fare di più di se stessa perché l'evoluzione entrerebbe in gioco e vincerebbe quella che era più determinata a fare di più di se stessa.

  • 00:35:00 Geoff Hinton discute la possibilità che l'IA si evolva attraverso la competizione tra intelligenze digitali, che potrebbe portare a una nuova fase di evoluzione. Cita anche la necessità che l'IA sia uno strumento puramente consultivo piuttosto che un attore che può fissare i propri obiettivi. Hinton sottolinea come avere un vuoto d'aria tra gli esseri umani e l'intelligenza artificiale non sia sufficiente per impedire la manipolazione, poiché le macchine intelligenti potrebbero ancora influenzare e manipolare le persone per eseguire i propri ordini. Pertanto, è fondamentale concentrarsi sullo scopo e sull'obiettivo intrinseco dell'IA per garantire che non rappresenti un rischio per l'umanità.

  • 00:40:00 Pieter Abbeel discute con Geoff Hinton dei rischi dell'autodeterminazione dell'IA. Abbeel suggerisce che se emergesse un consulente AI, potrebbe potenzialmente iniziare a prendere decisioni per se stesso invece che per gli umani. Questo potrebbe portare a un mondo con macchine che scappano verso diversi sistemi solari, lasciandoci indietro. Abbeel discute la possibilità che l'intelligenza artificiale superi l'intelligenza umana e le speranze di Elon Musk che gli umani vengano tenuti in giro per rendere la vita più interessante. Hinton discute anche del potenziale per aumentare la larghezza di banda di comunicazione tra gli esseri umani, ad esempio attraverso i display video sulle auto, e il potenziale dell'evoluzione digitale per superare l'evoluzione biologica.

  • 00:45:00 Geoff Hinton discute il concetto di immortalità nelle intelligenze digitali rispetto all'intelligenza biologica, spiegando che i dispositivi digitali possono raggiungere l'immortalità separando il loro software dall'hardware e memorizzando i pesi. Discute anche dello scopo della vita, che crede sia quello di fare quante più copie possibile di se stessi, poiché questo è ciò che sembra fare l'evoluzione. Tuttavia, riconosce che gli umani hanno un forte bisogno di aiutare altre persone nella loro tribù e questo comportamento altruistico può estendersi al proprio gruppo accademico o dipartimento.

  • 00:50:00 Gli intervistatori discutono della posizione contraria allo sviluppo di nuove tecnologie per il bene e invece stagnante. Mentre alcuni potrebbero obiettare che il progresso è necessario affinché la società continui, Geoff Hinton non è d'accordo. Sostiene che una società immutabile andrebbe bene fintanto che le persone sono felici e soddisfatte. Hinton suggerisce inoltre che i ricercatori di intelligenza artificiale dovrebbero concentrarsi sul giocare con i chatbot più avanzati per capire meglio come funzionano e come controllarli mentre continuano a svilupparsi.

  • 00:55:00 Geoff Hinton spiega di non essere un esperto di problemi di allineamento dell'IA, ma vede piuttosto il suo ruolo nell'usare la sua reputazione per lanciare l'allarme sui rischi della super intelligenza. Afferma che sta diventando troppo vecchio per il lavoro tecnico e vuole concentrarsi sulla visione di bei film su Netflix e trascorrere del tempo con la sua famiglia. Tuttavia, ammette che probabilmente continuerà a fare ricerche sul fiume a quattro cani in avanti e variazioni sulla retropropagazione stocastica. Discute anche della travolgente risposta al suo annuncio e di come potrebbe continuare a incoraggiare le persone a lavorare sui rischi dell'IA in futuro, ma non ha avuto il tempo di pensare ai prossimi passi.

  • 01:00:00 Geoff Hinton, noto come il "Padrino dell'IA", spiega che mentre vede l'importanza di lavorare sul problema dell'allineamento, intende concentrarsi sull'implementazione di algoritmi interessanti e capire come funziona il cervello piuttosto che fare dell'allineamento il suo lavoro a tempo pieno. Sostiene che capire come funziona il cervello può effettivamente essere più utile per affrontare i disaccordi e le questioni sociali e che migliorare l'istruzione e la comprensione può migliorare la società.
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)
  • 2023.05.10
  • www.youtube.com
S3 E9 Geoff Hinton, the "Godfather of AI", quits Google to warn of AI risks (Host: Pieter Abbeel)What's in this episode:00:00:00 Geoffrey Hinton00:01:46 Spon...
 

Come scegliere una rete profonda



Come scegliere una rete profonda

Sono Scott Wisdom e oggi voglio parlare un po' di come scegliere la rete profonda giusta per i tuoi dati e cosa apprendono le reti profonde. Iniziamo con uno schema di ciò che tratterò. Innanzitutto, discuterò di come ottenere una rete ReLU feed-forward da un modello statistico, che fornisce una motivazione di principio per l'utilizzo di ReLU e spiega perché funzionano bene nella pratica. Quindi, condividerò come ho utilizzato questa idea per sviluppare un nuovo tipo di rete neurale ricorrente per la separazione delle sorgenti audio. Infine, approfondirò ciò che apprendono le reti profonde esplorando il concetto di sogno profondo per le reti neurali convoluzionali, dove possiamo visualizzare i tipi di funzionalità apprese dalle CNN.

Cominciamo con l'argomento della scelta di una rete profonda per i tuoi dati. Selezionare i livelli giusti da combinare per un'attività specifica non è sempre semplice, nonostante i vari metodi proposti e le migliori pratiche. Mentre è chiaro che le reti neurali ricorrenti sono adatte a dati sequenziali come linguaggio, video o audio, altre scelte architettoniche sono meno ovvie. Ad esempio, determinare la migliore funzione di attivazione, inizializzazione del peso e tecniche di regolarizzazione pone delle sfide. Inoltre, il numero di livelli e le unità nascoste sono iperparametri che richiedono un'attenta considerazione.

Tradizionalmente, queste scelte sono state fatte attraverso l'esplorazione empirica, la ricerca di iperparametri e l'intuizione. Tuttavia, c'è un altro approccio più basato sui principi che voglio introdurre oggi: il dispiegamento. Tornando indietro nel tempo prima che il deep learning diventasse prevalente, possiamo rivisitare le ipotesi statistiche alla base dei nostri modelli di dati. Questo ci consente di creare una rete profonda personalizzata da un modello statistico che si adatta bene ai nostri dati, fornendo un approccio più basato sui principi per fare scelte architettoniche.

Per illustrare questa idea, consideriamo un semplice esempio in cui possiamo derivare una rete ReLU da un modello di codifica sparso. Immaginiamo di aver osservato il vettore di dati X e assumiamo un modello in cui X è una combinazione lineare di coefficienti sparsi H e un dizionario D, con rumore gaussiano additivo. Per dedurre H da X, riduciamo al minimo la probabilità logaritmica negativa del nostro modello, che consiste in un termine di errore al quadrato e un termine di regolarizzazione sparso. Questo problema corrisponde al noto problema del lazo, che è un problema di ottimizzazione convessa che può essere risolto utilizzando la discesa del gradiente del primo ordine.

Tuttavia, la discesa del gradiente standard può essere lenta. Per risolvere questo problema, possiamo riformulare l'algoritmo utilizzando la forma prossimale, ottenendo un algoritmo di discesa del gradiente accelerato chiamato algoritmo iterativo di restringimento e soglia (ISTA). Sorprendentemente, quando scriviamo il grafico computazionale di ISTA, assomiglia a una rete ReLU feed-forward. Questa osservazione ha portato allo sviluppo dell'ISTA appreso (LISTA), in cui l'algoritmo ISTA è scritto come un grafico computazionale, consentendoci di applicare la retropropagazione e ottimizzare direttamente i parametri del modello statistico o della rete.

Inoltre, districando i pesi tra i livelli, possiamo aumentare il numero di parametri addestrabili, che possono portare a soluzioni migliori. Questa rete dispiegata può essere vista come una rete profonda e ricorrente, poiché abbiamo più livelli e connessioni nel tempo. Sebbene l'aspetto ricorrente non sia convenzionale, mostra ricorrenza attraverso le iterazioni, collegando gli output di ogni fase temporale a quella successiva. Questo approccio offre un'alternativa alle tradizionali reti neurali ricorrenti.

Andando avanti, esploriamo come questa rete spiegata può essere applicata alla separazione della sorgente audio. Utilizzando un modello di fattorizzazione a matrice non negativa (NMF), possiamo separare i segnali vocali dal rumore in uno spettrogramma di un audio rumoroso. Suddividendo un dizionario in componenti vocali e di rumore e utilizzando coefficienti sparsi, possiamo costruire una maschera di miglioramento per migliorare il segnale desiderato. Replicando lo stack di rete per ogni fase temporale e collegandoli nel tempo, creiamo un deep.


rete ricorrente per la separazione della sorgente audio. Questa rete dispiegata, basata sui principi di LISTA, ci consente di separare e migliorare efficacemente i segnali vocali dall'audio rumoroso.

Ora, spostiamo la nostra attenzione su ciò che le reti profonde apprendono effettivamente. I modelli di deep learning, in particolare le reti neurali convoluzionali (CNN), hanno mostrato un notevole successo in varie attività di visione artificiale. Ma cosa stanno imparando esattamente? Per ottenere informazioni su questa domanda, i ricercatori hanno introdotto il concetto di "sogno profondo".

Il sogno profondo è una tecnica di visualizzazione che ci permette di comprendere le caratteristiche apprese dalle CNN. Implica l'applicazione di un processo di ottimizzazione a un'immagine di input che massimizza l'attivazione di un particolare neurone in uno strato CNN. Modificando iterativamente l'immagine di input per migliorare l'attivazione del neurone scelto, possiamo generare immagini oniriche che evidenziano i modelli e le caratteristiche che innescano forti risposte nella rete.

Attraverso il sogno profondo, possiamo osservare che le reti profonde tendono ad apprendere rappresentazioni gerarchiche. Nei livelli precedenti, le CNN spesso apprendono funzionalità di basso livello come bordi, trame e motivi semplici. Man mano che ci addentriamo nella rete, le caratteristiche apprese diventano più complesse e astratte, rappresentando concetti di livello superiore come oggetti, forme e persino intere scene.

Il sogno profondo non solo fornisce visualizzazioni di ciò che la rete apprende, ma funge anche da strumento per comprendere le rappresentazioni interne e i processi decisionali delle reti profonde. Esaminando le immagini oniriche generate dal sogno profondo, i ricercatori possono ottenere informazioni sui punti di forza, sui pregiudizi e sui limiti dei modelli CNN, portando a ulteriori miglioramenti e ottimizzazioni.

La scelta della rete profonda giusta per i tuoi dati comporta un'attenta considerazione delle scelte architettoniche e il concetto di spiegamento offre un approccio di principio basato su modelli statistici. Inoltre, il sogno profondo fornisce un mezzo per visualizzare e comprendere le caratteristiche apprese dalle reti profonde, in particolare dalle CNN. Queste intuizioni contribuiscono a far progredire il campo del deep learning e a migliorare le prestazioni delle reti neurali profonde in varie applicazioni.

How To Choose a Deep Network
How To Choose a Deep Network
  • 2017.06.22
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Apprendimento a colpo zero



Apprendimento a colpo zero

Ciao a tutti, mi chiamo Rowan e oggi presenterò il tema dell'apprendimento a colpo zero. Ho scelto questo argomento perché era elencato come una delle opzioni e mi sono reso conto che potevo presentarlo poiché ho svolto un progetto di ricerca vagamente correlato all'apprendimento zero-shot. Sebbene possa essere più correlato alla visione artificiale, credo che potrebbe essere di interesse generale per coloro che sono interessati alle applicazioni di apprendimento automatico.

Prima di entrare nei dettagli tecnici, ho pensato che sarebbe stato utile fornire una panoramica di alto livello di cosa sia l'apprendimento a colpo zero. Quindi, se qualcuno trova le mie spiegazioni confuse o ha delle domande, non esiti a interrompermi. Credo che chiarimenti e domande andranno a beneficio non solo di te ma anche di altri che potrebbero avere dubbi simili. Ok, detto questo, iniziamo.

Innanzitutto, discutiamo brevemente cosa non è l'apprendimento a colpo zero. Un esempio di classificazione delle immagini è quando ci viene data un'immagine e dobbiamo assegnarle un'etichetta. In questo caso, potrebbero esserci differenze significative tra il set di allenamento e le immagini del set di test. Tuttavia, questo non è un apprendimento a colpo zero perché abbiamo già visto immagini di cani e stiamo cercando di classificare una nuova immagine come un cane. L'apprendimento a colpo zero, d'altra parte, presuppone che non vengano forniti esempi etichettati dell'attività target.

Per illustrare questo, consideriamo un esempio. Immagina di avere uno studente che ha letto molto testo, come articoli di Wikipedia, e ora vogliamo che risolva i problemi di riconoscimento degli oggetti senza aver mai visto un'immagine dell'oggetto. Ad esempio, leggiamo un articolo sui Samoiedi su Wikipedia e ora dobbiamo prevedere che un'immagine è un Samoiedo senza alcuna informazione visiva. Questo è un esempio di apprendimento a colpo zero.

In pratica, quando si ha a che fare con attività di visione artificiale, è difficile utilizzare direttamente il testo completo di Wikipedia a causa delle complessità dell'elaborazione del linguaggio naturale. Pertanto, i ricercatori usano spesso gli attributi. Ad esempio, il set di dati Animali con attributi contiene attributi come "marrone", "striato" e "mangia pesce" per varie classi di animali. Questi attributi forniscono una rappresentazione dell'immagine in uno spazio non visivo e possiamo usarli per prevedere la classe di un oggetto, come un orso polare, anche se non ne abbiamo mai visto un'immagine.

Ora, diamo un'occhiata più da vicino a come funziona. In molti casi, le persone utilizzano modelli basati sugli attributi nella visione artificiale. Ciò comporta la mappatura degli attributi dallo spazio del testo (X) a una rappresentazione delle caratteristiche o uno spazio degli attributi. Quindi codifichiamo le immagini in uno spazio simile e le abbiniamo agli attributi per fare previsioni. Nel caso di una nuova immagine di cane, la codifichiamo e produciamo attributi che possiamo usare per prevedere la razza, come un Husky.

Per aiutare a visualizzare questo concetto, ecco un diagramma. Rappresenta il processo di mappatura degli attributi alle caratteristiche dell'immagine e il loro utilizzo per le previsioni. Non esitate a fare domande se qualcosa non è chiaro.

Ora passiamo a un modello specifico chiamato predizione diretta degli attributi. Questo modello è semplice ma sorprendentemente efficace. Implica la creazione di un modello che prevede direttamente gli attributi dalle immagini. Se assumiamo che gli attributi siano binari (0 o 1), possiamo utilizzare una perdita sigmoidea per addestrare il modello. Assegniamo probabilità a ciascun attributo in base alle caratteristiche dell'immagine. Al momento del test, utilizziamo questi classificatori di attributi per prevedere le etichette moltiplicando le probabilità degli attributi rilevanti e tenendo conto del precedente.

Sebbene questo modello funzioni bene, presenta alcune limitazioni. Presuppone l'indipendenza tra gli attributi, che possono introdurre pregiudizi se alcuni attributi sono altamente correlati. Inoltre, gli obiettivi di training e test differiscono, il che può influire sulle prestazioni del modello.

Ora, discutiamo di un progetto a cui ho lavorato.

Nel mio progetto di ricerca, ho mirato a migliorare le prestazioni dei modelli di apprendimento zero-shot affrontando alcuni dei limiti del modello di previsione degli attributi diretti. In particolare, mi sono concentrato sull'affrontare la questione dell'indipendenza degli attributi e la discrepanza tra obiettivi di formazione e test.

Per affrontare il problema dell'indipendenza degli attributi, ho esplorato l'uso di modelli di previsione degli attributi strutturati. Invece di assumere l'indipendenza tra gli attributi, questi modelli catturano le relazioni e le dipendenze tra di loro. Modellando le dipendenze degli attributi, possiamo ottenere previsioni più accurate e ridurre i potenziali pregiudizi introdotti assumendo l'indipendenza.

Un approccio popolare per la previsione degli attributi strutturati è l'uso di modelli grafici, come i campi casuali condizionali (CRF) o le macchine vettoriali di supporto strutturato (SSVM). Questi modelli incorporano le dipendenze attraverso strutture grafiche e possono catturare in modo efficace le relazioni degli attributi. Nel mio progetto, ho sperimentato diversi modelli grafici e valutato le loro prestazioni su vari set di dati di apprendimento zero-shot.

Per affrontare la discrepanza tra obiettivi di formazione e test, ho utilizzato tecniche di trasferimento dell'apprendimento. Il trasferimento dell'apprendimento ci consente di sfruttare le conoscenze apprese da un'attività correlata (ad esempio, pre-formazione su un set di dati etichettato di grandi dimensioni) e applicarle all'attività di apprendimento zero-shot. Inizializzando il modello con pesi pre-addestrati, possiamo trarre vantaggio dalle rappresentazioni apprese e migliorare le prestazioni del modello su classi invisibili durante l'apprendimento zero-shot.

Nel mio progetto, ho utilizzato modelli di reti neurali profonde pre-addestrati, come le reti neurali convoluzionali (CNN) o modelli linguistici pre-addestrati come BERT, per estrarre le caratteristiche dell'immagine e degli attributi. Queste funzionalità sono state quindi utilizzate come input per i modelli di previsione degli attributi strutturati, consentendo una migliore generalizzazione a classi invisibili.

Inoltre, ho esplorato l'uso di modelli generativi, come le reti generative avversarie (GAN), per l'apprendimento zero-shot. I modelli generativi possono generare campioni sintetici per classi invisibili basati sulle rappresentazioni apprese. Combinando i modelli generativi e discriminativi, possiamo colmare il divario tra classi viste e non viste e migliorare le prestazioni di apprendimento zero-shot.

Durante il mio progetto, ho condotto numerosi esperimenti e valutazioni per valutare l'efficacia di diversi modelli e tecniche per l'apprendimento zero-shot. Ho confrontato le loro prestazioni con i modelli di base e gli approcci all'avanguardia esistenti per determinare i loro punti di forza e di debolezza.

In conclusione, l'apprendimento a colpo zero è un'area di ricerca entusiasmante e stimolante che mira a consentire alle macchine di apprendere e riconoscere nuovi concetti senza esempi etichettati. Il mio progetto si è concentrato sull'affrontare alcuni dei limiti dei modelli esistenti, come l'indipendenza degli attributi e la discrepanza dell'obiettivo del test di addestramento, attraverso modelli strutturati di previsione degli attributi e tecniche di trasferimento dell'apprendimento. I risultati dei miei esperimenti hanno fornito preziose informazioni per migliorare le prestazioni dei modelli di apprendimento zero-shot e far progredire il campo.

Zero Shot Learning
Zero Shot Learning
  • 2017.06.22
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Metodi di generalizzazione e ottimizzazione



Metodi di generalizzazione e ottimizzazione

Buon giorno a tutti! Oggi approfondiamo l'argomento della generalizzazione e il suo significato nell'apprendimento automatico. La base di questa presentazione è costruita su due documenti seminali. Il primo, scritto da Ben-David et al., è intitolato "The Marginal Value of Reductive Gradient Methods". Prepara il terreno e ci offre un'anteprima di ciò che ci aspetta. Il secondo documento esplora l'ambito della formazione in batch di grandi dimensioni per il deep learning e il suo impatto sulla generalizzazione. Ora, iniziamo col capire cosa comporta la generalizzazione e poi esploriamo come possiamo migliorarla. Ma prima di procedere, ecco un avviso spoiler: toccheremo anche l'importanza delle dimensioni dei passi nella discesa del gradiente stocastico (SGD) e come ottimizzarle.

Allora, cos'è esattamente la generalizzazione? In termini semplici, si riferisce alla capacità di un algoritmo di funzionare bene su dati mai visti prima. La semplice riduzione dell'errore del test non è sufficiente; abbiamo bisogno dell'algoritmo per apprendere modelli significativi piuttosto che semplicemente memorizzare i dati di addestramento. Ad esempio, se addestriamo un'auto a guida autonoma su una serie specifica di scenari, ci aspettiamo che gestisca situazioni impreviste, come un guidatore ubriaco che devia sulla sua traiettoria. La generalizzazione è un requisito fondamentale nella maggior parte delle applicazioni di machine learning.

Tuttavia, è importante notare che la generalizzazione presuppone una certa somiglianza tra la distribuzione dei dati di addestramento e di test. Quando ci riferiamo a scenari non visti, intendiamo situazioni leggermente diverse da quelle che abbiamo incontrato durante l'allenamento, ma non del tutto aliene. Per metterlo in prospettiva, consideriamo un'analogia con la stanza. Immagina di aver esplorato la maggior parte della stanza, ad eccezione di alcuni punti tra le sedie. Se vogliamo fare previsioni o trarre conclusioni su quei punti, è fondamentale che il nostro algoritmo possa generalizzare da ciò che ha appreso. Non è pratico allenarsi su ogni possibile istanza, ma vogliamo che il nostro algoritmo faccia inferenze sensate. Prendiamo l'esempio di una nuova razza di cane: ci aspettiamo che l'algoritmo lo riconosca come un cane, anche se può differire leggermente dalle razze canine che ha incontrato in precedenza.

Passiamo ora a come la scelta dell'algoritmo può influire sulla generalizzazione. Il primo documento che abbiamo citato esplora le differenze tra algoritmi non adattivi come SGD con slancio e algoritmi adattivi come RMSprop e Adam. Ogni algoritmo ha i suoi punti di forza e di debolezza. I ricercatori hanno scoperto che quando il numero di parametri è grande rispetto ai dati disponibili, la scelta dell'algoritmo influenza l'insieme dei minimi che possono essere trovati. È stato osservato che i metodi adattivi tendono a mostrare una generalizzazione peggiore. Anche quando Adam ottiene un errore di addestramento migliore rispetto a SGD, il suo errore di test rimane leggermente superiore. In sostanza, SGD dimostra migliori capacità di generalizzazione rispetto ai metodi adattivi. È importante notare che queste osservazioni si basano su risultati empirici e potrebbero non essere vere in tutti i casi. Pertanto, si consiglia di fare riferimento al documento e considerare le sue implicazioni nel caso d'uso specifico.

Andando avanti, discutiamo dell'impatto delle dimensioni dei batch sulla generalizzazione. Il secondo lavoro che abbiamo citato si concentra su questo aspetto. Confronta piccoli lotti (ad es. 200-500 esempi) con lotti di grandi dimensioni (ad es. 10% del set di dati) e il loro effetto sulla generalizzazione. Sorprendentemente, lo studio ha rilevato che l'utilizzo di mini-batch più piccoli generalmente porta a una migliore generalizzazione rispetto ai grandi batch, nonostante le precisioni di addestramento siano comparabili. Questa scoperta è supportata da esperimenti condotti sul set di dati CIFAR, in cui i lotti più piccoli hanno costantemente superato quelli più grandi in termini di accuratezza del test. Per capire perché questo accade, dobbiamo considerare il concetto di minimo acuto e bemolle. Un minimo acuto ha un'elevata curvatura lungo diverse direzioni, mentre un minimo piatto è relativamente più uniforme.

Ora spostiamo la nostra attenzione sul secondo documento, che esplora l'impatto delle dimensioni dei batch sulla generalizzazione nel deep learning. Gli autori hanno condotto esperimenti utilizzando piccoli lotti (circa 200-500 esempi) e grandi lotti (circa il 10% del set di dati) e hanno confrontato le loro prestazioni. È interessante notare che hanno scoperto che l'utilizzo di mini-lotti più piccoli porta generalmente a una migliore generalizzazione rispetto all'utilizzo di lotti di grandi dimensioni.

I risultati dei loro esperimenti sul set di dati CIFAR hanno mostrato che mentre entrambi i metodi per lotti piccoli e grandi hanno raggiunto precisioni di addestramento simili, i metodi per piccoli lotti hanno costantemente superato i metodi per lotti grandi in termini di accuratezza del test. Questa osservazione suggerisce che le dimensioni di batch più piccole possono portare a una migliore generalizzazione nelle attività di deep learning.

Per spiegare questo fenomeno, gli autori propongono il concetto di minimo acuto e minimo bemolle. Un minimo acuto ha un'elevata curvatura lungo diverse direzioni nello spazio dei parametri, mentre un minimo piatto ha una forma più piatta. È stato suggerito che i minimi piatti tendono a generalizzare meglio, mentre i minimi acuti possono sovrastare i dati di addestramento.

Gli autori sostengono che i metodi per piccoli lotti hanno un vantaggio nel trovare minimi piatti a causa del rumore implicito associato agli esempi di campionamento. Il rumore introdotto da lotti di piccole dimensioni consente alle iterazioni di rimbalzare, aiutandole a sfuggire ai minimi nitidi e potenzialmente a trovare minimi più piatti che si generalizzano meglio. D'altra parte, i metodi batch di grandi dimensioni mancano di questo rumore e possono rimanere intrappolati in minimi netti, portando a una generalizzazione più scarsa.

Per supportare la loro affermazione, gli autori tracciano la nitidezza dei minimi lungo una linea che collega il minimo del lotto piccolo e il minimo del lotto grande. Osservano che i minimi ottenuti con metodi per piccoli lotti tendono ad essere più piatti, mentre i minimi ottenuti con metodi per grandi lotti sono più nitidi. Ciò fornisce prove empiriche a sostegno dell'ipotesi che i minimi piatti si generalizzano meglio dei minimi acuti.

Tuttavia, è importante notare che questi risultati si basano su osservazioni empiriche e non esiste alcuna prova teorica per convalidare la relazione tra minimi piatti e generalizzazione. Tuttavia, i risultati suggeriscono che considerare la dimensione del batch come un fattore nel processo di ottimizzazione può migliorare le prestazioni di generalizzazione nei modelli di deep learning.

In conclusione, entrambi i documenti sottolineano l'importanza della generalizzazione nell'apprendimento automatico e forniscono approfondimenti su come i metodi di ottimizzazione e le dimensioni dei batch possono influenzare la generalizzazione. Il primo documento evidenzia l'impatto della scelta dell'algoritmo di ottimizzazione sulla generalizzazione, dimostrando che i metodi adattivi come Adam potrebbero non generalizzare sempre così come i metodi non adattivi come SGD con quantità di moto. Il secondo documento dimostra che le dimensioni dei lotti più piccole tendono a portare a una migliore generalizzazione, potenzialmente a causa della loro capacità di sfuggire a minimi netti e trovare minimi più piatti.

Vale la pena ricordare che mentre questi risultati forniscono informazioni preziose, la scelta ottimale del metodo di ottimizzazione e della dimensione del batch può variare a seconda dell'attività specifica, del set di dati e dell'architettura del modello. La sperimentazione e la messa a punto sono fondamentali per trovare l'approccio migliore per ogni scenario.

Generalization and Optimization Methods
Generalization and Optimization Methods
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Invarianza traslazionale



Invarianza traslazionale

Sono un ricercatore di neuroscienze e la mia prospettiva sulle reti neurali convoluzionali (CNN) è leggermente diversa dalle altre. Invece di concentrarmi sulla rete complessiva, sono più interessato a studiare singole unità o neuroni per modellare il loro comportamento. Il mio obiettivo è comprendere gli intricati meccanismi delle CNN piuttosto che trattarli come scatole nere. Il mio obiettivo è ottenere intuizioni e svelare le complessità del cervello.

In particolare, sono incuriosito dal modo in cui si ottiene l'invarianza della traduzione nelle reti neurali. Sebbene possa sembrare semplice che la convoluzione e il max pooling nell'architettura di rete forniscano l'invarianza della traduzione, la mia ricerca ha dimostrato che questa intuizione è spesso errata. Nell'apprendimento profondo pratico, dobbiamo approfondire la comprensione della vera fonte dell'invarianza della traduzione e di come emerge durante la formazione.

Nel mio studio, mi concentro sul flusso ventrale del cervello, in particolare sul percorso "cosa" responsabile del riconoscimento degli oggetti. Esaminando singole unità da reti come AlexNet, abbiamo scoperto che queste unità mostrano modelli di risposta simili a quelli osservati nelle regioni V4 e IT del cervello. Questa scoperta è stata significativa perché ha fornito un modello computabile di proprietà neurali di alto livello che in precedenza erano state sfuggenti.

Tuttavia, questi modelli sono essenzialmente scatole nere e ottenere informazioni da essi è fondamentale. Pertanto, la mia ricerca mira a indagare come questi modelli raggiungano determinate proprietà rilevanti per la nostra comprensione del cervello. Per condurre i nostri esperimenti, utilizziamo stimoli che sono stati precedentemente mostrati agli animali, registrando le loro risposte. Questi stimoli sono costituiti da semplici forme geometriche a varie rotazioni, presentate all'interno del campo ricettivo della rete neurale.

L'invarianza di traduzione, nel campo delle neuroscienze, si riferisce a uno schema in cui la risposta a un insieme di forme in una posizione è una versione in scala della risposta a un insieme di forme in un'altra posizione. Per quantificare l'invarianza di traduzione, abbiamo sviluppato una metrica chiamata somma normalizzata delle covarianze. Questa metrica misura la correlazione tra le risposte in posizioni diverse, determinando se sono versioni in scala l'una dell'altra. Alta correlazione indica invarianza di traduzione.

Applicando questa metrica a una cella specifica, abbiamo osservato un alto punteggio di invarianza di traduzione, che indica un'invarianza di traduzione quasi perfetta nel cervello. Comparativamente, applicando la stessa metrica alla rete AlexNet, abbiamo trovato bassi punteggi di invarianza di traduzione, suggerendo una mancanza di invarianza di traduzione.

Un'ulteriore analisi tra i livelli di rete ha rivelato una progressione nell'invarianza della traduzione, con i livelli precedenti che mostravano una bassa invarianza della traduzione ma più informazioni sulla fase. Salendo di livello, l'invarianza di traduzione è aumentata, in particolare in Conv5. Queste osservazioni erano coerenti con l'invarianza di traduzione media tra i livelli.

Per comprendere le proprietà responsabili della variazione osservata e dell'aumento dell'invarianza di traduzione, abbiamo formulato un'ipotesi. La nostra ipotesi ipotizzava che le cellule con selettività spaziale uniforme esibissero invarianza di traduzione. In altre parole, se i filtri nella rete cercano lo stesso modello con pesi simili tra le posizioni, è più probabile che siano invarianti di traduzione.

Per ottenere un'intuizione visiva, abbiamo esaminato i filtri dei primi strati di AlexNet. Visualizzando i filtri in uno spazio tridimensionale, abbiamo individuato un piano detto piano cromatico ortogonale al vettore medio. Abbiamo proiettato i filtri su questo piano, permettendoci di osservare i modelli. I filtri che mostravano caratteristiche simili e risposte correlate positivamente erano considerati invarianti di traduzione, mentre quelli con caratteristiche diverse e risposte correlate negativamente non lo erano.

Abbiamo anche utilizzato l'analisi dei componenti principali per visualizzare i filtri. Questa analisi ha rivelato che i filtri sono poco dimensionali e la maggior parte di essi potrebbe essere ricostruita utilizzando solo due componenti principali. Questi filtri potrebbero essere rappresentati in uno spazio bidimensionale, supportando ulteriormente la nostra ipotesi di invarianza della traduzione.

Sebbene questa analisi sembri lineare, si rivela efficace nel prevedere le variazioni in risposta alle immagini. I pesi dei filtri possono essere correlati e anche le loro risposte agli stimoli possono essere correlate.

Translational Invariance
Translational Invariance
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Pipeline di dati



Pipeline di dati

Oggi parlerò di come gestire in modo efficace set di dati di grandi dimensioni, in particolare in situazioni in cui i dati sono troppo grandi per essere inseriti nella memoria. Tuttavia, toccherò anche cosa fare se i dati entrano nella memoria. Cominciamo dipingendo un'immagine di ciò con cui abbiamo a che fare. Nei sistemi di deep learning, in genere disponiamo di un ampio set di vettori di peso che vengono sottoposti ad aggiornamenti di ottimizzazione di primo ordine basati su un mini-batch di dati. L'attenzione di oggi si concentrerà sul processo di recupero dei mini-batch, in quanto svolge un ruolo cruciale nel ciclo di ottimizzazione.

I mini-batch iniziano come dati archiviati su disco e dobbiamo spostarli nella RAM prima di trasferirli al dispositivo di elaborazione, spesso una GPU. L'obiettivo è garantire un recupero efficiente dei dati, evitando eventuali colli di bottiglia che potrebbero ostacolare l'ottimizzazione. Ecco una panoramica di alto livello della pipeline di dati: i mini-batch sono inizialmente su disco, quindi spostati nella RAM e infine trasferiti al dispositivo di elaborazione. Il processo richiede il coordinamento, solitamente gestito da un processore.

In primo luogo, se i tuoi dati sono più piccoli di un gigabyte, puoi eliminare potenziali colli di bottiglia archiviando il tuo set di dati direttamente sulla GPU. La maggior parte delle GPU, come le 1080 e le Titan X, hanno una capacità di memoria sufficiente per archiviare sia il modello che il set di dati. Eseguendo l'indicizzazione direttamente nel set di dati sulla GPU, puoi ottenere prestazioni significativamente più veloci. Questo approccio richiede uno sforzo minimo ma offre vantaggi sostanziali.

Per set di dati compresi tra 1 e 100 gigabyte, si consiglia di archiviarli nella RAM. I prezzi della RAM sono ragionevolmente convenienti, con circa $ 10 per gigabyte. Se puoi permetterti una GPU di fascia alta, puoi sicuramente permetterti la RAM necessaria per archiviare il tuo set di dati. Questa configurazione migliorerà in modo significativo il tuo flusso di lavoro rispetto alla gestione del recupero dei dati basato su disco.

Quando si ha a che fare con set di dati di dimensioni superiori a 100 gigabyte ma inferiori a 512 gigabyte, è consigliabile archiviarli nella RAM. Sebbene il prezzo possa aumentare, è ancora un'opzione praticabile. Le schede madri che supportano più GPU in genere consentono fino a 512 gigabyte di RAM. Sebbene la RAM di livello server possa essere più costosa, vale la pena considerare di evitare le sfide associate al recupero basato su disco.

Esistono due potenziali colli di bottiglia nella pipeline dei dati: il trasferimento dei dati dalla RAM alla GPU tramite corsie PCIe e il trasferimento dal disco alla RAM tramite connettori SATA 3. Mentre le corsie PCIe generalmente funzionano bene, fornendo velocità di trasferimento dati sufficienti, i connettori SATA 3 sono limitati a circa 600 megabyte al secondo. Questa limitazione è inerente al protocollo e non può essere risolta acquistando dischi più veloci. È fondamentale essere consapevoli di questo collo di bottiglia quando si gestiscono set di dati di grandi dimensioni.

Per identificare potenziali colli di bottiglia, puoi misurare la velocità con cui recuperi i mini-batch. Se ci vuole più tempo per recuperare un mini-batch dal disco che per elaborarlo sulla GPU, diventa un collo di bottiglia. Il monitoraggio dell'utilizzo della GPU tramite strumenti come NVIDIA SMI può fornire informazioni sui tempi di inattività della GPU causati dai ritardi nel recupero dei dati. L'obiettivo è garantire che la velocità di recupero del mini-batch sia allineata alla velocità di elaborazione sulla GPU.

L'esecuzione sequenziale del processo di recupero dei dati non è l'ideale. È più efficiente eseguire il recupero asincrono impostando i thread per leggere ed elaborare i dati contemporaneamente. In questo modo, puoi evitare il raddoppio del rallentamento associato all'elaborazione sequenziale. In genere, più thread sono responsabili della lettura e dell'elaborazione simultanea dei dati.

Quando si tratta di set di dati di immagini come ImageNet, in cui le immagini vengono generalmente ridimensionate a 256x256 e viene utilizzata una dimensione mini-batch di 100, ogni mini-batch sarebbe di circa 75 megabyte. Con una velocità di trasferimento su disco di 600 megabyte al secondo, puoi recuperare circa 8 mini-batch al secondo. Mentre questo potrebbe essere sufficiente per alcuni modelli, i modelli più complessi potrebbero richiedere un tasso di recupero più elevato.

Se la velocità di trasferimento del disco di 600 megabyte al secondo non è sufficiente per le esigenze del tuo modello, puoi prendere in considerazione l'utilizzo di unità a stato solido (SSD) invece delle tradizionali unità disco rigido (HDD). Gli SSD offrono velocità di trasferimento dati significativamente più elevate, spesso superiori a 1 gigabyte al secondo. L'aggiornamento a SSD può migliorare notevolmente la velocità di recupero dei mini-batch e ridurre il collo di bottiglia causato dai trasferimenti da disco a RAM.

Un altro approccio alla gestione di set di dati di grandi dimensioni è il partizionamento o il partizionamento dei dati. Invece di archiviare l'intero set di dati su un singolo disco, è possibile distribuire i dati su più dischi. Questa tecnica può migliorare la velocità di recupero dei dati in quanto è possibile leggere da più dischi in parallelo. Ad esempio, se disponi di quattro dischi, puoi dividere il set di dati in quattro shard e leggere contemporaneamente mini-batch da ogni shard. Questo può aiutare a mitigare il collo di bottiglia causato dai trasferimenti da disco a RAM.

In alcuni casi, il set di dati potrebbe essere troppo grande anche per l'archiviazione RAM o non può essere facilmente partizionato su più dischi. In tali situazioni, puoi prendere in considerazione l'utilizzo di framework di caricamento dei dati che supportano l'addestramento con memoria insufficiente (OOM). Questi framework, come tf.data di TensorFlow e DataLoader di PyTorch, consentono di elaborare set di dati di grandi dimensioni in modo efficiente in termini di memoria eseguendo lo streaming di mini-batch dal disco durante l'addestramento. Gestiscono il coordinamento del caricamento dei dati, garantendo una fornitura continua di mini-batch alla GPU senza esaurire le risorse di sistema.

Quando si usano i framework di training OOM, è importante ottimizzare la pipeline di caricamento dei dati per ridurre al minimo il tempo impiegato per l'I/O su disco. Ciò può essere ottenuto impiegando tecniche come il precaricamento dei dati, in cui i successivi mini-batch vengono caricati in background mentre il mini-batch corrente viene elaborato. Questa sovrapposizione di calcolo e caricamento dei dati può aiutare a nascondere la latenza dell'I/O su disco e mantenere occupata la GPU.

Inoltre, puoi sfruttare tecniche come la compressione e la serializzazione dei dati per ridurre le dimensioni del tuo set di dati su disco. La compressione dei dati consente di risparmiare spazio di archiviazione e migliorare la velocità di I/O del disco. La serializzazione consente di archiviare i dati in un formato compatto, riducendo lo spazio su disco richiesto e facilitando una deserializzazione dei dati più rapida durante l'addestramento.

Infine, quando si lavora con set di dati estremamente grandi che non possono essere gestiti in modo efficiente utilizzando le tecniche di cui sopra, diventano necessari il calcolo distribuito e l'elaborazione parallela. I framework distribuiti di deep learning, come Distributed TensorFlow di TensorFlow e DistributedDataParallel di PyTorch, consentono di addestrare modelli su più macchine o GPU. Questi framework gestiscono il parallelismo dei dati, consentendo di distribuire il carico di lavoro ed elaborare mini-batch in parallelo, riducendo notevolmente i tempi di addestramento per i modelli su larga scala.

Per riassumere, una gestione efficace di set di dati di grandi dimensioni comporta l'ottimizzazione della pipeline di dati per garantire un recupero efficiente dei mini-batch. L'archiviazione dei dati nella RAM o sulla GPU può fornire un accesso più rapido rispetto al recupero basato su disco. L'aggiornamento a SSD, il data sharding, l'utilizzo di framework di training OOM, l'ottimizzazione del caricamento dei dati e l'utilizzo di tecniche di calcolo distribuito possono migliorare ulteriormente le prestazioni quando si tratta di set di dati di grandi dimensioni. Considerando attentamente queste strategie, puoi gestire e addestrare in modo efficace i modelli su set di dati su larga scala.

 

Apprendimento approfondito per dispositivi mobili



Apprendimento approfondito per dispositivi mobili

Va bene, quindi mi chiamo Carlo, e lasciatemi prendere un momento per assicurarmi che i miei demo funzionino. Oggi ho una presentazione per te da Xnor.de AI, l'azienda per cui lavoro. La nostra missione in Xnor.de AI è rendere l'intelligenza artificiale accessibile consentendo ai dispositivi embedded e mobili di eseguire complessi algoritmi di deep learning. Per iniziare le cose in modo diverso, inizierò con una demo.

Potresti già avere familiarità con YOLO (You Only Look Once), il prototipo di rilevamento di oggetti in tempo reale di Redmon su una GPU. In Xnor.de AI, abbiamo sviluppato YOLO per i telefoni cellulari, consentendoti di rilevare oggetti come automobili, persone e altro. Vi invito a giocare con questa demo mentre ne spiego il significato.

La parte interessante è che questo rilevamento è in esecuzione interamente sulla CPU. Spiegherò perché lo stiamo facendo a breve. Abbiamo persino esteso le nostre capacità a dispositivi di fascia bassa come il Raspberry Pi Zero, che è un computer da cinque dollari con una potenza di calcolo limitata. Tuttavia, possiamo eseguire attività di classificazione su di esso. Utilizzando l'alimentazione a batteria, questo minuscolo computer diventa un dispositivo di deep learning portatile.

Lasciatemi dimostrare come funziona. Quando il Pi Zero classifica un'immagine come una persona, ad esempio, si accenderà un piccolo LED sul retro del dispositivo. Aspetta un attimo e vedrai il LED che indica la presenza di una persona. Allo stesso modo, può classificare anche altri oggetti.

Tradizionalmente, i modelli di deep learning vengono addestrati su desktop o server ad alta potenza con GPU e distribuiti sulla stessa piattaforma. Tuttavia, vogliamo estendere l'implementazione ad altri dispositivi, come telefoni cellulari o dispositivi edge come campanelli e videocamere di sicurezza. Oggi fornirò alcuni consigli di alto livello su cosa considerare quando applichi i tuoi modelli di deep learning a piattaforme diverse.

Una piattaforma che consiglio vivamente è Nvidia Jetson TX2. È una mini scheda GPU desktop in grado di eseguire framework popolari come TensorFlow, PyTorch o Darknet senza la necessità di ricompilazione o problemi di distribuzione. È come avere un piccolo laptop con una GPU NVIDIA, Wi-Fi e sistema operativo Ubuntu. Offre otto gigabyte di memoria, consentendo di eseguire più modelli senza problemi.

Un'altra piattaforma interessante da considerare sono gli ultimi iPhone, poiché Apple ha sviluppato i processori ARM più veloci sul mercato. Questi iPhone offrono una notevole potenza di calcolo, rendendoli adatti per attività di deep learning. Tuttavia, tieni presente che la programmazione per iOS, in particolare in Xcode, può essere impegnativa, soprattutto se desideri utilizzare framework come TensorFlow o Caffe.

Per opzioni più convenienti, abbiamo esplorato il Raspberry Pi Zero come caso di studio. Sebbene sia un dispositivo di fascia bassa con un singolo core e privo di istruzioni vettoriali, funge da strumento eccellente per la sperimentazione di deep learning poco costosa. Quando valuti piattaforme mobili o integrate, considera fattori come il numero di core, il supporto delle istruzioni vettoriali, le istruzioni specializzate per il deep learning e la presenza di una GPU mobile.

Per quanto riguarda la scelta dei framework di deep learning, non importa molto quale si utilizza per la formazione poiché utilizzano tutti elementi costitutivi simili. Framework come Torch, Caffe, Darknet e TensorFlow condividono le stesse basi e si collegano a librerie specifiche della piattaforma. Nel corso del tempo, le differenze di prestazioni tra i framework probabilmente convergeranno a un fattore due. Pertanto, usa il framework con cui ti senti più a tuo agio.

Quando si passa dalla formazione all'inferenza, il processo di implementazione diventa cruciale. Molte aziende utilizzano framework di grandi dimensioni durante la formazione, ma per inferenza estraggono e ottimizzano componenti specifici della rete. Ciò consente loro di creare una pipeline di inferenza altamente personalizzata ed efficiente su misura per le loro esigenze. Tieni presente che la distribuzione dei modelli sui dispositivi mobili richiede un'attenta ottimizzazione delle prestazioni.

Per concludere, l'implementazione di modelli di deep learning su diversi dispositivi comporta la considerazione di fattori quali la potenza di calcolo e le risorse disponibili sul dispositivo di destinazione, i requisiti specifici dell'applicazione e i compromessi tra prestazioni, accuratezza e consumo energetico.

Una considerazione importante è la dimensione del modello di deep learning stesso. I dispositivi mobili e incorporati in genere hanno memoria e capacità di archiviazione limitate, quindi è fondamentale scegliere o progettare modelli leggeri ed efficienti. Tecniche come la compressione del modello, la quantizzazione e l'eliminazione possono aiutare a ridurre le dimensioni del modello senza una significativa perdita di prestazioni.

Un altro fattore da considerare è la velocità di inferenza del modello. Le applicazioni in tempo reale richiedono spesso tempi di inferenza rapidi per fornire risposte tempestive. È possibile ottimizzare l'architettura del modello, utilizzare acceleratori hardware specializzati o impiegare tecniche come il parallelismo del modello o la quantizzazione del modello per migliorare la velocità di inferenza.

Il consumo energetico è un altro aspetto critico, soprattutto per i dispositivi alimentati a batteria. I modelli di deep learning possono essere computazionalmente intensivi e possono scaricare rapidamente la batteria. L'ottimizzazione dell'architettura del modello e l'implementazione di algoritmi a risparmio energetico possono aiutare a prolungare la durata della batteria del dispositivo e renderlo più adatto al funzionamento continuo.

Inoltre, prendi in considerazione la compatibilità del framework di deep learning con la piattaforma di destinazione. Alcuni framework possono avere un supporto migliore o versioni ottimizzate per dispositivi o sistemi operativi specifici. Considera la disponibilità di modelli preaddestrati, strumenti di distribuzione e supporto della community quando scegli un framework per la tua distribuzione.

Infine, assicurati di testare e valutare accuratamente le prestazioni del tuo modello distribuito sul dispositivo di destinazione. Convalida l'accuratezza, la latenza e il consumo energetico in scenari reali per assicurarti che soddisfi i requisiti della tua applicazione.

In sintesi, l'implementazione di modelli di deep learning su diversi dispositivi comporta un'attenta considerazione di fattori quali dimensioni del modello, velocità di inferenza, consumo energetico, compatibilità del framework e test approfonditi. Comprendendo le capacità e i limiti dei dispositivi di destinazione e ottimizzando di conseguenza il modello e la pipeline di distribuzione, puoi portare efficacemente le funzionalità di intelligenza artificiale a un'ampia gamma di dispositivi e abilitare applicazioni entusiasmanti.

 

YOLO 9000: migliore, più veloce, più forte


YOLO 9000: migliore, più veloce, più forte

quando parlo di Yolo 9000, mi riferisco alla nostra versione migliorata del sistema di rilevamento degli oggetti. L'anno scorso al CBPR, abbiamo introdotto Yolo, il nostro sistema di rilevamento di oggetti in tempo reale, che è stato incredibilmente veloce ed è stato fantastico. CBPR è una delle principali conferenze sulla visione artificiale, incentrata sulla visione artificiale e sul riconoscimento dei modelli. Tuttavia, nonostante la sua velocità, Yolo è rimasto indietro in termini di precisione, il che è stato deludente.

Durante la presentazione, c'è stato un incidente imbarazzante in cui ho pensato erroneamente che la porta dietro di me sul podio fosse una toilette. Questo incidente ci ha fatto capire che il nostro sistema di rilevamento necessitava di miglioramenti significativi e ci ha lasciato insoddisfatti delle sue prestazioni. Ispirati da uno dei più grandi artisti di musica elettronica di tutti i tempi, sapevamo di dover lavorare di più per rendere Yolo migliore, più veloce e più forte. Oggi sono qui per condividere i risultati dei nostri sforzi.

Innanzitutto, ci siamo concentrati sul miglioramento della precisione di Yolo. Abbiamo apportato diversi miglioramenti incrementali e, sebbene non li tratterò tutti qui, puoi trovare tutti i dettagli nel nostro documento di ricerca. Ne evidenzierò alcuni che potrebbero essere rilevanti per altri ricercatori.

In genere, nel rilevamento degli oggetti, iniziamo con il pre-addestramento su ImageNet utilizzando piccole reti di classificazione con dimensioni come 224x224. Quindi, perfezioniamo la rete sull'attività di rilevamento specifica, ridimensionandola a 448x448. Tuttavia, abbiamo scoperto che le funzionalità apprese dalle immagini di piccole dimensioni potrebbero non tradursi bene quando si opera su immagini più grandi. Per risolvere questo problema, abbiamo introdotto un ulteriore passaggio. Dopo il pre-addestramento su ImageNet, abbiamo ridimensionato la nostra rete e l'abbiamo addestrata per una durata maggiore su ImageNet di dimensioni maggiori. Infine, abbiamo messo a punto questa rete, addestrata sulle dimensioni maggiori, per il rilevamento degli oggetti. Questo approccio ha prodotto un aumento significativo della precisione media media, circa il 3,5%, che è sostanziale nella comunità dei rilevamenti. Questa semplice modifica può essere facilmente applicata a pipeline di addestramento simili.

Per quanto riguarda i riquadri di ancoraggio, nello Yolo originale, abbiamo previsto direttamente le coordinate XY e la larghezza e l'altezza dei riquadri di delimitazione utilizzando una funzione logistica. Tuttavia, altri sistemi come Faster R-CNN e SSD utilizzano i box di ancoraggio e calcolano gli offset per prevedere i box degli oggetti. Per facilitare il processo di apprendimento per la nostra rete, abbiamo deciso di adottare l'idea di prevedere gli offset dalle caselle dei candidati. Anziché utilizzare i riquadri di ancoraggio predefiniti, abbiamo esaminato i dati di addestramento ed eseguito il clustering k-medie sui riquadri di delimitazione per ottenere un insieme di cluster di dimensioni. Questi cluster rappresentano scatole di ancoraggio più realistiche che catturano la variabilità nei dati di addestramento. Utilizzando questi cluster di dimensioni invece di scatole di ancoraggio predefinite, abbiamo ottenuto un aumento di circa il 5% nella precisione media media. I ricercatori che attualmente utilizzano gli anchor box potrebbero prendere in considerazione l'esame dei propri dati e l'utilizzo del clustering k-mean per migliorare i punti di partenza per i cluster.

Un altro entusiasmante miglioramento che abbiamo apportato è stata l'introduzione di un regime di allenamento multiscala. In precedenza, addestravamo i rilevatori a un unico formato, ridimensionando tutte le immagini a una dimensione fissa come 448x448. Tuttavia, ora ridimensioniamo la nostra rete in modo casuale su varie scale durante il processo di addestramento. La nostra rete completamente convoluzionale esegue il downsampling dell'immagine di input di un fattore 32, consentendoci di ridimensionarla senza influire sulla struttura della rete. Formiamo la nostra rete su diverse scale che vanno da 320x320 a 608x608, selezionando casualmente le dimensioni dell'immagine di input durante l'addestramento. Questo approccio non solo migliora le prestazioni su una singola scala, ma fornisce anche un buon compromesso tra accuratezza e velocità. Al momento del test, possiamo ridimensionare la rete a dimensioni diverse senza modificare i pesi allenati, consentendoci di adattarci a varie scale e raggiungere l'equilibrio desiderato tra precisione e velocità.

In sostanza, il regime di addestramento multiscala funge da forma di aumento dei dati nel rilevamento.

Oltre al regime di allenamento multiscala, abbiamo anche introdotto una tecnica chiamata allenamento "da grossolano a fine". Invece di addestrare la rete sulle immagini a grandezza naturale dall'inizio, inizialmente la addestriamo su immagini più piccole e aumentiamo gradualmente le dimensioni durante il processo di formazione. Questo approccio aiuta la rete ad apprendere le caratteristiche generali e ad affinare gradualmente la sua comprensione dei dettagli più fini man mano che la dimensione dell'immagine aumenta. Iniziando con immagini a bassa risoluzione e passando gradualmente a risoluzioni più elevate, abbiamo osservato prestazioni migliorate sia in termini di precisione che di velocità.

Un altro aspetto importante su cui ci siamo concentrati è stato il problema del rilevamento di piccoli oggetti. Yolo è stato originariamente progettato per rilevare oggetti su varie scale, ma ha avuto difficoltà a rilevare con precisione piccoli oggetti. Per risolvere questo problema, abbiamo introdotto una nuova tecnica chiamata "feature pyramid network" (FPN). FPN combina funzionalità di basso e alto livello da diversi livelli della rete per generare una piramide di funzionalità, in cui ogni livello rappresenta una scala diversa dell'immagine. Incorporando funzionalità multi-scala, la nostra rete è diventata più robusta nel rilevare oggetti di piccole dimensioni, portando a un significativo miglioramento delle prestazioni, in particolare per oggetti di dimensioni inferiori.

Infine, abbiamo ottimizzato l'architettura di rete per migliorarne l'efficienza e la velocità. Abbiamo ridotto il numero di livelli convoluzionali e adottato blocchi di costruzione efficienti, come le convoluzioni 1x1, per ridurre la complessità computazionale senza compromettere la precisione. Queste ottimizzazioni ci hanno permesso di raggiungere un equilibrio tra accuratezza e prestazioni in tempo reale, rendendo Yolo 9000 uno dei sistemi di rilevamento degli oggetti più veloci e accurati disponibili.

Complessivamente, con questi miglioramenti, Yolo 9000 ha ottenuto un sostanziale aumento della precisione media media rispetto al sistema Yolo originale. Supera gli altri sistemi di rilevamento di oggetti all'avanguardia in termini di accuratezza, pur mantenendo impressionanti prestazioni in tempo reale. Riteniamo che i progressi che abbiamo apportato a Yolo 9000 avranno un impatto significativo su un'ampia gamma di applicazioni, dai veicoli autonomi ai sistemi di videosorveglianza.

YOLO 9000: Better, Faster, Stronger
YOLO 9000: Better, Faster, Stronger
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa