Skip to content

Modelli lineari, regressione e pseudoinversa

I modelli lineari servono a generalizzare problemi in cui la relazione tra il cambiamento di valore dell’input 𝒙 e l’output 𝑦 può essere trovata attraverso la soluzione di un sistema lineare.

Ciò li rende molto semplici sia da addestrare che da capire, basta analizzare i parametri per capire quali sono quelli che maggiormente influenzano il risultato.

Esempio: si può generalizzare la relazione tra la potenza e il costo di un’automobile:

Grafico retta della media

In un modello lineare, ogni componente 𝑥𝑖 di 𝒙 è moltiplicata da un parametro 𝑤𝑖. Possiamo generalizzare e scrivere che il risultato è dato dal prodotto scalare tra la matrice trasposta dei parametri e il vettore input.

𝑓(𝒙)=𝒘𝑇⋅𝒙

La prima restrizione che incontriamo usando la 𝑓 definita sopra è che si assume che 𝑓(0)=0.

Per risolvere il problema basta aggiungere una dimensione fittizia al vettore in input e poi fissare la nuova componente a 1.

Questi modelli vengono detti affini.

In questo caso 𝑓 sarà la funzione lineare e 𝑔 la funzione affine:

𝑔(𝒙)=𝑓(1,𝒙)=𝑤0+𝒘𝑇⋅𝒙

Questo permette di modellare relazioni che non passano per l’origine, pur continuando a usare l’approssimazione della retta che minimizza la somma degli errori quadratici.

Per usare l’algebra lineare per ottimizzare è necessario che il modello sia lineare nei pesi, non nei dati in input. Infatti durante l’ottimizzazione la variabile da trovare è 𝒘, mentre 𝒙 rimane costante.

In pratica i dati di input possono essere processati a piacimento per estrarre più features.

Possiamo definire una funzione 𝜑:ℝ𝑑→ℝ𝑛 che applica trasformazioni arbitrarie al vettore di input (anche non lineari). Poi passeremo quel risultato in ingresso al nostro modello lineare:

𝑓(𝒙)=𝒘𝑇⋅𝜑(𝒙)

Nel caso della classificazione possiamo usare il risultato della regressione lineare come discriminante.

Il prodotto scalare tra i vettori 𝒘 e 𝒙 definisce un iperpiano di frontiera che divide lo spazio in due regioni: una dove il risultato è positivo e una dove è negativo. La frontiera è data dai vettori perpendicolari a 𝒘.

Ottimizzazione attraverso la pseudo-inversa

Section titled “Ottimizzazione attraverso la pseudo-inversa”

Come visto in precedenza, dobbiamo trovare il valore dei pesi 𝒘 in modo da minimizzare gli errori del modello:

𝐸(𝒘)=∑𝑖=1𝑛(𝒘𝑇⋅𝒙𝑖−𝑦𝑖)2

Nel caso ideale, senza errori di misurazione sul dataset degli esempi, si potrebbero trovare i pesi attraverso un sistema di equazioni lineari, che si risolve invertendo la matrice dei coefficienti:

𝑨𝒘=𝒃⇔𝒘=𝑨−1𝒃

Nella realtà, purtroppo, ci sono sempre errori di misurazione. Quindi si ottiene un sistema sovradeterminato, in cui alcune equazioni risultano contraddittorie. Occorre quindi approssimare la soluzione che permetta di minimizzare 𝐸(𝒘) anche se difficilmente si arriverà a 0.

Per fare ciò possiamo usare la pseudoinversa di 𝑨, denotata con 𝑨+ e definita come:

𝑨+=(𝑨𝑇𝑨)−1𝑨𝑇

Noi dobbiamo risolvere, usando tutti gli esempi, il sistema di equazioni 𝒘𝑇⋅𝒙𝑖=𝑦𝑖. Otteniamo quindi la seguente formula, in cui 𝑿 è la matrice che raccoglie tutti gli esempi di input e 𝒚 il vettore degli output corrispondenti:

𝒘=(𝑿𝑇𝑿)−1𝑿𝑇𝒚