Mengapa fungsi biaya jaringan saraf non-cembung?

22

Ada utas serupa di sini ( Fungsi biaya jaringan saraf adalah non-cembung? ) Tapi saya tidak dapat memahami poin-poin dalam jawaban di sana dan alasan saya untuk bertanya lagi berharap ini akan menjelaskan beberapa masalah:

Jika saya menggunakan jumlah fungsi biaya selisih kuadrat, saya akhirnya mengoptimalkan sesuatu dari bentuk mana adalah nilai label aktual selama pelatihan fase dan adalah nilai label yang diprediksi. Karena ini memiliki bentuk persegi, ini harusnya merupakan fungsi biaya cembung. Jadi apa yang bisa membuatnya menjadi non-cembung di NN? y yΣi=1N(yiyi^)2yy^

Luca
sumber
7
sepele, itu karena , dan secara umum tidak ada jaminan bahwa fungsi sewenang-wenang akan menjadi cembungy^=f(x)
generic_user

Jawaban:

35

i(yiy^i)2 memang cembung di . Tetapi jika itu mungkin tidak cembung dalam , yang merupakan situasi dengan sebagian besar model non-linear, dan kami benar-benar peduli tentang konveksitas dalam karena itulah yang kami optimalkan pada fungsi biaya berakhir. y i=f(xi;θ)θθy^iy^i=f(xi;θ)θθ

Sebagai contoh, mari kita pertimbangkan sebuah jaringan dengan 1 lapisan tersembunyi unit dan lapisan output linier: fungsi biaya kami adalah mana dan (dan saya menghilangkan istilah bias untuk kesederhanaan). Ini tidak harus cembung bila dilihat sebagai fungsi dari (tergantung pada : jika fungsi aktivasi linier digunakan maka ini masih bisa cembung). Dan semakin dalam jaringan kita, semakin sedikit hal-hal yang cembung.g ( α , W ) = i ( y i - α i σ ( W x i ) ) 2 x iR p W R N × pN

g(α,W)=i(yiαiσ(Wxi))2
xiRpWRN×pσ(α,W)σ

Sekarang tentukan fungsi oleh mana adalah dengan atur ke dan atur ke . Ini memungkinkan kita untuk memvisualisasikan fungsi biaya karena dua bobot ini berbeda-beda. h ( u , v ) = g ( α , W ( u , v ) ) W ( u , v ) W W 11 u W 12 vh:R×RRh(u,v)=g(α,W(u,v))W(u,v)WW11uW12v

Gambar di bawah menunjukkan ini untuk fungsi aktivasi sigmoid dengan , , dan (jadi arsitektur yang sangat sederhana). Semua data (baik dan ) adalah iid , seperti halnya bobot yang tidak bervariasi dalam fungsi plot. Anda dapat melihat kurangnya konveksitas di sini.p = 3 N = 1 x y N ( 0 , 1 )n=50p=3N=1xyN(0,1)

permukaan kerugian

Inilah kode R yang saya gunakan untuk membuat gambar ini (meskipun beberapa parameter berada pada nilai yang sedikit berbeda sekarang daripada ketika saya membuatnya sehingga mereka tidak akan sama):

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])))
jld
sumber
Jawaban yang fantastis; Saya pikir terlepas dari fungsi aktivasi, kita selalu dapat menemukan beberapa permutasi dari bobot / unit tersembunyi yang umumnya berarti non-konveksitas
information_interchange
1
@information_interchange terima kasih, dan saya pikir Anda memang benar, jawaban yang terkait dengan OP juga berbicara tentang pendekatan itu
jld
jawaban yang bagus, tetapi jika kita menggunakan MAE dan bukannya MSE, saya tidak mengerti mengapa itu menjadi non-cembung, komposisi fungsi cembung dan non-penurunan adalah cembung, jadi jika kita memiliki MAE, kita masih harus memiliki fungsi cembung tentang W.
Panda