我有以下问题将随机搜索优化与梯度下降优化进行比较:
基于此处提供的(惊人的)答案Optimization when Cost Function Slow to Evaluate,我意识到随机搜索非常有趣:
随机搜索
即使成本函数的评估成本很高,随机搜索仍然很有用。随机搜索很容易实现。研究人员唯一的选择是设置您希望结果位于某个分位数中的概率 ;其余的使用基本概率的结果自动进行。
假设您的分位数是,并且您希望 模型结果位于所有超参数元组的前 % 的 尝试的元组都不在该窗口中的概率(因为它们是从同一分布中独立随机选择的),因此至少一个元组在该区域中的概率是。综上所述,我们有
在我们的具体情况下产生。
这个结果就是为什么大多数人推荐尝试的元组进行随机搜索的原因。值得注意的是,当参数数量适中时与高斯过程不同,查询元组的数量不会随着要搜索的超参数的数量而变化;事实上,对于大量的超参数,基于高斯过程的方法可能需要多次迭代才能取得进展。
由于您对结果有多好有一个概率特征,因此该结果可以成为说服您的老板相信进行额外实验将产生边际收益递减的有说服力的工具。
使用随机搜索,您可以在数学上证明: 无论您的函数有多少维,有 95% 的概率只需要 60 次迭代即可获得所有可能解决方案中前 5% 的答案!
假设您的优化函数有 100 种可能的解决方案(这不取决于维数)。解决方案的一个示例是。
前 5% 的解决方案将包括前 5 个解决方案(即提供您要优化的函数的 5 个最低值的 5 个解决方案)
次迭代” 中至少遇到前 5 个解决方案之一的概率
如果你想要这个概率,你可以解出: $\boldsymbol{1 - [(1 - 5/100)^n] = 0.95}
因此,次迭代!
但令人着迷的是, 无论存在多少解决方案次迭代仍然有效。例如,即使存在 1,000,000,000 个解决方案 - 您仍然只需要 60 次迭代即可确保在所有解决方案的前 5% 中遇到解决方案的概率为 0.95!
" " 仍然是 60 次迭代!
我的问题:基于随机搜索的这种惊人的“隐藏力量”,并进一步考虑到随机搜索比梯度下降快得多,因为随机搜索不需要您计算多维复杂损失函数的导数(例如,神经网络) :为什么我们使用梯度下降而不是随机搜索来优化神经网络中的损失函数?
我能想到的唯一原因是,如果优化值的排名分布是“严重的负偏态”,那么前 1% 可能明显优于前 2%–5%,并且需要的迭代量在前 1% 中遇到解决方案也会显着增加:
但是即使有这样的优化分数分布,梯度下降仍然有它的优势吗?梯度下降(或随机梯度下降)真的有能力与随机搜索的这种“隐藏力量”竞争吗?如果满足某些条件,由于其有吸引力的理论特性(例如,收敛性)——梯度下降是否有能力比随机搜索更快地达到最佳解决方案(不是最佳 5%,而是最佳解决方案)?或者在具有非凸和噪声目标函数的实际应用中,梯度下降的这些“有吸引力的理论特性”是否通常不适用,并且再次 - 随机搜索的“惊人的隐藏能力”再次获胜?
简而言之:基于随机搜索这种惊人的“隐藏力量”(和速度),为什么我们使用梯度下降而不是随机搜索来优化神经网络中的损失函数?
有人可以对此发表评论吗?
注意:基于大量坚持和赞扬随机梯度下降能力的文献,我假设随机梯度下降与随机搜索相比确实具有许多优势。
注意:由提供给此问题的答案产生的相关问题:没有免费午餐定理和随机搜索