Apprendimento profondo

Rappresentazione stratificata di immagini su più livelli di astrazione.

Deep learning ( tedesco : multilayered learning , deep learning o deep learning ) descrive un metodo di apprendimento automatico che utilizza reti neurali artificiali (ANN) con numerosi strati intermedi ( strati nascosti in inglese ) tra lo strato di input e lo strato di output, creando così un ampio struttura interna. È un metodo speciale di elaborazione delle informazioni.

A sinistra: livello di input con in questo caso tre neuroni di input. A destra: livello di output con i neuroni di output, due in questa immagine. Lo strato intermedio è chiamato strato nascosto perché i suoi neuroni non sono né input né output. Qui è possibile vedere solo un livello nascosto, ma molte reti ne hanno molti di più. Il numero necessario di livelli da cui si parla di “deep learning” non è definito con precisione.

Requisiti e basi

I problemi risolti nei primi giorni dell'intelligenza artificiale erano intellettualmente difficili per gli umani , ma facili da elaborare per i computer . Questi problemi potrebbero essere descritti da regole matematiche formali . La vera sfida per l'intelligenza artificiale, tuttavia, era quella di risolvere compiti facili da eseguire per gli esseri umani, ma la cui soluzione è difficile da formulare utilizzando regole matematiche. Questi sono compiti che gli umani risolvono intuitivamente , come il riconoscimento vocale o facciale .

Una soluzione basata su computer per questo tipo di attività implica la capacità dei computer di apprendere dall'esperienza e comprendere il mondo in termini di una gerarchia di concetti. Ogni concetto è definito dalla sua relazione con i concetti più semplici. Acquisendo conoscenza dall'esperienza, questo approccio evita la necessità per gli operatori umani di specificare formalmente tutte le conoscenze di cui il computer ha bisogno per svolgere il proprio lavoro. La gerarchia dei concetti consente al computer di apprendere concetti complicati assemblandoli da quelli più semplici. Se disegni un diagramma che mostra come questi concetti sono costruiti uno sopra l'altro, il diagramma è profondo, con molti livelli. Per questo motivo, questo approccio è chiamato "apprendimento profondo" nell'intelligenza artificiale.

È difficile per un computer comprendere il significato dei dati di input sensoriali grezzi, come nel riconoscimento della scrittura a mano , in cui un testo inizialmente esiste solo come una raccolta di pixel. La conversione di un insieme di pixel in una catena di numeri e lettere è molto complicata. I modelli complessi devono essere estratti dai dati grezzi. Imparare o valutare questo compito sembra insormontabilmente difficile se fosse programmato manualmente.

Una delle tecniche più comuni nell'intelligenza artificiale è l'apprendimento automatico . L'apprendimento automatico è un algoritmo autoadattativo . Il deep learning, un sottoinsieme del machine learning, utilizza una serie di livelli o concetti gerarchici per eseguire il processo di machine learning. Le reti neurali artificiali utilizzate qui sono costruite come il cervello umano, con i neuroni collegati tra loro come una rete. Il primo livello della rete neurale, il livello di input visibile, elabora l'input di dati grezzi, come i singoli pixel di un'immagine. L'input dei dati contiene variabili accessibili per l'osservazione, da cui il "livello visibile".

Questo primo turno inoltra la sua uscita al turno successivo. Questo secondo livello elabora le informazioni dal livello precedente e inoltra anche il risultato. Il livello successivo riceve le informazioni dal secondo livello e le elabora ulteriormente. Questi livelli sono chiamati rispettivamente livelli nascosti ( livelli nascosti in inglese ). Le caratteristiche che contengono stanno diventando sempre più astratte. I loro valori non sono indicati nei dati originali. Invece, il modello deve determinare quali concetti sono utili per spiegare le relazioni nei dati osservati. Questo continua a tutti i livelli della rete neurale artificiale. Il risultato viene emesso nell'ultimo turno visibile. Questo divide l'elaborazione dei dati complessi desiderata in una serie di associazioni semplici nidificate, ognuna delle quali è descritta da un diverso livello del modello.

Storia, sviluppo e utilizzo

Il metodo di gestione dei dati di gruppo -KNN (GMDH-ANN) degli anni '60 di Oleksiy Iwachnenko sono stati i primi sistemi di apprendimento profondo del tipo percettrone multistrato feedforward. Ulteriori approcci di deep learning, in particolare nel campo della visione artificiale , sono iniziati con il neocognitron , sviluppato da Kunihiko Fukushima nel 1980. Nel 1989, Yann LeCun e colleghi hanno utilizzato l' algoritmo di backpropagation per addestrare ANN multistrato con l'obiettivo di riconoscere i codici postali scritti a mano. Dal 1997, Sven Behnke ha ampliato l'approccio gerarchico-convoluzionale lungimirante nella piramide dell'astrazione neuronale con connessioni laterali e retrospettive al fine di includere in modo flessibile il contesto nelle decisioni e risolvere in modo iterativo le ambiguità locali.

Il termine "deep learning" è stato utilizzato per la prima volta nel contesto dell'apprendimento automatico nel 1986 da Rina Dechter , per cui descrive un processo in cui vengono registrate tutte le soluzioni utilizzate in un'area di ricerca considerata che non ha portato a una soluzione desiderata. L'analisi di queste soluzioni registrate dovrebbe consentire di controllare meglio i test successivi e quindi di prevenire possibili vicoli ciechi nella ricerca della soluzione in una fase iniziale. Al giorno d'oggi, tuttavia, il termine è utilizzato principalmente in connessione con le reti neurali artificiali ed è apparso in questo contesto per la prima volta nel 2000, nella pubblicazione Multi-Valued and Universal Binary Neurons: Theory, Learning and Applications di Igor Aizenberg e colleghi.

I recenti successi dei metodi di deep learning, come la vittoria del torneo Go del programma AlphaGo contro i migliori giocatori umani del mondo, si basano sulla maggiore velocità di elaborazione dell'hardware e sull'uso del deep learning per addestrare la rete neurale utilizzata in AlphaGo. Lo stesso vale per la previsione delle pieghe proteiche che ha avuto successo dal 2020 . Queste reti utilizzano neuroni generati artificialmente ( perceptron ) per riconoscere i modelli.

Yann LeCun , Yoshua Bengio e Geoffrey Hinton hanno ricevuto il Turing Award nel 2018 per i contributi alle reti neurali e al deep learning .

Complessità e limiti di spiegabilità

Le reti neurali profonde possono avere una complessità fino a cento milioni di parametri individuali e dieci miliardi di operazioni aritmetiche per dati di input. La capacità di interpretare i parametri e spiegare come sono arrivati ​​i risultati è possibile solo in misura limitata e richiede l'uso di tecniche speciali, che sono riassunte in Explainable Artificial Intelligence . Un altro effetto collaterale del deep learning è la predisposizione a calcoli errati, che possono essere innescati da sottili manipolazioni dei segnali di ingresso che non sono visibili alle persone, ad esempio nelle immagini. Questo fenomeno è riassunto in Esempi contraddittori .

Librerie di programmi

Oltre alla possibilità, solitamente presentata in esempi formativi per comprenderne la struttura interna, di programmare completamente a mano una rete neurale, esistono una serie di librerie software , spesso open source , solitamente eseguibili su più piattaforme di sistema operativo in comuni linguaggi di programmazione quali come C , C++ , Java o Python . Alcune di queste librerie di programmi supportano GPU o TPU per l'accelerazione del calcolo o forniscono tutorial su come utilizzare queste librerie. Con ONNX i modelli possono essere scambiati tra alcuni di questi strumenti.

  • TensorFlow (Python, JavaScript, C++, Java, Go, Swift) di Google
  • Keras (Python, dalla versione 1.4.0 incluso anche nell'API TensorFlow) - framework popolare (2018) insieme a Tensorflow.
  • Caffe del Berkeley Vision and Learning Center (BVLC)
  • PyTorch (Python), sviluppato dal team di ricerca sull'intelligenza artificiale di Facebook
  • Torch (C, Lua) (Community) e il framework Facebook Torrechner basato su di esso
  • Microsoft Cognitive Toolkit (C++)
  • PaddlePaddle (Python) dal produttore del motore di ricerca Baidu
  • OpenNN (C++), implementa una rete neurale artificiale.
  • Theano (Pitone) dell'Université de Montréal
  • Deeplearning4j (Java) da Skymind
  • MXNet dalla Apache Software Foundation

letteratura

link internet

Evidenze individuali

  1. Hannes Schulz, Sven Behnke: Deep Learning: apprendimento a livello di gerarchie di funzioni . In: AI - Intelligenza Artificiale . nastro 26 , n. 4 , novembre 2012, ISSN  0933-1875 , pag. 357-363 , doi : 10.1007 / s13218-012-0198-z ( springer.com [consultato il 13 gennaio 2020]).
  2. Herbert Bruderer: Invenzione del computer, calcolatrice elettronica, sviluppi in Germania, Inghilterra e Svizzera . In: Pietre miliari nell'informatica . 2a edizione completamente rivista e notevolmente ampliata. nastro 2 . De Gruyter, 2018, ISBN 978-3-11-060261-6 , dizionario di storia tecnica , p. 408 ( anteprima limitata in Google Ricerca Libri [consultato il 23 novembre 2019]).
  3. a b c d e f Ian Goodfellow, Yoshua Bengio, Aaron Courville: Deep Learning. MIT Press, accesso 19 febbraio 2017 .
  4. a b David Kriesel : Una piccola panoramica delle reti neurali. (PDF; 6.1 MB) In: dkriesel.com. 2005, consultato il 21 gennaio 2019 .
  5. ^ Li Deng, Dong Yu: Apprendimento profondo: metodi e applicazioni . 1 maggio 2014 ( microsoft.com [accesso 17 maggio 2020]).
  6. ^ A b Michael Nielsen: reti neurali e apprendimento profondo. Determination Press, accesso 21 febbraio 2017 .
  7. ^ Li Deng, Dong Yu: Apprendimento profondo: metodi e applicazioni . In: Microsoft Research (Ed.): Fondamenti e tendenze nell'elaborazione dei segnali Volume 7 Problemi 3-4 . 1 maggio 2014, ISSN  1932-8346 (inglese, microsoft.com [accesso 22 febbraio 2017]).
  8. ^ Ivakhnenko, AG e Lapa, VG (1965). Dispositivi di previsione cibernetica. CCM Information Corporation.
  9. Jürgen Schmidhuber : Deep learning nelle reti neurali: una panoramica. In: Reti neurali. 61, 2015, pagina 85, arxiv : 1404.7828 [cs.NE] .
  10. Jürgen Schmidhuber: Critica della carta di "Deep Learning Conspiracy" (Nature 521 p 436). In: people.idsia.ch . Giugno 2015, accesso 12 aprile 2019.
  11. Yann LeCun et al.: backpropagation applicato al riconoscimento del codice postale scritto a mano, calcolo neurale, 1, pp. 541-551, 1989 , consultato l'11 maggio 2020.
  12. ^ Sven Behnke: Reti neurali gerarchiche per l'interpretazione delle immagini (=  Appunti delle lezioni in informatica . Volume 2766 ). Springer Berlin Heidelberg, Berlino, Heidelberg 2003, ISBN 978-3-540-40722-5 , doi : 10.1007 / b11963 ( springer.com [consultato il 28 novembre 2020]).
  13. ^ Rina Dechter: Imparare durante la ricerca nei problemi di soddisfazione dei vincoli. (PDF; 531 KB) In: fmdb.cs.ucla.edu. Università della California, Dipartimento di informatica, Cognitive Systems Laboratory, 1985, accesso 9 luglio 2020 .
  14. Horváth & Partners: "L'intelligenza artificiale cambierà tutto" (dalle 0:11:30) su YouTube , 9 maggio 2016, accessibile il 6 novembre 2018 (presentazione di Jürgen Schmidhuber).
  15. ^ Jürgen Schmidhuber: Apprendimento profondo dal 1991. In: people.idsia.ch. 31 marzo 2017, accesso 1 dicembre 2018 .
  16. Igor Aizenberg, Naum N. Aizenberg, Joos PL Vandewalle: Neurone binario multivalore e universale: teoria, apprendimento e applicazioni . Springer Science & Business Media, 14 marzo 2013, ISBN 978-1-4757-3115-6 .
  17. Demis Hassabis: AlphaGo: utilizza l'apprendimento automatico per padroneggiare l'antico gioco del Go. In: blog.google. Google, 27 gennaio 2016, accesso 16 luglio 2017 .
  18. AlphaFold: una soluzione a una grande sfida di 50 anni in biologia. In: deepmind.com. 30 novembre 2020, accesso 19 dicembre 2020 .
  19. Alexander Neumann: Deep Learning: Turing Award per Yoshua Bengio, Geoffrey Hinton e Yann LeCun - heise online. In: heise.de. 28 marzo 2019, accesso 29 marzo 2019 .
  20. Leilani H. Gilpin, David Bau, Ben Z. Yuan, Ayesha Bajwa, Michael Spectre: Spiegare le spiegazioni: una panoramica sull'interpretabilità dell'apprendimento automatico . In: 2018 IEEE 5th International Conference on Data Science and Advanced Analytics (DSAA) . IEEE, Torino, Italia 2018, ISBN 978-1-5386-5090-5 , pp. 80–89 , doi : 10.1109 / DSAA.2018.00018 ( ieee.org [consultato l'8 dicembre 2019]).
  21. ^ Dan Clark: Principali 16 librerie e piattaforme di apprendimento profondo open source. KDnuggets, aprile 2018, accesso 8 gennaio 2019 .
  22. Documentazione Keras. In: Keras: libreria di Deep Learning per Theano e TensorFlow. Estratto il 6 marzo 2017 .
  23. Perché usare Keras? In: keras.io. Estratto l'8 gennaio 2020 (inglese): "Keras è anche uno dei preferiti dai ricercatori di deep learning, arrivando al n. 2 in termini di menzioni in articoli scientifici caricati sul server di prestampa arXiv.org . Keras è stato adottato anche da ricercatori di grandi organizzazioni scientifiche, in particolare CERN e NASA».
  24. Torch | Calcolo scientifico per LuaJIT. Estratto il 17 febbraio 2017 .
  25. Rainald Menge-Sonnentag: Machine Learning: Facebook pubblica un framework open source per Torch. In: heise.de. 24 giugno 2016. Estratto il 17 febbraio 2017 .
  26. ^ Il toolkit cognitivo di Microsoft. In: microsoft.com. Estratto l'11 agosto 2017 (inglese americano).
  27. casa. In: paddlepaddle.org. Estratto il 17 febbraio 2017 .
  28. Alexander Neumann: Baidu rilascia il sistema di deep learning come open source. In: heise.de. 2 settembre 2016. Estratto il 17 febbraio 2017 .
  29. ^ Teano. In: deeplearning.net. Estratto il 20 settembre 2019 .
  30. Apache MxNet (Incubating) - Una libreria flessibile ed efficiente per il deep learning. In: mxnet.apache.org. Estratto il 5 settembre 2019 .