Blog.

Let’s start Deep Learning | 6.S191 – Machine Learning


Autore
Andrea Provino
Data
Tempo di lettura
4 minuti
Categoria
AI, machine-learning

deep-learning

Il deep learning è senza dubbio tra le aree di maggiore interesse per ricercatori e aziende, nel vasto ambito del machine learning.

Il motivo è presto detto: i risultati ottenibili applicando correttamente queste tecnologie lasciano spesso basiti.

Un esempio?

Il deep learning può essere usato per operazioni di voice synthesis e video dialogue replacement, con cui è possibile dare vita a un Barack Obama che introduce un corso del MIT:

L’azienda creatrice del video è Canny AI, che alla modica cifra di 2$ per secondo, e un minimo di 60 secondi di video, consente di dar vita a contenuti simili.

Torniamo a noi: cos’è il deep learning?

Partiamo subito con una definizione generica:

Per deep learning intendiamo quell’area di studi, figlia dell’Intelligenza artificiale e di machine learning che si occupa di sviluppare sistemi per estrarre pattern dai dati usando reti neurali.

Deep Learning Definition

Tradotto, tutto ciò che ha a che fare con le reti neurali è deep learning!

Ora, per capire come si colloca questo ambito nel panorama più ampio diamo uno sguardo a queste tre macro aree:

  • Artificial Intelligence, ogni tecnica che consenta ai computer di mimare comportamenti umani.
  • Machine Learning, la tecnica di Artificial Intelligence attraverso cui i computer imparano senza essere esplicitamente programmati
  • Deep Learning, ambito di Machine Learning per l’estrazione di pattern complessi dai dati attraverso l’ausilio di reti neurali profonde.

Noi però siamo molto più ambiziosi di così!

Il nostro obiettivo a lungo termine è conoscere il funzionamento degli algoritmi dietro queste tecnologie e sfruttare librerie software come Tensorflow per sviluppare sistemi di deep learning allo stato dell’arte.

https://andreaprovino.it/start-tensorflow-2-esempio-semplice-tutorial/

Why deep learning and Why Now!?

Il deep learning prospera laddove le tecniche convenzionali di machine learning risultano poco performanti.

Facciamo un esempio: il nostro obiettivo è creare un modello di facial detection.

Per risolvere un problema simile, potremmo partire dall’identificare tratti distintivi quali labbra, occhi e naso.

Come facciamo però a identificare questi tratti?

Dovremmo porre l’attenzione su linee orientate in una certa direzione, ma in ogni step il livello di complicazione aumenta.

L’approccio è sbagliato: entra in gioco il deep learning.

Gli algoritmi di deep learning sviluppano infatti delle rappresentazioni gerarchiche di alto livello delle immagini analizzate.

In questo modo riescono a identificare prima linee e bordi, poi angoli e feature intermedie (quali occhi, naso, bocca e orecchie) e infine comporre questi elementi per riconoscere le caratteristiche di alto livello, come i tratti mascellari, con qui completare il riconoscimento facciale.

Come probabilmente già saprai, queste tecnologie non sono nuove.

I primi esempi di reti neurali convoluzionali per l’analisi e il riconoscimento di cifre e numeri risalgono al 1995. Quindi perché ne parliamo così spesso oggi?

I blocchi di costruzione fondamentali per un qualsiasi sistema di deep learning sono tre: dati, potenza di calcolo e algoritmi.

Viviamo in un momento storico in cui questi ingredienti coesistono in abbondanza e sono di facile accesso.

Scopriamoli rapidamente.

Big data

Oggi possiamo accedere a un numero pressoché infinito di dati di ogni tipologia e dimensione. Tutto questo grazie anche alla facilità di condivisione e mantenimento degli stessi in cloud.

La combinazione di questi due elementi:

  • larger datasets
  • easier collection & storage

ha reso mainstream l’applicazione di sistemi di deep learning.

Di recente google ha persino sviluppato un servizio chiamato Dataset Search per agevolare la ricerca dei dati necessari.

Hardware

Con un investimento modesto è possibile acquistare schede grafiche per eseguire calcoli complessi, e sempre più prodotti nascono ad hoc per questo genere di applicazioni.

https://andreaprovino.it/nvidia-jetson-nano-machine-learning-for-makers/

La maggior parte degli algoritmi sono massivamente parallelizzabili (parallelizable algorithms) e possono quindi sfruttare appieno l’architettura delle moderne GPU e dei loro acceleratori hardware, che in passato non esistevano.

Software e Algorithms

Grazie a toolbox open source come Tensorflow e PyTorch, la creazione di modelli è diventata molto più agevole, smettendo richiedere complesse competenze tecniche e profonde conoscenze matematiche.

Ora che abbiamo capito cosa sia l’apprendimento profondo, perché sia utile e il motivo per cui oggi se ne parla tanto, è arrivato il momento d’incontrare le reti neurali artificiali e conoscerne la struttura.

Un anticipazione? Preparati a conoscere il perceptron!

https://andreaprovino.it/artificial-neural-network-ann-rete-neurale-artificiale/

Un caldo abbraccio, Andrea.

Taggeddeep learningmachine learningteoria


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum