2

我必须将MatrixR[m n] 分解为两个低秩矩阵(U[K m] 和 V[K*n]),我这样做是为了通过 U 和 V 预测 R 的缺失值。
矩阵分解

问题是,对于分解R ,我不能使用Matlab分解方法,所以我必须研究目标函数,以最小化sum-of-squared-errors提高分解精度:
目标函数 详细信息如下所示:

在此处输入图像描述


我在这篇文章中的问题是如何在使用随机梯度下降法将 R 分解为 U 和 V 矩阵中最小化函数 F。Matlab

谢谢你的帮助!

4

1 回答 1

3

Finally I figured out with help of this page :)
I explain the approach in some steps:

  1. Create U[k*m] and V[k*n] and fill them arbitrarily

  2. Compute derivatives for objective function on Ui and Vj

  3. Do gradient descent as follows:

    while (your criteria satisfies(optimizing error function F)) { Ui=Ui+a(U'i); Vj=Vj+a(V'j); Evaluate F using new values of Ui and Vj; }

  4. With the minimum F , take U and V, compute transpose(U)*V and the result is estimated R (a is step size or learning rate)

于 2013-10-09T19:25:38.623 回答