A-04 坐标轴下降法
更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html
坐标轴下降法
坐标轴下降法顾名思义,沿着坐标轴下降。坐标轴下降法和梯度下降法使用的都是迭代法,即使用启发式的方式一步一步迭代求解函数的最小值。
可以想象一个可微的凸函数,其中是一个维的向量。如果在这维空间中存在着某一点能够使得在每一个坐标轴上都是最小的,那么我们则可以说是全局最小值。如二维空间中的曲线,当和都是最小的时候,即为曲线最小值的时候。(注:Lasso回归的目标函数虽然不可微,但是由于目标函数非正则项是可微的,L1正则项是凸函数,因此也可以使用该结论。)
一、坐标轴下降法流程
坐标轴下降法即在的每个坐标轴上做迭代下降,当每个坐标轴上的值都收敛时,则可以说明达到了的全局最小值。
- 取初值记为,其中表示迭代的轮数,初轮数为0。
- 对于第轮的迭代,依次求解,即
其中由于在每次单独对一个坐标轴迭代的时候其他坐标轴上的值为常数。也就是是使为最小的值,除了为变量外,其他参数都为常数,则对求导即可得该函数的最小值。
3. 检查和在每个维度上的变化情况,如果所有维度的变换都小于某个阈值,则为最终结果,否则循环第2步,进入次迭代。
二、坐标轴下降法和梯度下降法的异同
- 两者都是迭代方法,并且每一轮迭代都需要的计算量,其中为样本数,为特征数。
- 坐标轴下降法固定个坐标,沿着剩下的一个坐标轴迭代,得到函数的局部最小值;梯度下降法则是沿着梯度的负方向得到函数的局部最小值。
- 坐标轴下降法是一种非梯度优化算法,但是一个周期中循环使用不同的坐标方向迭代,相当于梯度下降的一轮迭代。
- 由于坐标轴下降法是利用当前坐标方向迭代,不需要求目标函数的倒数;梯度下降法是利用目标函数的偏导数来确定迭代方向的。