Sinir ağlarının maliyet fonksiyonu neden dışbükey değildir?


22

Burada da benzer bir iş parçacığı var ( Sinir ağının maliyet işlevi dışbükey değil mi? ) Fakat buradaki cevaplardaki noktaları anlayamadım ve bunun tekrar sorulma nedeninin bazı sorunları netleştireceğini umuyorum:

I karesi alınmış farkı maliyet fonksiyonunun toplamı kullanıyorum için, sonuçta formun şey optimize am y eğitim aşaması esnasında gerçek etiket değeri olduğu öngörülen etiket değeri. Bunun kare bir şekli olduğundan, dışbükey bir maliyet işlevi olmalıdır. Öyleyse onu bir NN'de dışbükey yapamayan nedir?Σi=1N(yiyi^)2yy^


7
trivially, bunun nedeni y = f ( x ) , ve genel olarak herhangi bir fonksiyon dışbükey olacağı garanti vardıry^=f(x)
generic_user

Yanıtlar:


35

gerçekten de dışbükeydir y ı . Ama eğer y ı = f ( x i ; θ ) o dışbükey olmayabilir θ , en doğrusal olmayan modellerle durum olan ve aslında içinde dışbükeylik önem İçeride ISTV melerin RWMAIWi'nin biz maliyet fonksiyonunu optimize şey bu çünkü üzerinde.Σben(yben-y^ben)2y^beny^ben=f(xben;θ)θθ

Örneğin, 1 gizli tabakası ile bir ağ düşünelim birimleri ve doğrusal bir çıkış tabakası: bizim fonksiyonudur g ( α , W ) = Σ i ( y ı - α i σ ( W x i ) ) 2 burada x iR p ve W R N × p (ve basitlik için önyargı terimlerini atlıyorum). ( Α , W ) nin bir fonksiyonu olarak bakıldığında bu mutlaka dışbükey değildirN-

g(α,W)=Σben(yben-αbenσ(Wxben))2
xbenR,pWR,N-xp(α,W)( bağlı olarak : eğer bir doğrusal aktivasyon işlevi kullanılıyorsa, o zaman bu hala dışbükey olabilir). Ağımız ne kadar derine girerse, dışbükey şeyler de o kadar az olur.σ

Şimdi fonksiyonunu tanımlayın : R × RR , h ( u , v ) =h:R,xR,R, burada W ( u , v ) olan B ile B 11 için resim u ve W, 12 , setin v . Bu, bu iki ağırlık değiştiği için maliyet fonksiyonunu görselleştirmemize izin verir.h(u,v)=g(α,W(u,v))W(u,v)WW11uW12v

n=50p=3N-=1xyN-(0,1)

kayıp yüzey

İşte bu rakamı yapmak için kullandığım R kodu (parametrelerin bazıları şimdi yaptığımdan biraz farklı değerlerde olsa da, aynı olmayacaklar):

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])))

Harika cevap; Etkinleştirme işlevlerinden bağımsız olarak, genel olarak dışbükey olmayan anlamına gelen ağırlıkların / gizli birimlerin bir miktar değişimini her zaman bulabileceğimizi düşünüyorum
information_interchange

1
@information_interchange teşekkürler, ben de, kesinlikle doğru OP de o yaklaşımı hakkında görüşmelere bağlı olduğunu cevapsın düşünüyorum
JLD

büyük cevap, fakat eğer MSE yerine MAE kullanıyorsak, neden dışbükey olmayacağını anlamıyorum, dışbükey ve azalan olmayan bir fonksiyonun bileşimi dışbükeydir, bu nedenle MAE varsa, yine de dışbükey fonksiyonumuz olmalı. ilgili W.
Panda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.