# Capa convolucional

A les xarxes neuronals artificials, una capa convolucional és un tipus de capa de xarxa que aplica una operació de convolució a l'entrada. Les capes convolucionals són alguns dels components principals de les xarxes neuronals convolucionals (CNN), una classe de xarxes neuronals que s'aplica amb més freqüència a imatges, vídeo, àudio i altres dades que tenen la propietat d'una simetria translacional uniforme.
L'operació de convolució en una capa convolucional consisteix a fer lliscar una petita finestra (anomenada nucli o filtre) per les dades d'entrada i calcular el producte puntual entre els valors del nucli i l'entrada a cada posició. Aquest procés crea un mapa de característiques que representa les característiques detectades a l'entrada.

## Història

El concepte de convolució a les xarxes neuronals es va inspirar en l'escorça visual del cervell biològic. Els primers treballs de Hubel i Wiesel a la dècada de 1960 sobre el sistema visual del gat van establir les bases per a xarxes de convolucions artificials.
Kunihiko Fukushima va desenvolupar una xarxa neuronal de convolució primerenca el 1969. Tenia principalment nuclis dissenyats a mà inspirats en les circumvolucions de la visió dels mamífers. El 1979 el va millorar al Neocognitron, que aprèn tots els nuclis convolucionals mitjançant un aprenentatge no supervisat (en la seva terminologia, "autoorganitzat per 'aprenentatge sense professor'").
Durant el període 1988-1998, Yann LeCun et al. va introduir una sèrie de CNN, que va acabar amb LeNet-5 el 1998. Va ser una de les primeres arquitectura influent de la CNN per al reconeixement de dígits escrits a mà, entrenada en el conjunt de dades MNIST i es va utilitzar en ATM.
(Olshausen & Field, 1996) van descobrir que les cèl·lules simples de l'escorça visual primària dels mamífers implementen camps receptius de pas de banda localitzats, orientats, que es podrien recrear ajustant codis lineals escassos per a escenes naturals. Més tard es va trobar que això també passava als nuclis de nivell més baix de CNN entrenats.: Fig 3
El camp va veure un ressorgiment a la dècada de 2010 amb el desenvolupament d'arquitectures més profundes i la disponibilitat de grans conjunts de dades i potents GPU. AlexNet, desenvolupat per Alex Krizhevsky et al. el 2012, va ser un esdeveniment catalitzador de l'aprenentatge profund modern.

## Conceptes
### Nucli

Els nuclis, també coneguts com a filtres, són petites matrius de pesos que s'aprenen durant el procés d'entrenament. Cada nucli és responsable de detectar una característica específica a les dades d'entrada. La mida del nucli és un hiperparàmetre que afecta el comportament de la xarxa.

### Convolució

Per a una entrada 2D $x$ i un nucli 2D $w$, l'operació de convolució 2D es pot expressar com: $y[i,j]=\sum _{m=0}^{k_{h}-1}\sum _{n=0}^{k_{w}-1}x[i+m,j+n]\cdot w[m,n]$ on $k_{h}$ i $k_{w}$ són l'alçada i l'amplada del nucli, respectivament.
Això es generalitza immediatament a nD convolucions. Les circumvolucions que s'utilitzen habitualment són 1D (per a àudio i text), 2D (per a imatges) i 3D (per a objectes espacials i vídeos).

### Passada

Stride determina com es mou el nucli per les dades d'entrada. Un pas d'1 significa que el nucli es desplaça d'un píxel alhora, mentre que un pas més gran (p. ex., 2 o 3) provoca menys solapament entre convolucions i produeix mapes de característiques de sortida més petits.

### Encoixinat

El farciment implica afegir píxels addicionals al voltant de les vores de les dades d'entrada. Té dues finalitats principals:
* Preservant les dimensions espacials: sense farciment, cada circumvolució redueix la mida del mapa de característiques.
* Gestió dels píxels de la vora: el farciment garanteix que els píxels de la vora tinguin la mateixa importància en el procés de convolució.
Les estratègies de farciment habituals inclouen:
* Sense farciment/encoixinat vàlid. Aquesta estratègia normalment fa que la sortida es redueixi.
* Mateix farciment: qualsevol mètode que garanteixi la mateixa mida de sortida que la mida d'entrada sigui una mateixa estratègia de farciment.
* Farciment complet: qualsevol mètode que garanteixi que cada entrada d'entrada es convolucioni el mateix nombre de vegades és una estratègia de farciment complet.
Els algorismes de farciment comuns inclouen:
* Farciment zero: afegiu zero entrades a les vores d'entrada.
* Mirall/reflecte/recoixinat simètric: reflecteix la matriu d'entrada a la vora.
* Encoixinat circular: torneu la matriu d'entrada a la vora oposada, com un torus.
Els nombres exactes utilitzats en les circumvolucions són complicats, per als quals ens referim a (Dumoulin i Visin, 2018) per a més detalls.

## Variants
### Estàndard

La forma bàsica de convolució descrita anteriorment, on cada nucli s'aplica a tot el volum d'entrada.

### Separables en profunditat

La convolució separable en profunditat separa la convolució estàndard en dos passos: la convolució en profunditat i la convolució puntual. La convolució separable en profunditat descompon una única convolució estàndard en dues circumvolucions: una convolució en profunditat que filtra cada canal d'entrada de manera independent i una convolució puntual ($1\times 1$ convolució) que combina les sortides de la convolució en profunditat. Aquesta factorització redueix significativament el cost computacional.
It was first developed by Laurent Sifre during an internship at Google Brain in 2013 as an architectural variation on AlexNet to improve convergence speed and model size.

### Dilatada

La convolució dilatada, o convolució atrosa, introdueix buits entre els elements del nucli, permetent a la xarxa capturar un camp receptiu més gran sense augmentar la mida del nucli.

### Transposat

La convolució transposada, també coneguda com a deconvolució, convolució de passos fraccionats i convolució de mostreig superior, és una convolució on el tensor de sortida és més gran que el seu tensor d'entrada. Sovint s'utilitza en arquitectures de codificador-decodificador per a l'augment de mostreig. S'utilitza en tasques de generació d'imatges, segmentació semàntica i superresolució.

## Referències

* ↑ Goodfellow, Ian. Deep Learning (en anglès). Cambridge, MA: MIT Press, 2016, p. 326–366. ISBN 978-0262035613.
* ↑ Zhang, Aston. «7.2. Convolutions for Images». A: Dive into deep learning (en anglès). Cambridge New York Port Melbourne New Delhi Singapore: Cambridge University Press, 2024. ISBN 978-1-009-38943-3.
* ↑ Hubel, D. H.; Wiesel, T. N. The Journal of Physiology, 195, 1, 1968, pàg. 215–243. DOI: 10.1113/jphysiol.1968.sp008455. PMC: 1557912. PMID: 4966457.
* ↑ Fukushima, Kunihiko IEEE Transactions on Systems Science and Cybernetics, 5, 4, 1969, pàg. 322–333. DOI: 10.1109/TSSC.1969.300225. ISSN: 0536-1567.
* ↑ Fukushima, Kunihiko (en japonès) Trans. IECE, J62-A, 10, 10-1979, pàg. 658–665.
* ↑ Fukushima, Kunihiko Biological Cybernetics, 36, 4, 1980, pàg. 193–202. DOI: 10.1007/BF00344251. PMID: 7370364.
* ↑ LeCun, Yann; Bottou, Léon; Bengio, Yoshua; Haffner, Patrick Proceedings of the IEEE, 86, 11, 1998, pàg. 2278–2324. DOI: 10.1109/5.726791.
* ↑ Olshausen, Bruno A.; Field, David J. (en anglès) Nature, 381, 6583, 6-1996, pàg. 607–609. Bibcode: 1996Natur.381..607O. DOI: 10.1038/381607a0. ISSN: 1476-4687. PMID: 8637596.
* ↑ Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E Advances in Neural Information Processing Systems, 25, 2012.
* ↑ Krizhevsky, Alex; Sutskever, Ilya; Hinton, Geoffrey E Advances in Neural Information Processing Systems, 25, 2012.
* ↑ Dumoulin, Vincent; Visin, Francesco arXiv preprint arXiv:1603.07285, 2016. arXiv: 1603.07285.
* ↑ Chollet, François. «Xception: Deep Learning with Depthwise Separable Convolutions». A: 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (en anglès), 2017, p. 1800–1807. DOI 10.1109/CVPR.2017.195. ISBN 978-1-5386-0457-1.
* ↑ Chollet, François. «Xception: Deep Learning with Depthwise Separable Convolutions». A: 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (en anglès), 2017, p. 1800–1807. DOI 10.1109/CVPR.2017.195. ISBN 978-1-5386-0457-1.
* ↑ Yu, Fisher; Koltun, Vladlen Iclr 2016, 2016. arXiv: 1511.07122.
* ↑ Chen, Liang-Chieh; Papandreou, George; Kokkinos, Iasonas; Murphy, Kevin; Yuille, Alan L. IEEE Transactions on Pattern Analysis and Machine Intelligence, 40, 4, 01-04-2018, pàg. 834–848. arXiv: 1606.00915. DOI: 10.1109/TPAMI.2017.2699184. ISSN: 0162-8828. PMID: 28463186.