为什么我们不只是学习超级参数?


11

我正在实施一篇颇受欢迎的论文“ 解释和利用对抗性示例 ”,在该论文中,它训练了对抗性目标函数

J''(θ)=αJ(θ)+(1 −α)J'(θ)。

它将α视为超参数。α可以是0.1、0.2、0.3等。

不管这份具体论文如何,我都想知道,为什么我们不只是将α纳入参数并学习最佳的α?

这样做的缺点是什么?是因为过度拟合吗?如果是这样,为什么只学习1个参数会导致过拟合呢?


好吧,如果超参数是成本函数(而不是DGP数据生成过程)的参数,则不清楚数据本身是否包含有关它的信息。
kjetil b halvorsen

1
在许多情况下,我们通过查看验证集上模型的性能来使用数据选择。(即,泛化错误的代理。)α
Vimal

Answers:


8

“为什么我们不只是学习超级参数?”

这是一个很好的问题!我将尝试提供更一般的答案。该TL; DR的答案是,你绝对可以学到的超参数,只是不相同的数据。请继续阅读以获取更详细的回复。


超参数通常对应于学习算法的一种设置,而不是它的一个参数。例如,在深度学习的上下文中,这可以通过诸如特定层中的神经元数量(超参数)与特定边缘权重(规则的可学习参数)之间的差异来举例说明。

为什么首先会有区别?使参数成为参数的典型情况是,不适合从训练集中学习该参数。例如,由于通过添加更多的神经元来降低训练误差总是比较容易的,因此将一层中的神经元数量设置为规则参数将始终会鼓励非常大的网络,这是我们知道的,因为事实并非总是如此(因为过度拟合)。

对您的问题,并不是我们根本不学习超参数。撇开一分钟的计算难题,很有可能为超参数学习良好的值,甚至在某些情况下,这对于提高性能也是必不可少的。第一段中的所有讨论表明,根据定义,您不能为此任务使用相同的数据

使用另一组数据拆分(从而创建三个不相交的部分:训练集,验证集和测试集,理论上您可以执行以下嵌套优化过程:在外循环中,尝试查找最小化验证损失超参数值;在内部循环中,您尝试找到最小化训练损失常规参数的值。

从理论上讲这是可能的,但在计算上却非常昂贵:外循环的每个步骤都需要求解(直到完成,或接近该步)内循环,而内循环通常在计算上比较繁重。使事情进一步复杂化的是,外部问题并不容易:一方面,搜索空间很大。

有许多方法可以通过简化上面的设置来克服此问题(网格搜索,随机搜索或基于模型的超参数优化),但是对这些方法的解释远远超出了您的问题范围。正如您所引用的文章还表明的那样,这是一个昂贵的过程,通常意味着研究人员完全跳过了这一过程,或者手动尝试了很少的设置,最终选择了最好的方法(再次根据验证集)。但是,对于您最初的问题,我认为-尽管非常简单和人为,但这仍然是“学习”的一种形式。


嗨,谢谢您的回答。如果我使用相同的数据会怎样?
Aerin

7

像该论文中的那样,超参数通常用于平衡损失函数中的多个项。如果使它们易于学习,则优化过程将简单地学习将所有权重分配给更易于优化的术语,而代价是难以优化的术语,从而破坏了平衡术语的意义。

另一种看待它的方法是,损失函数是难以定义或优化的实际目标的替代,例如“生成输出图像应看起来逼真”或“应抵抗对抗性示例”。在那种情况下,真正的目标不是“找到超参数以最大程度地减少代理损耗”,而是“找到超参数,以便当我们对其余参数运行SGD以优化代理时,我们可以在真实参数上获得良好的性能。目的”。


4

由于您问的是“不管论文”如何,我想举一个简单的例子:罚线性回归(Ridge / Lasso)。

Ĵ

αα

  1. 用于优化超参数的目标函数是一个表示泛化错误的代理。很难将这个表达式写成一个可以区分的简单分析函数,但是可以通过简单地解决基础优化问题在某个时候轻松地对其进行评估。

  2. 评估功能(F2)要求您解决一个优化问题,这可能会很昂贵。因此,即使您可以近似估计F2的梯度以进行梯度下降,也将是昂贵且缓慢的。在这种情况下,进行网格搜索通常“足够好”。

λ

套索模型表现

(图片摘自这篇文章:https : //stats.stackexchange.com/a/26607/54725

一些参考:


您是否特别将论文J(θ,x + esign(∇xJ(θ,x,y))中的第二项称为F2?
Aerin

JJ~ααα

那么,在本文中,您指的是F1和F2?
Aerin

J~

1

αθ

αĴ''θ=ααĴθ+α1个-αĴθ=Ĵθ-Ĵθ=0
Ĵθ=Ĵθ

优化此超参数后,将导致J和J'成为相同的函数,即权重相等。您将得到一个简单的解决方案。

ÿ大号=X大号β大号
一个大号=σÿ大号
X大号+1个=一个大号
β大号β 在目标函数中,您得到的数据点以不明显的方式输入到矩阵,Hessian,叉积等中。

但是,如果您尝试估计超参数上的一阶条件,则不会获得这种效果。超参数的导数通常会操作模型的整个块,而不会像参数上的导数那样改变其部分。这就是为什么优化超参数通常会导致一些琐碎的解决方案的原因,例如我为特定论文提供的解决方案。优化超参数不会使您的数据集感到困扰,也不会令人感到不舒服,无法产生有趣的结果。

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.