Nella presente lezione analizzeremo la capacità rappresentativa delle reti a strati con funzione di output di tipo sigmoidale.
Tuttavia, prima di iniziare con tale argomento, faremo una digressione storica sul perceptron.
Reti neurali con un singolo strato di pesi ed un neurone di uscita, con funzione di output, g, a soglia, furono studiate da Rosenblatt (1962).
Tali reti furono chiamate perceptrons.
Queste reti furono applicate a problemi di classificazioni, dove i valori di input erano estratti, in genere, da immagini binarie.
Tali immagini rappresentavano forme semplici, come ad esempio i caratteri alfanumerici.
Il valore di output del perceptron è dato da:
y=g(∑k wk Φk (x))
dove:
x è un vettore di 0 ed 1 rappresentate l’immagine binaria,
Φk sono funzioni a soglia che dipendono solo da poche componenti del vettore x,
g è una funzione a soglia. Ad esempio la funzione di Heaviside (cioè g(a)=-1 se a<0, altrimenti g(a)=1).
In un famoso libro, Perceptrons (1969), Minsky e Papert mostrarono che ci sono molti tipi di problemi di classificazione che un perceptron non può risolvere.
Precedentemente abbiamo visto che con un singolo neurone con funzione di output a soglia è possibile risolvere solo problemi linearmente separabili. Il perceptron, grazie alle funzioni Φk (x), potrebbe, però, “mappare” un problema non linearmente separabile in uno linearmente separabile.
La critica di Minsky e Papert, perciò, non nasce tanto dal fatto che con un solo neurone risolvo solo problemi linearmente separabili ma dal fatto che le funzioni Φk (x) sono fissate “a priori” e non possono essere adattate al particolare problema (Abbiamo visto nelle lezioni precedenti che, invece, è possibile considerare una sorta di perceptron in cui anche le funzioni Φk (x) sono adattabili, e così superare tale critica).
Vediamo, quindi, un tipico problema riportato da Minsky e Papert per cui il perceptron non può essere utilizzato.
Il problema è quello di determinare se una immagine geometrica binaria sia semplicemente connessa oppure no, con le funzioni Φ1 (x) e Φ2 (x) con campi recettivi come in figura.
Supponiamo che le forme connesse debbano essere classificate con 1 , mentre le altre -1.
Supponiamo che l’input per le funzioni Φk (x) sia piccolo rispetto alle immagini e fissato, come in figura.
Allora per la prima immagine (in alto a sinistra) la somma pesata delle funzioni Φk (x) deve essere minore di zero, affinché la reti risponda correttamente -1.
Per la seconda immagine (in alto a destra) la rete dovrebbe rispondere +1, ma l’unica differenza nell’immagine, rispetto alla prima, è nella parte sinistra, quindi tale cambiamento deve produrre un incremento nella somma pesata.
Analogamente per la terza immagine (in basso a sinistra) la rete dovrebbe rispondere +1, ma l’unica differenza nell’immagine, rispetto alla prima, è nella parte destra, quindi tale cambiamento deve produrre ancora una volta un incremento nella somma pesata.
Per la quarta immagine la rete dovrebbe rispondere, invece, -1, ma tale immagine differisce dalla prima per la parte sinistra (allo stesso modo della seconda immagine) e per la parte destra (allo stesso modo della terza immagine), quindi tale cambiamento deve produrre, ancora una volta, un incremento nella somma pesata. Allora, sulla quarta immagine la rete non può rispondere -1.
Reti neurali feed-forward a strati sono in genere utilizzate con:
Perchè scegliamo la funzione sigmoidale s(x) come funzione di output dei nodi della rete?
Vediamo una possibile giustificazione della scelta della funzione s(x).
Si può dimostrare:
Se ipotizziamo che la distribuzione di probabilità di x condizionata alla classe, p(x/ Ck), sia una gaussiana l’uso di una funzione di output sigmoidale permette di interpretare l’output del rete feed-forward come una probabilità a-posteriori.
Mostriamo tale dimostrazione, supponendo, per semplicità, di avere d=1.
Possiamo scrivere:
Dove a=ln [p(x/C1)P(C1)/ p(x/C2)P(C2)]
Se sostituiamo (1) in (2) otteniamo:
a=wx+w0
dove w=(μ1-μ2)/σ2 e w0=-(1/2)μ1/σ2 +(1/2)μ22/σ2 +ln[P(C1)/ P(C2)]
Avere come funzione di output la funzione sigmoidale s(x)=1/(1+e-x) permette di interpretare l’output della rete come probabilità condizionata P(C/x).
In pratica molto spesso invece di s(x) è utilizzata la funzione tanh, cioè
tanh(x)= (ex -e-x)/( ex +e-x)
in quanto reti neurali con tale funzione spesso “apprendono più velocemente”.
Osservazione 1
Osserviamo che s(x) differisce da tanh(x) solo per una trasformazione lineare:
2s(2x)-1=tangh(x)
quindi una rete neurale con funzione di attivazione pari a s(x) è equivalente a una rete neurale con funzione di attivazione pari a tanh(x) ma con pesi e bias differenti.
Osservazione 2
Un nodo con funzione di attivazione pari a s(x) (o tangh) può approssimare un nodo con funzione di attivazione lineare con una accuratezza arbitraria e
Un nodo con funzione di attivazione pari a s(x) (0 tangh) può approssimare un nodo con funzione di attivazione a gradino con una accuratezza arbitraria, semplicemente scalando i pesi e i bias.
Consideriamo, ora, reti neurali con due strati, nodi interni con funzione di output sigmoidale e con funzione di output dei nodi di output lineare.
Osserviamo che, in generale, data una rete a due strati, l’output dei nodi interni è dato da
zk=f1(∑jw(1)kj*xj)
l’output dei nodi di output e’
oh=f2(∑kw(2)hk*zk)= f2(∑kw(2)hk* f1(∑jw(1)kj*xj))
Se consideriamo f2 lineare possiamo scrivere:
oh= ∑kw(2)hk* kΦ(x) [3]
con Φk(x)= f2(f1(∑jw(1)kj*xj))
quindi oh e’ dato da una combinazione lineare di funzioni non lineari Φk(x).
Per una opportuna scelta delle funzioni Φk(x), talvolta chiamate funzioni di base, la funzione [3] può approssimare qualunque funzione continua con precisione arbitraria.
E’ possibile dimostrare che se scegliamo f1=s(x) (funzione sigmoide) e f2 lineare una rete neurale a due strati può approssimare ogni funzione continua da uno spazio finito dimensionale ad un altro con precisione arbitraria, con la condizione di avere un numero sufficiente di nodi interni (Funahashi, 1989; Hornik, 1989).
Più formalmente …
Se definiamo come misura di vicinanza tra due funzioni f:K _ R e g: K_ R, la seguente:
dK(f, g) = sup xεK |f(x) – g(x)|,
con f e g continue e definite sul sottoinsieme compatto K di Rd.
Allora, data la funzione g(x)=f2(∑kw(2)hk* f1(∑jw(1)kj*xj)) definita da una rete neurale con m nodi interni, un nodo di output, f2 funzione lineare e f1 continua, limitata e non costante
abbiamo il seguente teorema (Hornik,1991):
Per ogni funzione continua f(x) definita su K e per ogni ε > 0, esiste un mε tale che
dK(g, f) < ε per ogni m>mε (cioè, se la rete ha un numero sufficiente di nodi interni).
Importante corollario del precedente teorema è che,
nel contesto dei problemi di classificazione, tali reti possono approssimare qualunque regione di decisione con accuratezza arbitraria.
Diamo una “dimostrazione qualitativa” del teorema precedentemente enunciato.
Consideriamo il caso di due variabili di input x1 e x2 e una singola variabile di output y (l’estensione ad un più largo numero di input o output è abbastanza immediato), cioè abbiamo una funzione continua y= y(x1,x2).
Per ogni fissato valore di x1 possiamo approssimare y(x1,x2) da una serie di Fourier:
y(x1,x2)≅ ∑sAs (x1)cos(sx2)
gli stessi coefficienti As (x1) possono essere espresso da una serie di Fourier:
y(x1,x2)≅ ∑s∑l Asl cos(lx1)cos(sx2)
Diamo una “dimostrazione qualitativa” del teorema precedentemente enunciato (2).
Sapendo che cosαcosβ=1/2[cos(α+β)+cos(α-β)]
possiamo allora scrivere y(x1,x2) come una combinazione lineare di termini della forma
cos(zsl) e cos(z’sl).
Osservando, ancora, che la funzione cos(x) può essere approssimata con accuratezza arbitraria da una combinazione lineare di funzioni a gradino, allora y(x1,x2) può essere approssimata da una rete neurale con due strati avente unità interne con funzione di attivazione pari a quella di Heaviside e unità di output lineare.
Diamo una “dimostrazione qualitativa” del teorema precedentemente enunciato (3).
Infine sapendo che
“Un nodo con funzione di attivazione pari a s(x) può approssimare un nodo con funzione di attivazione a gradino con una accuratezza arbitraria semplicemente scalando i pesi e i biases”,
il teorema resta dimostrato.
Alcune osservazioni finali:
1. Informazioni generali sul corso
3. Un modello computazionale del neurone biologico
4. Possibili problemi risolvibili con Reti Neurali
5. Problemi di Classificazione ed approccio probabilistico
7. Capacità rappresentativa delle reti neurali - parte prima
8. Capacità rappresentativa delle reti neurali - Parte seconda
9. Apprendimento e generalizzazione
10. Discesa del gradiente e backpropagation
11. Back-Propagation
13. Interpretazione output di una rete neural feed-forward
14. Complessità della rete, generalizzazione e termini di regolari...
15. Cross-entropy e variazioni sulla discesa del gradiente
16. Verso le reti neurali RBF: interpolazione esatta.
17. Reti neurali RBF
18. Addestramento di una rete RBF
19. Parametri delle funzioni a base radiale
20. Un primo modello di reti neurali ricorrenti: formalismo di Caia...