声明:以下内容是基于书籍学习整理得到,难免有错误,随时指正交流;转载请注明出处~
概述
在实际应用中,有些目标函数的梯度不容易计算;即使使用有限差分等近似算法,也会因为噪声的存在导致结果不精确。无梯度优化算法(DFO,Derivative-Free Optimization)可以在不计算梯度的情况下进行优化,主要有两类思路:
- 根据目标函数的样本进行拟合,对拟合出的模型函数做最优化;
- 用一些启发式算法(直接搜索)。
- 直觉:什么时候真的拿不到梯度。上一章介绍的自动微分很强大,但它有个前提——你得能改函数的代码。现实中经常遇到这些情况:① 目标函数是一个第三方的闭源二进制程序(只能输入参数、读出结果);② 目标函数需要跑一次真实的物理实验或风洞测试(每次求值要几小时、还带测量噪声);③ 函数内部有 if/else 分支、查表、迭代收敛判断,数学上根本不可导。这些场景里"梯度"这个概念本身就是失效的,只能退回到"只用函数值"的原始武器。
- 代价要认清:DFO 方法的收敛速度普遍远慢于梯度方法,而且实际可解的维数很有限(一般
订阅专栏 解锁全文
826



被折叠的 条评论
为什么被折叠?



