逻辑回归的向量化实现样例
From Ufldl
Line 27: | Line 27: | ||
嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率: | 嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率: | ||
- | % | + | % 代码2 |
grad = zeros(n+1,1); | grad = zeros(n+1,1); | ||
for i=1:m, | for i=1:m, | ||
Line 46: | Line 46: | ||
我们看到,代码2是用了低效的for循环语句执行梯度上升(原文是下降)运算,将b(i)看成(y(i) - sigmoid(theta'*x(:,i))),A看成x,我们就可以使用以下高效率的代码: | 我们看到,代码2是用了低效的for循环语句执行梯度上升(原文是下降)运算,将b(i)看成(y(i) - sigmoid(theta'*x(:,i))),A看成x,我们就可以使用以下高效率的代码: | ||
- | % | + | % 代码3 |
grad = x * (y- sigmoid(theta'*x)); | grad = x * (y- sigmoid(theta'*x)); | ||