逻辑回归的向量化实现样例

From Ufldl

Jump to: navigation, search
Line 27: Line 27:
嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率:
嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率:
-
   % 代码 2
+
   % 代码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
+
   % 代码3
   grad = x * (y- sigmoid(theta'*x));
   grad = x * (y- sigmoid(theta'*x));

Revision as of 16:35, 14 March 2013

Personal tools