Matrici, funzioni parametriche e distribuzioni di probabilità
Matrici, funzioni parametriche e distribuzioni di probabilità: come scegliere il modello a partire dal tipo di variabili
Quando si costruisce un modello probabilistico, un modello di machine learning o un modello di Active Inference, è facile confondere tre oggetti concettualmente differenti: una distribuzione di probabilità, una matrice di probabilità e una funzione parametrica, eventualmente implementata tramite una rete neurale.
Questi strumenti non costituiscono tre alternative poste sullo stesso livello. Una distribuzione di probabilità descrive l’incertezza relativa a una variabile; una matrice o una funzione parametrica sono invece modi differenti di rappresentare, determinare o generare i parametri di quella distribuzione.
La scelta corretta deve quindi partire dalla natura delle variabili coinvolte: quali valori possono assumere, se sono categoriche, discrete numeriche o continue, quale supporto possiedono, quanto è grande lo spazio degli stati, quale struttura dell’incertezza vogliamo descrivere e se sia necessaria capacità di generalizzazione.
\[ \boxed{ \text{tipo di variabile} \rightarrow \text{supporto} \rightarrow \text{distribuzione} \rightarrow \text{parametri} \rightarrow \text{rappresentazione} \rightarrow \text{apprendimento} } \]1. Il punto di partenza: che tipo di variabile stiamo modellando?
Prima di scegliere una matrice, una rete neurale, una distribuzione normale o una funzione softmax bisogna determinare il supporto della variabile casuale, cioè l’insieme dei valori che può assumere.
Una prima distinzione fondamentale è tra:
- variabili categoriche;
- variabili discrete numeriche;
- variabili continue.
2. Variabili categoriche
Una variabile categorica assume uno fra un insieme finito di valori distinti:
\[ O\in\{\text{rosso},\text{verde},\text{blu}\}. \]Oppure:
\[ O\in\{\text{gatto},\text{cane},\text{cavallo}\}. \]Le categorie possono essere codificate tramite numeri:
\[ O\in\{1,2,3\}, \]ma in questo caso tali numeri sono soltanto etichette. Non implica, per esempio, che la categoria \(3\) sia tre volte la categoria \(1\).
Per una variabile categorica con \(K\) valori è naturale utilizzare:
\[ O\sim\operatorname{Categorical}(\pi_1,\ldots,\pi_K), \]con:
\[ \pi_k\geq0, \qquad \sum_{k=1}^{K}\pi_k=1. \]Ogni parametro rappresenta:
\[ \pi_k=P(O=o_k). \]3. Variabili discrete numeriche
Non tutte le variabili discrete sono categoriche. Consideriamo:
\[ O\in\{0,1,2,3,\ldots\}. \]Se \(O\) rappresenta il numero di telefonate, eventi, guasti o accessi, il valore possiede un significato quantitativo.
Quattro eventi sono effettivamente uno in più di tre. Una possibile distribuzione è:
\[ O\sim\operatorname{Poisson}(\lambda), \qquad \lambda>0. \]Non è quindi sempre appropriato trattare ogni possibile conteggio come una categoria indipendente.
4. Variabili continue
Una variabile continua può assumere idealmente un numero infinito di valori all’interno di un intervallo.
Temperatura, posizione, velocità, pressione, tensione elettrica, altezza e durata sono esempi tipici.
\[ O\in\mathbb{R}. \]Per esempio:
\[ O=21.374^\circ\mathrm{C}. \]Qui la distanza tra valori ha un significato quantitativo.
5. Probabilità discreta e densità continua
Per una variabile discreta possiamo assegnare probabilità positiva a un singolo valore:
\[ P(O=\text{rosso})=0.6. \]Per una variabile propriamente continua, invece:
\[ P(O=x)=0. \]Si usa quindi una densità:
\[ p(O=x). \]La probabilità di un intervallo è:
\[ P(a\leq O\leq b) = \int_a^b p(o)\,do. \]È per questo che spesso si usa \(P\) per probabilità discrete e \(p\) per densità continue.
6. Il concetto fondamentale è la distribuzione condizionata
Supponiamo che esista uno stato \(S\) e un’osservazione \(O\). Il problema centrale consiste nel descrivere:
\[ P(O\mid S). \]Se il sistema si trova nello stato \(S\), quali osservazioni sono possibili e con quale probabilità o densità?
La distribuzione \(P(O\mid S)\) è l’oggetto probabilistico fondamentale. Una matrice, una funzione analitica o una rete neurale sono differenti modi di rappresentarla o di determinarne i parametri.
7. Quando una matrice è la rappresentazione naturale
Se \(S\) e \(O\) sono discreti e relativamente piccoli, tutte le probabilità possono essere rappresentate esplicitamente mediante una tabella.
\[ S\in\{s_1,s_2,s_3\}, \] \[ O\in\{o_1,o_2,o_3,o_4\}. \]Definiamo:
\[ A_{o,s}=P(O=o\mid S=s). \]Per esempio:
\[ A= \begin{pmatrix} 0.70 & 0.10 & 0.20\\ 0.20 & 0.60 & 0.20\\ 0.05 & 0.20 & 0.30\\ 0.05 & 0.10 & 0.30 \end{pmatrix}. \]Ogni colonna è una distribuzione categorica completa.
\[ A[:,s_2] = \begin{pmatrix} 0.10\\ 0.60\\ 0.20\\ 0.10 \end{pmatrix}. \]Quindi:
\[ \sum_o A_{o,s}=1. \]8. Le matrici A e B nell’Active Inference discreta
8.1 Matrice A
\[ A_{o,s} = P(O_t=o\mid S_t=s). \]\(A\) specifica come gli stati nascosti producono osservazioni.
8.2 Matrice B
\[ B_{s’,s,u} = P(S_{t+1}=s’\mid S_t=s,U_t=u). \]Se non esistono azioni:
\[ B_{s’,s} = P(S_{t+1}=s’\mid S_t=s). \]Anche qui:
\[ \sum_{s’}B_{s’,s,u}=1. \]\(A\) e \(B\) sono quindi rappresentazioni tabellari di distribuzioni condizionate.
9. Quando conviene utilizzare una matrice
- le variabili sono discrete;
- il numero di stati è piccolo;
- il numero di osservazioni è piccolo;
- si desidera elevata interpretabilità;
- si vuole mantenere una probabilità esplicita per ogni combinazione;
- non serve forte generalizzazione verso stati mai osservati.
10. Il limite della rappresentazione tabellare
Consideriamo un’immagine binaria di \(100\times100\) pixel. Il numero di configurazioni possibili è:
\[ 2^{10000}. \]Non è realistico costruire una colonna distinta di \(A\) per ogni immagine.
Inoltre una tabella non sfrutta automaticamente la somiglianza tra stati. È qui che diventano utili le funzioni parametriche.
11. Che cosa significa utilizzare una funzione parametrica
\[ f_\theta(S). \]\(\theta\) rappresenta l’insieme dei parametri del modello.
Una funzione parametrica può essere:
- lineare;
- logistica;
- polinomiale;
- esponenziale;
- una rete neurale;
- un altro modello parametrico.
Una rete neurale è quindi un caso importante, ma non l’unico.
12. Una funzione parametrica non è necessariamente una probabilità
\[ z=f_\theta(S). \]Per tre categorie potremmo ottenere:
\[ z= \begin{pmatrix} 2.1\\ 0.4\\ -0.7 \end{pmatrix}. \]Questi valori possono essere negativi e non devono sommare a uno: non sono probabilità.
In una classificazione vengono spesso chiamati logits.
13. Osservazioni categoriche: la softmax
\[ O\in\{o_1,\ldots,o_K\}. \]La funzione produce:
\[ z_k=f_{\theta,k}(S). \]La softmax definisce:
\[ \pi_k(S) = \frac{e^{z_k}} {\sum_{j=1}^{K}e^{z_j}}. \]Per costruzione:
\[ 0<\pi_k<1, \qquad \sum_k\pi_k=1. \]Quindi:
\[ O\mid S \sim \operatorname{Categorical}(\boldsymbol{\pi}(S)). \] \[ \boxed{ \boldsymbol{\pi}(S) = \operatorname{softmax}(f_\theta(S)) }. \]14. Come entrano S, O e θ nella costruzione di P(O|S)
\[ \boxed{ S \xrightarrow{f_\theta} z \xrightarrow{\operatorname{softmax}} \boldsymbol{\pi}(S) = P_\theta(O\mid S) }. \]\(S\) entra come input della funzione. \(\theta\) determina la trasformazione. Una specifica categoria \(O=o_k\) identifica la componente della distribuzione che vogliamo valutare:
\[ P_\theta(O=o_k\mid S)=\pi_k(S). \]15. Caso lineare generale
Supponiamo che lo stato abbia \(d\) componenti:
\[ S= \begin{pmatrix} S_1\\ \vdots\\ S_d \end{pmatrix} \in\mathbb{R}^{d\times1}. \]Le categorie possibili di \(O\) siano \(K\).
Introduciamo:
\[ W\in\mathbb{R}^{K\times d} \]e:
\[ b\in\mathbb{R}^{K\times1}. \]Il modello lineare è:
\[ \boxed{ z=WS+b }. \]Le dimensioni sono:
\[ \underbrace{W}_{K\times d} \underbrace{S}_{d\times1} = \underbrace{WS}_{K\times1}, \] \[ \underbrace{WS}_{K\times1} + \underbrace{b}_{K\times1} = \underbrace{z}_{K\times1}. \]16. Struttura della matrice W
\[ W= \begin{pmatrix} W_{11}&W_{12}&\cdots&W_{1d}\\ W_{21}&W_{22}&\cdots&W_{2d}\\ \vdots&\vdots&\ddots&\vdots\\ W_{K1}&W_{K2}&\cdots&W_{Kd} \end{pmatrix}. \]Ogni riga è associata a una categoria:
\[ W= \begin{pmatrix} w_1^T\\ w_2^T\\ \vdots\\ w_K^T \end{pmatrix}. \]Con:
\[ w_k\in\mathbb{R}^{d\times1}, \qquad w_k^T\in\mathbb{R}^{1\times d}. \]Il logit della categoria \(k\) è:
\[ \boxed{ z_k=w_k^TS+b_k }. \]Cioè:
\[ z_k = \sum_{j=1}^{d}W_{kj}S_j+b_k. \]Ogni peso \(W_{kj}\) collega quindi la componente \(S_j\) al logit della categoria \(k\).
17. Esempio numerico completo
\[ S= \begin{pmatrix} 1\\ 2 \end{pmatrix}. \] \[ W= \begin{pmatrix} 1&0.5\\ -0.5&1\\ 0.2&-0.3 \end{pmatrix}. \] \[ b= \begin{pmatrix} 0.1\\ 0\\ -0.2 \end{pmatrix}. \]Calcoliamo:
\[ z=WS+b. \] \[ z_1=1(1)+0.5(2)+0.1=2.1, \] \[ z_2=-0.5(1)+1(2)=1.5, \] \[ z_3=0.2(1)-0.3(2)-0.2=-0.6. \]Quindi:
\[ z= \begin{pmatrix} 2.1\\ 1.5\\ -0.6 \end{pmatrix}. \]18. Dai logits alla distribuzione P(O|S)
\[ P_\theta(O=o_k\mid S) = \frac{e^{z_k}} {\sum_j e^{z_j}}. \]Nel nostro esempio:
\[ e^{2.1}\approx8.17, \qquad e^{1.5}\approx4.48, \qquad e^{-0.6}\approx0.55. \] \[ Z=8.17+4.48+0.55\approx13.20. \]Otteniamo:
\[ P(o_1\mid S)\approx0.619, \] \[ P(o_2\mid S)\approx0.340, \] \[ P(o_3\mid S)\approx0.041. \] \[ \boxed{ \pi= P(O\mid S) = \begin{pmatrix} 0.619\\ 0.340\\ 0.041 \end{pmatrix} }. \]19. Dove entra concretamente O?
Durante la previsione, \(O\) non è ancora noto. Il modello costruisce l’intera distribuzione:
\[ S \longrightarrow \begin{pmatrix} P(o_1\mid S)\\ P(o_2\mid S)\\ \vdots\\ P(o_K\mid S) \end{pmatrix}. \]Se successivamente osserviamo \(O=o_2\), selezioniamo:
\[ P(O=o_2\mid S)=0.340. \] \[ \boxed{ S\rightarrow\text{costruzione della distribuzione} } \] \[ \boxed{ O=o_k\rightarrow\text{selezione della componente }k }. \]20. La formula che contiene esplicitamente S, O e θ
\[ f_{\theta,k}(S)=w_k^TS+b_k. \]Quindi:
\[ \boxed{ P_\theta(O=o_k\mid S) = \frac{ \exp(w_k^TS+b_k) }{ \sum_{j=1}^{K}\exp(w_j^TS+b_j) } }. \]Qui \(S\) è lo stato, \(o_k\) la categoria considerata e \(\theta\) contiene tutti i pesi e i bias:
\[ \theta=\{W,b\}. \]21. Scrivere il modello come fθ(S,O)
È possibile definire una funzione di compatibilità:
\[ f_\theta(S,O). \]Allora:
\[ \boxed{ P_\theta(O=o_k\mid S) = \frac{ e^{f_\theta(S,o_k)} }{ \sum_{o’}e^{f_\theta(S,o’)} } }. \]Il numeratore misura la compatibilità tra \(S\) e una specifica osservazione. Il denominatore confronta quella compatibilità con tutte le alternative.
22. Rappresentazione one-hot dell’osservazione
Una variabile categorica può essere rappresentata tramite vettore one-hot.
Se \(O=o_2\):
\[ o= \begin{pmatrix} 0\\ 1\\ 0 \end{pmatrix}. \]La likelihood categorica è:
\[ \boxed{ P_\theta(O\mid S) = \prod_{k=1}^{K} \pi_k^{o_k} }. \]Per esempio:
\[ 0.619^0 \cdot 0.340^1 \cdot 0.041^0 = 0.340. \]L’esponente \(o_k\) agisce quindi come selettore: tutte le categorie non osservate hanno esponente zero e contribuiscono con \(1\); la categoria osservata ha esponente uno.
23. Dalla likelihood alla log-likelihood
\[ L = \log P_\theta(O\mid S). \]Usando la forma one-hot:
\[ L = \log \left( \prod_k\pi_k^{o_k} \right). \]Poiché:
\[ \log(ab)=\log a+\log b \]e:
\[ \log(x^a)=a\log x, \]otteniamo:
\[ \boxed{ L = \sum_{k=1}^{K} o_k\log\pi_k }. \]L’esponente della likelihood diventa quindi un coefficiente moltiplicativo nella log-likelihood.
24. Softmax e likelihood contengono esponenziali con ruoli diversi
Nella softmax compare:
\[ e^{z_k}. \]Questo serve a trasformare i logits in quantità positive e normalizzabili.
Nella likelihood compare invece:
\[ \pi_k^{o_k}. \]Qui l’esponente \(o_k\) seleziona la categoria osservata.
\[ \boxed{ e^{z_k} \neq \pi_k^{o_k} }. \]25. Derivata della log-likelihood rispetto ai logits
Partiamo da:
\[ L = \sum_j o_j\log\pi_j. \]Con:
\[ \pi_j = \frac{e^{z_j}} {\sum_r e^{z_r}}. \]Abbiamo:
\[ \log\pi_j = z_j – \log\left(\sum_r e^{z_r}\right). \]Quindi:
\[ L = \sum_j o_jz_j – \sum_j o_j \log\left(\sum_r e^{z_r}\right). \]Poiché:
\[ \sum_j o_j=1, \]otteniamo:
\[ L = \sum_j o_jz_j – \log\left(\sum_r e^{z_r}\right). \]Derivando rispetto a \(z_k\):
\[ \frac{\partial L}{\partial z_k} = o_k – \frac{e^{z_k}} {\sum_r e^{z_r}}. \]Ma:
\[ \frac{e^{z_k}} {\sum_r e^{z_r}} = \pi_k. \]Pertanto:
\[ \boxed{ \frac{\partial L}{\partial z_k} = o_k-\pi_k }. \]Vettorialmente:
\[ \boxed{ \nabla_z L = o-\pi }. \]26. Negative log-likelihood e cross-entropy
Nel machine learning è comune minimizzare:
\[ \mathcal{L} = -L = -\log P_\theta(O\mid S). \]Quindi:
\[ \boxed{ \mathcal{L} = -\sum_k o_k\log\pi_k }. \]Questa è la cross-entropy categorica.
Il gradiente rispetto ai logits è:
\[ \boxed{ \frac{\partial\mathcal{L}}{\partial z_k} = \pi_k-o_k }. \]27. Derivare il gradiente rispetto alla matrice dei pesi W
Torniamo alla trasformazione:
\[ z=WS+b. \]Le dimensioni sono:
\[ S\in\mathbb{R}^{d\times1}, \] \[ W\in\mathbb{R}^{K\times d}, \] \[ b\in\mathbb{R}^{K\times1}, \] \[ z\in\mathbb{R}^{K\times1}. \]Poiché \(L\) è uno scalare, il gradiente rispetto a \(W\) deve avere la stessa forma di \(W\):
\[ \boxed{ \nabla_WL \in \mathbb{R}^{K\times d} }. \]28. Derivata rispetto a un singolo peso Wkj
Il logit \(k\)-esimo è:
\[ z_k = \sum_{r=1}^{d} W_{kr}S_r+b_k. \]Consideriamo un singolo peso \(W_{kj}\).
La derivata locale è:
\[ \boxed{ \frac{\partial z_k}{\partial W_{kj}} = S_j }. \]Applicando la regola della catena:
\[ \frac{\partial L}{\partial W_{kj}} = \frac{\partial L}{\partial z_k} \frac{\partial z_k}{\partial W_{kj}}. \]Sostituendo:
\[ \boxed{ \frac{\partial L}{\partial W_{kj}} = (o_k-\pi_k)S_j }. \]29. Interpretazione di ogni singola derivata
\[ \frac{\partial L}{\partial W_{kj}} = \underbrace{(o_k-\pi_k)}_{\text{errore della categoria}} \underbrace{S_j}_{\text{attivazione dell’input}}. \]La modifica di un peso è determinata da due fattori:
- quanto la probabilità della categoria \(k\) differisce dal target;
- quanto la componente \(S_j\) è attiva.
Se:
\[ S_j=0, \]allora:
\[ \frac{\partial L}{\partial W_{kj}}=0. \]Quell’esempio non modifica quel particolare peso.
30. Dalle derivate scalari alla matrice del gradiente
Per la prima riga:
\[ \begin{pmatrix} \frac{\partial L}{\partial W_{11}} & \frac{\partial L}{\partial W_{12}} & \cdots & \frac{\partial L}{\partial W_{1d}} \end{pmatrix} = (o_1-\pi_1) \begin{pmatrix} S_1&S_2&\cdots&S_d \end{pmatrix}. \]Per tutte le categorie:
\[ \nabla_WL = \begin{pmatrix} (o_1-\pi_1)S_1 & \cdots & (o_1-\pi_1)S_d\\ (o_2-\pi_2)S_1 & \cdots & (o_2-\pi_2)S_d\\ \vdots & \ddots & \vdots\\ (o_K-\pi_K)S_1 & \cdots & (o_K-\pi_K)S_d \end{pmatrix}. \]31. Il gradiente come prodotto esterno tra due vettori
Definiamo:
\[ \delta=o-\pi. \]Le dimensioni sono:
\[ \delta\in\mathbb{R}^{K\times1}. \]Inoltre:
\[ S^T\in\mathbb{R}^{1\times d}. \]Il prodotto:
\[ \underbrace{\delta}_{K\times1} \underbrace{S^T}_{1\times d} \]ha dimensione:
\[ K\times d. \]Quindi:
\[ \boxed{ \nabla_WL = (o-\pi)S^T }. \]Si tratta di un prodotto esterno, non di un prodotto scalare.
32. Perché serve il prodotto esterno
Il gradiente rispetto a \(W\) deve contenere una derivata per ciascun peso:
\[ \nabla_WL \in \mathbb{R}^{K\times d}. \]Per questo serve:
\[ \boxed{ (K\times1)(1\times d) = K\times d }. \]Il prodotto esterno genera esattamente una matrice con la stessa forma della matrice dei pesi.
33. Gradiente rispetto al bias
Per ogni categoria:
\[ z_k=w_k^TS+b_k. \]Quindi:
\[ \frac{\partial z_k}{\partial b_k}=1. \]Per la regola della catena:
\[ \frac{\partial L}{\partial b_k} = \frac{\partial L}{\partial z_k} \frac{\partial z_k}{\partial b_k}. \]Pertanto:
\[ \boxed{ \frac{\partial L}{\partial b_k} = o_k-\pi_k }. \]Vettorialmente:
\[ \boxed{ \nabla_bL = o-\pi }. \]Le dimensioni sono:
\[ \nabla_bL \in \mathbb{R}^{K\times1}. \]34. Riassunto dimensionale completo
| Oggetto | Dimensione |
|---|---|
| \(S\) | \(d\times1\) |
| \(W\) | \(K\times d\) |
| \(b\) | \(K\times1\) |
| \(z\) | \(K\times1\) |
| \(\pi\) | \(K\times1\) |
| \(o\) | \(K\times1\) |
| \(o-\pi\) | \(K\times1\) |
| \(\nabla_WL\) | \(K\times d\) |
| \(\nabla_bL\) | \(K\times1\) |
Forward:
\[ \underbrace{W}_{K\times d} \underbrace{S}_{d\times1} + \underbrace{b}_{K\times1} = \underbrace{z}_{K\times1}. \] \[ z\xrightarrow{\operatorname{softmax}}\pi. \]Backward:
\[ \delta=o-\pi. \] \[ \boxed{ \nabla_WL = \underbrace{\delta}_{K\times1} \underbrace{S^T}_{1\times d} }. \] \[ \boxed{ \nabla_bL=\delta }. \]35. Aggiornamento dei pesi massimizzando la log-likelihood
Se definiamo:
\[ L=\log P_\theta(O\mid S), \]vogliamo massimizzare \(L\). Con gradient ascent:
\[ W_{\text{new}} = W_{\text{old}} + \eta\nabla_WL. \]Quindi:
\[ \boxed{ W_{\text{new}} = W_{\text{old}} + \eta(o-\pi)S^T }. \]Elemento per elemento:
\[ \boxed{ W_{kj}^{\text{new}} = W_{kj}^{\text{old}} + \eta(o_k-\pi_k)S_j }. \]Per il bias:
\[ \boxed{ b_{\text{new}} = b_{\text{old}} + \eta(o-\pi) }. \]Elemento per elemento:
\[ \boxed{ b_k^{\text{new}} = b_k^{\text{old}} + \eta(o_k-\pi_k) }. \]36. Aggiornamento minimizzando la negative log-likelihood
Più comunemente si definisce:
\[ \mathcal{L}=-L. \]Allora:
\[ \boxed{ \nabla_W\mathcal{L} = (\pi-o)S^T }. \] \[ \boxed{ \nabla_b\mathcal{L} = \pi-o }. \]Con gradient descent:
\[ W_{\text{new}} = W_{\text{old}} – \eta(\pi-o)S^T. \]Poiché:
\[ -(\pi-o)=o-\pi, \]si ottiene lo stesso aggiornamento della massimizzazione della log-likelihood.
37. Che cosa accade alla categoria corretta?
Se la categoria osservata è \(c\):
\[ o_c=1. \]Quindi:
\[ o_c-\pi_c=1-\pi_c>0. \]La riga corrispondente di \(W\) viene aggiornata:
\[ w_c^{\text{new}} = w_c+\eta(1-\pi_c)S. \]Essa viene spostata nella direzione dello stato \(S\), aumentando tendenzialmente:
\[ w_c^TS, \]quindi:
\[ z_c, \]e infine:
\[ P(O=o_c\mid S). \]38. Che cosa accade alle categorie errate?
Per \(k\neq c\):
\[ o_k=0. \]Quindi:
\[ o_k-\pi_k=-\pi_k. \]L’aggiornamento diventa:
\[ w_k^{\text{new}} = w_k-\eta\pi_kS. \]La riga associata alla categoria sbagliata viene spostata nella direzione opposta rispetto a \(S\).
Più alta era erroneamente \(\pi_k\), maggiore sarà la correzione.
39. Esempio numerico del gradiente rispetto a W
Riprendiamo:
\[ S= \begin{pmatrix} 1\\ 2 \end{pmatrix}, \] \[ \pi= \begin{pmatrix} 0.619\\ 0.340\\ 0.041 \end{pmatrix}, \]e supponiamo che la categoria osservata sia la seconda:
\[ o= \begin{pmatrix} 0\\ 1\\ 0 \end{pmatrix}. \]Allora:
\[ \delta = o-\pi = \begin{pmatrix} -0.619\\ 0.660\\ -0.041 \end{pmatrix}. \]Poiché:
\[ S^T= \begin{pmatrix} 1&2 \end{pmatrix}, \]otteniamo:
\[ \nabla_WL = \begin{pmatrix} -0.619\\ 0.660\\ -0.041 \end{pmatrix} \begin{pmatrix} 1&2 \end{pmatrix}. \] \[ \boxed{ \nabla_WL = \begin{pmatrix} -0.619&-1.238\\ 0.660&1.320\\ -0.041&-0.082 \end{pmatrix} }. \]40. Esempio numerico dell’aggiornamento di W
Supponiamo:
\[ \eta=0.1. \]Con:
\[ W= \begin{pmatrix} 1&0.5\\ -0.5&1\\ 0.2&-0.3 \end{pmatrix}, \]abbiamo:
\[ W_{\text{new}} = W+0.1\nabla_WL. \]Quindi:
\[ \boxed{ W_{\text{new}} = \begin{pmatrix} 0.9381&0.3762\\ -0.4340&1.1320\\ 0.1959&-0.3082 \end{pmatrix} }. \]La seconda riga, associata alla categoria corretta, è stata rafforzata nella direzione dello stato osservato.
41. Esempio numerico dell’aggiornamento del bias
\[ \nabla_bL = \begin{pmatrix} -0.619\\ 0.660\\ -0.041 \end{pmatrix}. \]Con:
\[ b= \begin{pmatrix} 0.1\\ 0\\ -0.2 \end{pmatrix} \]e \(\eta=0.1\):
\[ b_{\text{new}} = b+0.1\nabla_bL. \]Quindi:
\[ \boxed{ b_{\text{new}} = \begin{pmatrix} 0.0381\\ 0.0660\\ -0.2041 \end{pmatrix} }. \]42. La struttura completa del forward e backward pass
Forward:
\[ \boxed{ S \xrightarrow{W,b} z=WS+b \xrightarrow{\operatorname{softmax}} \pi \xrightarrow{\text{confronto con }o} L }. \]Backward:
\[ \boxed{ \delta = \frac{\partial L}{\partial z} = o-\pi }. \] \[ \boxed{ \nabla_WL = \delta S^T }. \] \[ \boxed{ \nabla_bL = \delta }. \]Questa struttura è il cuore matematico dell’ultimo strato lineare più softmax di una rete neurale.
43. Confronto diretto con la matrice A
Nel caso tabellare:
\[ P(O\mid S=s)=A[:,s]. \]Nel caso parametrico:
\[ P_\theta(O\mid S=s) = \operatorname{softmax}(f_\theta(s)). \]Possiamo pensare alla funzione parametrica come a una macchina che costruisce dinamicamente l’equivalente della colonna di \(A\):
\[ \boxed{ A_\theta[:,S] = \operatorname{softmax}(f_\theta(S)) }. \]44. Se anche S è categorico
Supponiamo:
\[ S\in\{s_1,s_2,s_3\}. \]Se \(S=s_2\), possiamo usare:
\[ S= \begin{pmatrix} 0\\ 1\\ 0 \end{pmatrix}. \]Allora:
\[ WS=W[:,2]. \]Quindi:
\[ P(O\mid S=s_2) = \operatorname{softmax}(W[:,2]+b). \]In questo caso il collegamento tra matrice tabellare e matrice di logits è quasi letterale.
45. Se fθ è una rete neurale
Una rete neurale sostituisce la singola trasformazione lineare con una composizione:
\[ h_1=\phi(W_1S+b_1), \] \[ h_2=\phi(W_2h_1+b_2), \] \[ z=W_3h_2+b_3, \] \[ P_\theta(O\mid S) = \operatorname{softmax}(z). \]Con:
\[ \theta = \{W_1,b_1,W_2,b_2,W_3,b_3\}. \]Il principio rimane invariato: l’ultimo strato produce logits, la softmax produce probabilità, la loss produce gradienti, e la backpropagation propaga tali gradienti verso tutti i parametri precedenti.
46. Perché una funzione parametrica generalizza
In una matrice tabellare ogni relazione ha una voce propria:
\[ A_{o,s}. \]In un modello parametrico, invece, molte previsioni condividono gli stessi parametri:
\[ P_\theta(O\mid s_1), \qquad P_\theta(O\mid s_2), \qquad P_\theta(O\mid s_3). \]Modificando \(\theta\), un singolo esempio può influenzare il comportamento del modello per molti stati simili.
Questo è uno dei meccanismi fondamentali della generalizzazione.
47. Apprendimento tabellare tramite Dirichlet
Nell’Active Inference discreta è comune utilizzare parametri di concentrazione:
\[ a_{o,s}>0. \]La distribuzione normalizzata può essere ricavata tramite:
\[ A_{o,s} = \frac{a_{o,s}} {\sum_{o’}a_{o’,s}}. \]L’apprendimento può essere schematicamente scritto:
\[ a_{o,s}^{\text{new}} = a_{o,s}^{\text{old}} + \text{conteggio atteso}(o,s). \]Se lo stato non è conosciuto con certezza, il conteggio può essere un conteggio atteso e non necessariamente intero.
\[ \boxed{ \text{esperienza} \rightarrow \text{conteggi} \rightarrow a \rightarrow \text{normalizzazione} \rightarrow A }. \]48. Apprendimento parametrico e apprendimento tabellare
Tabellare
\[ (S,O) \rightarrow \text{aggiornamento dei conteggi} \rightarrow A. \]Parametrico
\[ (S,O) \rightarrow \mathcal{L} \rightarrow \nabla_\theta\mathcal{L} \rightarrow \theta. \]Nel primo caso l’informazione modifica parametri locali della tabella. Nel secondo modifica parametri condivisi.
49. Quando O è continua: la softmax non è appropriata
Se:
\[ O\in\mathbb{R}, \]non possiamo avere un’uscita softmax per ogni possibile valore reale.
Possiamo invece scegliere una famiglia continua, per esempio:
\[ O\mid S \sim \mathcal{N} \left( \mu(S), \sigma^2(S) \right). \]La funzione produce:
\[ f_\theta(S) = \left( \mu_\theta(S), \sigma_\theta(S) \right). \]Quindi:
\[ \boxed{ p_\theta(O\mid S) = \mathcal{N} \left( O; \mu_\theta(S), \sigma_\theta^2(S) \right) }. \]50. Quando utilizzare una distribuzione normale
Una normale è ragionevole quando, dato lo stato, l’osservazione tende a distribuirsi attorno a un valore centrale con errori approssimativamente simmetrici.
\[ O\mid S \sim \mathcal{N} \left( \mu(S), \sigma^2(S) \right). \]La densità è:
\[ p(O\mid S) = \frac{1}{\sqrt{2\pi\sigma^2(S)}} \exp \left[ – \frac{(O-\mu(S))^2} {2\sigma^2(S)} \right]. \]51. Media e varianza possono dipendere dallo stato
Modello con varianza costante:
\[ p(O\mid S) = \mathcal{N} \left( O; \mu_\theta(S), \sigma^2 \right). \]Modello con varianza dipendente dallo stato:
\[ p_\theta(O\mid S) = \mathcal{N} \left( O; \mu_\theta(S), \sigma_\theta^2(S) \right). \]Poiché \(\sigma>0\), si può trasformare un output libero \(r\) mediante:
\[ \sigma=e^r \]oppure:
\[ \sigma = \operatorname{softplus}(r) = \log(1+e^r). \]52. Osservazioni multidimensionali
\[ O= \begin{pmatrix} O_1\\ \vdots\\ O_d \end{pmatrix}. \]Possiamo utilizzare:
\[ O\mid S \sim \mathcal{N} \left( \boldsymbol{\mu}(S), \Sigma(S) \right). \]\(\boldsymbol{\mu}(S)\) è il vettore delle medie; \(\Sigma(S)\) è la matrice di covarianza.
Gli elementi diagonali di \(\Sigma\) rappresentano le varianze, mentre quelli fuori diagonale rappresentano le covarianze tra componenti.
53. La normale non è appropriata per ogni variabile continua
Variabili positive
\[ O>0. \]Possibili modelli:
\[ O\sim\operatorname{Gamma}(\alpha,\beta) \]oppure:
\[ O\sim\operatorname{LogNormal}(\mu,\sigma^2). \]Proporzioni continue
\[ 0Se la variabilità è maggiore di quella compatibile con una Poisson, può essere preferibile una binomiale negativa.
Variabili binarie
\[ O\sim\operatorname{Bernoulli}(p). \]Con:
\[ p = \operatorname{sigmoid}(f_\theta(S)). \]54. Tabella pratica per scegliere la distribuzione
| Tipo di variabile | Esempio | Distribuzione | Parametri | Trasformazione tipica |
|---|---|---|---|---|
| Binaria | Acceso / spento | Bernoulli | \(p\) | Sigmoid |
| Categorica | Gatto / cane / cavallo | Categorical | \(\pi_1,\ldots,\pi_K\) | Softmax |
| Conteggio | Numero di eventi | Poisson | \(\lambda\) | Exp o softplus |
| Conteggio sovradisperso | Eventi molto variabili | Binomiale negativa | Dipende dalla parametrizzazione | Trasformazioni positive |
| Reale circa simmetrica | Temperatura | Normale | \(\mu,\sigma\) | Identità per \(\mu\), exp o softplus per \(\sigma\) |
| Vettore continuo | Posizione \(x,y,z\) | Normale multivariata | \(\boldsymbol{\mu},\Sigma\) | Parametrizzazione valida di \(\Sigma\) |
| Positiva continua | Durata | Gamma o Log-normal | Dipende dalla distribuzione | Trasformazioni positive |
| Proporzione continua | Valore tra 0 e 1 | Beta | \(\alpha,\beta\) | Exp o softplus |
55. La scelta della distribuzione è un’ipotesi sul mondo
Scrivere:
\[ O\mid S \sim \mathcal{N}(\mu(S),\sigma^2(S)) \]significa assumere una struttura gaussiana dell’incertezza.
Scrivere:
\[ O\mid S \sim \operatorname{Categorical}(\pi(S)) \]significa assumere che l’osservazione appartenga a un insieme finito di alternative.
Scrivere:
\[ O\mid S \sim \operatorname{Poisson}(\lambda(S)) \]significa assumere una specifica struttura probabilistica per un processo di conteggio.
56. Il principio generale: la funzione produce i parametri della distribuzione
\[ \boxed{ f_\theta(S) \longrightarrow \eta(S) \longrightarrow p(O\mid S;\eta(S)) }. \]Per una Categorical:
\[ \eta=\pi. \]Per una normale:
\[ \eta=(\mu,\sigma). \]Per una Poisson:
\[ \eta=\lambda. \]Per una Beta:
\[ \eta=(\alpha,\beta). \]Per una normale multivariata:
\[ \eta=(\boldsymbol{\mu},\Sigma). \]57. Trasformazioni diverse per vincoli diversi
| Vincolo | Trasformazione tipica |
|---|---|
| \(0<p<1\) | Sigmoid |
| \(\pi_k>0\), \(\sum_k\pi_k=1\) | Softmax |
| \(\lambda>0\) | Exp o softplus |
| \(\sigma>0\) | Exp o softplus |
| \(\mu\in\mathbb{R}\) | Nessuna trasformazione obbligatoria |
58. Active Inference continua: generalizzazione della matrice A
Nel caso discreto:
\[ A_{o,s}=P(O=o\mid S=s). \]Nel caso continuo possiamo avere:
\[ O_t=g(S_t)+\epsilon_t, \] \[ \epsilon_t\sim\mathcal{N}(0,\Sigma). \]Quindi:
\[ p(O_t\mid S_t) = \mathcal{N} \left( O_t; g(S_t), \Sigma \right). \]Se \(g=g_\theta\):
\[ p_\theta(O_t\mid S_t) = \mathcal{N} \left( O_t; g_\theta(S_t), \Sigma \right). \]59. Anche B può essere reso parametrico
Nel modello discreto:
\[ B_{s’,s,u} = P(S_{t+1}=s’\mid S_t=s,U_t=u). \]Nel caso continuo:
\[ S_{t+1} = h_\theta(S_t,U_t)+\epsilon_t, \] \[ \epsilon_t\sim\mathcal{N}(0,Q). \]Quindi:
\[ p_\theta(S_{t+1}\mid S_t,U_t) = \mathcal{N} \left( S_{t+1}; h_\theta(S_t,U_t), Q \right). \]60. Matrice o funzione parametrica?
| Situazione | Rappresentazione naturale |
|---|---|
| Pochi stati e osservazioni discrete | Matrice o tabella |
| Molti stati discreti strutturati | Funzione parametrica |
| Stati continui | Funzione parametrica o modello analitico |
| Osservazioni continue | Densità parametrica |
| Immagini, suoni, testo | Tipicamente rete neurale |
| Massima interpretabilità tabellare | Matrice, se dimensionalmente possibile |
61. Distribuzione e parametrizzazione sono scelte differenti
Prima si sceglie una famiglia probabilistica coerente con la variabile. Poi si decide come determinarne i parametri.
I parametri possono essere:
- fissati manualmente;
- memorizzati in una tabella;
- stimati tramite conteggi;
- inferiti in modo bayesiano;
- prodotti da una funzione analitica;
- prodotti da una rete neurale.
62. Un procedimento sistematico per scegliere il modello
Passo 1: determinare il supporto
\[ \{\text{categorie}\}, \quad \{0,1,2,\ldots\}, \quad \mathbb{R}, \quad \mathbb{R}^{+}, \quad (0,1), \quad \mathbb{R}^d. \]Passo 2: determinare il tipo di variabile
Categorica, discreta numerica, continua scalare o continua multidimensionale.
Passo 3: caratterizzare l’incertezza
- simmetrica o asimmetrica;
- limitata o illimitata;
- unimodale o multimodale;
- con code leggere o pesanti;
- con varianza costante o dipendente dallo stato.
Passo 4: scegliere una distribuzione compatibile
\[ \text{categorie} \rightarrow \operatorname{Categorical}, \] \[ \text{binario} \rightarrow \operatorname{Bernoulli}, \] \[ \text{conteggi} \rightarrow \operatorname{Poisson}, \] \[ \text{reali circa simmetrici} \rightarrow \mathcal{N}, \] \[ \text{positivi asimmetrici} \rightarrow \operatorname{Gamma} \text{ o } \operatorname{LogNormal}, \] \[ (0,1) \rightarrow \operatorname{Beta}. \]Passo 5: valutare la dimensione dello spazio degli stati
Spazio piccolo: tabella possibile. Spazio grande o continuo: funzione parametrica.
Passo 6: valutare la necessità di generalizzazione
Se stati simili devono condividere informazione, una parametrizzazione condivisa è particolarmente utile.
Passo 7: determinare i parametri da produrre
\[ f_\theta(S)\rightarrow\eta(S). \]Passo 8: imporre i vincoli corretti
\[ \operatorname{sigmoid}, \qquad \operatorname{softmax}, \qquad \exp, \qquad \operatorname{softplus}. \]63. Tre esempi completi
63.1 Sensore con tre segnali
\[ O\in\{\text{rosso},\text{verde},\text{blu}\}. \]Se esistono pochi stati:
\[ A_{o,s}=P(O=o\mid S=s). \]63.2 Classificazione di immagini
Se \(S\) è un’immagine:
\[ z=f_\theta(S), \] \[ P_\theta(O\mid S) = \operatorname{Categorical} \left( \operatorname{softmax}(z) \right). \]63.3 Sensore continuo
\[ O=g_\theta(S)+\epsilon, \] \[ \epsilon\sim\mathcal{N}(0,\sigma^2), \] \[ p_\theta(O\mid S) = \mathcal{N} \left( O; g_\theta(S), \sigma^2 \right). \]64. Previsione puntuale e previsione probabilistica
Previsione puntuale:
\[ \hat{O}=f_\theta(S). \]Per esempio:
\[ \hat{O}=21.4. \]Previsione probabilistica:
\[ O\mid S \sim \mathcal{N}(21.4,0.8^2). \]La seconda descrive anche l’incertezza.
65. Matrice, funzione e distribuzione non sono equivalenti
Distribuzione
\[ P(O\mid S) \quad\text{o}\quad p(O\mid S). \]Descrive l’incertezza.
Matrice
\[ A_{o,s}=P(O=o\mid S=s). \]È una rappresentazione tabellare.
Funzione parametrica
\[ f_\theta(S)\rightarrow\eta(S). \]Determina i parametri della distribuzione.
66. Una visione unificata
\[ \boxed{ S \longrightarrow \eta(S) \longrightarrow p(O\mid S;\eta(S)) }. \]Nel caso tabellare:
\[ \eta(S)=A[:,S]. \]Nel caso categorico parametrico:
\[ \eta(S) = \operatorname{softmax}(f_\theta(S)). \]Nel caso gaussiano:
\[ \eta(S) = \left( \mu_\theta(S), \sigma_\theta(S) \right). \]Nel caso Poisson:
\[ \eta(S)=\lambda_\theta(S). \]67. Il caso categorico riassunto
\[ \boxed{ P_\theta(O=o_k\mid S=s) = \frac{ \exp(f_{\theta,k}(s)) }{ \sum_{j=1}^{K}\exp(f_{\theta,j}(s)) } }. \]Se il modello è lineare:
\[ \boxed{ P_\theta(O=o_k\mid S=s) = \frac{ \exp(w_k^Ts+b_k) }{ \sum_j\exp(w_j^Ts+b_j) } }. \]Durante la previsione:
\[ \boxed{ \theta+S \rightarrow P_\theta(O\mid S) }. \]Durante l’apprendimento:
\[ \boxed{ (S,O) \rightarrow P_\theta(O\mid S) \rightarrow \mathcal{L} \rightarrow \nabla_\theta\mathcal{L} \rightarrow \theta_{\text{new}} }. \]68. Il gradiente del caso categorico riassunto
Forward:
\[ z=WS+b, \] \[ \pi=\operatorname{softmax}(z). \]Log-likelihood:
\[ L=o^T\log\pi. \]Gradiente sui logits:
\[ \boxed{ \nabla_zL=o-\pi }. \]Gradiente sui pesi:
\[ \boxed{ \nabla_WL=(o-\pi)S^T }. \]Elemento per elemento:
\[ \boxed{ \frac{\partial L}{\partial W_{kj}} = (o_k-\pi_k)S_j }. \]Gradiente sui bias:
\[ \boxed{ \nabla_bL=o-\pi }. \]Con negative log-likelihood:
\[ \boxed{ \nabla_W\mathcal{L} = (\pi-o)S^T }. \] \[ \boxed{ \nabla_b\mathcal{L} = \pi-o }. \]69. Regola pratica finale
\[ \boxed{ \text{tipo della variabile} \rightarrow \text{supporto} \rightarrow \text{distribuzione} \rightarrow \text{parametri} \rightarrow \text{rappresentazione} \rightarrow \text{metodo di apprendimento} }. \]Se stati e osservazioni sono discreti, finiti e poco numerosi, matrici come \(A\) e \(B\) possono rappresentare direttamente le distribuzioni condizionate.
Se lo spazio degli stati è grande, strutturato o continuo, una funzione parametrica evita l’enumerazione completa e consente la condivisione dell’informazione tra stati differenti.
Se l’osservazione è categorica:
\[ f_\theta(S) \rightarrow z \rightarrow \operatorname{softmax} \rightarrow P_\theta(O\mid S). \]Se l’osservazione è continua:
\[ f_\theta(S) \rightarrow (\mu,\sigma) \rightarrow \mathcal{N}(\mu,\sigma^2). \]Nel caso categorico lineare, l’apprendimento può essere condensato in:
\[ \boxed{ W_{\text{new}} = W_{\text{old}} + \eta(o-\pi)S^T } \]se si massimizza la log-likelihood, oppure:
\[ \boxed{ W_{\text{new}} = W_{\text{old}} – \eta(\pi-o)S^T } \]se si minimizza la negative log-likelihood.
Questa formula mostra in modo concreto come stato, osservazione, probabilità predetta e parametri si incontrino durante l’apprendimento:
\[ \boxed{ \text{correzione del peso} = \text{errore probabilistico della categoria} \times \text{attivazione dell’input} }. \]In ultima analisi, matrici, funzioni parametriche e distribuzioni non sono concetti concorrenti, ma livelli differenti dello stesso modello: la distribuzione definisce l’incertezza, la parametrizzazione definisce come tale distribuzione viene costruita e l’apprendimento definisce come i parametri cambiano alla luce dei dati.
\[ \boxed{ S \longrightarrow \text{parametri} \longrightarrow P(O\mid S) \longrightarrow \text{confronto con }O \longrightarrow \text{aggiornamento dei parametri} }. \]Da P(O|S) a P(Y|X): la formulazione probabilistica delle reti neurali supervisionate
Nella formulazione precedente avevamo considerato uno stato \(S\) e un’osservazione \(O\), con l’obiettivo di descrivere:
\[ P(O\mid S). \]Cioè: dato lo stato \(S\), quale distribuzione di probabilità dobbiamo assegnare alle possibili osservazioni \(O\)?
Nel linguaggio più comune del machine learning supervisionato, una struttura analoga è:
\[ \boxed{ P_\theta(Y\mid X) }. \]Qui \(X\) rappresenta l’input fornito alla rete neurale, mentre \(Y\) rappresenta la variabile di output o target che vogliamo predire.
1. Il parallelismo tra S, O e X, Y
Dal punto di vista matematico possiamo costruire il parallelismo:
\[ \boxed{ S\longleftrightarrow X } \]e:
\[ \boxed{ O\longleftrightarrow Y. } \]Di conseguenza:
\[ \boxed{ P(O\mid S) \longleftrightarrow P_\theta(Y\mid X). } \]Esiste però una distinzione concettuale importante. Nell’Active Inference \(S\) rappresenta spesso uno stato latente, cioè una causa del mondo che non osserviamo necessariamente in modo diretto.
Nel supervised learning, invece, \(X\) è generalmente un input direttamente disponibile:
- un’immagine;
- un vettore di caratteristiche;
- un segnale;
- un testo;
- una serie temporale;
- un insieme di misure.
Il ruolo matematico nella distribuzione condizionata è però analogo:
\[ \boxed{ \text{dato l’input} \rightarrow \text{distribuzione dell’output}. } \]2. Il problema fondamentale diventa P(Y|X)
Nel supervised learning probabilistico vogliamo quindi modellare:
\[ \boxed{ X \longrightarrow P_\theta(Y\mid X). } \]La domanda è:
Dato un particolare input \(X=x\), quali valori di \(Y\) sono plausibili e con quale probabilità?
I parametri:
\[ \theta \]vengono appresi dai dati.
3. La rete non sceglie necessariamente da sola la famiglia di distribuzione
È importante distinguere due problemi.
Il primo è scegliere quale famiglia probabilistica sia appropriata per \(Y\).
Il secondo è imparare i parametri di quella distribuzione.
In genere la famiglia viene scelta dal progettista in base alla natura della variabile \(Y\).
Se \(Y\) è categorica:
\[ Y\mid X \sim \operatorname{Categorical} \left( \boldsymbol{\pi}_\theta(X) \right). \]Se \(Y\) è continua e una distribuzione normale è appropriata:
\[ Y\mid X \sim \mathcal{N} \left( \mu_\theta(X), \sigma_\theta^2(X) \right). \]La rete apprende quindi tipicamente i parametri della distribuzione condizionata.
4. Caso categorico
Supponiamo che:
\[ Y\in\{1,2,\ldots,K\}. \]Vogliamo costruire:
\[ P_\theta(Y\mid X). \]Cioè il vettore:
\[ \boldsymbol{\pi}_\theta(X) = \begin{pmatrix} P_\theta(Y=1\mid X)\\ P_\theta(Y=2\mid X)\\ \vdots\\ P_\theta(Y=K\mid X) \end{pmatrix}. \]Deve valere:
\[ \pi_k\geq0 \]e:
\[ \sum_{k=1}^{K}\pi_k=1. \]5. Il modello lineare: z = WX + b
Nel caso più semplice introduciamo una trasformazione lineare:
\[ \boxed{ z=WX+b. } \]Supponiamo che l’input abbia \(d\) componenti:
\[ X= \begin{pmatrix} X_1\\ X_2\\ \vdots\\ X_d \end{pmatrix} \in \mathbb{R}^{d\times1}. \]La matrice dei pesi è:
\[ W \in \mathbb{R}^{K\times d}. \]Il bias è:
\[ b \in \mathbb{R}^{K\times1}. \]Quindi:
\[ \underbrace{W}_{K\times d} \underbrace{X}_{d\times1} + \underbrace{b}_{K\times1} = \underbrace{z}_{K\times1}. \]6. Che cosa rappresenta z?
Il vettore:
\[ z= \begin{pmatrix} z_1\\ z_2\\ \vdots\\ z_K \end{pmatrix} \]non contiene ancora probabilità.
Le sue componenti sono chiamate:
- score;
- oppure, nel contesto della softmax, logits.
Il logit della categoria \(k\) è:
\[ \boxed{ z_k=w_k^TX+b_k. } \]Qui \(w_k^T\) è la riga \(k\)-esima della matrice \(W\).
Esplicitamente:
\[ z_k = W_{k1}X_1 + W_{k2}X_2 + \cdots + W_{kd}X_d + b_k. \]Possiamo interpretare \(z_k\) come uno score di compatibilità tra l’input \(X\) e la categoria \(Y=k\).
7. Gli score non sono ancora probabilità
I valori:
\[ z_1,z_2,\ldots,z_K \]possono essere positivi, negativi o arbitrariamente grandi.
Per esempio:
\[ z= \begin{pmatrix} 2.1\\ 1.5\\ -0.6 \end{pmatrix}. \]Non possiamo interpretarli direttamente come:
\[ P(Y=k\mid X). \]Per ottenere probabilità dobbiamo trasformarli.
8. La softmax trasforma gli score in probabilità
Definiamo:
\[ \boxed{ \pi_k(X) = P_\theta(Y=k\mid X) = \frac{e^{z_k}} {\sum_{j=1}^{K}e^{z_j}}. } \]Poiché:
\[ z_k=w_k^TX+b_k, \]possiamo scrivere direttamente:
\[ \boxed{ P_\theta(Y=k\mid X) = \frac{ \exp(w_k^TX+b_k) }{ \displaystyle \sum_{j=1}^{K} \exp(w_j^TX+b_j) }. } \]Questa formula mostra in modo esplicito come l’input \(X\) e i parametri \(W,b\) determinino la probabilità di ciascun possibile valore di \(Y\).
9. La distribuzione completa P(Y|X)
La rete non produce soltanto la probabilità di una classe. Produce simultaneamente:
\[ \boxed{ P_\theta(Y\mid X) = \begin{pmatrix} P_\theta(Y=1\mid X)\\ P_\theta(Y=2\mid X)\\ \vdots\\ P_\theta(Y=K\mid X) \end{pmatrix}. } \]In forma compatta:
\[ \boxed{ \boldsymbol{\pi}_\theta(X) = \operatorname{softmax}(WX+b). } \]La struttura fondamentale è quindi:
\[ \boxed{ X \longrightarrow z=WX+b \longrightarrow \operatorname{softmax}(z) \longrightarrow P_\theta(Y\mid X). } \]10. Interpretazione dei diversi passaggi
\[ \boxed{ \text{input} \longrightarrow \text{score / logits} \longrightarrow \text{probabilità normalizzate} \longrightarrow \text{distribuzione di }Y\mid X }. \]Più precisamente:
- \(X\) contiene l’informazione disponibile;
- \(W\) e \(b\) sono parametri appresi;
- \(z_k\) è lo score associato alla categoria \(k\);
- la softmax confronta simultaneamente tutti gli score;
- \(\pi_k\) è la probabilità condizionata \(P_\theta(Y=k\mid X)\).
11. Durante la previsione Y non è ancora noto
Un punto fondamentale è che la rete non utilizza il valore vero di \(Y\) per produrre la previsione.
Durante il forward pass conosciamo:
\[ X \]e i parametri:
\[ \theta=\{W,b\}. \]Da questi costruiamo:
\[ \boxed{ X+\theta \longrightarrow P_\theta(Y\mid X). } \]Il valore vero di \(Y\) entra successivamente, quando dobbiamo valutare la qualità della previsione.
12. Il target Y come vettore one-hot
Se la classe corretta è \(c\), possiamo rappresentare il target come:
\[ y= \begin{pmatrix} y_1\\ y_2\\ \vdots\\ y_K \end{pmatrix}. \]Con:
\[ y_c=1 \]e:
\[ y_k=0 \qquad k\neq c. \]Per esempio, se \(K=3\) e la classe corretta è la seconda:
\[ y= \begin{pmatrix} 0\\ 1\\ 0 \end{pmatrix}. \]13. Likelihood categorica
Se:
\[ \pi_k=P_\theta(Y=k\mid X), \]la likelihood della categoria effettivamente osservata può essere scritta:
\[ \boxed{ P_\theta(Y\mid X) = \prod_{k=1}^{K} \pi_k^{y_k}. } \]Gli esponenti \(y_k\) agiscono come selettori.
Se la classe corretta è \(c\):
\[ P_\theta(Y\mid X)=\pi_c. \]14. Log-likelihood
Prendendo il logaritmo:
\[ L = \log P_\theta(Y\mid X). \]Otteniamo:
\[ \boxed{ L = \sum_{k=1}^{K} y_k\log\pi_k. } \]Poiché il target è one-hot:
\[ L = \log\pi_c = \log P_\theta(Y=c\mid X). \]Massimizzare la log-likelihood significa quindi aumentare la probabilità assegnata dalla rete alla classe effettivamente osservata.
15. Negative log-likelihood e cross-entropy
In machine learning si minimizza più frequentemente:
\[ \mathcal{L} = -L. \]Quindi:
\[ \boxed{ \mathcal{L} = – \sum_{k=1}^{K} y_k\log\pi_k. } \]Questa è la cross-entropy categorica.
16. Gradiente rispetto agli score z
Per la log-likelihood:
\[ \boxed{ \frac{\partial L}{\partial z_k} = y_k-\pi_k. } \]Vettorialmente:
\[ \boxed{ \nabla_zL = y-\pi. } \]Per la negative log-likelihood:
\[ \boxed{ \nabla_z\mathcal{L} = \pi-y. } \]17. Gradiente rispetto alla matrice W
Ricordiamo:
\[ z=WX+b. \]Per ogni singolo peso:
\[ z_k = \sum_{j=1}^{d} W_{kj}X_j+b_k. \]Quindi:
\[ \frac{\partial z_k}{\partial W_{kj}} = X_j. \]Applicando la regola della catena:
\[ \frac{\partial L}{\partial W_{kj}} = \frac{\partial L}{\partial z_k} \frac{\partial z_k}{\partial W_{kj}}. \]Otteniamo:
\[ \boxed{ \frac{\partial L}{\partial W_{kj}} = (y_k-\pi_k)X_j. } \]18. Gradiente di W in forma matriciale
Abbiamo:
\[ y-\pi \in \mathbb{R}^{K\times1} \]e:
\[ X^T \in \mathbb{R}^{1\times d}. \]Il loro prodotto esterno è:
\[ \underbrace{(y-\pi)}_{K\times1} \underbrace{X^T}_{1\times d} = \underbrace{\nabla_WL}_{K\times d}. \]Quindi:
\[ \boxed{ \nabla_WL = (y-\pi)X^T. } \]Per la loss da minimizzare:
\[ \boxed{ \nabla_W\mathcal{L} = (\pi-y)X^T. } \]19. Gradiente rispetto al bias
Poiché:
\[ z_k=w_k^TX+b_k, \]abbiamo:
\[ \frac{\partial z_k}{\partial b_k}=1. \]Pertanto:
\[ \boxed{ \frac{\partial L}{\partial b_k} = y_k-\pi_k. } \]Vettorialmente:
\[ \boxed{ \nabla_bL = y-\pi. } \]Per la negative log-likelihood:
\[ \boxed{ \nabla_b\mathcal{L} = \pi-y. } \]20. Aggiornamento dei parametri
Se massimizziamo la log-likelihood:
\[ \boxed{ W_{\text{new}} = W_{\text{old}} + \eta(y-\pi)X^T. } \] \[ \boxed{ b_{\text{new}} = b_{\text{old}} + \eta(y-\pi). } \]Se invece minimizziamo la negative log-likelihood:
\[ \boxed{ W_{\text{new}} = W_{\text{old}} – \eta(\pi-y)X^T. } \] \[ \boxed{ b_{\text{new}} = b_{\text{old}} – \eta(\pi-y). } \]Le due formulazioni sono equivalenti.
21. Significato dell’aggiornamento di ogni peso
Per un singolo peso:
\[ \boxed{ \Delta W_{kj} \propto (y_k-\pi_k)X_j. } \]La modifica dipende quindi da:
\[ \boxed{ \text{errore probabilistico} \times \text{attivazione dell’input}. } \]Se \(X_j=0\), quel particolare input non contribuisce all’aggiornamento di \(W_{kj}\) per quell’esempio.
22. Struttura completa del forward e backward pass
Il forward pass è:
\[ \boxed{ X \xrightarrow{W,b} z=WX+b \xrightarrow{\operatorname{softmax}} \pi = P_\theta(Y\mid X). } \]Una volta noto il target \(Y\):
\[ \boxed{ (y,\pi) \longrightarrow \mathcal{L}. } \]Il backward pass è:
\[ \boxed{ \nabla_z\mathcal{L} = \pi-y, } \] \[ \boxed{ \nabla_W\mathcal{L} = (\pi-y)X^T, } \] \[ \boxed{ \nabla_b\mathcal{L} = \pi-y. } \]23. Il caso di una rete neurale profonda
In una vera rete neurale, l’espressione:
\[ z=WX+b \]può rappresentare direttamente un classificatore lineare, oppure soltanto l’ultimo strato della rete.
Gli strati precedenti costruiscono una rappresentazione:
\[ h=f_{\theta_h}(X). \]L’ultimo strato calcola:
\[ z = W_{\mathrm{out}}h+b_{\mathrm{out}}. \]Poi:
\[ \pi = \operatorname{softmax}(z). \]Quindi:
\[ \boxed{ X \longrightarrow h \longrightarrow z \longrightarrow \operatorname{softmax}(z) \longrightarrow P_\theta(Y\mid X). } \]Gli strati nascosti imparano una rappresentazione dell’input; l’ultimo strato associa alla rappresentazione uno score per ciascuna categoria.
24. Dalla classificazione alla formulazione probabilistica generale
Il principio generale non dipende dalla variabile categorica.
Possiamo scrivere:
\[ \boxed{ X \xrightarrow{f_\theta} \eta(X) \longrightarrow P_\theta(Y\mid X), } \]dove \(\eta(X)\) rappresenta i parametri della distribuzione scelta.
Nel caso categorico:
\[ \eta(X)=\boldsymbol{\pi}(X). \]Nel caso normale:
\[ \eta(X) = \left( \mu_\theta(X), \sigma_\theta(X) \right). \]Nel caso Poisson:
\[ \eta(X) = \lambda_\theta(X). \]25. Se Y è continua
Supponiamo che:
\[ Y\in\mathbb{R}. \]Se assumiamo una distribuzione normale:
\[ Y\mid X \sim \mathcal{N} \left( \mu_\theta(X), \sigma_\theta^2(X) \right). \]La rete non produce più \(K\) probabilità tramite softmax. Produce invece i parametri:
\[ \mu_\theta(X) \]e:
\[ \sigma_\theta(X). \]La struttura diventa:
\[ \boxed{ X \longrightarrow (\mu_\theta(X),\sigma_\theta(X)) \longrightarrow p_\theta(Y\mid X). } \]26. Confronto con la formulazione S → P(O|S)
Nella formulazione generativa precedente avevamo:
\[ \boxed{ S \longrightarrow P(O\mid S). } \]Nel supervised learning probabilistico abbiamo:
\[ \boxed{ X \longrightarrow P_\theta(Y\mid X). } \]Il parallelismo strutturale è:
\[ \boxed{ S\leftrightarrow X, \qquad O\leftrightarrow Y. } \]Ma il significato delle variabili può essere differente: \(S\) può essere latente, mentre \(X\) è normalmente osservato.
27. La rete non restituisce necessariamente soltanto una previsione puntuale
Una visione semplificata della rete è:
\[ X\rightarrow\hat{Y}. \]Una formulazione probabilistica più generale è invece:
\[ \boxed{ X \rightarrow P_\theta(Y\mid X). } \]In questo modo il modello non specifica soltanto quale risultato considera più probabile, ma può descrivere anche l’incertezza associata agli output.
28. Schema riassuntivo del caso categorico
Input:
\[ X\in\mathbb{R}^{d\times1}. \]Parametri:
\[ W\in\mathbb{R}^{K\times d}, \qquad b\in\mathbb{R}^{K\times1}. \]Score:
\[ \boxed{ z=WX+b. } \]Singolo score:
\[ \boxed{ z_k=w_k^TX+b_k. } \]Probabilità:
\[ \boxed{ \pi_k = P_\theta(Y=k\mid X) = \frac{e^{z_k}} {\sum_j e^{z_j}}. } \]Distribuzione completa:
\[ \boxed{ \pi = \operatorname{softmax}(WX+b) = P_\theta(Y\mid X). } \]Target:
\[ y\in\mathbb{R}^{K\times1}. \]Log-likelihood:
\[ \boxed{ L = y^T\log\pi. } \]Gradiente rispetto agli score:
\[ \boxed{ \nabla_zL=y-\pi. } \]Gradiente rispetto ai pesi:
\[ \boxed{ \nabla_WL = (y-\pi)X^T. } \]Gradiente rispetto al bias:
\[ \boxed{ \nabla_bL = y-\pi. } \]29. Visione finale
La struttura fondamentale del supervised learning probabilistico è:
\[ \boxed{ X \longrightarrow \text{parametri della distribuzione} \longrightarrow P_\theta(Y\mid X). } \]Nel caso categorico con un ultimo strato lineare:
\[ \boxed{ X \longrightarrow WX+b \longrightarrow z \longrightarrow \operatorname{softmax}(z) \longrightarrow P_\theta(Y\mid X). } \]Qui:
- \(X\) è l’input;
- \(W\) e \(b\) sono parametri appresi;
- \(z\) contiene score o logits;
- la softmax trasforma gli score in probabilità;
- \(P_\theta(Y\mid X)\) è la distribuzione condizionata cercata;
- \(Y\) osservato permette di valutare la previsione e aggiornare i parametri.
Il ciclo completo di apprendimento è quindi:
\[ \boxed{ X \rightarrow z \rightarrow P_\theta(Y\mid X) \rightarrow \text{confronto con }Y \rightarrow \mathcal{L} \rightarrow \nabla_\theta\mathcal{L} \rightarrow \theta_{\text{new}}. } \]Questo è il corrispettivo, nel linguaggio delle reti neurali supervisionate, della relazione generativa:
\[ \boxed{ S \rightarrow P(O\mid S). } \]La differenza essenziale è quindi soprattutto nel significato assegnato alle variabili, mentre la struttura matematica della distribuzione condizionata rimane profondamente analoga.