簡體   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