Rete neurale convoluzionale
Nell'apprendimento automatico, una rete neurale convoluzionale (CNN o ConvNet dall'inglese convolutional neural network) è un tipo di rete neurale artificiale feed-forward in cui il pattern di connettività tra i neuroni è ispirato dall'organizzazione della corteccia visiva animale, i cui neuroni individuali sono disposti in maniera tale da rispondere alle regioni di sovrapposizione che tassellano il campo visivo[1]. Le reti convoluzionali sono ispirate da processi biologici[2] e sono variazioni di percettroni multistrato progettate per usare al minimo la pre-elaborazione. Hanno diverse applicazioni nel riconoscimento di immagini e video, nei sistemi di raccomandazione[3], nell'elaborazione del linguaggio naturale[4] e, recentemente, in bioinformatica.
Storia
[modifica | modifica wikitesto]Il design delle RNC segue il processing della visione negli organismi viventi[senza fonte].
Campi recettivi
[modifica | modifica wikitesto]Il lavoro di Hubel e Wiesel negli anni '50 e '60, mostrò come la corteccia visiva di gatti e scimmie contenesse neuroni che individualmente rispondono a piccole regioni del campo visivo. Supposto che gli occhi non si muovano, la regione del campo visivo entro cui lo stimolo influenzi l'innesco di un singolo neurone è noto come il suo campo recettivo[senza fonte]. Cellule adiacenti hanno campi recettivi simili e sovrapposti [senza fonte]. La dimensione del campo recettivo e la localizzazione variano sistematicamente attraverso la corteccia per formare una mappa completa del campo visivo[senza fonte]. La corteccia in ogni emisfero rappresenta il campo visivo del lato opposto[senza fonte].
Il loro paper del 1968[5] identificò due tipi di cellule visive nel cervello:
- cellule semplici, il cui output è massimizzato dal fatto di avere i bordi rettilinei orientati in un modo particolare entro il loro campo ricettivo
- cellule complesse, che hanno campi ricettivi più ampi, il cui output è insensibile all'esatta posizione dei bordi nel campo.
Neocognitron
[modifica | modifica wikitesto]Il neocognitron [6] fu introdotto nel 1980.[7][8] Il neocognitron non richiede unità localizzate in posizioni multiple di avere gli stessi pesi addestrabili. Questa idea apparì nel 1986 nella versione libraria dell'originale paper sulla backpropagation[9] (Figure 14). Neocognitrons furono sviluppati nel 1988 per i segnali temporali.[10] Il loro design fu migliorato nel 1998,[11] generalizzato nel 2003[12] e semplificato nello stesso anno.[13]
LeNet-5
[modifica | modifica wikitesto]LeNet-5, una pionieristica rete convoluzionale a 7 livelli progettata da LeCun e altri nel 1998[11] che classifica cifre, fu applicata da svariate banche per riconoscere dei numeri scritti a mano sugli assegni, digitalizzati in immagini di 32×32 pixel. L'abilità di processare immagini di risoluzione più alta richiede livelli convoluzionali più grandi e un maggior numero di essi, così questa tecnica è limitata dalla disponibilità di risorse computazionali.
Shift-invariant neural network
[modifica | modifica wikitesto]Similarmente, una shift invariant neural network (rete invariante alla traslazione) fu proposta per il riconoscimento dei caratteri nel 1988.[14][15] L'architettura e l'algoritmo di addestramento furono modificati nel 1991[16] , applicandoli nell'elaborazione delle immagini mediche[17] e nel rilevamento automatico del cancro al seno nelle mammografie[18].
Un differente design basato sulla convoluzione fu proposto nel 1988[19] per l'applicazione alla decomposizione di segnali provenienti da elettromiografie, monodimensionali e convoluti tramite de-convoluzione. Questo design fu modificato nel 1989 in altri design sempre basati sulla convoluzione.[20][21]
Neural abstraction pyramid
[modifica | modifica wikitesto]L'architettura feed-forward delle reti neurali convoluzionali fu esteso nella piramide di astrazione neurale[22] da connessioni laterali di feedback. La risultante rete neurale convoluzionale ricorrente permette l'incorporazione flessibile di informazioni contestuali per risolvere iterativamente ambiguità locali. In contrasto con i modelli precedenti, output sono generali in formato immagine alla risoluzione massima.
Implementazioni in GPU
[modifica | modifica wikitesto]A seguito dell'articolo del 2005 che stabilì il lavoro della GPGPU per l'apprendimento automatico[23], svariate pubblicazioni descrissero modi più efficienti per addestrare delle reti neurali convoluzionali usando la GPU[24][25][26][27]. Nel 2011, esse vennero rifinite e implementate su una GPU, con impressionanti risultati[28]. Nel 2012, Ciresan e altri incrementarono significativamente le migliori prestazioni in letteratura riguardo a multiple basi di dati d'immagini, compresi il MNIST, il NORB, l'HWDB1.0 (caratteri cinesi), il CIFAR10 (insieme di 60 000 32×32 immagini RGB etichettate) [7] e l'ImageNet[29].
Costruzione dei blocchi
[modifica | modifica wikitesto]- Strato Convoluzionale
- Strato di Pooling
- Strato ReLu
- Strato completamente connesso
- Strato di Loss (Perdita)
Applicazioni
[modifica | modifica wikitesto]Le CNN sono uno strumento fondamentale nel campo del deep learning. In particolare sono adatte per il riconoscimento di immagini. Si può usare l'architettura ConvNet, per addestrare una rete, e usarla successivamente per ottenere una label categorica o numerica. È possibile inoltre estrarre features da una rete addestrata precedentemente, e usare le stesse per addestrare un classificatore lineare. Inoltre, è possibile effettuare il transfer learning, che consiste nell'effettuare il retrain dell'ultimo strato collegato di una ConvNet già esistente su nuovi dati.
Riguardo all'addestramento dei modelli partendo da video, le CNN possono essere utilizzate anche per identificare l'emozione umana a partire dai movimenti. In questo caso, si tratta di elaborare sequenze di frame video anziché singole immagini. Le CNN possono essere adattate per lavorare con dati di tipo sequenziale, come sequenze di immagini, applicando l'operazione di convoluzione e pooling su ciascun frame e utilizzando le informazioni spaziali e temporali per identificare l'emozione.
Si può effettuare il train di una CNN sia su CPU, singola GPU, GPU multiple in parallelo.
Librerie di programmazione
[modifica | modifica wikitesto]- Caffe (replacement of Decaf)
- Microsoft Cognitive Toolkit
- Torch (www.torch.ch):
- neon: The fastest
- OverFeat:
- Cuda-convnet:
- MatConvnet
- Theano
- Deeplearning4j: Deep learning in Java and Scala su GPU-enabled Spark
- deeplearning-hs: Deep learning in Haskell, supporta computazioni con CUDA.
- TensorFlow
- Veles
- Keras
- OpenVX
Note
[modifica | modifica wikitesto]- ^ Convolutional Neural Networks (LeNet) – DeepLearning 0.1 documentation, su DeepLearning 0.1, LISA Lab. URL consultato il 31 agosto 2013 (archiviato dall'url originale il 28 dicembre 2017).
- ^ Masakazu Matusugu, Katsuhiko Mori, Yusuke Mitari e Yuji Kaneda, Subject independent facial expression recognition with robust face detection using a convolutional neural network (PDF), in Neural Networks, vol. 16, n. 5, 2003, pp. 555–559, DOI:10.1016/S0893-6080(03)00115-1. URL consultato il 17 novembre 2013.
- ^ Aaron van den Oord, Sander Dieleman e Benjamin Schrauwen, Deep content-based music recommendation (PDF), a cura di C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani e K. Q. Weinberger, Curran Associates, Inc., 1º gennaio 2013, pp. 2643–2651.
- ^ Ronan Collobert e Jason Weston, A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning, in Proceedings of the 25th International Conference on Machine Learning, ICML '08, New York, NY, USA, ACM, 1º gennaio 2008, pp. 160–167, DOI:10.1145/1390156.1390177, ISBN 978-1-60558-205-4.
- ^ D. H. Hubel e T. N. Wiesel, Receptive fields and functional architecture of monkey striate cortex, in The Journal of Physiology, vol. 195, n. 1, 1º marzo 1968, pp. 215–243, DOI:10.1113/jphysiol.1968.sp008455, ISSN 0022-3751 , PMC 1557912, PMID 4966457.
- ^ Yann LeCun, Yoshua Bengio e Geoffrey Hinton, Deep learning, in Nature, vol. 521, n. 7553, 2015, pp. 436–444, Bibcode:2015Natur.521..436L, DOI:10.1038/nature14539, PMID 26017442.
- ^ a b Dan Ciresan, Ueli Meier e Jürgen Schmidhuber, Multi-column deep neural networks for image classification, in 2012 IEEE Conference on Computer Vision and Pattern Recognition, New York, NY, Institute of Electrical and Electronics Engineers (IEEE), giugno 2012, pp. 3642–3649, DOI:10.1109/CVPR.2012.6248110, ISBN 978-1-4673-1226-4, OCLC 812295155, arXiv:1202.2745v1. URL consultato il 9 dicembre 2013.
- ^ Kunihiko Fukushima, Neocognitron: A Self-organizing Neural Network Model for a Mechanism of Pattern Recognition Unaffected by Shift in Position (PDF), in Biological Cybernetics, vol. 36, n. 4, 1980, pp. 193–202, DOI:10.1007/BF00344251, PMID 7370364. URL consultato il 16 novembre 2013.
- ^ David E. Rumelhart, Geoffrey E. Hinton e Ronald J. Wiliams, Chapter 8 : Learning Internal Representations by ErrorPropagation (PDF), in David E. Rumelhart e James.L. McClelland (a cura di), Parallel Distributed Processing, Volume 1, MIT Press, 1986, pp. 319–362, ISBN 978-0-262-68053-0 (archiviato dall'url originale il 10 marzo 2016).
- ^ Toshiteru Homma, Les Atlas e Robert Marks II, An Artificial Neural Network for Spatio-Temporal Bipolar Patters: Application to Phoneme Classification (PDF), in Advances in Neural Information Processing Systems, vol. 1, 1988, pp. 31–40. URL consultato il 12 gennaio 2018 (archiviato dall'url originale il 28 marzo 2016).
- ^ a b Yann LeCun, Léon Bottou, Yoshua Bengio e Patrick Haffner, Gradient-based learning applied to document recognition (PDF), in Proceedings of the IEEE, vol. 86, n. 11, 1998, pp. 2278–2324, DOI:10.1109/5.726791. URL consultato il 7 ottobre 2016.
- ^ S. Behnke. Hierarchical Neural Networks for Image Interpretation, volume 2766 of Lecture Notes in Computer Science. Springer, 2003.
- ^ Simard, Patrice, David Steinkraus, and John C. Platt. "Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis." In ICDAR, vol. 3, pp. 958–962. 2003.
- ^ Wei Zhang, Shift-invariant pattern recognition neural network and its optical architecture, in Proceedings of annual conference of the Japan Society of Applied Physics, 1988.
- ^ Wei Zhang, Parallel distributed processing model with local space-invariant interconnections and its optical architecture, in Applied Optics, vol. 29, n. 32, 1990, pp. 4790–7, Bibcode:1990ApOpt..29.4790Z, DOI:10.1364/AO.29.004790, PMID 20577468.
- ^ Wei Zhang, Error Back Propagation with Minimum-Entropy Weights: A Technique for Better Generalization of 2-D Shift-Invariant NNs, in Proceedings of the International Joint Conference on Neural Networks, 1991.
- ^ Wei Zhang, Image processing of human corneal endothelium based on a learning network, in Applied Optics, vol. 30, n. 29, 1991, pp. 4211–7, Bibcode:1991ApOpt..30.4211Z, DOI:10.1364/AO.30.004211, PMID 20706526.
- ^ Wei Zhang, Computerized detection of clustered microcalcifications in digital mammograms using a shift-invariant artificial neural network, in Medical Physics, vol. 21, n. 4, 1994, pp. 517–24, Bibcode:1994MedPh..21..517Z, DOI:10.1118/1.597177, PMID 8058017.
- ^ Daniel Graupe, Ruey Wen Liu, George S Moschytz."Applications of neural networks to medical signal processing". In Proc. 27th IEEE Decision and Control Conf., pp. 343–347, 1988.
- ^ Daniel Graupe, Boris Vern, G. Gruener, Aaron Field, and Qiu Huang. "Decomposition of surface EMG signals into single fiber action potentials by means of neural network". Proc. IEEE International Symp. on Circuits and Systems, pp. 1008–1011, 1989.
- ^ Qiu Huang, Daniel Graupe, Yi Fang Huang, Ruey Wen Liu."Identification of firing patterns of neuronal signals." In Proc. 28th IEEE Decision and Control Conf., pp. 266–271, 1989.
- ^ Sven Behnke, Hierarchical Neural Networks for Image Interpretation (PDF), Lecture Notes in Computer Science, vol. 2766, Springer, 2003, DOI:10.1007/b11963, ISBN 978-3-540-40722-5.
- ^ Dave Steinkraus, Patrice Simard e Ian Buck, Using GPUs for Machine Learning Algorithms, in 12th International Conference on Document Analysis and Recognition (ICDAR 2005), 2005, pp. 1115–1119.
- ^ Kumar Chellapilla, Sid Puri e Patrice Simard, High Performance Convolutional Neural Networks for Document Processing, in Guy Lorette (a cura di), Tenth International Workshop on Frontiers in Handwriting Recognition, Suvisoft, 2006.
- ^ GE Hinton, S Osindero e YW Teh, A fast learning algorithm for deep belief nets., in Neural computation, vol. 18, n. 7, Jul 2006, pp. 1527–54, DOI:10.1162/neco.2006.18.7.1527, PMID 16764513.
- ^ Yoshua Bengio, Pascal Lamblin, Dan Popovici e Hugo Larochelle, Greedy Layer-Wise Training of Deep Networks, in Advances in Neural Information Processing Systems, 2007, pp. 153–160.
- ^ MarcAurelio Ranzato, Christopher Poultney, Sumit Chopra e Yann LeCun, Efficient Learning of Sparse Representations with an Energy-Based Model (PDF), in Advances in Neural Information Processing Systems, 2007.
- ^ Dan Ciresan, Ueli Meier, Jonathan Masci, Luca M. Gambardella e Jurgen Schmidhuber, Flexible, High Performance Convolutional Neural Networks for Image Classification (PDF), in Proceedings of the Twenty-Second international joint conference on Artificial Intelligence-Volume Volume Two, vol. 2, 2011, pp. 1237–1242. URL consultato il 17 novembre 2013.
- ^ 10. Deng, Jia, et al. "Imagenet: A large-scale hierarchical image database."Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 2009.