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.
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.
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!
Un caldo abbraccio, Andrea.