A les lliçons anteriors hem vist què és el deep learning, la seva història i les seves aplicacions. Ha arribat el moment d'obrir la caixa i mirar-hi dins: de què està feta una xarxa neuronal? En aquesta lliçó coneixeràs la neurona artificial i els seus components (entrades, pesos, biaix, activació), com les neurones s'organitzen en capes, què vol dir realment "entrenar" una xarxa, i el vocabulari essencial que faràs servir durant tot el curs: època, batch, paràmetres, i els datasets d'entrenament, validació i test. Tot a nivell conceptual i intuïtiu, amb analogies i sense matemàtiques feixugues: la formalització arribarà al mòdul 2. Dominar aquest vocabulari ara et permetrà seguir la resta del curs sense entrebancs.
Contingut
- La neurona artificial: la peça bàsica
- Entrades, pesos, biaix i activació, un per un
- De neurones a xarxes: les capes
- Què vol dir "entrenar" una xarxa?
- Vocabulari essencial: època, batch, paràmetres
- Els tres datasets: entrenament, validació i test
- Un exemple mínim de codi
La neurona artificial: la peça bàsica
Una neurona artificial és una unitat de càlcul molt simple que fa tres coses:
- Rep diversos números d'entrada.
- Combina aquests números donant més importància a uns que a d'altres.
- Emet un únic número de sortida.
Això és tot. La potència del deep learning no ve del fet que cada neurona sigui llesta (no ho és: és una calculadora minúscula), sinó de connectar-ne milers o milions en capes, com vam veure amb la jerarquia de representacions de la lliçó 01-01.
Analogia: pensa en una neurona com un membre del comitè de compres de TecnoMarket que decideix si convé reposar l'estoc d'un producte. Rep diverses dades (vendes de la setmana, unitats al magatzem, si hi ha una campanya de màrqueting a la vista), dona a cada dada una importància diferent segons la seva experiència, ho suma tot mentalment i emet una opinió: un número entre "reposar sens dubte" i "no reposar". El comitè complet (la xarxa) combina les opinions de molts membres per arribar a decisions molt més fines que les de qualsevol membre individual.
Entrades, pesos, biaix i activació, un per un
Vegem els quatre components amb la neurona "reposo estoc?" com a exemple:
| Component | Què és | En l'analogia del comitè |
|---|---|---|
| Entrades (x) | Els números que rep la neurona | Les dades: vendes setmanals, estoc actual, campanya a la vista (sí=1/no=0) |
| Pesos (w) | Un número per cada entrada que indica quant importa i en quin sentit | La importància que el membre del comitè dona a cada dada: potser les vendes pesen molt (+), l'estoc alt pesa en contra (−) |
| Biaix (b) | Un número extra que desplaça el resultat, independent de les entrades | La predisposició del membre: un de prudent exigeix molta evidència abans de dir "sí"; un d'impulsiu diu "sí" amb poc |
| Activació | Una funció que transforma la suma en la sortida final, introduint no-linealitat | La manera d'expressar l'opinió: no diu "suma 7,3", diu una cosa acotada i interpretable, com "97% a favor" |
El càlcul intern, en versió intuïtiva:
És a dir: multiplica cada entrada pel seu pes, suma-ho tot, afegeix-hi el biaix i passa el resultat per la funció d'activació.
Dues idees clau que has de retenir:
- Els pesos i el biaix són el que la xarxa aprèn. Les entrades venen de les dades; els pesos i biaixos comencen amb valors aleatoris i es van ajustant durant l'entrenament. Quan algú diu que un model "té 7.000 milions de paràmetres", parla dels seus pesos i biaixos.
- L'activació evita que tot sigui una simple suma. Sense ella, per moltes capes que apilis, la xarxa només podria aprendre relacions lineals (línies rectes), i el món real és ple de corbes. Hi ha diverses funcions d'activació (ReLU, sigmoide...) amb propietats diferents; les estudiarem amb detall a la lliçó 02-02, aquí n'hi ha prou de saber per a què hi són.
De neurones a xarxes: les capes
Les neurones s'organitzen en capes, i les capes es connecten en cadena. N'hi ha de tres tipus:
- Capa d'entrada: no calcula res; simplement rep les dades. Té una "posició" per cada variable d'entrada (o per cada píxel, si és una imatge).
- Capes ocultes: les capes intermèdies, on té lloc la transformació progressiva de les dades. Se'n diuen "ocultes" només perquè no en veiem directament les entrades ni les sortides des de fora. Que hi hagi diverses capes ocultes és exactament el que fa "profunda" una xarxa (lliçó 01-01).
- Capa de sortida: produeix la resposta final. La seva forma depèn de la tasca: una neurona per categoria si classifiquem (una per a "portàtil", una altra per a "cafetera"...), o una sola neurona si predim un número (unitats que es vendran).
Vegem-ho amb un minimodel per a TecnoMarket que prediu si un client comprarà (sí/no) a partir de tres dades de la seva sessió:
graph LR
subgraph Entrada
X1[Minuts a la web]
X2[Productes vistos]
X3[Client registrat]
end
subgraph "Capa oculta 1"
H1((n1))
H2((n2))
H3((n3))
H4((n4))
end
subgraph "Capa oculta 2"
G1((n5))
G2((n6))
end
subgraph Sortida
Y((Comprarà?))
end
X1 --> H1 & H2 & H3 & H4
X2 --> H1 & H2 & H3 & H4
X3 --> H1 & H2 & H3 & H4
H1 --> G1 & G2
H2 --> G1 & G2
H3 --> G1 & G2
H4 --> G1 & G2
G1 --> Y
G2 --> Y
Observa que cada neurona d'una capa es connecta amb totes les de la següent (per això aquestes capes s'anomenen "denses" o totalment connectades), i cada fletxa del diagrama és un pes que la xarxa haurà d'aprendre. Compta les fletxes: 3×4 + 4×2 + 2×1 = 22 pesos, més 7 biaixos (un per neurona de càlcul) = 29 paràmetres. En xarxes reals, aquest número es dispara a milions: el mecanisme és idèntic, només canvia l'escala.
Què vol dir "entrenar" una xarxa?
Aquí hi ha el cor conceptual del deep learning. Entrenar és ajustar els pesos i biaixos, a poc a poc, perquè les sortides de la xarxa s'acostin a les respostes correctes dels exemples.
El cicle, a vista d'ocell:
- Predicció: es passa a la xarxa un exemple del qual coneixem la resposta (una sessió de client que sabem que va acabar en compra).
- Mesura de l'error: es compara el que ha dit la xarxa ("30% de probabilitat de compra") amb la realitat ("va comprar"). La diferència es resumeix en un número: l'error.
- Ajust: es modifiquen lleugerament els pesos i biaixos en la direcció que hauria reduït aquell error.
- Repetició: es repeteix amb milers d'exemples, milers de vegades. Els errors van baixant i la xarxa va "afinant".
Analogia: és com ajustar els comandaments d'una dutxa desconeguda. Obres l'aixeta (predicció), notes que surt freda (error), gires una mica el comandament cap al vermell (ajust), tornes a provar. Ningú no t'ha donat el manual de la dutxa: arribes a la temperatura perfecta per prova, mesura de l'error i correcció, no d'un salt sinó amb petits ajustos. Ara imagina una dutxa amb 29 comandaments (el nostre minimodel)... o amb milions: per això cal un procediment automàtic i sistemàtic.
Aquest procediment automàtic existeix i té dues peces amb nom propi: la funció de pèrdua (com es mesura l'error, lliçó 02-04) i la retropropagació amb el seu optimitzador (com es calcula cap a on girar cada comandament, lliçó 02-03). En aquest mòdul en tenim prou amb la intuïció: entrenar = mesurar l'error i corregir els pesos, en bucle.
Un matís important: l'objectiu no és memoritzar els exemples d'entrenament, sinó generalitzar: encertar amb exemples nous que la xarxa no ha vist mai. Això motiva la separació de datasets que veurem d'aquí a dos apartats.
Vocabulari essencial: època, batch, paràmetres
Aquests termes apareixeran a cada lliçó del curs i a qualsevol documentació que llegeixis:
| Terme | Significat | Exemple amb TecnoMarket |
|---|---|---|
| Dataset | El conjunt d'exemples amb què es treballa | 50.000 fotos de productes ja etiquetades amb la seva categoria |
| Exemple (mostra) | Un cas individual: entrada + resposta correcta (etiqueta) | Una foto concreta + l'etiqueta "cafetera" |
| Paràmetres | Els pesos i biaixos que la xarxa aprèn | Els 29 números del nostre minimodel |
| Batch (lot) | Grup petit d'exemples que es processen junts abans de cada ajust de pesos | En lloc d'ajustar foto a foto, es processen de 32 en 32 i s'ajusta amb l'error mitjà del lot |
| Època (epoch) | Una passada completa per tot el dataset d'entrenament | Amb 50.000 fotos i batches de 32, una època són 1.563 ajustos |
| Hiperparàmetres | Els ajustos que decideix l'humà, no la xarxa: nombre de capes, mida de batch, nombre d'èpoques... | Tu decideixes entrenar 10 èpoques amb batches de 32; la xarxa decideix els seus 29 paràmetres |
Per què batches i no tot el dataset de cop (o exemple a exemple)? Intuïció ràpida: processar tot el dataset per cada ajust és lent i consumeix molta memòria; ajustar amb un sol exemple fa els ajustos molt erràtics (cada foto individual "estira" en una direcció diferent). El batch és el punt mitjà pràctic: ajustos freqüents però estables. Els detalls fins pertanyen a la lliçó 02-04.
I quantes èpoques? Les necessàries perquè l'error deixi de baixar... sense passar-se. Si entrenes massa, la xarxa comença a memoritzar els exemples en lloc de generalitzar (fenomen anomenat sobreajust o overfitting, que tractarem a fons a la lliçó 05-04). Detectar-ho a temps és justament el paper del dataset de validació.
Els tres datasets: entrenament, validació i test
Mai no es fa servir tot el dataset per entrenar. Es divideix en tres parts amb papers diferents:
| Dataset | % típic | Per a què serveix | Analogia acadèmica |
|---|---|---|---|
| Entrenament (train) | 70-80% | Ajustar els pesos: és l'únic que la xarxa "estudia" | Els exercicis del llibre amb què estudies |
| Validació (validation) | 10-15% | Comprovar durant el desenvolupament si la xarxa generalitza, i triar hiperparàmetres | Els simulacres d'examen que fas mentre estudies |
| Test | 10-15% | Avaluació final, amb dades mai usades en el procés; es mira una sola vegada, al final | L'examen oficial |
Per què aquesta disciplina? Perquè avaluar la xarxa amb les mateixes dades amb què va entrenar és enganyar-se: pot haver-les memoritzat. És com valorar un estudiant preguntant-li exactament els exercicis que ja ha fet: trauria un 10 sense haver entès res. I el test es reserva intacte perquè, si el fas servir moltes vegades per prendre decisions, acabes ajustant el model (indirectament) també a ell, i perds l'única mesura honesta de com funcionarà al món real.
Per a TecnoMarket: de les 50.000 fotos etiquetades, 40.000 anirien a entrenament, 5.000 a validació i 5.000 a test. Quan presentem a direcció "el classificador encerta el 94%", aquest 94% haurà de venir del test, no de l'entrenament.
Un exemple mínim de codi
Per aterrar el vocabulari, així es veu la definició del nostre minimodel en Keras (l'API d'alt nivell de TensorFlow). No cal que l'executis ni que l'entenguis línia a línia encara: és només perquè comprovis que els conceptes d'aquesta lliçó es tradueixen gairebé literalment a codi. A la lliçó 01-05 prepararem l'entorn per executar codi, i al mòdul 2 construirem i entrenarem una xarxa de debò pas a pas.
from tensorflow import keras
# Definim la xarxa del diagrama: 3 entrades -> 4 neurones -> 2 neurones -> 1 sortida
model = keras.Sequential([
keras.layers.Input(shape=(3,)), # capa d'entrada: 3 dades per client
keras.layers.Dense(4, activation="relu"), # capa oculta 1: 4 neurones
keras.layers.Dense(2, activation="relu"), # capa oculta 2: 2 neurones
keras.layers.Dense(1, activation="sigmoid") # sortida: probabilitat de compra (0 a 1)
])
model.summary() # mostra les capes i compta els paràmetresPunts a observar (sense aprofundir-hi encara):
- Cada línia
Dense(...)és una capa de neurones totalment connectada amb l'anterior; el número és quantes neurones té. activation=és la funció d'activació de cada capa (els nomsreluisigmoids'explicaran a 02-02).model.summary()imprimeix la taula de capes i el recompte de paràmetres: per a aquesta xarxa, 29, exactament els que hem comptat a mà sobre el diagrama (16+2 de la primera capa oculta, 8+2... en total 22 pesos + 7 biaixos).
Si el recompte del summary() et quadra amb el que hem fet sobre el diagrama, has entès l'essencial d'aquesta lliçó.
Errors Comuns i Consells
- Error: pensar que les neurones artificials "funcionen com el cervell". La inspiració biològica és llunyana; una neurona artificial és només una fórmula de multiplicar, sumar i transformar. Evita raonar sobre xarxes neuronals amb metàfores cerebrals: porten a conclusions errònies.
- Error: confondre paràmetres amb hiperparàmetres. Els paràmetres (pesos, biaixos) els aprèn la xarxa; els hiperparàmetres (capes, batch, èpoques) els tries tu. En converses tècniques es distingeixen sempre.
- Error: avaluar el model amb les dades d'entrenament. És l'error de principiant més greu: dona mètriques inflades que s'ensorren en producció. La xifra que compta és la del test.
- Error: fer servir el dataset de test moltes vegades durant el desenvolupament. Per a això hi ha el de validació. El test es toca una vegada, al final.
- Consell: quan llegeixis un terme nou al curs, tradueix-lo a la pregunta "això ho decideix l'humà o ho aprèn la xarxa?" i "això és una peça de la xarxa o una peça de l'entrenament?". Aquestes dues preguntes ordenen gairebé tot el vocabulari del deep learning.
Exercicis
Exercici 1: Anatomia d'una neurona
Una neurona del sistema antifrau de TecnoMarket rep tres entrades sobre una transacció: import (normalitzat), 1 si l'enviament va a una adreça nova i 0 si no, i nombre de compres en l'última hora. Els seus pesos són w = (0,8, 0,9, 0,7) i el seu biaix b = −1,5.
- Què indica el signe positiu dels tres pesos?
- Quin paper juga el biaix negatiu −1,5?
- Sense calcular res: quina transacció activarà més aquesta neurona, (0,9, 1, 3) o (0,1, 0, 0)? Què interpreta aquesta neurona, en paraules?
Exercici 2: Compta els paràmetres
Dissenyes per a TecnoMarket una xarxa que prediu la demanda d'un producte a partir de 5 variables d'entrada, amb una capa oculta de 8 neurones, una altra de 4, i una neurona de sortida (el nombre d'unitats previst). Quants pesos, quants biaixos i quants paràmetres totals té la xarxa?
Exercici 3: Vocabulari en acció
TecnoMarket entrena el seu classificador amb 40.000 fotos d'entrenament, batches de 50 i 20 èpoques, reservant 5.000 fotos per a validació i 5.000 per a test.
- Quants ajustos de pesos es fan per època? I en total?
- En acabar, l'encert és del 99% en entrenament, 91% en validació i 90% en test. Quina xifra donaries a direcció com a rendiment esperat en producció? Què suggereix la diferència entre el 99% i el 91%?
Solucions
Solució 1:
- Els tres pesos positius indiquen que les tres entrades empenyen en la mateixa direcció: com més grans siguin (import alt, adreça nova, moltes compres seguides), més gran serà la sortida de la neurona.
- El biaix negatiu actua com un llindar d'exigència: resta 1,5 a la suma, de manera que calen evidències considerables (entrades altes i ben ponderades) perquè la neurona s'activi amb força. És la "prudència" de la neurona.
- La transacció (0,9, 1, 3): totes les seves entrades són més grans i els pesos són positius. En paraules, aquesta neurona s'activa davant de "compres cares i accelerades cap a adreces noves": un patró sospitós de frau. (En una xarxa real, aquest patró l'hauria descobert l'entrenament, no un humà.)
Solució 2:
- Pesos: 5×8 + 8×4 + 4×1 = 40 + 32 + 4 = 76 pesos.
- Biaixos: 8 + 4 + 1 = 13 biaixos (un per neurona de càlcul; la capa d'entrada no en té).
- Total: 76 + 13 = 89 paràmetres.
Solució 3:
- Per època: 40.000 / 50 = 800 ajustos (un per batch). En total: 800 × 20 = 16.000 ajustos.
- La xifra per a direcció és el 90% del test: és l'única mesura amb dades completament verges. La bretxa entre el 99% d'entrenament i el 91% de validació suggereix sobreajust: la xarxa ha memoritzat en part els exemples d'entrenament i rendeix pitjor amb dades noves. Caldria aplicar tècniques de regularització o ajustar l'entrenament (ho veurem a la lliçó 05-04).
Conclusió
Ja coneixes les peces de l'edifici: la neurona artificial (entrades × pesos + biaix → activació), les capes (entrada, ocultes, sortida) que es connecten formant la xarxa, i la idea central que entrenar és ajustar milions de pesos en bucle mesurant i corregint l'error. També domines el vocabulari imprescindible —paràmetres, batch, època, hiperparàmetres— i la disciplina dels tres datasets (entrenament, validació, test) que separa els professionals dels aficionats.
Amb la teoria bàsica a la motxilla, només falta una cosa per començar a construir: un lloc on executar codi. A la propera lliçó prepararem l'entorn de treball —Google Colab o instal·lació local, Jupyter, i l'estructura de carpetes del projecte TecnoMarket— i verificarem que tot funciona, GPU inclosa.
Curs de Deep Learning
Mòdul 1: Introducció al Deep Learning
- Què és el Deep Learning?
- Història i evolució del Deep Learning
- Aplicacions del Deep Learning
- Conceptes bàsics de xarxes neuronals
- Preparació de l'entorn de treball
Mòdul 2: Fonaments de Xarxes Neuronals
- Perceptró i Perceptró Multicapa
- Funció d'activació
- Propagació cap endavant i cap enrere
- Optimització i funció de pèrdua
- La teva primera xarxa neuronal completa
Mòdul 3: Xarxes Neuronals Convolucionals (CNN)
- Introducció a les CNN
- Capes convolucionals i de pooling
- Arquitectures populars de CNN
- Aplicacions de CNN en reconeixement d'imatges
Mòdul 4: Xarxes Neuronals Recurrents (RNN)
- Introducció a les RNN
- LSTM i GRU
- Aplicacions de RNN en processament del llenguatge natural
- Seqüències i sèries temporals
Mòdul 5: Tècniques Avançades en Deep Learning
- Xarxes Generatives Adversàries (GAN)
- Autoencoders
- Transfer Learning
- Regularització i tècniques de millora
- Mecanismes d'atenció i Transformers
Mòdul 6: Eines i Frameworks
- Introducció a TensorFlow
- Introducció a PyTorch
- Comparació de frameworks
- Entorns de desenvolupament i recursos addicionals
- Desar, carregar i desplegar models
Mòdul 7: Projectes Pràctics
- Classificació d'imatges amb CNN
- Generació de text amb RNN
- Detecció d'anomalies amb Autoencoders
- Creació d'una GAN per a generació d'imatges
- Fine-tuning d'un model preentrenat
