梯度
1、含义:
梯度就是方向去的导数的最大值,下降的快一点。
1)梯度是偏导方向的向量。
2)沿着偏导方向的向量能够取得最大值。
3)梯度就是变化最快,变化率最大的方向。
4)求取梯度大小的公式:
2、梯度下降:
1)梯度下降法:沿着梯度下降的方向求解极小值。
梯度下降算法:
python代码片段:
def gradient_descent(f, init_x, lr=0.01, epoch=100):
x = init_x
for i in range(epoch):
grad = numerical_gradient(f, x) # 求导函数
x -= lr * grad
return x
其中,f是要求的函数,init_x是初始值,lr是learning rate,epoch是梯度法的重复次数,也就是计算多少次。
# 用定义法求导数
def numerical_gradient(f, x):
h = 1e-4
grad = np.zeros_like(x)
for idx in range(x.size):
temp = x[idx]
# 计算f(x+h)
x[idx] = temp + h
fxh1 = f(x)
# 计算f(x-h)
x[idx] = temp - h
fxh2 = f(x)
grad[idx] = (fxh1 - fxh2)/(2 * h)
x[idx] = temp
return grad
2)梯度上升法:沿着梯度上升的方向求解极大值。
关于梯度的一些实际例子我们就回到课件上来看一下。
3、雅可比矩阵:
(1)含义:多维空间到多维空间映射的广义导数。每一行代表不同的函数分量,每一列代表不同函数分量对不同自变量的偏导,所构成的一个矩阵。
4、黑塞矩阵:
(1)含义:多维空间到一维空间映射的广义二阶导数。对梯度向量进行雅可比矩阵计算后的结果,是一个实对称矩阵。
凸函数
1、含义:
图例:
2、函数凹凸判别法:
3、注意:
1)凸函数不一定在所有点可导。
2)凸函数不一定存在极值点。
3)存在全局唯一极小值点的不一定是凸函数。
4、补充:
是否存在既凸有凹,或非凸非凹函数?
既凸又凹函数只有线性函数是,存在非凸非1凹函数。