百科问答小站 logo
百科问答小站 font logo



神经网络的损失函数为什么是非凸的? 第1页

  

user avatar   qinhanzhang 网友的相关建议: 
      

简单说下这个问题吧。

考虑最简单的一类神经网络,只有一个隐层、和输入输出层的网络。也就是说给定 组样本 ,我们网络的经验损失函数可以写成:

就是我们要优化的权重: 代表输入层到隐层的权重, 代表隐层到输出层的权重。这里我们取 损失函数和ReLU作为我们的激活函数。即上式中(用 代表对向量每一个元素取max)

注意到虽然像取平方,ReLU激活函数 ,求内积这些“函数”单独来看都是凸的,但他们这么一复合之后就不一定是凸的了。一些常见的判断凸函数的方法请见:

为了方便说明 这个函数是非凸的,我们需要一个经典引理:一个高维凸函数可以等价于无数个一维凸函数的叠加。

一个(高维)函数是凸的,当且仅当把这个函数限制到任意直线上它在定义域上仍然是凸的。这是凸分析里很基本的一个定理,不熟悉的同学不妨尝试用定义来证明它。

更正式的来说,

引理: 是凸的,当且仅当 对任意 , ,关于 是凸的。

反过来也就是说,只要我们找到一点 ,和一个“方向” ,使得这个 函数非凸就可以了! 回顾一维凸函数的定义,这就是说在这个方向上找到两个点,他们平均的函数值比他们平均值上的函数值要低就行了!

最后就是轻松愉快的画图举反例环节。这边为了说明方便,取参数空间为四维的 。不过这种思路其实对任意维度的 都成立,只要画图的时候任选两个维度就好(把其它维度的值固定住)。

这里我们取真实的 。然后均匀随机地生成 个 (二维的[0,1]均匀随机向量), 就用 生成, 是[0,0.5]的均匀随机数(这样图像看起来会比较规整)。我们固定住 ,画出采样出来的 在 上的图像:

如上红线,我们可以很轻松的找到一条使 “非凸”的线,因此证明完毕: 是非凸的。

这个本质上就是 @陈泰红 答案中提到Goodfellow在Quora说的思路:“plot a cross-section of the function and look at it”,而它的正确性就是这边的引理所保证的。注意到这边如果你要用求导大法是不太容易的,因为隐层套的是ReLU激活函数,只能求次微分,看起来会稍微麻烦一些。




  

相关话题

  反馈控制理论在优化、机器学习等领域有哪些应用? 
  如何看待Tensor Comprehensions?与TVM有何异同? 
  如何评价 MSRA 最新的 Deformable Convolutional Networks? 
  OpenAI 发布文字生成图像工具 DALL·E 2,它的画作水平如何?从技术角度如何评价它的能力? 
  如何理解 inductive learning 与 transductive learning? 
  在机器学习模型的训练期间,大概几十分钟到几小时不等,大家都会在等实验的时候做什么? 
  测试集在构造的时候需要人为控制其中应该正确的和应该错误的数据比例吗? 
  为什么softmax很少会出现[0.5,0.5]? 
  为什么有的论文放出训练好的模型和测试脚本,但不开源训练代码? 
  CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别? 

前一个讨论
微软当年是不是用并不比苹果好的技术战胜了苹果,为什么?
下一个讨论
如何评价有西部孔子之称的谯周?





© 2025-01-18 - tinynew.org. All Rights Reserved.
© 2025-01-18 - tinynew.org. 保留所有权利