梯度下降法,牛顿法,坐标下降法

自己简单整理了梯度下降法,牛顿法,坐标下降法的理论,为了自己以后查看方便,时间有限,因此格式还有待改进!
梯度下降法
梯度下降法化算法是常见的优梯度,现在一般使用效果应该不怎么好,但是却是非常基础的理论
在微积分里面,对多元函数的参数求∂偏导数,把求得的各个参数的偏导数以向量的形式写出来,就是梯度。比如函数f(x,y), 分别对x,y求偏导数,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,简称grad f(x,y)或者▽f(x,y)。对于在点(x0,y0)的具体梯度向量就是(∂f/∂x0, ∂f/∂y0)T.或者▽f(x0,y0),如果是3个参数的向量梯度,就是(∂f/∂x, ∂f/∂y,∂f/∂z)T,以此类推。

那么这个梯度向量求出来有什么意义呢?他的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

优缺点:当函数是凸函数时,求得的最小值是全局最小值,如果不是凸函数,有可能陷入局部极小,从而不是最优解
靠近极小值时,下降速度减慢
直线搜索可能会出现问题
可能出现之字形的下降
参考:http://www.cnblogs.com/pinard/p/5970503.html

牛顿法
牛顿法是一种在实数域和复数域上近似求解的方法.其主要特点是使用函数的泰勒级数的前面几项来寻找方程的根或最优解
应用
a 求方程的根
牛顿法求方程的根的关键是将函数在某个点附近进行一阶泰勒级数展开,然后利用y=0,导出迭代公式(方程求根):
梯度下降法,牛顿法,坐标下降法
b 最优化
牛顿法最优化的关键是将函数在某个点附近进行二阶泰勒级数展开,然后利用极小值点处一阶导数为0的公式,导出迭代公式,由于在求解过程中需要用到海塞矩阵的逆矩阵,对这个逆矩阵的近似处理,就成了拟牛顿法
梯度下降法,牛顿法,坐标下降法
梯度下降法,牛顿法,坐标下降法
参考:http://blog.csdn.net/liyuan123zhouhui/article/details/78281515

坐标下降法
坐标下降法,是一种非梯度优化算法,算法在每次迭代中,在当前点处沿一个坐标方向进行一维搜索以求得一个函数的局部极小值。在整个过程中循环使用不同的坐标方向。对于不可拆分的函数而言,算法可能无法在较小的迭代步数中求得最优解。为了加速收敛,可以采用一个适当的坐标系,例如通过主成分分析获得一个坐标间尽可能不相互关联的新坐标系.
对于一个函数,变量个数为n,也即坐标轴有n个,那么在固定n-1个轴,只在其中一个轴上求解极值,这个极值对应的也是全局极值,将所有的坐标轴循环一遍,就可以求得最优解,很多大规模的问题用这种方法都能够快速解决。
梯度下降法,牛顿法,坐标下降法
例子:
梯度下降法,牛顿法,坐标下降法
这个两维的函数的最优解是0,这个问题收敛是没有问题的,但它可能会慢一些。但对于一般问题,用CD还要注意一下,它不一定会收敛。

在什么情况下收敛?如果目标函数是光滑而且凸的,就一定会收敛。但很多问题不光滑,比如Lasso就不光滑,那怎么办?如果是不光滑的,只要光滑部分可分就可以了。在很多稀疏问题上,CD是可以保证是收敛的。

总结来说,当问题是光滑且凸的时候,坐标下降算法一定可以收敛,当问题不光滑的时候,当不光滑的部分是可分的,那么坐标下降算法也可以收敛。

坐标下降算法的优点是容易计算,同时收敛很快;缺点是当loss比较复杂时,会很明显的降低速度。
参考:https://www.leiphone.com/news/201703/fbO2gmk0xkCdj4SB.html

附录:
正交矩阵:1 为方阵 2 元素为实数 3 行与列都为单位向量 4 行与列之间都为正交向量
正交矩阵性质:
转置矩阵为其逆矩阵
作为一个线性映射(变换矩阵),正交矩阵保持距离不变,所以他是一个保距映射,具体例子为旋转与映射
当将正交矩阵的元素变为复数时,变成了酉矩阵,酉方阵在量子力学中有着重要的应用。酉等价是标准正交基到标准正交基的特殊基变换

凸函数:
公式定义:一维的凸函数定义: f((x1+x2)/2)>=(f(x1)+f(x2))/2
二维的可以自己去想象,从直观上理解,就是函数的曲线或者曲面上都是外凸的
梯度下降法,牛顿法,坐标下降法

泰勒级数:
梯度下降法,牛顿法,坐标下降法

海塞矩阵:
梯度下降法,牛顿法,坐标下降法

雅可比矩阵:
梯度下降法,牛顿法,坐标下降法