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