文章目录
1. 什么是非线性优化
非线性优化的表达形式:
min x f ( x ) \min_x f(x) xminf(x)
当 f(x) 是一个非线性函数的时候,这个问题就是一个非线性优化的问题。
2. 问题举例
f ( x ) = x 2 + 2 x + 1 f(x) = x^2 + 2x +1 f(x)=x2+2x+1
这个是非线性优化中最简单的形式,通过求解 f ′ ( x ) = 0 f'(x)=0 f′(x)=0 即可。
当指数次增高,函数变化变得 有涨有伏,或者当变量数量增加时,问题从 一维扩展到多维。这时候我们会发现出现大量的局部最优解。如何求解就会变得困难。
3. 通过迭代求解问题
假设我们任意从一点 x 0 x_0 x0 开始,我们希望找到前往最小值的方向,那么如何判断这个方向是否正确呢?我们假设我们从 x 0 x_0 x0 出发走了一段距离 Δ x \Delta x Δx,那么如果这个 f ( x 0 + Δ x ) f(x_0+\Delta x) f(x0+Δx) 越小,我们就认为这个是正确的方向,那么这个方向总有一天能将我们带到最小值处。
如果确定这个方向呢?
我们可以看出来 f ( x 0 + Δ x ) f(x_0+\Delta x) f(x0+Δx) 是一个关于 Δ x \Delta x Δx 的方程,所以如果我们能得到 d f ( x 0 + Δ x ) d Δ x \frac{d f(x_0 + \Delta x)}{d \Delta x} dΔxdf(x0+Δx),也就是 f ( x 0 + Δ x ) f(x_0 + \Delta x) f(x0+Δx) 关于 Δ x \Delta x Δx 变化的方向,那么这个 Δ x \Delta x Δx 就等于这个方向乘以步长。
那么怎么求 d f ( x 0 + Δ x ) d Δ x \frac{d f(x_0 + \Delta x)}{d \Delta x} dΔxdf(x0+Δx) 呢?
通过泰勒分解
f ( x 0 + Δ x ) = ∑ n = 0 ∞ f ( n ) ( x 0 ) n ! Δ x n f(x_0+\Delta x) = \sum_{n = 0}^{\infty} \frac{f^{(n)}(x_0)}{n!}\Delta x^n f(x0+Δx)=n=0