核感知机的直觉

我理解核感知机函数的推导过程,但我想弄清楚最终公式背后的直觉

f(X) = sum_i (alpha_i*y_i*K(X,x_i))

其中(x_i,y_i)是训练数据中的所有样本,alpha_i是我们对该样本犯错的次数,X是我们试图预测的样本(在训练过程中或其他情况下)。现在,我明白为什么核函数被认为是相似性的度量(因为它是在更高维空间中的点积),但我不明白这个公式是如何组合在一起的。

我最初的尝试是,我们试图根据样本与其他样本的相似程度来预测一个样本 – 并乘以y_i,这样它就能贡献正确的符号(更近的点比更远的点更能指示标签)。但为什么我们对某个样本犯了多次错误,它就应该贡献更多呢?

简而言之:在核感知机中,为什么我们对某个样本犯了多次错误,它对预测的贡献应该比我们没有犯错的样本更多?


回答:

我最初的尝试是,我们试图根据样本与其他样本的相似程度来预测一个样本 – 并乘以y_i,这样它就能贡献正确的符号(更近的点比更远的点更能指示标签)。

这基本上就是发生的事情。虽然这个想法是如果alpha_i*y_i*K(X,x_i)已经被很好地分类了,那么你就不需要进一步更新它。

但如果点被错误分类,我们就需要更新它。最好的方式是朝相反的方向,对吗?如果结果是负的,我们应该加上一个正值(y_i)。如果结果是正的(并且被错误分类),那么我们希望加上一个负值(再次是y_i)。

如你所见,y_i已经为我们提供了正确的更新方向,因此我们使用错误分类计数器来为该更新提供一个量级。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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