04 主题模型 - NMF
六、坐标轴下降法
回顾: 当加入L1正则项后,由于没法求解出正常的导函数出来(导函数不是连续的),也就没法使用梯度下降法和拟牛顿法求解参数,此时一般采用坐标轴下降法来进行参数的求解。
坐标轴下降法(Coordinate Descent, CD)是一种迭代法,通过启发式的方法一步步的迭代求解函数的最小值,和梯度下降法(GD)不同的时候,坐标轴下降法是沿着坐标轴的方向去下降,而不是采用梯度的负方向下降。
令损失函数 f(x.y) = 5x2-6xy+5y2-0.0259;
1、假设初始点为(-0.5,-1),代入公式f(x.y)后会有一个对应的值。
2、现在固定住 x= -0.5,让y不断变化:(-0.5,-1),(-0.5,1),(-0.5,2),(-0.5,3) ...
3、不断根据y值的变化,检索 f(x.y)的最小值。
4、固定x,求解得到y值。(EM思想)
绿色点所在的位置,是随着y变化后能够与目标函数f(x,y)相切的点。这个点是当前情况下的最小值。那么如何求图上的这个绿点的位置?
首先,我们固定了x=-0.5,即在损失函数 f(x.y) = 5x2-6xy+5y2-0.0259;中, 5x2、-6x都成了常数C;
-0.0259和5x2都是常数,合并到了一起变成C;
即 f(y) = C+3y+5y2;
然后,分析 f(y)处于极小值点时,y的值是多少?
y=-2a/b时获得。即 y=-2*5/3 = -10/3 ≈ -0.3;
PS: 这些是初中的知识,很多人希望我对这方面知识也进行补充,但个人时间有限这部分知识也不难理解,各位可以自行学习补充。我所讲的内容适合学过高等数学、线性代数、概率论,并具有初步编程知识的同行,在学术方面有疑问的不要立刻开喷,有针对性得提出问题,我相信都是可以帮助大家一一解惑的。
5、固定y,求解得到x值。(EM思想)
固定y = -0.3,求解 f(x)取得最小值时,x的取值。
即 f(x) = C+1.8x+5x2
当 f(x)取极小值时,x=-0.18;
重复4~5步,会逐步以下图中的几何方式寻找到损失函数的极小值点:
将EM算法的思想运用于坐标轴下降法,最终结果会收敛在绿色点的这个位置,这个点是损失函数的全局极小值点。
主要坐标轴下降法面对的是一个凸函数,必然能找到一个全局的最小值点。
坐标轴下降法利用EM算法的思想,在参数更新过程中,每次均先固定m-1个参数值,求解剩下的一个参数的局部最优解;然后进行迭代式的更新操作。
坐标轴下降法的核心思想是多变量函数F(X)可以通过每次沿着一个方向优化来获取最小值;其数学依据是:对于一个可微凸函数f(θ),其中θ为n*1的向量。
如果对于一个解θ=(θ1,θ2,...,θn),使得f(θ)在每一个坐标轴θi(i=1,2,..,n)上都能达到最小值,则θ=(θ1,θ2,...,θn)就是的f(θ)全局的最小值点。
在坐标轴下降法中,优化方向从算法的一开始就固定了,即沿着坐标的方向进行变化。在算法中,循环最小化各个坐标方向的目标函数。 即:如果xk给定,那么xk+1的第i维度为:
因此,从一个初始的x0求得函数F(x)的局部最优解,可以迭代获取x0、x1、x2... 的序列,从而可以得到:
七、坐标轴下降法算法过程
- 给θ向量随机选取一个初值,记做θ0;
- 对于第k轮的迭代,从θ1k开始计算,θnk到为止,计算公式如下:
检查θk和θk-1向量在各个维度上的变化情况,如果所有维度的变化情况都比较小的话,那么认为结束迭代,否则继续k+1轮的迭代。
PS:在求解每个参数局部最优解的时候可以求导的方式来求解。
坐标轴下降法和梯度下降法的区别
坐标轴下降法在每次迭代中,计算当前点处沿一个坐标方向进行一维搜索 ,固定其它维度的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值;
坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代;
梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值;
两者都是迭代算法,且每一轮迭代都需要O(mn)的计算量(m为样本数,n为维度数)
回顾上一章对NMF的定义:
NMF的期望 是找到两个W、H矩阵,使得WH的矩阵乘积结果和对应的原矩阵V对应位置的值相比误差尽可能的小。
分析损失函数:
在损失函数中,Vij是原始矩阵。W、H是根据原始矩阵分解出的两个矩阵。
Vij - WH ,类似 真实值-预测值 的概念。
NMF 矩阵分解的结果是非负的,所以要求W、H矩阵中的元素 Wia、Hbj 大于等于0;
这和之前讲的SMO算法中求解β值的问题相似:11 SVM - SMO - 序列最小优化算法
这里我们和求解SMO算法的思路一样,首先假如x1求解出来的结果小于0,我们强行认为x1=0;
留个悬念,后续我会根据代码来深入探讨这个问题。
06 主题模型 - pLSA又称pLSI - 基于概率的潜在语义分析模型