为什么神经网络的成本函数是非凸的?


22

这里有一个类似的线程(神经网络的成本函数是非凸的?),但我无法理解那里答案的要点,我再次询问的原因希望这可以澄清一些问题:

如果我使用差额成本函数平方和,那么我最终将优化形式的某物,其中是训练期间的实际标签值相位,是预测标签值。由于它具有正方形形式,因此应该是凸成本函数。那么,什么会使它在NN中不凸?Σi=1N(yiyi^)2yy^


7
琐碎地讲,这是因为,并且通常不能保证任意函数都是凸的y^=f(x)
–generic_user

Answers:


35

i(yiy^i)2实际上在是凸的。但是,如果可能在不是凸的,这是大多数非线性模型的情况,并且我们实际上关心中的凸性,因为这就是我们正在优化的成本函数结束。y^iy^i=f(xi;θ)θθ

例如,让我们考虑一个具有1个单位的隐藏层和一个线性输出层的网络:我们的成本函数为 其中,和(为简单起见,我省略了偏项)。当视为的函数时,这不一定是凸的(取决于:如果使用线性激活函数,则它仍可以是凸的)。而且我们的网络越深入,凸出的事物就越少。α w ^ = Σÿ - α σ w ^ X 2 X [R p w ^ [R Ñ × pα w ^ σN

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

现在定义一个函数由其中,是与设置为,设置为。这使我们可以直观地看到这两个权重变化时的成本函数。 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

下图显示了针对,和的S形激活函数(非常简单的体系结构)。所有数据(和)都是iid,在绘图函数中未改变的任何权重也是如此。您可以在这里看到缺乏凸性。p = 3 Ñ = 1 X ý Ñ0 1 n=50p=3N=1xyN(0,1)

损失面

这是我用来制作该图的R代码(尽管某些参数现在的值与我制作时的值略有不同,因此它们将不相同):

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

很棒的答案;我认为,不管激活函数如何,我们总能找到权重/隐藏单位的一些置换,这通常意味着非凸性
information_interchange

1
@information_interchange谢谢,我认为您是完全正确的,OP链接的答案也谈到了这种方法
jld

很好的答案,但是如果我们使用MAE而不是MSE,我不明白为什么它会是非凸的,凸和非递减函数的组成是凸的,所以如果我们有MAE,我们仍然应该有凸函数关于W
熊猫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.