为什么在对回归执行正则化时跳过 theta0?
Why is theta0 skipped while performing regulariztion on regression?
我目前正在 Andrew Ng 的机器学习课程的帮助下在 coursera 上学习机器学习。我正在 python 中执行作业,因为我更习惯它而不是 Matlab。我最近遇到了一个关于我对正则化主题的理解的问题。我的理解是,通过进行正则化,可以添加不太重要的特征,这些特征在预测中足够重要。但是在实现它时,我不明白为什么在计算成本时跳过了 theta(parameters) 的第一个元素,即 theta[0]。我已经提到了其他解决方案,但他们也做了同样的跳过 w/o 解释。
代码如下:
`
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) 是 sigmoid 函数或假设。
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
我目前正在 Andrew Ng 的机器学习课程的帮助下在 coursera 上学习机器学习。我正在 python 中执行作业,因为我更习惯它而不是 Matlab。我最近遇到了一个关于我对正则化主题的理解的问题。我的理解是,通过进行正则化,可以添加不太重要的特征,这些特征在预测中足够重要。但是在实现它时,我不明白为什么在计算成本时跳过了 theta(parameters) 的第一个元素,即 theta[0]。我已经提到了其他解决方案,但他们也做了同样的跳过 w/o 解释。
代码如下:
`
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) 是 sigmoid 函数或假设。 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