05 · Fonaments de machine learning
Idea central: el machine learning és inducció: buscar una funció que funcioni en dades que encara no has vist. Tot el que ve després (regularització, validació, evals) existeix per protegir-te de l'autoengany.
1. El plantejament formal# sense fórmules
Tens dades mostrejades d'una distribució desconeguda . Vols trobar que minimitzi el risc (error esperat):
Com que és desconeguda, minimitzes el risc empíric:
Tot el problema del ML és: quan ? La resposta depèn de la capacitat del model, la quantitat de dades i com de bé representen la realitat.
Risc empíric contra risc real
Quant s'equivoca el teu model sobre les dades que has vist, i quant sobre les que no?
- f(x), la funció veritable
- polinomi de grau 9
- les 16 mostres d'entrenament
Cap polinomi no la reprodueix exactament: sempre queda biaix d’aproximació.
Amb poques mostres, el risc empíric menteix molt.
Puja'l fins que el risc empíric sigui zero i mira què fa el real.
La mateixa llavor dona sempre el mateix resultat.
Trenca el supòsit i.i.d.: el test arriba d'un domini més ampli que l'entrenament.
- risc empíric
- 0,0119
- risc real
- 0,2539
- separació
- +0,2420
- fita irreductible σ²
- 0,0324
- paràmetres
- 10
- risc real si es desplaça
- 559,934 k
La xifra de dalt surt d'integrar per quadratura de Gauss–Legendre sobre el domini: és el valor exacte, no una estimació. Contrastat contra 100.000 mostres fresques de la mateixa distribució, que el model no ha vist mai:
| per integració | 0,253862 |
| amb 100.000 mostres fresques | 0,256811 |
| diferència (error estàndard: 0,001) | 0,003 |
El risc empíric val 0,0119 i el real 0,2539: una separació de 0,2420. Puja el grau del polinomi fins que el risc empíric arribi a zero i mira què li passa al real — el model no ha après la funció, ha memoritzat les 16 mostres.
2. Els tres (i mig) paradigmes# sense fórmules
| Paradigma | Senyal d'aprenentatge | Exemples |
|---|---|---|
| Supervisat | etiquetes | classificació, regressió, SFT d'un LLM |
| No supervisat | estructura de | clustering, PCA, autoencoders |
| Autosupervisat | etiquetes derivades de mateix | preentrenament d'LLMs, MAE, SimCLR |
| Per reforç | recompensa escalar diferida | jocs, robòtica, RLHF, RLVR |
L'autosupervisió és la clau de tot. "Prediu el token següent" converteix un corpus sense etiquetar en milers de milions d'exemples supervisats gratis. Aquest truc —etiquetes gratuïtes a escala d'internet— és el que va fer possible l'era dels models fundacionals.
Etiquetes gratis
Quants exemples supervisats surten d'aquest text sense que ningú n'etiqueti cap?
Els primers exemples que en surten
| # | context | → objectiu |
|---|---|---|
| 1 | El | gat |
| 2 | El gat | dorm |
| 3 | El gat dorm | sobre |
| 4 | El gat dorm sobre | la |
| 5 | El gat dorm sobre la | taula |
| 6 | El gat dorm sobre la taula | . |
| 7 | El gat dorm sobre la taula . | La |
| 8 | El gat dorm sobre la taula . La | taula |
| 9 | gat dorm sobre la taula . La taula | és |
| 10 | dorm sobre la taula . La taula és | de |
| 11 | sobre la taula . La taula és de | fusta |
| 12 | la taula . La taula és de fusta | i |
Cada fila és un exemple supervisat complet: una entrada, una resposta correcta i una pèrdua d'entropia creuada. Ningú no els ha etiquetat; ja hi eren.
Els models de frontera s'entrenen amb desenes de bilions de tokens.
- tokens
- 23
- frases
- 3
- vocabulari
- 19
- exemples autosupervisats
- 20
- exemples etiquetant a mà
- 3
- ràtio
- 6,7×
Comptant tokens menys documents surten 20 exemples; comptant posició a posició dins de cada frase, 20. Han de coincidir, i coincideixen: cada posició amb un predecessor és un exemple, i el primer token de cada frase no en té.
I no són exemples fàcils. Cada un demana triar el token correcte entre 19 possibles, que són 4,25 bits de senyal; una etiqueta binària feta a mà en dona 1. Aquest text sol porta 85 bits de supervisió gratuïta contra els 3 que en trauries etiquetant-lo.
A escala de 15,00 T tokens, que és l'ordre d'un preentrenament de frontera:
- Autosupervisió: 15,00 T exemples, cost d'etiquetatge 0 €.
- El mateix nombre d'exemples etiquetats a mà: 1,80 T € i 83333333333 h 20 min de feina humana. Amb mil persones a jornada completa serien 46,3 k anys.
Aquesta és tota la història. L'autosupervisió no va canviar el camp perquè l'algorisme fos millor —la pèrdua segueix sent entropia creuada, com a qualsevol classificador—, sinó perquè el senyal d'aprenentatge va deixar d'escalar amb el pressupost d'etiquetatge i va passar a escalar amb la quantitat de text que existeix.
3. Generalització, overfitting i validació# sense fórmules
Divisió de dades:
- Train: ajusta paràmetres.
- Validation / dev: tria hiperparàmetres, arquitectura, early stopping.
- Test: s'usa una vegada. Si mires el test i ajustes, ja no és test.
Fuita de dades
El mateix conjunt, partit bé i partit malament. Quants punts de mètrica et regala cada error?
- primera mesura
- el que hauria de ser test (el futur)
La partició aleatòria reparteix punts de tota la sèrie a totes dues bandes: cada punt de test té els seus veïns temporals dins del conjunt d'entrenament, amb valors gairebé idèntics i la mateixa etiqueta.
La mateixa llavor dona sempre el mateix resultat.
- Partició aleatòria
- 74,4 %
- Partició temporal
- 44,4 %
- inflació
- +30,0 punts
- model
- k-NN (k = 3)
Les dues mesures no contenen cap informació sobre el règim: només fan d'empremta de l'instant, perquè deriven a poc a poc i dos instants seguits tenen valors gairebé idèntics. Amb la partició aleatòria, cada punt de test té els seus veïns immediats —l'instant anterior i el següent— dins del conjunt d'entrenament, amb el mateix règim, i el model els copia. No ha après res: ha interpolat entre dos instants que ja coneixia. Amb la partició temporal, tot el test és futur i el model ha de predir règims que no ha vist mai, de manera que sovint queda fins i tot per sota de la línia base de predir sempre la classe majoritària.
Les dues xifres surten del mateix conjunt, el mateix model i el mateix nombre de punts de test. L'única cosa que canvia és el protocol. Si algú et diu que el seu model fa 74,4 %, la pregunta útil no és quina arquitectura fa servir: és com ha partit les dades.
Validació creuada (k-fold): amb poques dades, roda vegades i fes mitjana. Amb LLMs rarament s'usa (el cost ho impedeix); en el seu lloc es fan servir múltiples conjunts d'avaluació i barres d'error per bootstrap.
4. Models clàssics que val la pena entendre# sense fórmules
No perquè els facis servir, sinó perquè són els límits conceptuals dels models grans.
- Regressió lineal: ; solució tancada . El ridge () és la regularització L2 i estabilitza la inversió.
- Regressió logística: , entrenada amb entropia creuada. L'última capa d'un LLM és una regressió logística multiclasse (softmax) sobre classes, amb tot el Transformer fent d'extractor de característiques.
- k-NN: cap entrenament; prediu pels veïns. Conceptualment RAG és k-NN sobre embeddings connectat a un generador.
- Arbres i gradient boosting (XGBoost, LightGBM): encara l'estat de l'art per a dades tabulars. Si el teu problema és una taula, no facis servir un LLM.
- SVM i kernels: el kernel trick () és la idea de "similitud en un espai transformat" que reapareix com a atenció.
- PCA i clustering (k-means, HDBSCAN): imprescindibles per explorar espais d'embeddings i deduplicar corpus.
Galeria de fronteres de decisió
Quatre models clàssics sobre el mateix conjunt: quina forma té la frontera de cadascun i què li costa?
Una recta. Cap hiperparàmetre que la pugui doblegar.
Cap entrenament: el model és el conjunt. Amb k petit, memoritza.
Talls perpendiculars als eixos. La frontera sempre fa escales.
Similitud en un espai transformat: la idea que reapareix com a atenció.
El conjunt no lineal de manual: dues mitges circumferències encaixades.
La mateixa llavor dona sempre el mateix resultat.
Amb k = 1 l'error d'entrenament és zero per construcció.
Amplada de la campana: com més gran, més local.
Regularització. Amb λ → 0 el model interpola tots els punts.
| Model | Error train | Error test | Separació | Paràmetres efectius |
|---|---|---|---|---|
| Regressió logística | 13,4 % | 14,6 % | 1,2 | 3,0 |
| k-NN (k = 5) | 1,8 % | 4,2 % | 2,4 | 22,4 |
| Arbre (profunditat 4) | 6,3 % | 20,8 % | 14,6 | 6,0 |
| Nucli RBF | 0,9 % | 4,2 % | 3,3 | 28,1 |
Els paràmetres efectius no són una metàfora: per a la logística són els coeficients, per a l'arbre les fulles, per a k-NN la fórmula clàssica n/k, i per al nucli la traça de K(K+λI)⁻¹, que val n quan λ → 0 (el model interpola tots els punts) i tendeix a zero quan λ creix.
Aquí, el que més separació té entre train i test és Arbre (profunditat 4) (14,6 punts amb 6,0 paràmetres efectius), i el que menys error de test té és k-NN (k = 5) (4,2 %).
Fixa't que la columna dels paràmetres efectius no ordena la de la separació. L'arbre en té pocs i sobreajusta molt, perquè les seves fulles no vénen donades: s'han triat mirant les dades, i cada tall és una decisió ajustada que el recompte de fulles no compta. El nucli en té molts més i sobreajusta menys, perquè la regularització li reparteix la capacitat entre tots els punts en comptes de deixar-la concentrar. Els paràmetres efectius són un eix útil, no una llei: mou la k de k-NN cap a 1 o la λ del nucli cap a zero i veuràs l'eix funcionar dins d'una mateixa família de models, que és on val.
5. Mètriques: tria la correcta o t'enganyaràs# sense fórmules
Classificació
- Accuracy és enganyosa amb classes desbalancejades (99% de negatius → predir sempre "no" dona 99%).
- ROC-AUC vs PR-AUC: amb positius rars, PR-AUC és molt més informativa.
- Matriu de confusió: mira-la sempre. Els errors no són intercanviables (un fals negatiu en detecció de frau ≠ un fals positiu).
Matriu de confusió i llindar
Un detector amb 99,5 % d'accuracy sobre un problema amb 0,3 % de positius. És bo?
Verdaders positius
0
Falsos negatius
15
Falsos positius
0
Verdaders negatius
4.985
El punt taronja és on et deixa el llindar que has triat. La diagonal de la ROC i la línia horitzontal de la PR són el que faria un model que no sap res; fixa't que la de la PR es mou amb la prevalença i la de la ROC no.
Baixa-la a 0,3 % i mira què fa l'accuracy.
A zero, el model no sap res i totes les puntuacions són la prevalença.
La mateixa llavor dona sempre el mateix resultat.
- accuracy
- 99,70 %
- precisió
- 0,0 %
- recall
- 0,0 %
- F₁
- 0,000
- ROC-AUC
- 0,9299
- PR-AUC
- 0,0568
| Classificador | Accuracy | Precisió | Recall | F₁ |
|---|---|---|---|---|
| El teu, amb llindar 0,500 | 99,70 % | 0,0 % | 0,0 % | 0,000 |
| Dir sempre que no | 99,70 % | — | 0,0 % | 0,000 |
Amb un 0,30 % de positius, no predir mai res dona un 99,70 % d'accuracy sense mirar les dades. El teu model en fa 99,70 %: pitjor que la línia base trivial, i tot i així "99 % d'accuracy" sonaria bé en una diapositiva. L'accuracy no mesura el que et pensaves; el que has de mirar és la precisió (0,0 %), el recall (0,0 %) i la PR-AUC (0,057) contra la seva línia base de 0,003.
L'àrea sota la ROC, calculada dues vegades: per l'estadístic de rangs de Mann–Whitney dona 0,92989636 i integrant la corba amb trapezis, 0,92989636. Difereixen en 1,11·10⁻¹⁶. Són dos càlculs que no comparteixen ni una línia de codi: l'un recorre parelles de positius i negatius, l'altre la corba que veus dibuixada.
Regressió
MSE, MAE (robust a outliers), R².
Generació de text
BLEU/ROUGE (mesuren solapament de n-grames; correlacionen malament amb qualitat), BERTScore (semàntic), i avui majoritàriament jutges LLM o preferència humana. Vegeu 25pendent.
Rànquing i recuperació (per a RAG)
Recall@k, MRR, nDCG. Recall@k del retriever posa el sostre de qualitat de tot el sistema RAG: si el document correcte no entra al context, cap model el pot fer servir.
6. Desequilibri, calibratge i llindars# sense fórmules
- Desequilibri: class weights, remostreig, focal loss. En LLMs es tradueix en ponderació de la mescla de dades (quant de codi, quant de multilingüe...).
- Calibratge: vegeu 04. Corregible post-hoc amb temperature scaling o Platt scaling.
- Llindar de decisió: rarament 0,5 és l'òptim. Tria'l segons el cost relatiu dels errors, sobre el conjunt de validació.
El cost dels errors
Si un fals negatiu et costa quaranta vegades més que un fals positiu, on poses el llindar?
- cost mesurat
- llindar teòric
- el 0,5 per defecte
- mínim empíric
Molestar un client legítim costa una trucada; deixar passar un frau costa l’import.
La mateixa llavor dona sempre el mateix resultat.
- llindar òptim
- 0,022
- cost per ítem
- 2,43 €
- cost amb llindar 0,5
- 8,31 €
- estalvi
- 5,89 € per ítem
- recall a l’òptim
- 92,3 %
- precisió a l’òptim
- 12,3 %
Igualant el cost esperat de dir que sí i de dir que no, surt que has de predir positiu quan . Això no depèn de les dades, ni del model, ni de la prevalença: només dels costos.
| llindar teòric: 5 / (5 + 200) | 0,0244 |
| mínim empíric sobre 20.000 ítems | 0,0219 |
| diferència | 0,0025 |
La corba té el mínim allà on diu la teoria, amb una diferència de 0,0025. La corba és plana a prop del mínim —per això el mínim empíric balla una mica— però el valor teòric no balla gens, i és el que has de fer servir quan el conjunt de validació és petit.
Amb aquests costos, moure el llindar de 0,5 a 0,022 estalvia 5,89 € per ítem. Sobre un milió d'ítems són 5.888.500 €, i no hi ha hagut cap canvi de model: el mateix model, el mateix conjunt, un número diferent.
7. Del ML clàssic a l'era dels models fundacionals# sense fórmules
| ML clàssic | Era fundacional | |
|---|---|---|
| Dades | etiquetades, del domini | corpus web massiu, autosupervisat |
| Enginyeria | feature engineering manual | representacions apreses |
| Un model per | una tasca | milers de tasques |
| Adaptació | reentrenar | prompt, RAG, fine-tuning lleuger |
| Avaluació | mètrica única fixa | evals múltiples, jutges, arenes |
Característiques a mà contra apreses
Quantes característiques has d'inventar perquè una recta separi això? I quantes n'ha hagut d'inventar l'MLP?
La frontera és una recta a l'espai de característiques. Al pla original es veu com la corba que aquelles característiques permeten dibuixar.
Aquí ningú no ha triat cap característica: les 16 neurones ocultes se les han hagut d'inventar a partir de la pèrdua.
Separable pel radi. Afegeix x²+y² com a característica i passa a ser trivial.
La mateixa llavor dona sempre el mateix resultat.
- a mà · error train
- 64,9 %
- a mà · error test
- 71,2 %
- a mà · paràmetres
- 3
- línia base trivial
- 53,0 %
- MLP · error train
- 0,0 %
- MLP · error test
- 1,5 %
- MLP · paràmetres
- 114
Es mesura la correlació entre cada neurona oculta de la primera capa i cadascuna de les característiques que tu pots afegir a mà. Cap d'aquestes característiques no entra mai a l'MLP: només hi entren i .
| 0,540 | ||
| 0,497 | ||
| 0,393 | ||
| 0,362 | ||
| 0,335 |
La característica que més s'assembla a alguna neurona oculta és amb una correlació de 0,540. Aquí cap neurona no reprodueix de prop cap de les característiques del catàleg, cosa que també és informativa: la representació que ha trobat la xarxa no té per què coincidir amb les que a nosaltres ens semblen naturals. Prova amb els cercles concèntrics, on el radi és la resposta evident.
Fixa-t'hi: amb les característiques d'ara, el model a mà queda per sobre de la línia base trivial (53,0 % d'error predient sempre la classe majoritària). No és cap error del càlcul: la direcció que minimitza l'entropia creuada no és la que maximitza l'encert, i quan cap recta no serveix, la que surt pot ser pitjor que no fer res. Afegeix-hi el radi i mira-ho canviar.
Amb 3 paràmetres a l'esquerra i 114 a la dreta, l'MLP paga la seva flexibilitat: no és gratis, és un canvi de quin recurs gastes. El ML clàssic gastava temps d'enginyer; el deep learning gasta paràmetres i dades.
El canvi conceptual clau: hem passat d'entrenar models a especificar comportaments de models que ja saben molt. Això desplaça la dificultat de l'optimització cap a l'avaluació i l'especificació — i és per això que els blocs 6 i 7 d'aquest curs són tan llargs.
8. Errors comuns# sense fórmules
| Error | Conseqüència |
|---|---|
| Mirar el test repetidament | overfitting humà; el teu "test" és un segon validation |
| Split aleatori en sèries temporals | fuga del futur; mètriques irreals |
| Optimitzar una mètrica proxy | Llei de Goodhart: la mètrica deixa de mesurar el que volies |
| No tenir baseline trivial | no saps si el teu model aporta res (prova sempre: majoria, aleatori, regex) |
| Comparar sense barres d'error | soroll llegit com a progrés |
Cremar el conjunt de test
Proves k models, tries el millor mirant el test i en publiques el número. Quant t'has enganyat?
- els k models avaluats
- el que triaries
- encert real (idèntic per a tots)
Cada canvi d'hiperparàmetre que has avaluat al test compta com un model.
A zero, cap model és millor que un altre i tota la diferència que veus és soroll.
La mateixa llavor dona sempre el mateix resultat.
- soroll del test (σ)
- 2,01 punts
- biaix optimista
- +4,06 punts
- contra un test fresc
- +3,88 punts
- el que publicaries
- 76,06 %
- el que val de debò
- 72,00 %
- rèpliques simulades
- 400
Si tots els models són igual de bons, les seves accuracies observades són k normals amb la mateixa mitjana i desviació σ = √(p(1−p)/n). El màxim de k normals estàndard té esperança coneguda, i el biaix esperat és σ vegades aquella esperança. No és una regla general: és una predicció tancada que es pot contrastar.
| σ · E[màx de 30 normals] = 2,008 · 2,040 | +4,097 punts |
| mesurat sobre 400 rèpliques | +4,058 punts |
| diferència (error estàndard: 0,100) | 0,039 punts |
Amb 30 models igual de bons i un test de 500 ítems, el millor sortirà 4,06 punts per sobre del que val, i tu no ho sabràs: el número que veus és l'únic que tens. Aquesta és la mateixa matemàtica que les comparacions múltiples del fitxer 03 — allà era el valor p més petit de k proves, aquí és l'accuracy més alta de k models.
I si ja l'has cremat? No hi ha manera de descontaminar-lo: el test que has mirat k vegades és, en el millor dels casos, un segon conjunt de validació. L'única sortida honesta és aconseguir dades noves i dir a la publicació quantes configuracions s'han provat, que és el que permetria a qui et llegeix aplicar aquesta mateixa correcció.
9. Comprova que ho has entès#
0 de 6 resoltes
- Per què l'autosupervisió va canviar el camp?
- Tens un detector amb 99,5 % d'accuracy sobre un problema amb 0,3 % de positius. Quina accuracy treu el classificador que diu sempre que no?%Marge acceptat: ± 0,050
- Quin és el paral·lel conceptual entre k-NN i RAG?
- Proves 30 configuracions sobre un test de 500 ítems i en tries la millor. Si totes valguessin exactament un 72 %, quants punts per sobre del seu valor real sortiria la guanyadora?puntsMarge acceptat: ± 0,300
- Quin baseline trivial faries servir abans de posar un LLM a classificar tiquets de suport?
- Reprodueix la paradoxa. Configura el widget de matriu de confusió perquè dir sempre que no guanyi el teu model per accuracy.
Objectiu:Baixa la proporció de positius per sota de l'1 % i deixa el llindar a 0,5 o per sobre. Mira les dues files de la taula de comprovació.
Vés al widget ↑prevalenca = per defecte · llindar = per defecte
10. Recursos#
Andrew Ng, Machine Learning Specialization (Coursera) — encara la millor porta d'entrada.
Hastie, Tibshirani & Friedman, The Elements of Statistical Learning (gratuït).
An Introduction to Statistical Learning (ISLR) — versió més accessible, amb codi.
Chip Huyen, Designing Machine Learning Systems — la part d'enginyeria que els cursos ignoren.