为什么在回归的正则化过程中跳过theta0?

我目前正在Coursera上通过Andrew Ng的机器学习课程学习机器学习。我选择用Python完成作业,因为我更习惯Python而不是Matlab。最近我在学习正则化这一主题时遇到了一个问题。我的理解是,通过正则化,可以添加一些在预测中足够重要的次要特征。但在实现过程中,我不明白为什么在计算成本时要跳过theta(参数)的第一个元素,即theta[0]。我查阅了其他解决方案,但他们也同样跳过了theta0,没有给出解释。

这是代码:

`

 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:])) #跳过theta0。解释这一行 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函数或假设,lambda是正则化参数。


回答:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注