Perché la funzione di costo delle reti neurali non è convessa?


22

C'è un thread simile qui (la funzione di costo della rete neurale non è convessa? ) Ma non sono stato in grado di capire i punti nelle risposte lì e il mio motivo per chiedere di nuovo sperando che questo chiarisca alcuni problemi:

Se utilizzo somma di funzione di costo differenza quadrata, sono infine ottimizzando qualcosa della forma dove y è il valore effettivo etichetta durante la fase di formazione e y è l'etichetta prevista valore. Poiché ha una forma quadrata, dovrebbe essere una funzione di costo convesso. Allora, cosa potrebbe renderlo non convesso in una NN?Σi=1N(yiyi^)2yy^


7
banalmente, è perché y = f ( x ) , e in generale non vi sono garanzie che una funzione arbitraria sarà convessay^=f(X)
generic_user

Risposte:


35

è infatti convessa y i . Ma se y i = f ( x i , θ ) non può essere convessa in θ , che è la situazione con la maggior parte dei modelli non-lineari, e in realtà cura di convessità in θ perché è quello che stiamo ottimizzando la funzione di costo al di sopra di.Σio(yio-y^io)2y^ioy^io=f(Xio;θ)θθ

Ad esempio, consideriamo una rete con 1 strato nascosto di unità e uno strato di uscita lineare: la nostra funzione di costo è g ( α , W ) = i ( y i - α i σ ( W x i ) ) 2 dove x iR p e W R N × p (e sto omettendo termini di bias per semplicità). Questo non è necessariamente convesso se visto come una funzione di ( α , W )N

g(α,W)=Σio(yio-αioσ(WXio))2
XioRpWRN×p(α,W)(a seconda di : se si utilizza una funzione di attivazione lineare, questa può essere ancora convessa). E più profonda diventa la nostra rete, meno le cose sono convesse.σ

Ora definisci una funzione per h ( u , v ) = g ( α , W ( u , v ) ) dove W ( u , v ) è W con W 11 impostato su u e W 12 impostato su v . Questo ci consente di visualizzare la funzione di costo al variare di questi due pesi.h:R×RRh(u,v)=g(α,W(u,v))W(u,v)WW11uW12v

La figura seguente mostra questo per la funzione di attivazione sigmoid con , p = 3 e N = 1 (quindi un'architettura estremamente semplice). Tutti i dati (sia x che y ) sono iid N ( 0 , 1 ) , così come i pesi che non vengono variati nella funzione di stampa. Puoi vedere la mancanza di convessità qui.n=50p=3N=1XyN(0,1)

superficie di perdita

Ecco il codice R che ho usato per fare questa figura (anche se alcuni dei parametri ora hanno valori leggermente diversi rispetto a quando l'ho fatto, quindi non saranno identici):

costfunc <- function(u, v, W, a, x, y, afunc) {
  W[1,1] <- u; W[1,2] <- v
  preds <- t(a) %*% afunc(W %*% t(x))
  sum((y - preds)^2)
}

set.seed(1)
n <- 75  # number of observations
p <- 3   # number of predictors
N <- 1   # number of hidden units


x <- matrix(rnorm(n * p), n, p)
y <- rnorm(n)  # all noise
a <- matrix(rnorm(N), N)
W <- matrix(rnorm(N * p), N, p)

afunc <- function(z) 1 / (1 + exp(-z))  # sigmoid

l = 400  # dim of matrix of cost evaluations
wvals <- seq(-50, 50, length = l)  # where we evaluate costfunc
fmtx <- matrix(0, l, l)
for(i in 1:l) {
  for(j in 1:l) {
    fmtx[i,j] = costfunc(wvals[i], wvals[j], W, a, x, y, afunc)
  }
}

filled.contour(wvals, wvals, fmtx,plot.axes = { contour(wvals, wvals, fmtx, nlevels = 25, 
                                           drawlabels = F, axes = FALSE, 
                                           frame.plot = FALSE, add = TRUE); axis(1); axis(2) },
               main = 'NN loss surface', xlab = expression(paste('W'[11])), ylab = expression(paste('W'[12])))

Risposta fantastica; Penso a prescindere dalle funzioni di attivazione, possiamo sempre trovare qualche permutazione dei pesi / unità nascoste che generalmente significa non convessità
information_interchange

1
@information_interchange grazie, e penso che tu abbia assolutamente ragione, la risposta che OP ha collegato anche a questo approccio
jld

ottima risposta, ma se usiamo MAE anziché MSE, non capisco perché sarà non convesso, la composizione di una funzione convessa e non decrescente è convessa, quindi se abbiamo MAE, dovremmo comunque avere una funzione convessa per quanto riguarda W.
Panda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.