This question already has answers here:
Cost function in logistic regression gives NaN as a result
(2个答案)
2年前关闭。
我正在学习Andrew Ng的机器学习课程,目前正在用MATLAB / Octave编写正向传播代码来解决此成本函数:
目前,我已经以如下的for循环形式编写了它:
这样就完成了工作。但是,我想简化这段代码,因为当我感觉可以使用矢量化形式时,在MATLAB中使用for循环总是感到有些“肮脏”。但是for循环看起来很自然,因为有2个求和。
colon operator
(2个答案)
2年前关闭。
我正在学习Andrew Ng的机器学习课程,目前正在用MATLAB / Octave编写正向传播代码来解决此成本函数:
目前,我已经以如下的for循环形式编写了它:
for i= 1:m
for j= 1:num_labels
J = J + log(ht(j,i))*y(j,i) + log(1-ht(j,i))*(1-y(j,i));
end
end
J = -J/m;
这样就完成了工作。但是,我想简化这段代码,因为当我感觉可以使用矢量化形式时,在MATLAB中使用for循环总是感到有些“肮脏”。但是for循环看起来很自然,因为有2个求和。
最佳答案
此行应为您提供与上述循环代码相同的结果:
J = -sum(log(ht(:)).*y(:) + log(1-ht(:)).*(1-y(:)))/m;
colon operator
(:)
用于将每个矩阵整形为列向量,以便在逐元素乘法之后,可以单独调用sum
来求和所有结果。关于matlab - 此成本函数是否有矢量化实现? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43860585/
10-12 21:15