坐标轴下降法(解决L1正则化不可导的问题)
参考:http://www.cnblogs.com/pinard/p/6018889.html
设lasso回归的损失函数为:
其中,n为样本个数,m为特征个数。
由于lasso回归的损失函数是不可导的,所以梯度下降算法将不再有效,下面利用坐标轴下降法进行求解。
坐标轴下降法和梯度下降法具有同样的思想,都是沿着某个方向不断迭代,但是梯度下降法是沿着当前点的负梯度方向进行参数更新,而坐标轴下降法是沿着坐标轴的方向。
下面为具体的更新过程。
(1)选取初始参数
(2)针对当前得到的参数进行迭代,假设已经求出第k-1轮的参数,现在由求,其中,则:
(3)通过以上步骤即可以得到每轮的迭代结果,如果相对于
的变化很小,则停止迭代,否则,重复步骤(2).
通过以上迭代过程可以看出
1. 坐标轴下降法进行参数更新时,每次总是固定另外m-1个值,求另外一个的局部最优值,这样也避免了Lasso回归的损失函数不可导的问题。
2. 坐标轴下降法每轮迭代都需要O(mn)的计算。(和梯度下降算法相同)
坐标轴下降法的数学依据为:
对于一个可微凸函数,其中
为
的向量,如果对于一个解
,使得
在某个坐标轴
上都能达到最小值,则
就是
的全局的最小值点。