Aprenentatge Automàtic Supervisat
- Introducció
- Terminologia fonamental
- Funció de cost
- Gradient Descent (Descens del Gradient)
- Batch Gradient Descent
- Regressió Lineal Múltiple
- Escalat de Característiques
- Convergència del Descens del Gradient
- Enginyeria de Característiques
- Regressió Polinòmica
- Classificació Binària
- Sobreajustament i Subajustament
- Referències
Introducció
L'aprenentatge automàtic (Machine Learning) és una branca de la intel·ligència artificial que permet als algoritmes aprendre i millorar automàticament a partir de l'experiència, sense ser explícitament programats. Existeixen dos tipus principals d'aprenentatge: supervisat i no supervisat.
L'aprenentatge supervisat és un mètode on l'algoritme aprèn a partir de dades etiquetades, és a dir, se li proporcionen les respostes correctes durant l'entrenament.
Per contra, l'aprenentatge no supervisat treballa amb dades sense etiquetes, buscant patrons o estructures ocultes en les dades.
Característiques principals de l'aprenentatge supervisat:
- L'algoritme troba una línia o corba que representa la sortida donada l'entrada
- Utilitza dades d'entrenament amb exemples d'entrada i sortida coneguts
- L'objectiu és generalitzar per fer prediccions sobre dades noves
Tipus d'aprenentatge supervisat
Regressió
- Objectiu: Predir un número d'un conjunt infinit de possibles sortides
- Exemple: Predir el preu d'una casa basant-se en la seva mida
- Sortida: Valor numèric continu
Classificació
- Objectiu: Predir una categoria d'un conjunt finit de possibles valors (2 o més)
- Exemple: Determinar si un correu és spam o no
- Sortida: Classe o categoria discreta
- Funcionament: L'algoritme troba fronteres per separar les categories
Terminologia fonamental
Variables i dades
- Dataset d'entrenament: Conjunt de dades utilitzat per entrenar el model
- x: Variable d'entrada o característica (feature)
- y: Variable de sortida o objectiu (target)
- (xᵢ, yᵢ): i-èssim exemple d'entrenament (una fila del dataset)
- m: Nombre d'exemples d'entrenament
Model i predicció
- f(x) = ŷ: Funció que representa el model i fa prediccions
- ŷ: Predicció del model (y amb accent circumflex)
- y: Valor real o objectiu
Model lineal
- f(x) = wx + b: Regressió lineal amb una variable
- w: Paràmetre de pes (weight) del model
- b: Paràmetre de biaix (bias) del model
- Els paràmetres w i b s'ajusten durant l'entrenament per millorar el model
Al següent gràfic es representa, a la coordenada x, una característica. I a la y, l'etiqueta. Com es tracta d'un model lineal, es representa com una línia.
Funció de cost
La funció de cost o funció de pèrdua és una eina matemàtica fonamental que quantifica la diferència entre les prediccions que fa el nostre model i els valors reals que esperàvem obtenir. Aquesta funció assigna un valor numèric que representa "l'error" del model: quan més gran sigui aquest valor, pitjor està funcionant el model, i quan més petit sigui, millor són les seves prediccions.
Funció de cost d'error quadràtic
La funció de cost més utilitzada per a regressió lineal és l'error quadràtic:
J(w,b)=12mm∑i=1(f(xi)−yi)2
On:
- J(w, b): Funció de cost
- m: Nombre d'exemples d'entrenament
- f(xᵢ): Predicció per a l'exemple i
- yᵢ: Valor real per a l'exemple i
Per què aquesta fórmula?
- Divisió per m: Perquè l'error no depengui del nombre d'exemples d'entrenament
- Divisió per 2: Simplifica els càlculs futurs (especialment les derivades)
- Elevat al quadrat: Penalitza més els errors grans i evita que errors positius i negatius es cancel·lin
Objectiu d'Optimització: minimitzar J(w, b) per trobar els millors paràmetres del model.
Visualització:
- Si canviem només w: Obtenim una corba en forma de U
- Si canviem w i b: Obtenim una superfície 3D en forma de U
- El punt més baix representa els millors paràmetres
Aquesta és la representació quan tenim dues característiques:
Gradient Descent (Descens del Gradient)
És l'algoritme que troba els valors de w i b que minimitzen la funció de cost J(w, b).
Funcionament:
- Inicialització: Comença amb w = 0 i b = 0
- Iteració: Canvia w i b per reduir J(w, b)
- Direcció: Fa passos en la direcció que més redueix la funció de cost
- Convergència: S'atura quan arriba a un mínim local
Algorisme:
w:=w−α×∂J∂wb:=b−α×∂J∂b
On:
- α (alfa): Taxa d'aprenentatge (learning rate) - controla la mida del pas
- ∂J/∂w: Derivada parcial respecte a w - indica la direcció del pas
- ∂J/∂b: Derivada parcial respecte a b - indica la direcció del pas
Consideracions Importants
Actualització Simultània
És crucial actualitzar w i b simultàniament en cada iteració per garantir el funcionament correcte de l'algoritme.
Taxa d'Aprenentatge (α)
- α massa petita: L'algoritme funcionarà però serà lent
- α massa gran: L'algoritme pot no convergir i "saltar" el mínim
- α adequada: Convergència eficient cap al mínim
Convergència Natural
A mesura que ens apropem al mínim, els passos es fan més petits automàticament perquè la derivada (pendent) disminueix.
Mínims Locals vs Globals
- Mínim local: El punt més baix d'una "vall" específica
- Mínim global: El punt més baix de tota la funció
- El punt d'inici pot determinar a quin mínim local arribem
Propietat Especial de la Regressió Lineal
La funció de cost d'error quadràtic amb regressió lineal té una propietat única: només té un mínim, que és el global. Això és perquè la funció de cost té forma de bol (funció convexa).
Batch Gradient Descent
És la versió del gradient descent que utilitza tots els exemples d'entrenament en cada pas de l'algoritme. Aquesta és la versió que utilitzarem per a regressió lineal, tot i que existeixen alternatives que utilitzen subconjunts de dades per millorar el rendiment en datasets molt grans.
Regressió Lineal Múltiple
En regressió lineal múltiple utilitzem múltiples característiques (variables) per ajudar a predir.
- Les característiques tenen un índex: x₁, x₂, ... , xⱼ.
- Les característiques es poden pensar com un vector x⃗, amb un índex (i) per al i-èssim exemple d'entrenament. Per exemple, x⃗(2) és un vector fila amb tots els valors de les característiques per a l'exemple 2, i xⱼ(2) és el valor de la j-èssima característica per a aquest exemple.
Model de la Regressió Multiple
El nou model es defineix com:
f→w,b(→x)=→w⋅→x+b=w1x1+w2x2+⋯+wnxn+b
On:
- →w=[w1,w2,w3,…,wn] són els paràmetres del model
- →x=[x1,x2,x3,…,xn] són les característiques
I ⋅ representa el producte escalar (dot product).
Codi Python
Sense vectorització:
import numpy as np
w = np.array([w1, w2, w3, ...])
b = 4
x = np.array([x1, x2, x3, ...])
f = 0
n = len(w)
for j in range(n):
f += w[j] * x[j]
f += b
Amb vectorització:
import numpy as np
w = np.array([w1, w2, w3, ...])
b = 4
x = np.array([x1, x2, x3, ...])
f = np.dot(w, x) + b
Gradient Descent per Múltiples Variables
L'algorisme de descens del gradient s'actualitza per a cada paràmetre wj amb el següent pas:
wj:=wj−α⋅∂J(→w,b)∂wjfor j=1…nb:=b−α⋅∂J(→w,b)∂b
Equació Normal
Una alternativa per a regressió lineal és l'equació normal, que resol →w i b sense iteracions:
→w=(XTX)−1XTy
- Només aplica a regressió lineal
- Pot ser costós per a un nombre elevat de característiques
Escalat de Característiques
Quan el rang de valors d'una característica és gran, un bon model tendeix a assignar-li un valor petit del paràmetre wi. En canvi, les característiques amb rangs petits poden rebre pesos més grans.
Això afecta el descens del gradient: si visualitzem la funció de cost en dues dimensions (com un gràfic de contorns), pot aparèixer allargada, provocant passos ineficients i lentitud en la convergència.
La solució és escalar les característiques. Això fa que la funció de cost tingui contorns més circulars i millora la velocitat de convergència.
Mètodes per escalar:
-
Escalat Mínim-Màxim: xesci=ximax(x)
-
Normalització per la Mitjana: xesci=xi−μimax(x)−min(x)
-
Normalització Z-score: xesci=xi−μiσi
Els valors resultants solen quedar entre -1 i 1. Si ja estan entre -0.3 i 0.3, o entre -3 i 3, potser no cal escalar.
Convergència del Descens del Gradient
Per visualitzar la convergència, es representa la funció de cost J(w,b) al llarg de les iteracions. Aquesta és la corba d'aprenentatge, que sovint té forma de llei de potències.
- Si J augmenta, potser el pas α és massa gran.
- Després de moltes iteracions, J pot deixar de disminuir — això és la convergència.
Test automàtic de convergència: definim ε=0.001. Si el canvi de J entre iteracions és inferior a ε, considerem que ha convergit.
Elecció del Ritme d'Aprenentatge
- Massa gran: J augmenta o oscil·la per excés de pas.
- Massa petit: convergència molt lenta.
Una seqüència típica de valors per provar seria: [ \alpha \in { 0.001, 0.003, 0.01, 0.03, 0.1, 0.3 } ]
Si cap funciona, cal revisar la implementació.
Enginyeria de Característiques
Crear noves característiques a partir de les existents, sovint amb intuïció del domini.
Exemple: donada façana
i fons
, podem crear superfície = façana × fons
.
Regressió Polinòmica
Aquest mètode permet ajustar corbes no lineals a les dades usant termes d'ordre superior.
Exemple: y=w1x+w2x2+b
Els termes d'ordre superior amplien l'espai de característiques. L'escalat és essencial aquí.
Alternativament, es poden fer transformacions com √x.
Classificació Binària
La classificació binària té dues sortides possibles: 0 o 1. Tot i que es podria abordar amb una regressió lineal seguint d’un llindar, aquest mètode és molt sensible als valors atípics. Per això, utilitzem la regressió logística, que modela la probabilitat que una observació pertanyi a una de les dues classes.
Quan la regressió logística es basa en una combinació lineal de les variables d’entrada, el límit de decisió s’estableix mitjançant una línia (o un pla, si hi ha més de dues característiques).
Aquest gràfic mostra un exemple bàsic de dades per a regressió logística amb dues característiques (eixos X i Y). Els punts amb cercles blaus (“O”) representen una classe, mentre que les creus vermelles (“X”) representen l’altra.
La línia verda discontínua és la frontera de decisió del model, que separa les dues classes. Els punts a un costat de la línia es classifiquen en una classe i els de l’altre costat en l’altra, reflectint com la regressió logística aprèn a dividir l’espai de característiques per fer prediccions binàries.
Aquest model prediu probabilitats mitjançant la funció sigmoide:
g(z)=11+e−zon0<g(z)<1
Model de regressió logística:
z=w⋅x+b fw,b(x)=11+e−(w⋅x+b)=P(y=1∣x;w,b)
Frontera de Decisió
La frontera de decisió és la línia (o hiperpla en dimensions superiors) que separa les regions on el model prediu diferents classes.
Una regla comuna és:
ˆy={1,si g(z)>0.5,0,si no.
I com que (g(z)>0.5) equivaleix a (z>0), es pot escriure directament:
ˆy=1⟺wTx+b;≥;0.
La frontera de decisió és el conjunt de tots els punts (x) per als quals el model està exactament al límit entre la classe 0 i la classe 1, és a dir, on
z=wTx+b=0.
Si x=(x1,x2) i w=(w1,w2), la frontera de decisió es descriu per
w1,x1+w2,x2+b=0.
Geomètricament, això és una línia al pla (x1,x2).
Tots els punts d’un costat (on w1x1+w2x2+b>0) es classifiquen com a 1, i els de l’altre costat com a 0.
Fronteres no lineals
Per obtenir corbes (cercles, el·lipses, etc.), podem ampliar el vector d’atributs amb termes polinòmics.
Si en lloc de (x1,x2) utilitzem (x21,x22) i aprenem pesos w1,w2 i biaix b, la frontera és
w1,x21+w2,x22+b=0.
En el cas simètric senzill amb w1=w2=1, això es tradueix en
x21+x22=−b,
que és un cercle de radi √−b.
Afegint pesos diferents o termes creuats es poden generar el·lipses rotades, paraboles o formes molt complexes, segons el grau i la combinació de termes polinòmics.
Funció de Cost
En lloc de l'error quadràtic, s'utilitza la pèrdua logarítmica (entropia creuada):
L(fw,b(xi),yi)={−log(fw,b(xi))si yi=1−log(1−fw,b(xi))si yi=0
Això assegura una funció convexa per aplicar descens del gradient.
Quan l’etiqueta real és 1 (corba verda):
- Si ˆy s’apropa a 1 → cost baix (la predicció és correcta i segura)
- Si ˆy s’apropa a 0 → cost molt alt (la predicció és completament errònia)
Quan l’etiqueta real és 0 (corba vermella):
- Si ˆy s’apropa a 0 → cost baix (predicció correcta)
- Si ˆy s’apropa a 1 → cost alt (predicció incorrecta)
Sobreajustament i Subajustament
Hi ha dos problemes que poden produir-se quan estem entrenant el nostre model:
- Subajustament: model massa simple; alt biaix.
- Sobreajustament: massa complex; alta variància.
El sobreajustament implica alta precisió en entrenament però mala generalització.
Com evitar el sobreajustament:
- Més dades d'entrenament.
- Simplificar el model (menys característiques o polinomis més simples).
- Regularització: penalitza pesos grans i redueix la complexitat.
- Exemple: regularització L2 afegeix λ∑w2i a la funció de cost.
Regularització
En l'aprenentatge automàtic, la regularització consisteix a afegir un terme als costos per penalitzar els valors grans dels pesos del model. Aquesta tècnica ajuda a evitar el sobreajustament (overfitting), fent que el model sigui més senzill i generalitzi millor.
Quan els valors dels paràmetres wj són petits, la funció del model tendeix a ser més suau i menys complexa. Això el fa menys propens a ajustar-se massa al soroll de les dades d'entrenament.
Per tant, la regularització afegeix una penalització al cost quan els paràmetres tenen valors elevats. Aquesta penalització força el model a preferir valors de wj petits, a no ser que sigui estrictament necessari fer-los grans per ajustar-se a les dades.
Quines característiques penalitzem? En general, es penalitzen tots els pesos del model per igual. Això fa que la funció resultant sigui més suau i evita que el model doni massa importància a una sola característica.
Funció de cost amb regularització
El nou terme que afegim a la funció de cost és:
J(w,b)=Joriginal(w,b)+λ2mn∑j=1w2j
- λ és el paràmetre de regularització.
- m és el nombre d'exemples d'entrenament.
- La suma es fa des de j=1 fins a n, excloent habitualment el paràmetre b (el terme de biais o desplaçament), tot i que incloure'l o no no sol tenir un gran impacte en la pràctica.
Efecte del valor de λ:
- Si λ≈0: la regularització és gairebé inexistent, i el model pot sobreajustar-se.
- Si λ és massa gran, el model prioritzarà reduir els pesos i s'ajustarà poc a les dades: la seva sortida pot ser gairebé constant (una línia horitzontal a l'altura de b).
Amb regularització, l'objectiu d'entrenament és doble:
- Ajustar-se a les dades (minimitzar l'error original).
- Mantenir els pesos petits (minimitzar la complexitat del model).
Aquest equilibri es controla amb el valor de λ.
Descens del Gradient amb Regularització
Quan utilitzem regressió lineal amb regularització, la fórmula de descens del gradient per actualitzar cada paràmetre wj canvia lleugerament per incloure la penalització.
L'actualització de wj amb regularització es fa així:
wj:=wj−α(1mm∑i=1(fw,b(x(i))−y(i))x(i)j+λmwj)
on:
- α és el ritme d'aprenentatge (learning rate),
- m és el nombre d'exemples d'entrenament,
- fw,b(x(i)) és la predicció del model per a l'exemple i,
- y(i) és l'etiqueta real de l'exemple i,
- x(i)j és el valor de la característica j per a l'exemple i,
- λ és el paràmetre de regularització.
Intuïció:
- El primer terme de la fórmula (la suma) és el gradient normal, com en la regressió lineal sense regularització.
- El segon terme λmwj penalitza valors grans de wj.
- Això fa que wj disminueixi si no contribueix prou a reduir l'error, ajudant a controlar el sobreajustament.
Nota: Aquesta fórmula s'aplica només als pesos wj. El paràmetre de biais b normalment no es regularitza.