Differenziabilità dei vettori di funzioni e regola della catena
Programmazione Matematica
Differenziabilità di un vettore di funzioni
Un vettore di funzioni g:Rn→Rm raccoglie m funzioni g1,…,gm delle stesse n variabili. Come per una funzione a valori reali, la differenziabilità chiede che g sia approssimata da una funzione affine con un errore trascurabile rispetto alla distanza. Lo spostamento d∈Rn e la variazione g(x+d)−g(x)∈Rm sono vettori, quindi il termine lineare è una matrice m×n.
g è differenziabile in x quando esiste una matrice G(x), di dimensione m×n, tale che
∥d∥→0lim∥d∥∥g(x+d)−g(x)−G(x)d∥=0
Il numeratore è o(∥d∥). La matrice G(x) dipende da x ed è la derivata di g in x.
Matrice Jacobiana. Se esistono le derivate parziali ∂gi/∂xj, la Jacobiana Jg(x) è la matrice m×n con una riga per funzione e una colonna per variabile:
Jg=∂x1∂g1⋮∂x1∂gm⋯⋯∂xn∂g1⋮∂xn∂gm
La riga i è il gradiente ∇gi(x)⊤. Detta ∇g(x) la matrice n×m che ha i gradienti per colonne, Jg(x)=∇g(x)⊤. Le dimensioni vanno rispettate: quattro funzioni di tre variabili hanno una Jacobiana 4×3 e un gradiente 3×4.
Jacobiana e derivata. L'esistenza della Jacobiana non basta per la differenziabilità. Valgono due fatti, che per m=1 sono il teorema del differenziale totale:
se g è differenziabile in x, allora g è continua in x, esiste Jg(x) e coincide con G(x);
se Jg esiste vicino a x ed è continua in x, allora g è differenziabile in x.
Il secondo è un criterio: le derivate parziali devono esistere ed essere continue. Se g è differenziabile in a, la funzione affine che meglio la approssima è
L(x)=g(a)+Jg(a)(x−a)
e L(a)=g(a), perché x−a si annulla. Per d=su con ∥u∥=1, la definizione divisa per s dice che la variazione di g ingrandita di 1/s tende alla parte lineare:
s→0limsg(a+su)−g(a)=Jg(a)u
g(x)=(x12+x2,x1x2) in a=(1,1)
g1g2
(g(a+su)−g(a))/s
Jg(a)u
Al diminuire di s, la variazione di g per d=su (∥u∥=1), divisa per s, si sovrappone alla parte lineare Jg(a)u.
Esempio: la Jacobiana di tre funzioni
Sia g:R3→R3
g(x)=4x13x3+x2x3x1x3−12x22x14+x1x2
La riga i della Jacobiana raccoglie le derivate parziali di gi. La terza funzione non contiene x3, perciò la sua derivata rispetto a x3 è 0:
La somma ∑ihi∇gi è una combinazione delle colonne di ∇g con coefficienti hi, cioè il prodotto della matrice ∇g per il vettore h. Lo stesso vale per la seconda somma.
Forma quadratica. Sia f(x)=x⊤Qx, con Q∈Rn×n non necessariamente simmetrica. È un prodotto scalare con g(x)=x, Jg=I, e h(x)=Qx, Jh=Q:
∇f(x)=I⊤Qx+Q⊤x=(Q+Q⊤)x
Se Q=Q⊤ si ha Q⊤+Q=2Q, quindi
∇(x⊤Qx)=2Qx∇(21x⊤Qx)=Qx∇(x⊤Qx)=2Qx∇(21x⊤Qx)=Qx
Senza la simmetria resta
∇(21x⊤Qx)=21(Q+Q⊤)x
Regola della catena
Per g:Rn→R differenziabile in x e h:R→R derivabile in g(x), la composta f(x)=h(g(x)) ha gradiente
∇f(x)=h′(g(x))∇g(x)
Per i vettori di funzioni, siano g:Rn→Rm differenziabile in x e h:Rm→Rp differenziabile in g(x). La composizione f=h∘g va da Rn a Rp, è differenziabile in x e
Jf(x)=Jh(g(x))Jg(x)
Le dimensioni tornano: Jh ha p righe e m colonne, Jg ha m righe e n colonne, il prodotto è p×n, come la Jacobiana di p funzioni di n variabili. In Jf compare prima Jh, perché h si applica dopo g. Trasponendo, con ∇f=Jf⊤, l'ordine si inverte:
∇f(x)=∇g(x)∇h(g(x))
Esempio: derivata direzionale e piano tangente
Sia f:R3→R
f(x)=x14x3+x1x2x3−4x23
Il gradiente è il vettore g dell'esempio sulla Jacobiana:
∇f(x)=4x13x3+x2x3x1x3−12x22x14+x1x2
Perciò Jg è la matrice delle derivate seconde di f, ed è simmetrica. Le componenti del gradiente sono polinomi, quindi continue, e per il teorema del differenziale totale f è differenziabile su R3. In x0=(1,1,2):
∇f(x0)=10−102f(x0)=2+2−4=0
La derivata direzionale lungo d=(−1,1,0)⊤ è il prodotto scalare di ∇f(x0) con d, cioè un numero:
Df(x0,d)=∇f(x0)⊤d=−10−10+0=−20
La funzione affine che meglio approssima f in x0 è
Il piano tangente al grafico è y=L(x). Le variabili sono x1,x2,x3,y, quindi è un iperpiano di R4, non di R3.
Classificazione binaria e funzione logistica
Nella classificazione binaria supervisionata sono date P coppie (xi,yi): xi è un vettore e l'etichetta yi vale 0 oppure 1. Si cerca una funzione che, valutata in xi, dia un valore vicino a yi. Serve una funzione che prenda valori fra 0 e 1 e si avvicini a uno dei due estremi: la funzione logistica (sigmoide), di una variabile reale t,
f(t)=1+e−t1
I suoi valori stanno fra 0 e 1. Per t molto grande e positivo f(t) tende a 1, per t molto grande e negativo tende a 0. La derivata si riscrive con 1−f(t)=e−t/(1+e−t):
La derivata è positiva, tende a 0 per t→±∞ e vale al più 1/4: il massimo è in t=0, dove f=1/2 e la tangente ha la pendenza maggiore.
La funzione logistica e la sua derivata
t
f(t)
f′(t)
tangente a f in t0
La pendenza della tangente a f in t0 è f′(t0), l'altezza della seconda curva: non supera mai 1/4, valore raggiunto in t0=0.
La funzione f accetta un solo numero, mentre xi è un vettore. Serve un'unità di calcolo che, dato un vettore xi, usi f come funzione di attivazione: il percettrone, o neurone artificiale, unità elementare delle reti neurali multistrato.
Formulario
Differenziabile in x
∥d∥→0lim∥d∥∥g(x+d)−g(x)−G(x)d∥=0
Jacobiana, m×n
Jg=[∂xj∂gi]=∇g⊤
Criterio
Jg esiste vicino a x,Jg continua in x⇒g differenziabileJg esiste vicino a x,Jg continua in x⇒g differenziabile