簡體   English   中英

為什么對回歸執行正則化時跳過theta0?

[英]Why is theta0 skipped while performing regulariztion on regression?

我目前正在Andrew Ng的ML課程的幫助下在Coursera上學習ML。 我正在用python執行分配,因為我比Matlab更習慣了它。 我最近對我對正則化主題的理解遇到了問題。 我的理解是,通過進行正則化,可以添加不太重要的功能,這些功能對於預測足夠重要。 但是在實現它時,我不明白為什么在計算成本時會跳過theta(parameters)的第一個元素,即theta [0]。 我提到了其他解決方案,但它們也做了相同的跳過,沒有解釋。

這是代碼:

`

 term1 = np.dot(-np.array(y).T,np.log(h(theta,X)))
 term2 = np.dot((1-np.array(y)).T,np.log(1-h(theta,X)))
 regterm = (lambda_/2) * np.sum(np.dot(theta[1:].T,theta[1:])) #Skip theta0. Explain this line
 J=float( (1/m) * ( np.sum(term1 - term2) + regterm ) )
 grad=np.dot((sigmoid(np.dot(X,theta))-y),X)/m
 grad_reg=grad+((lambda_/m)*theta)
 grad_reg[0]=grad[0]

`

這是公式:

正則成本函數

這里J(theta)是成本函數h(x)是S型函數或假設。 lamnda是正則化參數。

Theta0是指偏差。 當我們希望正確划分決策邊界時,就會出現偏差。 只是考慮一個例子

Y1 = w1 * X,然后Y2 = w2 * X

當X的值接近於零時,可能會出現很難將它們分開的情況,從而使角色產生偏差。

Y1 = w1 * X + b1和Y2 = w2 * X + b2

現在,通過學習,決策界限將一直清晰。

讓我們考慮一下為什么現在使用正則化。

這樣我們就不會過度擬合並平滑曲線。 如您所見,需要平滑的方程式(其斜率w1和w2)只是偏斜的截距。 因此,沒有必要在正則化中使用它們。

盡管我們可以使用它,但是在神經網絡的情況下,它沒有任何區別。 但是我們可能會面臨太多降低偏差值的問題,以至於可能混淆數據點。 因此,最好不要在正則化中使用偏差。

希望它能回答您的問題。 最初發布: https : //medium.com/@shrutijadon10104776/why-we-dont-use-bias-in-regularization-5a86905dfcd6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM