繁体   English   中英

正则化,同时避免theta(1)

[英]Regularization while avoiding theta(1)

我正在Coursera上的Standford机器学习课程的第3周完成,提交程序给了我一个反馈,告诉我theta(1)不应该标准化。

我试图简单地从theta(2)计算J,如下所示:

J = (1/m) * sum((-y .* log(h)) - ((1-y) .* log(1-h))) + (lambda/(2*m)) *   sum(theta(2:end) .^ 2);

grad = 1/m * sum((h - y) .* X) + lambda .* theta ./ m;

这没有用。 我最终在网上找到了一个类似的程序,并将代码更改为

J = (1/m) * sum((-y .* log(h)) - ((1-y) .* log(1-h))) + (lambda/(2*m)) * sum(theta(2:end) .^ 2);

grad = ((h - y)' * X / m)' + lambda .* theta .* [0; ones(length(theta)-1, 1)] ./ m;

哪个有效,但我不了解矩阵[0; ones(length(theta)-1, 1)] [0; ones(length(theta)-1, 1)] ”。 有人可以向我解释吗?

我也很早就完成了这门课程。 我不看方程式就不能真正回答,但据我所知,theta1(+1)是我们添加的一个偏差项,没有规律化或惩罚该偏差项的意义。 该方程式(逐元素相乘)是一种通过将0乘以theta1 = 0来使theta1 = 0的方法,而其余的theta残差则是通过在计算梯度下降时将它们与1乘以原样。 所以最后,我们将不在计算中考虑theta1。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM