支持向量机 损失函数
支持向量机(Support Vector Machine)是一种有监督学习算法,可以用于二分类或多分类问题。在分类模型中,SVM选择一个最优的超平面将数据集分为两个部分,并尽可能地将两个类别分开。SVM使用的损失函数是Hinge Loss,它可以让SVM对于误分类的点付出更高的代价,从而使得分类面更加鲁棒。
Hinge Loss也被称为最大间隔损失函数,可以被视为一个函数和阈值之间的描述。对于一个二元分类问题,分类模型输出$\hat{y}$是一个连续值,该值可以被视为是一个数据点被分配到正类的概率。将输出$\hat{y}$与阈值比较可以生成分类。Hinge Loss为:
$\mathrm{L}=\sum_{i=1}^{n}\left(\max (0,1-y_{i} \hat{y_{i}})\right)$
其中,$n$表示训练数据集的大小,$y_{i}$是数据点的类别,$\hat{y_{i}}$是分类器对第$i$个数据点的预测值。如果$h_{\theta}(x_{i})$与$y_{i}$符号相同(即$h_{\theta}(x_{i})y_{i}> 0$),则$\max(0, 1-y_{i}h_{\theta}(x_{i})) = 0$,损失值为$0$,否则损失值大于$0$。通过最小化Hinge Loss可以得到最优的分界超平面,使得分界超平面到最近样本点集的距离最大。
为了防止过拟合,原始的SVM模型在Hinge Loss函数中加入了正则化项。正则化项的目的是使模型的复杂度受到限制,从而避免对训练数据集过拟合。在SVM中,我们通常使用$L2$正则化项:
$\mathrm{L}=\frac{1}{n} \sum_{i=1}^{n}\left[\max (0,1-y_{i} \hat{y_{i}})\right]+\alpha \sum_{j=1}^{m} \theta_{j}^{2}$
其中,$m$表示特征数,$\alpha$是一个常数,$\theta_{j}$是特征权重。这个正则化项可以防止权重过大,限制了特征的数量和权重的取值范围。特别地,当$\alpha$取值很小时,SVM就变成线性支持向量机(Linear SVM)了。
总之,SVM是一种有监督学习算法,它使用Hinge Loss作为损失函数,可以让SVM对于误分类的点付出更高的代价,从而使得分类面更加鲁棒。通过加入正则化项,我们可以避免过拟合并限制特征数量和权重的取值范围。SVM应用广泛,包括图像识别、语音识别、自然语言处理等领域。正则化是为了防止
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论