多元函数求导,实际上就是梯度。
例:
f(x) = x^2 -> f’(x) = 2
Z = x^2 + y^2 求梯度就等于 Z’ = [2x, 2y]
注:一元函数求导数 f'(x)
,在多元函数就是对每个变量求偏导,然后写成列向量。梯度都是向量的形式。
例:
Z’ = [2x, 2y] 求 Z’’
可以看成 2x , 2y 是个独立的函数,再分别求偏导。
(2x)’ > [2, 0] ; (2y)’ > [0, 2]
最终等于一个矩阵:
| 2, 0 |
| 0, 2 |
这个矩阵就叫 Hessian 矩阵,它是一个对称矩阵。
f(x) = x1^2 + x2^2 + x3^2 的 二次型为:
[1, 0, 0] [x1] [x1, x2, x3] [0, 1, 0] [x2] [0, 0, 0] [x3]
二次型的通俗意义就是判定举证的正负。
例如 x√2x | x != 0,那么就肯定大于 0的,同理:xTAx。
||Ax - b||^2
其实就是二范数的平方。
一元的情况
f(xk + δ) ≈ f(xk) + f'(xk)δ + f''(xk)δ^2/2!
向量的情况
f(xk + δ) ≈ f(xk) + f'(xk)δ + f''(xk)δ^2/2! f(xk + δ) ≈ f(xk) + gT(xk)δ + gTH(xk)δ^2/2! 因为二阶导数其实就是 Hessian 矩阵
其实就是要让 f(xk + δ) > f(xk),进一步推导
f(xk) + f’(xk)δ > f(xk) 其实就是要 f’(xk)δ >= 0
向量的情况的话就是:
f(xk + δ) ≈ f(xk) + gT(xk)δ + gTH(xk)δ^2/2!
让 梯度
= 0,然后 Hessian 矩阵
> 0,这个时候就是最小值
用一元情况举例
y = x^2 极值就是让 y' = 2x = 0 那么就是 x=0 的时候。
其中 s 是根据经验得出来的一个比较小的值,10e-5 之类的。
dk = -g(xk)
f(xk + dk) ≈ f(xk) + gT(xk)*dk
要让 f(xk + dk) > f(xk) , 那么就是要让 gT(xk)*dk
为负数,且为最大负数。那么 dk 就应该等于 -g(xk)
向量夹角,a * b = aTb = |a||b|cos(θ)
dk = -H^-1(xk)*g(xk)
f(xk + dk) ≈ f(xk) + gT(xk)*dk + gTH(xk)*dk^2/2! g(xk) + H(xk)*dk = 0 dk = -H^-1(xk)*g(xk)