梯度下降算法的矢量化
2022-09-02 01:12:58
我正在matlab中编码梯度下降。对于两个功能,我得到了更新步骤:
temp0 = theta(1,1) - (alpha/m)*sum((X*theta-y).*X(:,1)); temp1 = theta(2,1) - (alpha/m)*sum((X*theta-y).*X(:,2)); theta(1,1) = temp0; theta(2,1) = temp1;
但是,我希望将此代码矢量化,并能够将其应用于任意数量的功能。对于矢量化部分,它表明我试图做的是矩阵乘法
theta = theta - (alpha/m) * (X' * (X*theta-y));
这很好看,但是当我尝试时,我意识到它不适用于梯度下降,因为参数不会同时更新。
然后,如何对此代码进行矢量化并确保参数同时更新?