繁体   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