lr 学习

lr 学习

基本推导

这个很多地方都有....

梯度下降

梯度下降是利用了一阶导数的信息来加速收敛. 一阶导数,线性速度.

公式
$$
f(X_k + ad) = f(X_k) + ag_k^Td+ o(a) tag{1}
$$
这里解释下 $X_k$ 代表一个自变量, $a$ 代表你步长(实数), d是单位向量(|1|), $g_k^T = nabla f(X_k)$是在$X_k$这一点的梯度.$o(a)$是a的高阶无穷小. 参考下泰勒公式:
$$
f(x+h) = f(x) + f'(x)*h + o(h)
$$
是一样的.

要使(1)式收敛这里需要对,相当于$g^Td$ 取最小,也就是二者正交。

牛顿法

先说一句,牛顿法一定比梯度下降快么?

是的,因为二阶导数的相比一阶导数收敛的更快.

在$X_k$ 点上进行二阶泰勒展开:
$$
r_k(X)=f(X_k) + g_k^T(X-X_k) +1/2(X-X_k)^TG_k(X-X_k) tag{2}
$$
$g_k^T$是$f(x)$的一阶导数。$G_k=nabla^2 f(X_k)$ 是二阶导数。

这里要(2)收敛需要对进行求导。
$$
nabla r_k(X) = g_k + G_k(X-X_k) tag{3}
$$
$f(X_k)$ 常数。$g_K^T(X-X_k)$ 求导用乘法法则得到(3)。这里要(3)等于0.当$G_k$的逆矩阵存在,也即$G_k$为非奇异矩阵的时候则有:
$$
G_k^{-1}g_k + X-X_k=0 Rightarrow
X=X_k-G_k^{-1}g_k = X_k+d
$$
可得 $-G_k^{-1}g_k=d Rightarrow G_k d=-g_k$ 这里转换成这种形式主要是不知道$G_k^{-1}$是多少,所以需要去解后面这个方程,而这个过程其实和秋逆的过程差不多。这里的 $G_k$ 就是hesse 矩阵

共轭梯度法

bfp

BFP 是三个哥们(Davidon、Fletcher、Powell三位牛人)。BFP 的思想是用近似的正定矩阵来模拟 hesse矩阵。

bfgs

$$
min_{x in R^n }
$$

你可能感兴趣的:(机器学习)