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

From Ufldl

Jump to: navigation, search
Line 15: Line 15:
以下是梯度运算代码的一种实现,非常恐怖,速度极慢:
以下是梯度运算代码的一种实现,非常恐怖,速度极慢:
-
  % 代码1
+
  % 代码1
-
  grad = zeros(n+1,1);
+
  grad = zeros(n+1,1);
-
  for i=1:m,
+
  for i=1:m,
-
    h = sigmoid(theta'*x(:,i));
+
    h = sigmoid(theta'*x(:,i));
-
    temp = y(i) - h;  
+
    temp = y(i) - h;  
-
    for j=1:n+1,
+
    for j=1:n+1,
-
      grad(j) = grad(j) + temp * x(j,i);  
+
      grad(j) = grad(j) + temp * x(j,i);  
-
    end;
+
    end;
-
  end;
+
  end;
嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率:
嵌套的for循环语句使这段代码的运行非常缓慢。以下是更典型的实现方式,它对算法进行部分向量化,带来更优的执行效率:

Revision as of 16:34, 14 March 2013

Personal tools