大学时学过的微积分里:寻找函数的极值点,我们只需要求此函数的导数为0的点,函数只要是可导的,我们就能用这个办法解决。
一个优化问题全局极小点指的是在可行域范围内:
F()
F(X)
有些函数有许多的局部极小点,我们要得到全局极小点,需要比较所有的局部极小点。
梯度:
我理解它是一个多元函数求过偏导然后组成的一个向量:
(
) = (
,
)
向量嘛 有方向有大小的矢量
梯度为0的点是函数的驻点,但不一定是极值点,它是必要而不充分条件。
Hessian矩阵正定 具有极小值
Hessian矩阵负定 具有极大值
如果我们遇到一个比较难算的函数,我们没法求出它的梯度为0的点,只能采取迭代法,使用某种规则,慢慢的移动一个点,使它收敛到梯度为0的点,存在极限:
就好像我们在山的某一处,想下山喝水,必须到达山的最低处,但是我们没有不知道下山的路怎么走,只能走一步看一步,期望能到达山底,因为我们不能像无人机一样盘旋在天空看到整座山的全局信息。
需要用到泰勒展开式,在多元函数中运用泰勒展开式:
如果
,那么 函数值递减【
】,我们就找到下山的方向。
因为梯度和变量
都是向量,有
此时我们需要让
当=180度是,此时梯度和
方向相反。
在模的大小一定时,设
,这里的
是自己定义的步长,为了让其寻找最优值时不超过可行域范围。
按照迭代公式
直到最后找到梯度为0的点(实际上是接近于0),此时认为到达了极值点。